OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::StructuralInterfaceCrossSection Class Reference

Base class for all structural interface cross section models. More...

#include <structuralinterfacecrosssection.h>

+ Inheritance diagram for oofem::StructuralInterfaceCrossSection:
+ Collaboration diagram for oofem::StructuralInterfaceCrossSection:

Public Member Functions

 StructuralInterfaceCrossSection (int n, Domain *d)
 Constructor. More...
 
virtual ~StructuralInterfaceCrossSection ()
 Destructor. More...
 
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description stored in input record. More...
 
virtual int testCrossSectionExtension (CrossSectExtension ext)
 Returns nonzero, if receiver implements required extension. More...
 
StructuralInterfaceMaterialgiveInterfaceMaterial ()
 
const FloatArraygiveTraction (IntegrationPoint *ip)
 
virtual int checkConsistency ()
 Allows programmer to test some internal data, before computation begins. More...
 
virtual int giveIPValue (FloatArray &answer, GaussPoint *ip, InternalStateType type, TimeStep *tStep)
 Returns the integration point corresponding value in Reduced form. More...
 
virtual MaterialgiveMaterial (IntegrationPoint *ip)
 Returns the material associated with the GP. More...
 
int giveMaterialNumber () const
 
void setMaterialNumber (int matNum)
 
virtual int packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp)
 Pack all necessary data of integration point (according to element parallel_mode) into given communication buffer. More...
 
virtual int unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp)
 Unpack and updates all necessary data of given integration point (according to element parallel_mode) into given communication buffer. More...
 
virtual int estimatePackSize (DataStream &buff, GaussPoint *gp)
 Estimates the necessary pack size to hold all packed data of receiver. More...
 
virtual const char * giveClassName () const
 
virtual const char * giveInputRecordName () const
 
void giveFirstPKTraction_1d (FloatArray &answer, GaussPoint *gp, const FloatArray &jump, const FloatMatrix &F, TimeStep *tStep)
 Computes the real stress vector for given strain and integration point. More...
 
void giveFirstPKTraction_2d (FloatArray &answer, GaussPoint *gp, const FloatArray &jump, const FloatMatrix &F, TimeStep *tStep)
 
void giveFirstPKTraction_3d (FloatArray &answer, GaussPoint *gp, const FloatArray &jump, const FloatMatrix &F, TimeStep *tStep)
 
void giveEngTraction_1d (FloatArray &answer, GaussPoint *gp, const FloatArray &jump, TimeStep *tStep)
 
void giveEngTraction_2d (FloatArray &answer, GaussPoint *gp, const FloatArray &jump, TimeStep *tStep)
 
void giveEngTraction_3d (FloatArray &answer, GaussPoint *gp, const FloatArray &jump, TimeStep *tStep)
 
void give1dStiffnessMatrix_dTdj (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
 
void give2dStiffnessMatrix_dTdj (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
 
void give3dStiffnessMatrix_dTdj (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
 
void give1dStiffnessMatrix_Eng (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
 
void give2dStiffnessMatrix_Eng (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
 
void give3dStiffnessMatrix_Eng (FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
 
- Public Member Functions inherited from oofem::CrossSection
 CrossSection (int n, Domain *d)
 Constructor. More...
 
virtual ~CrossSection ()
 Destructor. More...
 
int giveSetNumber () const
 
virtual bool hasProperty (CrossSectionProperty a)
 Returns true if the dictionary contains the requested property. More...
 
virtual double give (CrossSectionProperty a, GaussPoint *gp)
 Returns the value of cross section property at given point. More...
 
virtual double give (CrossSectionProperty a, const FloatArray &coords, Element *elem, bool local=true)
 Returns the value of cross section property at given point (belonging to given element). More...
 
virtual double give (int aProperty, GaussPoint *gp)
 Returns the value of cross section property. More...
 
virtual bool isCharacteristicMtrxSymmetric (MatResponseMode rMode)
 Check for symmetry of stiffness matrix. More...
 
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging. More...
 
virtual int setupIntegrationPoints (IntegrationRule &irule, int npoints, Element *element)
 Sets up integration rule for the given element. More...
 
virtual int setupIntegrationPoints (IntegrationRule &irule, int npointsXY, int npointsZ, Element *element)
 Sets up integration rule for the given element. More...
 
virtual double predictRelativeComputationalCost (GaussPoint *ip)
 Returns the weight representing relative computational cost of receiver The reference cross section is integral model in plane stress. More...
 
virtual double giveRelativeSelfComputationalCost ()
 Returns the weight representing relative computational cost of receiver The reference element is integral model in plane stress. More...
 
virtual double predictRelativeRedistributionCost (GaussPoint *gp)
 
virtual void giveInputRecord (DynamicInputRecord &input)
 Setups the input record string of receiver. More...
 
virtual contextIOResultType saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
 Stores integration point state to output stream. More...
 
virtual contextIOResultType restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
 Reads integration point state to output stream. More...
 
- Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
 Regular constructor, creates component with given number and belonging to given domain. More...
 
virtual ~FEMComponent ()
 Virtual destructor. More...
 
DomaingiveDomain () const
 
virtual void setDomain (Domain *d)
 Sets associated Domain. More...
 
int giveNumber () const
 
void setNumber (int num)
 Sets number of receiver. More...
 
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
 Local renumbering support. More...
 
virtual contextIOResultType saveContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Stores receiver state to output stream. More...
 
virtual contextIOResultType restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Restores the receiver state previously written in stream. More...
 
virtual void printOutputAt (FILE *file, TimeStep *tStep)
 Prints output of receiver to stream, for given time step. More...
 
virtual InterfacegiveInterface (InterfaceType t)
 Interface requesting service. More...
 
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros). More...
 

Public Attributes

CrossSectExtension crossSectionType
 

Private Attributes

int materialNum
 

Additional Inherited Members

- Protected Attributes inherited from oofem::CrossSection
Dictionary propertyDictionary
 Dictionary for storing cross section parameters (like dimensions). More...
 
int setNumber
 
- Protected Attributes inherited from oofem::FEMComponent
int number
 Component number. More...
 
Domaindomain
 Link to domain object, useful for communicating with other FEM components. More...
 

Detailed Description

Base class for all structural interface cross section models.

Keeps track of the interface material, the geometric thickness (for 2d elements) and possibly (in the future) the integration rule (Gauss, Lobatto etc)

Definition at line 61 of file structuralinterfacecrosssection.h.

Constructor & Destructor Documentation

oofem::StructuralInterfaceCrossSection::StructuralInterfaceCrossSection ( int  n,
Domain d 
)
inline

Constructor.

Creates cross section with given number, belonging to given domain.

Parameters
nCross section number.
dDomain to which new cross section will belong.

Definition at line 69 of file structuralinterfacecrosssection.h.

References crossSectionType, oofem::CS_StructuralInterfaceCapability, and materialNum.

virtual oofem::StructuralInterfaceCrossSection::~StructuralInterfaceCrossSection ( )
inlinevirtual

Destructor.

Definition at line 75 of file structuralinterfacecrosssection.h.

References initializeFrom().

Member Function Documentation

int oofem::StructuralInterfaceCrossSection::checkConsistency ( )
virtual

Allows programmer to test some internal data, before computation begins.

For example, one may use this function, to ensure that element has material with required capabilities is assigned to element. This must be done after all mesh components are instanciated.

Returns
Nonzero if receiver is consistent.

Reimplemented from oofem::FEMComponent.

Definition at line 61 of file structuralinterfacecrosssection.C.

References oofem::FEMComponent::giveClassName(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveMaterial(), materialNum, and OOFEM_WARNING.

Referenced by oofem::StructuralInterfaceElement::checkConsistency(), and giveEngTraction_3d().

int oofem::StructuralInterfaceCrossSection::estimatePackSize ( DataStream buff,
GaussPoint ip 
)
virtual

Estimates the necessary pack size to hold all packed data of receiver.

The corresponding material model service is invoked. The nature of packed data is typically material model dependent.

Parameters
buffCommunication buffer.
ipIntegration point.
Returns
Estimate of pack size.

Implements oofem::CrossSection.

Definition at line 209 of file structuralinterfacecrosssection.C.

References oofem::Material::estimatePackSize(), and giveInterfaceMaterial().

Referenced by setMaterialNumber().

virtual const char* oofem::StructuralInterfaceCrossSection::giveClassName ( ) const
inlinevirtual
Returns
Class name of the receiver.

Implements oofem::FEMComponent.

Definition at line 144 of file structuralinterfacecrosssection.h.

void oofem::StructuralInterfaceCrossSection::giveEngTraction_1d ( FloatArray answer,
GaussPoint gp,
const FloatArray jump,
TimeStep tStep 
)
inline
void oofem::StructuralInterfaceCrossSection::giveEngTraction_2d ( FloatArray answer,
GaussPoint gp,
const FloatArray jump,
TimeStep tStep 
)
inline
void oofem::StructuralInterfaceCrossSection::giveFirstPKTraction_1d ( FloatArray answer,
GaussPoint gp,
const FloatArray jump,
const FloatMatrix F,
TimeStep tStep 
)
inline

Computes the real stress vector for given strain and integration point.

The service should use previously reached equilibrium history variables. Also it should update temporary history variables in status according to newly reached state. The temporary history variables are moved into equilibrium ones after global structure equilibrium has been reached by iteration process. Elements should always pass their requests to their cross section model, which performs necessary integration over its volume and invokes necessary material services for corresponding material model defined for given integration point.

Parameters
answerContains result.
gpIntegration point.
reducedFDeformation gradient in reduced form.
tStepCurrent time step (most models are able to respond only when tStep is current time step).

Definition at line 97 of file structuralinterfacecrosssection.h.

References oofem::StructuralInterfaceMaterial::giveFirstPKTraction_1d(), and giveInterfaceMaterial().

void oofem::StructuralInterfaceCrossSection::giveFirstPKTraction_2d ( FloatArray answer,
GaussPoint gp,
const FloatArray jump,
const FloatMatrix F,
TimeStep tStep 
)
inline
void oofem::StructuralInterfaceCrossSection::giveFirstPKTraction_3d ( FloatArray answer,
GaussPoint gp,
const FloatArray jump,
const FloatMatrix F,
TimeStep tStep 
)
inline
virtual const char* oofem::StructuralInterfaceCrossSection::giveInputRecordName ( ) const
inlinevirtual
Returns
Input record name of the receiver.

Implements oofem::FEMComponent.

Definition at line 145 of file structuralinterfacecrosssection.h.

References _IFT_StructuralInterfaceCrossSection_Name.

int oofem::StructuralInterfaceCrossSection::giveIPValue ( FloatArray answer,
GaussPoint ip,
InternalStateType  type,
TimeStep tStep 
)
virtual

Returns the integration point corresponding value in Reduced form.

Parameters
answercontain corresponding ip value, zero sized if not available
ipIntegration point.
typeDetermines the type of internal variable.
tStepTime step.
Returns
Nonzero if o.k, zero otherwise.

Reimplemented from oofem::CrossSection.

Definition at line 175 of file structuralinterfacecrosssection.C.

References oofem::FloatArray::at(), giveInterfaceMaterial(), oofem::StructuralInterfaceMaterial::giveIPValue(), oofem::FEMComponent::giveNumber(), and oofem::FloatArray::resize().

Referenced by giveEngTraction_3d().

Material * oofem::StructuralInterfaceCrossSection::giveMaterial ( IntegrationPoint ip)
virtual

Returns the material associated with the GP.

Default implementation uses gp->giveMaterial() for backwards compatibility, but it should be overloaded in each specialized cross-section.

Implements oofem::CrossSection.

Definition at line 186 of file structuralinterfacecrosssection.C.

References oofem::FEMComponent::giveDomain(), oofem::GaussPoint::giveElement(), oofem::Domain::giveMaterial(), oofem::Element::giveMaterial(), and giveMaterialNumber().

Referenced by giveEngTraction_3d().

int oofem::StructuralInterfaceCrossSection::giveMaterialNumber ( ) const
inline

Definition at line 136 of file structuralinterfacecrosssection.h.

References materialNum.

Referenced by giveMaterial().

const FloatArray & oofem::StructuralInterfaceCrossSection::giveTraction ( IntegrationPoint ip)
IRResultType oofem::StructuralInterfaceCrossSection::initializeFrom ( InputRecord ir)
virtual

Initializes receiver according to object description stored in input record.

This function is called immediately after creating object using constructor. Input record can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record.

See also
IR_GIVE_FIELD
IR_GIVE_OPTIONAL_FIELD
Parameters
irInput record to initialize from.
Returns
IRResultType

Reimplemented from oofem::CrossSection.

Definition at line 74 of file structuralinterfacecrosssection.C.

References _IFT_StructuralInterfaceCrossSection_Material, _IFT_StructuralInterfaceCrossSection_thickness, oofem::Dictionary::add(), oofem::CS_Thickness, oofem::InputRecord::hasField(), oofem::CrossSection::initializeFrom(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, oofem::IRRT_OK, materialNum, and oofem::CrossSection::propertyDictionary.

Referenced by ~StructuralInterfaceCrossSection().

int oofem::StructuralInterfaceCrossSection::packUnknowns ( DataStream buff,
TimeStep tStep,
GaussPoint ip 
)
virtual

Pack all necessary data of integration point (according to element parallel_mode) into given communication buffer.

The corresponding material model service for particular integration point is invoked. The nature of packed data is material model dependent. Typically, for material of "local" response (response depends only on integration point local state) no data are exchanged. For "nonlocal" constitutive models the send/receive of local values which undergo averaging is performed between local and corresponding remote elements.

Parameters
buffCommunication buffer.
tStepSolution step.
ipIntegration point.
Returns
Nonzero if successful.

Implements oofem::CrossSection.

Definition at line 197 of file structuralinterfacecrosssection.C.

References giveInterfaceMaterial(), and oofem::Material::packUnknowns().

Referenced by setMaterialNumber().

void oofem::StructuralInterfaceCrossSection::setMaterialNumber ( int  matNum)
inline
virtual int oofem::StructuralInterfaceCrossSection::testCrossSectionExtension ( CrossSectExtension  ext)
inlinevirtual

Returns nonzero, if receiver implements required extension.

Parameters
extRequired extension.
Returns
Nonzero, if supported, zero otherwise.

Reimplemented from oofem::CrossSection.

Definition at line 79 of file structuralinterfacecrosssection.h.

References crossSectionType.

int oofem::StructuralInterfaceCrossSection::unpackAndUpdateUnknowns ( DataStream buff,
TimeStep tStep,
GaussPoint ip 
)
virtual

Unpack and updates all necessary data of given integration point (according to element parallel_mode) into given communication buffer.

See also
packUnknowns service.
Parameters
buffCommunication buffer.
tStepSolution step.
ipIntegration point.
Returns
Nonzero if successful.

Implements oofem::CrossSection.

Definition at line 203 of file structuralinterfacecrosssection.C.

References giveInterfaceMaterial(), and oofem::Material::unpackAndUpdateUnknowns().

Referenced by setMaterialNumber().

Member Data Documentation

CrossSectExtension oofem::StructuralInterfaceCrossSection::crossSectionType
int oofem::StructuralInterfaceCrossSection::materialNum
private

The documentation for this class was generated from the following files:

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:41 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011