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

#include <prescribedgenstrainshell7.h>

Inheritance diagram for oofem::PrescribedGenStrainShell7:
Collaboration diagram for oofem::PrescribedGenStrainShell7:

Public Member Functions

 PrescribedGenStrainShell7 (int n, Domain *d)
virtual ~PrescribedGenStrainShell7 ()
 Destructor.
double give (Dof *dof, ValueModeType mode, double time) override
bcType giveType () const override
void initializeFrom (InputRecord &ir) override
void giveInputRecord (DynamicInputRecord &input) override
FloatMatrixF< 3, 3 > evalCovarBaseVectorsAt (FloatArray &genEps, double zeta)
FloatMatrixF< 3, 3 > evalInitialCovarBaseVectorsAt (FloatArray &genEps, double zeta)
void setDeformationGradient (double zeta)
void evaluateHigherOrderContribution (FloatArray &answer, double zeta, FloatArray &dx)
virtual void setCenterCoordinate (const FloatArray &x)
virtual FloatArrayF< 3 > & giveCenterCoordinate ()
 Returns the center coordinate.
const char * giveClassName () const override
const char * giveInputRecordName () const override
 PrescribedGenStrainShell7 (int n, Domain *d)
virtual ~PrescribedGenStrainShell7 ()
 Destructor.
double give (Dof *dof, ValueModeType mode, double time) override
bcType giveType () const override
void initializeFrom (InputRecord &ir) override
void giveInputRecord (DynamicInputRecord &input) override
void updateCoefficientMatrix (FloatMatrix &C)
void computeField (FloatArray &sigma, EquationID eid, TimeStep *tStep)
void computeTangent (FloatMatrix &tangent, EquationID eid, TimeStep *tStep)
void scale (double s) override
virtual void setPrescribedGenStrainShell7 (const FloatMatrix &t)
virtual void setPrescribedGenStrainShell7Voigt (const FloatArray &t)
virtual void setCenterCoordinate (const FloatArray &x)
virtual FloatArraygiveCenterCoordinate ()
 Returns the center coordinate.
const char * giveClassName () const override
const char * giveInputRecordName () const override
Public Member Functions inherited from oofem::BoundaryCondition
 BoundaryCondition (int i, Domain *d)
virtual ~BoundaryCondition ()
 Destructor.
virtual double give (Dof *dof, ValueModeType mode, TimeStep *tStep)
void setPrescribedValue (double s)
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
Public Member Functions inherited from oofem::GeneralBoundaryCondition
 GeneralBoundaryCondition (int n, Domain *d)
virtual ~GeneralBoundaryCondition ()
 Destructor.
int giveSetNumber () const
virtual int giveNumberOfInternalDofManagers ()
 Gives the number of internal dof managers.
virtual DofManagergiveInternalDofManager (int i)
 Gives an internal dof manager from receiver.
FunctiongiveTimeFunction ()
int getIsImposedTimeFunctionNumber () const
void setIsImposedTimeFunctionNumber (int funcIndx)
virtual bcValType giveBCValType () const
virtual bool isImposed (TimeStep *tStep)
virtual const IntArraygiveDofIDs () const
virtual bcGeomType giveBCGeoType () const
virtual double giveProperty (int aProperty, TimeStep *tStep) const
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
virtual void updateYourself (TimeStep *tStep)
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 int checkConsistency ()
virtual void printOutputAt (FILE *file, TimeStep *tStep)
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging.
virtual InterfacegiveInterface (InterfaceType t)
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros).

Protected Member Functions

double domainSize ()
double domainSize ()

Protected Attributes

FloatMatrixF< 3, 3 > gradient
 Prescribed gradient \( d_{ij} \).
FloatArray initialGenEps
FloatArray genEps
FloatArrayF< 3 > centerCoord
 Center coordinate \( \bar{x}_i \).
FloatMatrix gradient
 Prescribed gradient \( d_{ij} \).
FloatArray centerCoord
 Center coordinate \( \bar{x}_i \).
Protected Attributes inherited from oofem::BoundaryCondition
FloatArray values
 Prescribed values for each resp. dof.
Protected Attributes inherited from oofem::GeneralBoundaryCondition
int timeFunction
 Associated load time function.
bcValType valType
 Physical meaning of BC value.
IntArray dofs
 Dofs that b.c. is applied to (relevant for Dirichlet type b.c.s).
int isImposedTimeFunction
int set
 Set number for boundary condition to be applied to.
Protected Attributes inherited from oofem::FEMComponent
int number
 Component number.
Domaindomain
 Link to domain object, useful for communicating with other FEM components.

Detailed Description

Prescribes \( u_i = d_{ij}(x_j-\bar{x}_j) \) or \( s = d_{1j}(x_j - \bar{x}_j) \) where \( v_i \) are primary unknowns for the subscale. This is typical boundary condition in multiscale analysis where \( d = \partial_x s\) would a macroscopic gradient at the integration point, i.e. this is a boundary condition for prolongation. It is also convenient to use when one wants to test a arbitrary specimen for shear.

Author
Jim Brouzoulis

Prescribes \( v_i = d_{ij}(x_j-\bar{x}_j) \) or \( s = d_{1j}(x_j - \bar{x}_j) \) where \( v_i \) are primary unknowns for the subscale. This is typical boundary condition in multiscale analysis where \( d = \partial_x s\) would a macroscopic gradient at the integration point, i.e. this is a boundary condition for prolongation. It is also convenient to use when one wants to test a arbitrary specimen for shear.

Author
Jim Brouzoulis

Definition at line 63 of file prescribedgenstrainshell7.h.

Constructor & Destructor Documentation

◆ PrescribedGenStrainShell7() [1/2]

oofem::PrescribedGenStrainShell7::PrescribedGenStrainShell7 ( int n,
Domain * d )
inline

Creates boundary condition with given number, belonging to given domain.

Parameters
nBoundary condition number.
dDomain to which new object will belongs.

Definition at line 89 of file prescribedgenstrainshell7.h.

References oofem::BoundaryCondition::BoundaryCondition().

◆ ~PrescribedGenStrainShell7() [1/2]

virtual oofem::PrescribedGenStrainShell7::~PrescribedGenStrainShell7 ( )
inlinevirtual

Destructor.

Definition at line 92 of file prescribedgenstrainshell7.h.

◆ PrescribedGenStrainShell7() [2/2]

oofem::PrescribedGenStrainShell7::PrescribedGenStrainShell7 ( int n,
Domain * d )
inline

Creates boundary condition with given number, belonging to given domain.

Parameters
nBoundary condition number.
dDomain to which new object will belongs.

Definition at line 76 of file prescribedgradientshell7base.h.

References oofem::BoundaryCondition::BoundaryCondition().

◆ ~PrescribedGenStrainShell7() [2/2]

virtual oofem::PrescribedGenStrainShell7::~PrescribedGenStrainShell7 ( )
inlinevirtual

Destructor.

Definition at line 79 of file prescribedgradientshell7base.h.

Member Function Documentation

◆ computeField()

void oofem::PrescribedGenStrainShell7::computeField ( FloatArray & sigma,
EquationID eid,
TimeStep * tStep )

Computes the homogenized, macroscopic, field (stress).

Parameters
sigmaOutput quantity (typically stress).
eidEquation ID to which sigma belongs.
tStepActive time step.

Definition at line 210 of file prescribedgradientshell7base.C.

References oofem::EngngModel::assembleVector(), oofem::FloatArray::beTProductOf(), oofem::FEMComponent::domain, domainSize(), oofem::FEMComponent::giveDomain(), oofem::FEMComponent::giveNumber(), oofem::EngngModel::giveNumberOfDomainEquations(), oofem::FloatArray::times(), updateCoefficientMatrix(), and oofem::FloatArray::zero().

Referenced by giveInputRecord().

◆ computeTangent()

void oofem::PrescribedGenStrainShell7::computeTangent ( FloatMatrix & tangent,
EquationID eid,
TimeStep * tStep )

Computes the macroscopic tangent for homogenization problems through sensitivity analysis.

Parameters
tangentOutput tangent.
eidEquation ID to tangent belongs.
tStepActive time step.
Todo
Get this from engineering model

Definition at line 232 of file prescribedgradientshell7base.C.

References oofem::EngngModel::assemble(), oofem::FloatMatrix::beTProductOf(), oofem::classFactory, oofem::FEMComponent::domain, domainSize(), oofem::FEMComponent::giveDomain(), OOFEM_ERROR, oofem::ST_Petsc, oofem::FloatMatrix::subtract(), oofem::FloatMatrix::times(), and updateCoefficientMatrix().

Referenced by giveInputRecord().

◆ domainSize() [1/2]

◆ domainSize() [2/2]

double oofem::PrescribedGenStrainShell7::domainSize ( )
protected

◆ evalCovarBaseVectorsAt()

FloatMatrixF< 3, 3 > oofem::PrescribedGenStrainShell7::evalCovarBaseVectorsAt ( FloatArray & genEps,
double zeta )

Constructs a coefficient matrix for all prescribed unknowns. Helper routine for computational homogenization.

Todo
Perhaps this routine should only give results for the dof it prescribes?
Parameters
CCoefficient matrix to fill.

Definition at line 114 of file prescribedgenstrainshell7.C.

References genEps, and oofem::FloatMatrixF< N, M >::setColumn().

Referenced by setDeformationGradient().

◆ evalInitialCovarBaseVectorsAt()

FloatMatrixF< 3, 3 > oofem::PrescribedGenStrainShell7::evalInitialCovarBaseVectorsAt ( FloatArray & genEps,
double zeta )

◆ evaluateHigherOrderContribution()

void oofem::PrescribedGenStrainShell7::evaluateHigherOrderContribution ( FloatArray & answer,
double zeta,
FloatArray & dx )

◆ give() [1/2]

◆ give() [2/2]

double oofem::PrescribedGenStrainShell7::give ( Dof * dof,
ValueModeType mode,
double time )
overridevirtual

Reimplemented from oofem::BoundaryCondition.

◆ giveCenterCoordinate() [1/2]

virtual FloatArrayF< 3 > & oofem::PrescribedGenStrainShell7::giveCenterCoordinate ( )
inlinevirtual

Returns the center coordinate.

Definition at line 129 of file prescribedgenstrainshell7.h.

References centerCoord.

Referenced by updateCoefficientMatrix().

◆ giveCenterCoordinate() [2/2]

virtual FloatArray & oofem::PrescribedGenStrainShell7::giveCenterCoordinate ( )
inlinevirtual

Returns the center coordinate.

Definition at line 141 of file prescribedgradientshell7base.h.

References centerCoord.

◆ giveClassName() [1/2]

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

Reimplemented from oofem::BoundaryCondition.

Definition at line 131 of file prescribedgenstrainshell7.h.

◆ giveClassName() [2/2]

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

Reimplemented from oofem::BoundaryCondition.

Definition at line 143 of file prescribedgradientshell7base.h.

◆ giveInputRecord() [1/2]

void oofem::PrescribedGenStrainShell7::giveInputRecord ( DynamicInputRecord & input)
overridevirtual

Setups the input record string of receiver.

Parameters
inputDynamic input record to be filled by receiver.

Reimplemented from oofem::BoundaryCondition.

Definition at line 299 of file prescribedgenstrainshell7.C.

References _IFT_PrescribedGenStrainShell7_centercoords, _IFT_PrescribedGenStrainShell7_generalizedstrain, _IFT_PrescribedGenStrainShell7_initialgeneralizedstrain, centerCoord, genEps, initialGenEps, and oofem::DynamicInputRecord::setField().

◆ giveInputRecord() [2/2]

void oofem::PrescribedGenStrainShell7::giveInputRecord ( DynamicInputRecord & input)
overridevirtual

Setups the input record string of receiver.

Parameters
inputDynamic input record to be filled by receiver.

Reimplemented from oofem::BoundaryCondition.

References computeField(), computeTangent(), and updateCoefficientMatrix().

◆ giveInputRecordName() [1/2]

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

Reimplemented from oofem::BoundaryCondition.

Definition at line 132 of file prescribedgenstrainshell7.h.

References _IFT_PrescribedGenStrainShell7_Name.

◆ giveInputRecordName() [2/2]

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

Reimplemented from oofem::BoundaryCondition.

Definition at line 144 of file prescribedgradientshell7base.h.

References _IFT_PrescribedGenStrainShell7_Name.

◆ giveType() [1/2]

bcType oofem::PrescribedGenStrainShell7::giveType ( ) const
inlineoverridevirtual
Returns
Type of boundary condition. It allows to distinguish BC according its mathematical meaning, ie. like Dirichlet, Neumann, or Newton type.

Reimplemented from oofem::BoundaryCondition.

Definition at line 96 of file prescribedgenstrainshell7.h.

References oofem::DirichletBT.

◆ giveType() [2/2]

bcType oofem::PrescribedGenStrainShell7::giveType ( ) const
inlineoverridevirtual
Returns
Type of boundary condition. It allows to distinguish BC according its mathematical meaning, ie. like Dirichlet, Neumann, or Newton type.

Reimplemented from oofem::BoundaryCondition.

Definition at line 83 of file prescribedgradientshell7base.h.

References oofem::DirichletBT.

◆ initializeFrom() [1/2]

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

Initializes receiver according to object description stored in input record. The input record contains two fields;

  • gradient #rows #columns { d_11 d_12 ... ; d_21 ... } (required)
  • cCoords #columns x_1 x_2 ... (optional, default 0) The prescribed tensor's columns must be equal to the size of the center coordinates. The size of the center coordinates must be equal to the size of the coordinates in the applied nodes.

Reimplemented from oofem::BoundaryCondition.

Definition at line 286 of file prescribedgenstrainshell7.C.

References _IFT_PrescribedGenStrainShell7_centercoords, _IFT_PrescribedGenStrainShell7_generalizedstrain, _IFT_PrescribedGenStrainShell7_initialgeneralizedstrain, centerCoord, genEps, initialGenEps, IR_GIVE_FIELD, and IR_GIVE_OPTIONAL_FIELD.

◆ initializeFrom() [2/2]

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

Initializes receiver according to object description stored in input record. The input record contains two fields;

  • gradient #rows #columns { d_11 d_12 ... ; d_21 ... } (required)
  • cCoords #columns x_1 x_2 ... (optional, default 0) The prescribed tensor's columns must be equal to the size of the center coordinates. The size of the center coordinates must be equal to the size of the coordinates in the applied nodes.

Reimplemented from oofem::BoundaryCondition.

◆ scale()

void oofem::PrescribedGenStrainShell7::scale ( double s)
inlineoverridevirtual

Scales the receiver according to given value. Typically used in nondimensional analysis to scale down BCs and ICs.

Parameters
sScale factor.

Reimplemented from oofem::BoundaryCondition.

Definition at line 120 of file prescribedgradientshell7base.h.

References gradient.

◆ setCenterCoordinate() [1/2]

virtual void oofem::PrescribedGenStrainShell7::setCenterCoordinate ( const FloatArray & x)
inlinevirtual

Set the center coordinate for the prescribed values to be set for.

Parameters
xCenter coordinate.

Definition at line 127 of file prescribedgenstrainshell7.h.

References centerCoord.

◆ setCenterCoordinate() [2/2]

virtual void oofem::PrescribedGenStrainShell7::setCenterCoordinate ( const FloatArray & x)
inlinevirtual

Set the center coordinate for the prescribed values to be set for.

Parameters
xCenter coordinate.

Definition at line 139 of file prescribedgradientshell7base.h.

References centerCoord.

◆ setDeformationGradient()

void oofem::PrescribedGenStrainShell7::setDeformationGradient ( double zeta)

◆ setPrescribedGenStrainShell7()

virtual void oofem::PrescribedGenStrainShell7::setPrescribedGenStrainShell7 ( const FloatMatrix & t)
inlinevirtual

Set prescribed tensor.

Parameters
tNew prescribed value.

Definition at line 126 of file prescribedgradientshell7base.h.

References gradient.

◆ setPrescribedGenStrainShell7Voigt()

void oofem::PrescribedGenStrainShell7::setPrescribedGenStrainShell7Voigt ( const FloatArray & t)
virtual

Sets the prescribed tensor from the matrix from given voigt notation. Assumes use of double values for off-diagonal, usually the way for strain in Voigt form.

Parameters
tVector in voigt format.

Definition at line 103 of file prescribedgradientshell7base.C.

References oofem::FloatArray::at(), oofem::FloatArray::giveSize(), gradient, and OOFEM_ERROR.

◆ updateCoefficientMatrix()

void oofem::PrescribedGenStrainShell7::updateCoefficientMatrix ( FloatMatrix & C)

Constructs a coefficient matrix for all prescribed unknowns. Helper routine for computational homogenization.

Todo
Perhaps this routine should only give results for the dof it prescribes?
Parameters
CCoefficient matrix to fill.

Definition at line 125 of file prescribedgradientshell7base.C.

References oofem::Dof::__givePrescribedEquationNumber(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::GeneralBoundaryCondition::dofs, oofem::FEMComponent::domain, giveCenterCoordinate(), oofem::DofManager::giveCoordinates(), oofem::DofManager::giveDofWithID(), oofem::FEMComponent::giveDomain(), OOFEM_ERROR, oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().

Referenced by computeField(), computeTangent(), and giveInputRecord().

Member Data Documentation

◆ centerCoord [1/2]

FloatArrayF<3> oofem::PrescribedGenStrainShell7::centerCoord
protected

Center coordinate \( \bar{x}_i \).

Definition at line 81 of file prescribedgenstrainshell7.h.

Referenced by give(), giveCenterCoordinate(), giveInputRecord(), initializeFrom(), and setCenterCoordinate().

◆ centerCoord [2/2]

FloatArray oofem::PrescribedGenStrainShell7::centerCoord
protected

Center coordinate \( \bar{x}_i \).

Definition at line 68 of file prescribedgradientshell7base.h.

◆ genEps

FloatArray oofem::PrescribedGenStrainShell7::genEps
protected

Current generalized strain eps = [xbar_{,alpha}, m_{,alpha}, m, gamma_{,alpha}, gamma ] = [ (3 3) (3 3) 3 (1 1) 1] - 18 components

Definition at line 78 of file prescribedgenstrainshell7.h.

Referenced by evalCovarBaseVectorsAt(), evalInitialCovarBaseVectorsAt(), evaluateHigherOrderContribution(), giveInputRecord(), initializeFrom(), and setDeformationGradient().

◆ gradient [1/2]

FloatMatrixF<3,3> oofem::PrescribedGenStrainShell7::gradient
protected

Prescribed gradient \( d_{ij} \).

Definition at line 67 of file prescribedgenstrainshell7.h.

Referenced by give(), scale(), setDeformationGradient(), setPrescribedGenStrainShell7(), and setPrescribedGenStrainShell7Voigt().

◆ gradient [2/2]

FloatMatrix oofem::PrescribedGenStrainShell7::gradient
protected

Prescribed gradient \( d_{ij} \).

Definition at line 65 of file prescribedgradientshell7base.h.

◆ initialGenEps

FloatArray oofem::PrescribedGenStrainShell7::initialGenEps
protected

Initial generalized strain eps = [Xbar_{,alpha}, M_{,alpha}, M ] = [ (3 3) (3 3) 3] - 15 components

Definition at line 73 of file prescribedgenstrainshell7.h.

Referenced by evaluateHigherOrderContribution(), giveInputRecord(), initializeFrom(), and setDeformationGradient().


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