|
OOFEM 3.0
|
#include <prescribedgradient.h>
Public Member Functions | |
| PrescribedGradient (int n, Domain *d) | |
| virtual | ~PrescribedGradient () |
| Destructor. | |
| double | give (Dof *dof, ValueModeType mode, double time) override |
| bcType | giveType () const override |
| void | initializeFrom (InputRecord &ir) override |
| void | giveInputRecord (DynamicInputRecord &input) override |
| virtual void | updateCoefficientMatrix (FloatMatrix &C) |
| void | computeField (FloatArray &sigma, TimeStep *tStep) override |
| void | computeTangent (FloatMatrix &tangent, TimeStep *tStep) override |
| void | scale (double s) override |
| 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 DofManager * | giveInternalDofManager (int i) |
| Gives an internal dof manager from receiver. | |
| Function * | giveTimeFunction () |
| int | getIsImposedTimeFunctionNumber () const |
| void | setIsImposedTimeFunctionNumber (int funcIndx) |
| virtual bcValType | giveBCValType () const |
| virtual bool | isImposed (TimeStep *tStep) |
| virtual const IntArray & | giveDofIDs () 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. | |
| Domain * | giveDomain () 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 Interface * | giveInterface (InterfaceType t) |
| std::string | errorInfo (const char *func) const |
| Returns string for prepending output (used by error reporting macros). | |
| Public Member Functions inherited from oofem::PrescribedGradientHomogenization | |
| PrescribedGradientHomogenization () | |
| virtual | ~PrescribedGradientHomogenization () |
| virtual double | domainSize () |
| void | setPrescribedGradient (const FloatMatrix &t) |
| void | setPrescribedGradientVoigt (const FloatArray &t) |
| void | giveGradientVoigt (FloatArray &oGradient) const |
| void | setCenterCoordinate (FloatArray &x) |
| FloatArray & | giveCenterCoordinate () |
| Returns the center coordinate. | |
Additional Inherited Members | |
| Protected Member Functions inherited from oofem::PrescribedGradientHomogenization | |
| virtual double | domainSize (Domain *d, int set) |
| 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. | |
| Domain * | domain |
| Link to domain object, useful for communicating with other FEM components. | |
| Protected Attributes inherited from oofem::PrescribedGradientHomogenization | |
| FloatMatrix | mGradient |
| Prescribed gradient \( d_{ij} \). | |
| FloatArray | mCenterCoord |
| Center coordinate \( \bar{x}_i \). | |
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.
Definition at line 61 of file prescribedgradient.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 69 of file prescribedgradient.h.
References oofem::BoundaryCondition::BoundaryCondition().
|
inlinevirtual |
Destructor.
Definition at line 72 of file prescribedgradient.h.
|
overridevirtual |
Computes the homogenized, macroscopic, field (stress).
| sigma | Output quantity (typically stress). |
| tStep | Active time step. |
Implements oofem::PrescribedGradientHomogenization.
Definition at line 161 of file prescribedgradient.C.
References oofem::EngngModel::assembleVector(), oofem::FloatArray::beTProductOf(), oofem::FEMComponent::domain, oofem::PrescribedGradientHomogenization::domainSize(), oofem::FEMComponent::giveDomain(), oofem::FEMComponent::giveNumber(), oofem::EngngModel::giveNumberOfDomainEquations(), oofem::GeneralBoundaryCondition::giveSetNumber(), oofem::FloatArray::times(), updateCoefficientMatrix(), and oofem::FloatArray::zero().
Referenced by oofem::GnuplotExportModule::outputBoundaryCondition().
|
overridevirtual |
Computes the macroscopic tangent for homogenization problems through sensitivity analysis.
| tangent | Output tangent. |
| tStep | Active time step. |
Implements oofem::PrescribedGradientHomogenization.
Definition at line 183 of file prescribedgradient.C.
References oofem::EngngModel::assemble(), oofem::FloatMatrix::beTProductOf(), oofem::classFactory, oofem::FEMComponent::domain, oofem::PrescribedGradientHomogenization::domainSize(), oofem::FEMComponent::giveDomain(), oofem::GeneralBoundaryCondition::giveSetNumber(), OOFEM_ERROR, oofem::ST_Petsc, oofem::FloatMatrix::subtract(), oofem::FloatMatrix::times(), and updateCoefficientMatrix().
|
overridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 59 of file prescribedgradient.C.
References oofem::FloatArray::at(), oofem::FloatArray::beDifferenceOf(), oofem::FloatArray::beProductOf(), oofem::GeneralBoundaryCondition::dofs, oofem::DofManager::giveCoordinates(), oofem::Dof::giveDofID(), oofem::Dof::giveDofManager(), oofem::FloatArray::giveSize(), oofem::GeneralBoundaryCondition::giveTimeFunction(), oofem::PrescribedGradientHomogenization::mCenterCoord, oofem::PrescribedGradientHomogenization::mGradient, OOFEM_ERROR, and oofem::FloatArray::times().
|
inlineoverridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 113 of file prescribedgradient.h.
|
overridevirtual |
Setups the input record string of receiver.
| input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::BoundaryCondition.
Definition at line 238 of file prescribedgradient.C.
|
inlineoverridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 114 of file prescribedgradient.h.
References _IFT_PrescribedGradient_Name.
|
inlineoverridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 76 of file prescribedgradient.h.
References oofem::DirichletBT.
|
overridevirtual |
Initializes receiver according to object description stored in input record. The input record contains two fields;
Reimplemented from oofem::BoundaryCondition.
Definition at line 231 of file prescribedgradient.C.
|
inlineoverridevirtual |
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 111 of file prescribedgradient.h.
References oofem::PrescribedGradientHomogenization::mGradient.
|
virtual |
Constructs a coefficient matrix for all prescribed unknowns. Helper routine for computational homogenization.
| C | Coefficient matrix to fill. |
Definition at line 96 of file prescribedgradient.C.
References oofem::Dof::__givePrescribedEquationNumber(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::GeneralBoundaryCondition::dofs, oofem::FEMComponent::domain, oofem::PrescribedGradientHomogenization::giveCenterCoordinate(), oofem::FEMComponent::giveDomain(), oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().
Referenced by computeField(), and computeTangent().