OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Prescribes or where are primary unknowns for the subscale. More...
#include <prescribedgenstrainshell7.h>
Public Member Functions | |
PrescribedGenStrainShell7 (int n, Domain *d) | |
Creates boundary condition with given number, belonging to given domain. More... | |
virtual | ~PrescribedGenStrainShell7 () |
Destructor. More... | |
virtual double | give (Dof *dof, ValueModeType mode, double time) |
virtual bcType | giveType () const |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver according to object description stored in input record. More... | |
virtual void | giveInputRecord (DynamicInputRecord &input) |
Setups the input record string of receiver. More... | |
void | evalCovarBaseVectorsAt (FloatMatrix &gcov, FloatArray &genEps, double zeta) |
Constructs a coefficient matrix for all prescribed unknowns. More... | |
void | evalInitialCovarBaseVectorsAt (FloatMatrix &Gcov, FloatArray &genEps, double zeta) |
void | setDeformationGradient (double zeta) |
void | evaluateHigherOrderContribution (FloatArray &answer, double zeta, FloatArray &dx) |
virtual void | setCenterCoordinate (const FloatArray &x) |
Set the center coordinate for the prescribed values to be set for. More... | |
virtual FloatArray & | giveCenterCoordinate () |
Returns the center coordinate. More... | |
virtual const char * | giveClassName () const |
virtual const char * | giveInputRecordName () const |
PrescribedGenStrainShell7 (int n, Domain *d) | |
Creates boundary condition with given number, belonging to given domain. More... | |
virtual | ~PrescribedGenStrainShell7 () |
Destructor. More... | |
virtual double | give (Dof *dof, ValueModeType mode, double time) |
virtual bcType | giveType () const |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver according to object description stored in input record. More... | |
virtual void | giveInputRecord (DynamicInputRecord &input) |
Setups the input record string of receiver. More... | |
void | updateCoefficientMatrix (FloatMatrix &C) |
Constructs a coefficient matrix for all prescribed unknowns. More... | |
void | computeField (FloatArray &sigma, EquationID eid, TimeStep *tStep) |
Computes the homogenized, macroscopic, field (stress). More... | |
void | computeTangent (FloatMatrix &tangent, EquationID eid, TimeStep *tStep) |
Computes the macroscopic tangent for homogenization problems through sensitivity analysis. More... | |
virtual void | scale (double s) |
Scales the receiver according to given value. More... | |
virtual void | setPrescribedGenStrainShell7 (const FloatMatrix &t) |
Set prescribed tensor. More... | |
virtual void | setPrescribedGenStrainShell7Voigt (const FloatArray &t) |
Sets the prescribed tensor from the matrix from given voigt notation. More... | |
virtual void | setCenterCoordinate (const FloatArray &x) |
Set the center coordinate for the prescribed values to be set for. More... | |
virtual FloatArray & | giveCenterCoordinate () |
Returns the center coordinate. More... | |
virtual const char * | giveClassName () const |
virtual const char * | giveInputRecordName () const |
Public Member Functions inherited from oofem::BoundaryCondition | |
BoundaryCondition (int i, Domain *d) | |
Constructor. More... | |
virtual | ~BoundaryCondition () |
Destructor. More... | |
virtual double | give (Dof *dof, ValueModeType mode, TimeStep *tStep) |
Returns the value of a prescribed unknown, respecting requested mode for given time. More... | |
void | setPrescribedValue (double s) |
Set prescribed value at the input record string of receiver. 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... | |
Public Member Functions inherited from oofem::GeneralBoundaryCondition | |
GeneralBoundaryCondition (int n, Domain *d) | |
Constructor. More... | |
virtual | ~GeneralBoundaryCondition () |
Destructor. More... | |
int | giveSetNumber () |
Gives the set number which boundary condition is applied to. More... | |
virtual int | giveNumberOfInternalDofManagers () |
Gives the number of internal dof managers. More... | |
virtual DofManager * | giveInternalDofManager (int i) |
Gives an internal dof manager from receiver. More... | |
Function * | giveTimeFunction () |
virtual bcValType | giveBCValType () const |
Returns receiver load type. More... | |
virtual bool | isImposed (TimeStep *tStep) |
Returns nonzero if receiver representing BC is imposed at given time, otherwise returns zero. More... | |
virtual const IntArray & | giveDofIDs () const |
Array with default dofs which b.c. More... | |
virtual bcGeomType | giveBCGeoType () const |
Returns geometry character of boundary condition. More... | |
virtual void | postInitialize () |
Performs post initialization steps. 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... | |
Domain * | giveDomain () 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 int | checkConsistency () |
Allows programmer to test some internal data, before computation begins. More... | |
virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
Prints output of receiver to stream, for given time step. More... | |
virtual void | printYourself () |
Prints receiver state on stdout. Useful for debugging. More... | |
virtual Interface * | giveInterface (InterfaceType t) |
Interface requesting service. More... | |
std::string | errorInfo (const char *func) const |
Returns string for prepending output (used by error reporting macros). More... | |
Protected Member Functions | |
double | domainSize () |
double | domainSize () |
Protected Attributes | |
FloatMatrix | gradient |
Prescribed gradient . More... | |
FloatArray | initialGenEps |
Initial generalized strain eps = [Xbar_{,alpha}, M_{,alpha}, M ] = [ (3 3) (3 3) 3] - 15 components. More... | |
FloatArray | genEps |
Current generalized strain eps = [xbar_{,alpha}, m_{,alpha}, m, gamma_{,alpha}, gamma ] = [ (3 3) (3 3) 3 (1 1) 1] - 18 components. More... | |
FloatArray | centerCoord |
Center coordinate . More... | |
Protected Attributes inherited from oofem::BoundaryCondition | |
FloatArray | values |
Prescribed values for each resp. dof. More... | |
Protected Attributes inherited from oofem::GeneralBoundaryCondition | |
int | timeFunction |
Associated load time function. More... | |
bcValType | valType |
Physical meaning of BC value. More... | |
IntArray | dofs |
Dofs that b.c. is applied to (relevant for Dirichlet type b.c.s). More... | |
int | isImposedTimeFunction |
Zero by default - the BC is than always imposed. More... | |
int | set |
Set number for boundary condition to be applied to. More... | |
Protected Attributes inherited from oofem::FEMComponent | |
int | number |
Component number. More... | |
Domain * | domain |
Link to domain object, useful for communicating with other FEM components. More... | |
Prescribes or where are primary unknowns for the subscale.
Prescribes or where are primary unknowns for the subscale.
This is typical boundary condition in multiscale analysis where 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.
Definition at line 62 of file prescribedgenstrainshell7.h.
|
inline |
Creates boundary condition with given number, belonging to given domain.
n | Boundary condition number. |
d | Domain to which new object will belongs. |
Definition at line 88 of file prescribedgenstrainshell7.h.
|
inlinevirtual |
Destructor.
Definition at line 91 of file prescribedgenstrainshell7.h.
|
inline |
Creates boundary condition with given number, belonging to given domain.
n | Boundary condition number. |
d | Domain to which new object will belongs. |
Definition at line 76 of file prescribedgradientshell7base.h.
|
inlinevirtual |
Destructor.
Definition at line 79 of file prescribedgradientshell7base.h.
void oofem::PrescribedGenStrainShell7::computeField | ( | FloatArray & | sigma, |
EquationID | eid, | ||
TimeStep * | tStep | ||
) |
Computes the homogenized, macroscopic, field (stress).
sigma | Output quantity (typically stress). |
eid | Equation ID to which sigma belongs. |
tStep | Active 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::Domain::giveEngngModel(), oofem::FEMComponent::giveNumber(), oofem::EngngModel::giveNumberOfDomainEquations(), oofem::FloatArray::times(), updateCoefficientMatrix(), and oofem::FloatArray::zero().
void oofem::PrescribedGenStrainShell7::computeTangent | ( | FloatMatrix & | tangent, |
EquationID | eid, | ||
TimeStep * | tStep | ||
) |
Computes the macroscopic tangent for homogenization problems through sensitivity analysis.
tangent | Output tangent. |
eid | Equation ID to tangent belongs. |
tStep | Active time step. |
Definition at line 232 of file prescribedgradientshell7base.C.
References _IFT_PrescribedGenStrainShell7_centercoords, oofem::EngngModel::assemble(), oofem::FloatMatrix::beTProductOf(), centerCoord, oofem::classFactory, oofem::ClassFactory::createSparseLinSolver(), oofem::ClassFactory::createSparseMtrx(), oofem::FEMComponent::domain, domainSize(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveEngngModel(), giveInputRecord(), oofem::BoundaryCondition::giveInputRecord(), oofem::FloatMatrix::giveNumberOfColumns(), gradient, initializeFrom(), oofem::GeneralBoundaryCondition::initializeFrom(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, OOFEM_ERROR, oofem::FloatArray::resize(), oofem::DynamicInputRecord::setField(), oofem::ST_Petsc, oofem::FloatMatrix::subtract(), oofem::FloatMatrix::times(), updateCoefficientMatrix(), and oofem::FloatArray::zero().
|
protected |
Definition at line 270 of file prescribedgenstrainshell7.C.
References oofem::IntArray::at(), oofem::FEMComponent::domain, oofem::FEInterpolation::evalNXIntegral(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveElement(), oofem::Element::giveInterpolation(), oofem::Domain::giveNumberOfSpatialDimensions(), oofem::Domain::giveSet(), and oofem::IntArray::giveSize().
Referenced by computeField(), computeTangent(), and updateCoefficientMatrix().
|
protected |
void oofem::PrescribedGenStrainShell7::evalCovarBaseVectorsAt | ( | FloatMatrix & | gcov, |
FloatArray & | genEps, | ||
double | zeta | ||
) |
Constructs a coefficient matrix for all prescribed unknowns.
Helper routine for computational homogenization.
C | Coefficient matrix to fill. |
Definition at line 114 of file prescribedgenstrainshell7.C.
References oofem::Shell7Base::giveGeneralizedStrainComponents(), oofem::FloatMatrix::resize(), and oofem::FloatMatrix::setColumn().
Referenced by evaluateHigherOrderContribution(), and setDeformationGradient().
void oofem::PrescribedGenStrainShell7::evalInitialCovarBaseVectorsAt | ( | FloatMatrix & | Gcov, |
FloatArray & | genEps, | ||
double | zeta | ||
) |
Definition at line 135 of file prescribedgenstrainshell7.C.
References oofem::FloatArray::at(), oofem::FloatMatrix::resize(), and oofem::FloatMatrix::setColumn().
Referenced by evaluateHigherOrderContribution(), and setDeformationGradient().
void oofem::PrescribedGenStrainShell7::evaluateHigherOrderContribution | ( | FloatArray & | answer, |
double | zeta, | ||
FloatArray & | dx | ||
) |
Definition at line 175 of file prescribedgenstrainshell7.C.
References oofem::Dof::__givePrescribedEquationNumber(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::GeneralBoundaryCondition::dofs, oofem::FEMComponent::domain, evalCovarBaseVectorsAt(), evalInitialCovarBaseVectorsAt(), genEps, giveCenterCoordinate(), oofem::Node::giveCoordinates(), oofem::DofManager::giveDofWithID(), oofem::FEMComponent::giveDomain(), oofem::Shell7Base::giveDualBase(), oofem::Domain::giveEngngModel(), oofem::Domain::giveNode(), oofem::Domain::giveNumber(), oofem::Domain::giveNumberOfDofManagers(), oofem::EngngModel::giveNumberOfDomainEquations(), oofem::Domain::giveNumberOfSpatialDimensions(), initialGenEps, OOFEM_ERROR, oofem::FloatMatrix::resize(), updateCoefficientMatrix(), and oofem::FloatMatrix::zero().
Referenced by give().
|
virtual |
Reimplemented from oofem::BoundaryCondition.
|
virtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 57 of file prescribedgenstrainshell7.C.
References oofem::FloatArray::at(), oofem::FloatArray::beDifferenceOf(), oofem::FloatArray::beProductOf(), centerCoord, oofem::Function::evaluateAccelerationAtTime(), oofem::Function::evaluateAtTime(), evaluateHigherOrderContribution(), oofem::Function::evaluateVelocityAtTime(), oofem::DofManager::giveCoordinates(), oofem::Dof::giveDofID(), oofem::Dof::giveDofManager(), oofem::FloatArray::giveSize(), oofem::GeneralBoundaryCondition::giveTimeFunction(), gradient, OOFEM_ERROR, and setDeformationGradient().
|
inlinevirtual |
Returns the center coordinate.
Definition at line 128 of file prescribedgenstrainshell7.h.
Referenced by evaluateHigherOrderContribution(), and updateCoefficientMatrix().
|
inlinevirtual |
Returns the center coordinate.
Definition at line 141 of file prescribedgradientshell7base.h.
|
inlinevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 130 of file prescribedgenstrainshell7.h.
|
inlinevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 143 of file prescribedgradientshell7base.h.
|
virtual |
Setups the input record string of receiver.
input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::BoundaryCondition.
|
virtual |
Setups the input record string of receiver.
input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::BoundaryCondition.
Definition at line 305 of file prescribedgenstrainshell7.C.
References _IFT_PrescribedGenStrainShell7_centercoords, _IFT_PrescribedGenStrainShell7_generalizedstrain, _IFT_PrescribedGenStrainShell7_initialgeneralizedstrain, centerCoord, genEps, oofem::BoundaryCondition::giveInputRecord(), initialGenEps, and oofem::DynamicInputRecord::setField().
Referenced by computeTangent().
|
inlinevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 131 of file prescribedgenstrainshell7.h.
References _IFT_PrescribedGenStrainShell7_Name.
|
inlinevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 144 of file prescribedgradientshell7base.h.
References _IFT_PrescribedGenStrainShell7_Name.
|
inlinevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 83 of file prescribedgradientshell7base.h.
References oofem::DirichletBT.
|
inlinevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 95 of file prescribedgenstrainshell7.h.
References oofem::DirichletBT.
|
virtual |
Initializes receiver according to object description stored in input record.
The input record contains two fields;
Reimplemented from oofem::BoundaryCondition.
|
virtual |
Initializes receiver according to object description stored in input record.
The input record contains two fields;
Reimplemented from oofem::BoundaryCondition.
Definition at line 290 of file prescribedgenstrainshell7.C.
References _IFT_PrescribedGenStrainShell7_centercoords, _IFT_PrescribedGenStrainShell7_generalizedstrain, _IFT_PrescribedGenStrainShell7_initialgeneralizedstrain, centerCoord, genEps, oofem::FloatMatrix::giveNumberOfColumns(), gradient, initialGenEps, oofem::GeneralBoundaryCondition::initializeFrom(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, oofem::FloatArray::resize(), and oofem::FloatArray::zero().
Referenced by computeTangent().
|
inlinevirtual |
Scales the receiver according to given value.
Typically used in nondimensional analysis to scale down BCs and ICs.
s | Scale factor. |
Reimplemented from oofem::BoundaryCondition.
Definition at line 120 of file prescribedgradientshell7base.h.
|
inlinevirtual |
Set the center coordinate for the prescribed values to be set for.
x | Center coordinate. |
Definition at line 126 of file prescribedgenstrainshell7.h.
|
inlinevirtual |
Set the center coordinate for the prescribed values to be set for.
x | Center coordinate. |
Definition at line 139 of file prescribedgradientshell7base.h.
void oofem::PrescribedGenStrainShell7::setDeformationGradient | ( | double | zeta | ) |
Definition at line 159 of file prescribedgenstrainshell7.C.
References oofem::FloatMatrix::at(), oofem::FloatMatrix::beProductTOf(), evalCovarBaseVectorsAt(), evalInitialCovarBaseVectorsAt(), genEps, oofem::Shell7Base::giveDualBase(), gradient, and initialGenEps.
Referenced by give().
|
inlinevirtual |
Set prescribed tensor.
t | New prescribed value. |
Definition at line 126 of file prescribedgradientshell7base.h.
|
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.
t | Vector in voigt format. |
Definition at line 103 of file prescribedgradientshell7base.C.
References oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::FloatArray::giveSize(), gradient, OOFEM_ERROR, and oofem::FloatMatrix::resize().
void oofem::PrescribedGenStrainShell7::updateCoefficientMatrix | ( | FloatMatrix & | C | ) |
Constructs a coefficient matrix for all prescribed unknowns.
Helper routine for computational homogenization.
C | Coefficient matrix to fill. |
Definition at line 125 of file prescribedgradientshell7base.C.
References oofem::Dof::__givePrescribedEquationNumber(), oofem::IntArray::at(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::GeneralBoundaryCondition::dofs, oofem::FEMComponent::domain, domainSize(), oofem::FEInterpolation::evalNXIntegral(), giveCenterCoordinate(), oofem::Node::giveCoordinates(), oofem::DofManager::giveDofWithID(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveElement(), oofem::Domain::giveEngngModel(), oofem::Element::giveInterpolation(), oofem::Domain::giveNode(), oofem::Domain::giveNumber(), oofem::Domain::giveNumberOfDofManagers(), oofem::EngngModel::giveNumberOfDomainEquations(), oofem::Domain::giveNumberOfSpatialDimensions(), oofem::Domain::giveSet(), oofem::IntArray::giveSize(), OOFEM_ERROR, oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().
Referenced by computeField(), computeTangent(), and evaluateHigherOrderContribution().
|
protected |
Center coordinate .
Definition at line 80 of file prescribedgenstrainshell7.h.
Referenced by computeTangent(), give(), giveInputRecord(), and initializeFrom().
|
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 77 of file prescribedgenstrainshell7.h.
Referenced by evaluateHigherOrderContribution(), giveInputRecord(), initializeFrom(), and setDeformationGradient().
|
protected |
Prescribed gradient .
Definition at line 66 of file prescribedgenstrainshell7.h.
Referenced by computeTangent(), give(), initializeFrom(), setDeformationGradient(), and setPrescribedGenStrainShell7Voigt().
|
protected |
Initial generalized strain eps = [Xbar_{,alpha}, M_{,alpha}, M ] = [ (3 3) (3 3) 3] - 15 components.
Definition at line 72 of file prescribedgenstrainshell7.h.
Referenced by evaluateHigherOrderContribution(), giveInputRecord(), initializeFrom(), and setDeformationGradient().