OOFEM 3.0
Loading...
Searching...
No Matches
oofem::StructuralInterfaceCrossSection Class Reference

#include <structuralinterfacecrosssection.h>

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

Public Member Functions

 StructuralInterfaceCrossSection (int n, Domain *d)
virtual ~StructuralInterfaceCrossSection ()
 Destructor.
void initializeFrom (InputRecord &ir) override
int testCrossSectionExtension (CrossSectExtension ext) override
double giveFirstPKTraction_1d (double jump, double F, GaussPoint *gp, TimeStep *tStep) const
FloatArrayF< 2 > giveFirstPKTraction_2d (const FloatArrayF< 2 > &jump, const FloatMatrixF< 2, 2 > &F, GaussPoint *gp, TimeStep *tStep) const
FloatArrayF< 3 > giveFirstPKTraction_3d (const FloatArrayF< 3 > &jump, const FloatMatrixF< 3, 3 > &F, GaussPoint *gp, TimeStep *tStep) const
double giveEngTraction_1d (double jump, GaussPoint *gp, TimeStep *tStep) const
FloatArrayF< 2 > giveEngTraction_2d (const FloatArrayF< 2 > &jump, GaussPoint *gp, TimeStep *tStep) const
FloatArrayF< 3 > giveEngTraction_3d (const FloatArrayF< 3 > &jump, GaussPoint *gp, TimeStep *tStep) const
FloatMatrixF< 1, 1 > give1dStiffnessMatrix_dTdj (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const
FloatMatrixF< 2, 2 > give2dStiffnessMatrix_dTdj (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const
FloatMatrixF< 3, 3 > give3dStiffnessMatrix_dTdj (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const
FloatMatrixF< 1, 1 > give1dStiffnessMatrix_Eng (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const
FloatMatrixF< 2, 2 > give2dStiffnessMatrix_Eng (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const
FloatMatrixF< 3, 3 > give3dStiffnessMatrix_Eng (MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const
StructuralInterfaceMaterialgiveInterfaceMaterial () const
int checkConsistency () override
int giveIPValue (FloatArray &answer, GaussPoint *ip, InternalStateType type, TimeStep *tStep) override
MaterialgiveMaterial (IntegrationPoint *ip) const override
 hidden by virtual oofem::Material* TransportCrossSection::giveMaterial() const
int giveMaterialNumber () const
void setMaterialNumber (int matNum)
int packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp) override
int unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp) override
int estimatePackSize (DataStream &buff, GaussPoint *gp) override
const char * giveClassName () const override
const char * giveInputRecordName () const override
Public Member Functions inherited from oofem::CrossSection
 CrossSection (int n, Domain *d)
virtual ~CrossSection ()
 Destructor.
int giveSetNumber () const
virtual bool hasProperty (CrossSectionProperty a)
virtual double give (CrossSectionProperty a, GaussPoint *gp) const
virtual double give (CrossSectionProperty a, const FloatArray &coords, Element *elem, bool local=true) const
virtual double give (int aProperty, GaussPoint *gp) const
virtual bool isCharacteristicMtrxSymmetric (MatResponseMode rMode) const
void printYourself () override
 Prints receiver state on stdout. Useful for debugging.
virtual int setupIntegrationPoints (IntegrationRule &irule, int npoints, Element *element)
virtual int setupIntegrationPoints (IntegrationRule &irule, int npointsXY, int npointsZ, Element *element)
virtual double predictRelativeComputationalCost (GaussPoint *ip)
virtual double giveRelativeSelfComputationalCost ()
virtual double predictRelativeRedistributionCost (GaussPoint *gp)
void giveInputRecord (DynamicInputRecord &input) override
virtual void saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
virtual void restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
virtual ~FEMComponent ()=default
 Virtual destructor.
DomaingiveDomain () const
virtual void setDomain (Domain *d)
int giveNumber () const
void setNumber (int num)
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
virtual void initializeFrom (InputRecord &ir, int priority)
virtual void initializeFinish ()
virtual void postInitialize ()
 Performs post initialization steps. Called after all components are created and initialized.
virtual void printOutputAt (FILE *file, TimeStep *tStep)
virtual InterfacegiveInterface (InterfaceType t)
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros).

Public Attributes

CrossSectExtension crossSectionType

Private Attributes

int materialNum

Additional Inherited Members

Protected Attributes inherited from oofem::CrossSection
Dictionary propertyDictionary
int setNumber
Protected Attributes inherited from oofem::FEMComponent
int number
 Component number.
Domaindomain
 Link to domain object, useful for communicating with other FEM components.

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

◆ StructuralInterfaceCrossSection()

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 oofem::CrossSection::CrossSection(), crossSectionType, oofem::CS_StructuralInterfaceCapability, and materialNum.

◆ ~StructuralInterfaceCrossSection()

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

Destructor.

Definition at line 75 of file structuralinterfacecrosssection.h.

Member Function Documentation

◆ checkConsistency()

int oofem::StructuralInterfaceCrossSection::checkConsistency ( void )
overridevirtual

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 52 of file structuralinterfacecrosssection.C.

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

◆ estimatePackSize()

int oofem::StructuralInterfaceCrossSection::estimatePackSize ( DataStream & buff,
GaussPoint * ip )
overridevirtual

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 194 of file structuralinterfacecrosssection.C.

References giveInterfaceMaterial().

◆ give1dStiffnessMatrix_dTdj()

◆ give1dStiffnessMatrix_Eng()

◆ give2dStiffnessMatrix_dTdj()

◆ give2dStiffnessMatrix_Eng()

◆ give3dStiffnessMatrix_dTdj()

◆ give3dStiffnessMatrix_Eng()

◆ giveClassName()

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

Implements oofem::FEMComponent.

Definition at line 142 of file structuralinterfacecrosssection.h.

◆ giveEngTraction_1d()

double oofem::StructuralInterfaceCrossSection::giveEngTraction_1d ( double jump,
GaussPoint * gp,
TimeStep * tStep ) const
inline

◆ giveEngTraction_2d()

FloatArrayF< 2 > oofem::StructuralInterfaceCrossSection::giveEngTraction_2d ( const FloatArrayF< 2 > & jump,
GaussPoint * gp,
TimeStep * tStep ) const
inline

◆ giveEngTraction_3d()

FloatArrayF< 3 > oofem::StructuralInterfaceCrossSection::giveEngTraction_3d ( const FloatArrayF< 3 > & jump,
GaussPoint * gp,
TimeStep * tStep ) const
inline

◆ giveFirstPKTraction_1d()

double oofem::StructuralInterfaceCrossSection::giveFirstPKTraction_1d ( double jump,
double F,
GaussPoint * gp,
TimeStep * tStep ) const
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.
reduthiscedFDeformation 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().

◆ giveFirstPKTraction_2d()

FloatArrayF< 2 > oofem::StructuralInterfaceCrossSection::giveFirstPKTraction_2d ( const FloatArrayF< 2 > & jump,
const FloatMatrixF< 2, 2 > & F,
GaussPoint * gp,
TimeStep * tStep ) const
inline

◆ giveFirstPKTraction_3d()

FloatArrayF< 3 > oofem::StructuralInterfaceCrossSection::giveFirstPKTraction_3d ( const FloatArrayF< 3 > & jump,
const FloatMatrixF< 3, 3 > & F,
GaussPoint * gp,
TimeStep * tStep ) const
inline

◆ giveInputRecordName()

const char * oofem::StructuralInterfaceCrossSection::giveInputRecordName ( ) const
inlineoverridevirtual
Returns
Input record name of the receiver.

Implements oofem::FEMComponent.

Definition at line 143 of file structuralinterfacecrosssection.h.

References _IFT_StructuralInterfaceCrossSection_Name.

◆ giveInterfaceMaterial()

◆ giveIPValue()

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

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 160 of file structuralinterfacecrosssection.C.

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

◆ giveMaterial()

Material * oofem::StructuralInterfaceCrossSection::giveMaterial ( IntegrationPoint * ip) const
overridevirtual

hidden by virtual oofem::Material* TransportCrossSection::giveMaterial() const

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 171 of file structuralinterfacecrosssection.C.

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

◆ giveMaterialNumber()

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

Definition at line 134 of file structuralinterfacecrosssection.h.

References materialNum.

Referenced by giveMaterial().

◆ initializeFrom()

void oofem::StructuralInterfaceCrossSection::initializeFrom ( InputRecord & ir)
overridevirtual

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. Note that initializeFrom may be called mutiple times.

See also
IR_GIVE_FIELD
IR_GIVE_OPTIONAL_FIELD
Parameters
irInput record to initialize from.
priorityPriority of the input record. This is used to determine the order of initialization

Reimplemented from oofem::CrossSection.

Definition at line 65 of file structuralinterfacecrosssection.C.

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

◆ packUnknowns()

int oofem::StructuralInterfaceCrossSection::packUnknowns ( DataStream & buff,
TimeStep * tStep,
GaussPoint * ip )
overridevirtual

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 182 of file structuralinterfacecrosssection.C.

References giveInterfaceMaterial().

◆ setMaterialNumber()

void oofem::StructuralInterfaceCrossSection::setMaterialNumber ( int matNum)
inline

Definition at line 135 of file structuralinterfacecrosssection.h.

References materialNum.

◆ testCrossSectionExtension()

int oofem::StructuralInterfaceCrossSection::testCrossSectionExtension ( CrossSectExtension ext)
inlineoverridevirtual

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.

◆ unpackAndUpdateUnknowns()

int oofem::StructuralInterfaceCrossSection::unpackAndUpdateUnknowns ( DataStream & buff,
TimeStep * tStep,
GaussPoint * ip )
overridevirtual

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 188 of file structuralinterfacecrosssection.C.

References giveInterfaceMaterial().

Member Data Documentation

◆ crossSectionType

CrossSectExtension oofem::StructuralInterfaceCrossSection::crossSectionType

◆ materialNum

int oofem::StructuralInterfaceCrossSection::materialNum
private

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

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011