|
OOFEM 3.0
|
#include <prescribedgradienthomogenization.h>
Public Member Functions | |
| PrescribedGradientHomogenization () | |
| virtual | ~PrescribedGradientHomogenization () |
| virtual double | domainSize () |
| virtual void | initializeFrom (InputRecord &ir) |
| virtual void | giveInputRecord (DynamicInputRecord &input) |
| virtual void | computeField (FloatArray &sigma, TimeStep *tStep)=0 |
| virtual void | computeTangent (FloatMatrix &tangent, TimeStep *tStep)=0 |
| 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. | |
| virtual const char * | giveClassName () const =0 |
Protected Member Functions | |
| virtual double | domainSize (Domain *d, int set) |
Protected Attributes | |
| FloatMatrix | mGradient |
| Prescribed gradient \( d_{ij} \). | |
| FloatArray | mCenterCoord |
| Center coordinate \( \bar{x}_i \). | |
Class for homogenization of applied gradients. This is typically applied to a boundary condition in multiscale analysis where \( d = \partial_x s\)
Definition at line 62 of file prescribedgradienthomogenization.h.
|
inline |
Definition at line 74 of file prescribedgradienthomogenization.h.
Referenced by oofem::PrescribedGradientMultiple::computeField(), oofem::PrescribedGradientBCNeumann::PrescribedGradientBCNeumann(), oofem::PrescribedGradientBCPeriodic::PrescribedGradientBCPeriodic(), oofem::PrescribedGradientBCWeak::PrescribedGradientBCWeak(), oofem::PrescribedGradientMultiple::PrescribedGradientMultiple(), oofem::PrescribedGradientMultiple::setCenterCoordinate(), oofem::PrescribedGradientMultiple::setPrescribedGradient(), and oofem::PrescribedGradientMultiple::setPrescribedGradientVoigt().
|
inlinevirtual |
Definition at line 75 of file prescribedgradienthomogenization.h.
|
pure virtual |
Computes the homogenized, macroscopic, field (stress).
| sigma | Output quantity (typically stress). |
| tStep | Active time step. |
Implemented in oofem::PrescribedGradient, oofem::PrescribedGradientBCNeumann, oofem::PrescribedGradientBCPeriodic, oofem::PrescribedGradientBCWeak, and oofem::PrescribedGradientMultiple.
|
pure virtual |
Computes the macroscopic tangent for homogenization problems through sensitivity analysis.
| tangent | Output tangent. |
| tStep | Active time step. |
Implemented in oofem::PrescribedGradient, oofem::PrescribedGradientBCNeumann, oofem::PrescribedGradientBCPeriodic, oofem::PrescribedGradientBCWeak, and oofem::PrescribedGradientMultiple.
|
inlinevirtual |
Reimplemented in oofem::PrescribedGradientBCWeak.
Definition at line 77 of file prescribedgradienthomogenization.h.
References OOFEM_ERROR.
Referenced by oofem::PrescribedGradientBCWeak::domainSize().
|
protectedvirtual |
Definition at line 120 of file prescribedgradienthomogenization.C.
References oofem::IntArray::at(), oofem::FEInterpolation::evalNXIntegral(), oofem::Set::giveBoundaryList(), oofem::Domain::giveElement(), oofem::Element::giveInterpolation(), oofem::Domain::giveNumberOfSpatialDimensions(), oofem::Domain::giveSet(), and oofem::IntArray::giveSize().
Referenced by oofem::PrescribedGradientBCNeumann::assembleVector(), oofem::XfemStructuralElementInterface::computeEffectiveSveSize(), oofem::PrescribedGradient::computeField(), oofem::PrescribedGradientBCPeriodic::computeField(), oofem::PrescribedGradient::computeTangent(), oofem::PrescribedGradientBCNeumann::computeTangent(), and oofem::PrescribedGradientBCPeriodic::computeTangent().
|
inline |
Returns the center coordinate.
Definition at line 128 of file prescribedgradienthomogenization.h.
References mCenterCoord.
Referenced by oofem::PrescribedGradient::updateCoefficientMatrix().
|
pure virtual |
| void oofem::PrescribedGradientHomogenization::giveGradientVoigt | ( | FloatArray & | oGradient | ) | const |
Gives back the applied gradient in Voigt form.
| oGradient | The applied gradient, in Voigt form. |
Definition at line 94 of file prescribedgradienthomogenization.C.
References mGradient, oofem::Vec1(), and oofem::Vec4().
Referenced by oofem::PrescribedGradientBCNeumann::assembleVector(), oofem::GnuplotExportModule::outputBoundaryCondition(), oofem::GnuplotExportModule::outputBoundaryCondition(), and oofem::GnuplotExportModule::outputBoundaryCondition().
|
virtual |
Reimplemented in oofem::PrescribedGradient, oofem::PrescribedGradientBCNeumann, oofem::PrescribedGradientBCPeriodic, oofem::PrescribedGradientBCWeak, and oofem::PrescribedGradientMultiple.
Definition at line 54 of file prescribedgradienthomogenization.C.
References _IFT_PrescribedGradientHomogenization_centercoords, _IFT_PrescribedGradientHomogenization_gradient, mCenterCoord, mGradient, and oofem::DynamicInputRecord::setField().
|
virtual |
Initializes receiver according to object description stored in input record. The input record contains two fields;
Reimplemented in oofem::PrescribedGradient, oofem::PrescribedGradientBCNeumann, oofem::PrescribedGradientBCPeriodic, oofem::PrescribedGradientBCWeak, oofem::PrescribedGradientBCWeakDirichlet, oofem::PrescribedGradientBCWeakPeriodic, and oofem::PrescribedGradientMultiple.
Definition at line 45 of file prescribedgradienthomogenization.C.
References _IFT_PrescribedGradientHomogenization_centercoords, _IFT_PrescribedGradientHomogenization_gradient, IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, mCenterCoord, and mGradient.
Referenced by oofem::PrescribedGradientBCPeriodic::initializeFrom().
|
inline |
Set the center coordinate for the prescribed values to be set for.
| x | Center coordinate. |
Definition at line 126 of file prescribedgradienthomogenization.h.
References mCenterCoord.
|
inline |
Set prescribed gradient.
| t | New prescribed gradient. |
Definition at line 108 of file prescribedgradienthomogenization.h.
References mGradient.
| void oofem::PrescribedGradientHomogenization::setPrescribedGradientVoigt | ( | const FloatArray & | t | ) |
Sets the prescribed gradient 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 61 of file prescribedgradienthomogenization.C.
References oofem::FloatArray::at(), oofem::FloatArray::giveSize(), mGradient, and OOFEM_ERROR.
|
protected |
Center coordinate \( \bar{x}_i \).
Definition at line 69 of file prescribedgradienthomogenization.h.
Referenced by oofem::PrescribedGradient::give(), oofem::PrescribedGradientBCWeakDirichlet::giveBoundaryCoordVector(), giveCenterCoordinate(), giveInputRecord(), initializeFrom(), setCenterCoordinate(), and oofem::PrescribedGradientMultiple::setCenterCoordinate().
|
protected |
Prescribed gradient \( d_{ij} \).
Definition at line 66 of file prescribedgradienthomogenization.h.
Referenced by oofem::PrescribedGradientBCWeak::computeExtForceElContrib(), oofem::PrescribedGradient::give(), oofem::PrescribedGradientBCPeriodic::giveBcValue(), giveGradientVoigt(), giveInputRecord(), oofem::PrescribedGradientBCPeriodic::giveUnknown(), oofem::PrescribedGradientBCPeriodic::giveUnknown(), initializeFrom(), oofem::PrescribedGradient::scale(), oofem::PrescribedGradientBCNeumann::scale(), oofem::PrescribedGradientMultiple::scale(), setPrescribedGradient(), oofem::PrescribedGradientMultiple::setPrescribedGradient(), and setPrescribedGradientVoigt().