OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Class for homogenization of applied gradients. More...
#include <prescribedgradienthomogenization.h>
Public Member Functions | |
PrescribedGradientHomogenization () | |
virtual | ~PrescribedGradientHomogenization () |
virtual double | domainSize () |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver according to object description stored in input record. More... | |
virtual void | giveInputRecord (DynamicInputRecord &input) |
virtual void | computeField (FloatArray &sigma, TimeStep *tStep)=0 |
Computes the homogenized, macroscopic, field (stress). More... | |
virtual void | computeTangent (FloatMatrix &tangent, TimeStep *tStep)=0 |
Computes the macroscopic tangent for homogenization problems through sensitivity analysis. More... | |
void | setPrescribedGradient (const FloatMatrix &t) |
Set prescribed gradient. More... | |
void | setPrescribedGradientVoigt (const FloatArray &t) |
Sets the prescribed gradient from the matrix from given voigt notation. More... | |
void | giveGradientVoigt (FloatArray &oGradient) const |
Gives back the applied gradient in Voigt form. More... | |
void | setCenterCoordinate (FloatArray &x) |
Set the center coordinate for the prescribed values to be set for. More... | |
FloatArray & | giveCenterCoordinate () |
Returns the center coordinate. More... | |
virtual const char * | giveClassName () const =0 |
Protected Member Functions | |
virtual double | domainSize (Domain *d, int set) |
Protected Attributes | |
FloatMatrix | mGradient |
Prescribed gradient . More... | |
FloatArray | mCenterCoord |
Center coordinate . More... | |
Class for homogenization of applied gradients.
This is typically applied to a boundary condition in multiscale analysis where
Definition at line 62 of file prescribedgradienthomogenization.h.
|
inline |
Definition at line 74 of file prescribedgradienthomogenization.h.
|
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::PrescribedGradientBCWeak, oofem::PrescribedGradient, oofem::PrescribedGradientBCPeriodic, and oofem::PrescribedGradientBCNeumann.
Referenced by oofem::StructuralFE2Material::giveRealStressVector_3d().
|
pure virtual |
Computes the macroscopic tangent for homogenization problems through sensitivity analysis.
tangent | Output tangent. |
tStep | Active time step. |
Implemented in oofem::PrescribedGradientBCWeak, oofem::PrescribedGradient, oofem::PrescribedGradientBCPeriodic, and oofem::PrescribedGradientBCNeumann.
Referenced by oofem::StructuralFE2MaterialStatus::computeTangent().
|
protectedvirtual |
Definition at line 118 of file prescribedgradienthomogenization.C.
References oofem::IntArray::at(), oofem::FEInterpolation::evalNXIntegral(), oofem::Domain::giveElement(), oofem::Element::giveInterpolation(), oofem::Domain::giveNumberOfSpatialDimensions(), oofem::Domain::giveSet(), and oofem::IntArray::giveSize().
Referenced by oofem::XfemStructuralElementInterface::computeEffectiveSveSize(), and oofem::StructuralFE2MaterialStatus::giveRveLength().
|
inlinevirtual |
Reimplemented in oofem::PrescribedGradientBCWeak.
Definition at line 77 of file prescribedgradienthomogenization.h.
References OOFEM_ERROR.
Referenced by oofem::PrescribedGradientBCNeumann::assembleVector(), oofem::PrescribedGradientBCPeriodic::computeField(), oofem::PrescribedGradient::computeField(), oofem::PrescribedGradientBCNeumann::computeTangent(), oofem::PrescribedGradientBCPeriodic::computeTangent(), oofem::PrescribedGradient::computeTangent(), and oofem::PrescribedGradientBCWeak::domainSize().
|
inline |
Returns the center coordinate.
Definition at line 128 of file prescribedgradienthomogenization.h.
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 92 of file prescribedgradienthomogenization.C.
References oofem::FloatMatrix::at(), oofem::FloatMatrix::giveNumberOfRows(), and mGradient.
Referenced by oofem::PrescribedGradientBCNeumann::assembleVector(), and oofem::GnuplotExportModule::outputBoundaryCondition().
|
virtual |
Reimplemented in oofem::PrescribedGradientBCWeak, oofem::PrescribedGradient, oofem::PrescribedGradientBCPeriodic, and oofem::PrescribedGradientBCNeumann.
Definition at line 58 of file prescribedgradienthomogenization.C.
References _IFT_PrescribedGradientHomogenization_centercoords, _IFT_PrescribedGradientHomogenization_gradient, mCenterCoord, mGradient, and oofem::DynamicInputRecord::setField().
Referenced by oofem::PrescribedGradientBCNeumann::giveInputRecord(), oofem::PrescribedGradientBCPeriodic::giveInputRecord(), oofem::PrescribedGradient::giveInputRecord(), and oofem::PrescribedGradientBCWeak::giveInputRecord().
|
virtual |
Initializes receiver according to object description stored in input record.
The input record contains two fields;
Reimplemented in oofem::PrescribedGradientBCWeak, oofem::PrescribedGradient, oofem::PrescribedGradientBCPeriodic, oofem::PrescribedGradientBCNeumann, oofem::PrescribedGradientBCWeakDirichlet, and oofem::PrescribedGradientBCWeakPeriodic.
Definition at line 45 of file prescribedgradienthomogenization.C.
References _IFT_PrescribedGradientHomogenization_centercoords, _IFT_PrescribedGradientHomogenization_gradient, oofem::FloatMatrix::giveNumberOfColumns(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, oofem::IRRT_OK, mCenterCoord, mGradient, oofem::FloatArray::resize(), and oofem::FloatArray::zero().
Referenced by oofem::PrescribedGradientBCNeumann::initializeFrom(), oofem::PrescribedGradientBCPeriodic::initializeFrom(), oofem::PrescribedGradient::initializeFrom(), and oofem::PrescribedGradientBCWeak::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.
|
inline |
Set prescribed gradient.
t | New prescribed gradient. |
Definition at line 108 of file prescribedgradienthomogenization.h.
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 65 of file prescribedgradienthomogenization.C.
References oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::FloatArray::giveSize(), mGradient, OOFEM_ERROR, and oofem::FloatMatrix::resize().
Referenced by oofem::StructuralFE2Material::giveRealStressVector_3d().
|
protected |
Center coordinate .
Definition at line 69 of file prescribedgradienthomogenization.h.
Referenced by oofem::PrescribedGradient::give(), oofem::PrescribedGradientBCWeakDirichlet::giveBoundaryCoordVector(), giveInputRecord(), and initializeFrom().
|
protected |
Prescribed gradient .
Definition at line 66 of file prescribedgradienthomogenization.h.
Referenced by oofem::PrescribedGradientBCWeak::computeExtForceElContrib(), oofem::PrescribedGradient::give(), oofem::PrescribedGradientBCPeriodic::giveBcValue(), giveGradientVoigt(), giveInputRecord(), oofem::PrescribedGradientBCPeriodic::giveUnknown(), initializeFrom(), oofem::PrescribedGradientBCNeumann::scale(), and setPrescribedGradientVoigt().