OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
#include <structuralfe2material.h>
Public Member Functions | |
StructuralFE2MaterialStatus (int n, Domain *d, GaussPoint *g, const std::string &inputfile) | |
virtual | ~StructuralFE2MaterialStatus () |
EngngModel * | giveRVE () |
PrescribedGradientHomogenization * | giveBC () |
void | markOldTangent () |
void | computeTangent (TimeStep *tStep) |
bool | createRVE (int n, GaussPoint *gp, const std::string &inputfile) |
Creates/Initiates the RVE problem. More... | |
void | setTimeStep (TimeStep *tStep) |
Copies time step data to RVE. More... | |
FloatMatrix & | giveTangent () |
virtual const char * | giveClassName () const |
virtual void | initTempStatus () |
Initializes the temporary internal variables, describing the current state according to previously reached equilibrium internal variables. More... | |
virtual void | updateYourself (TimeStep *tStep) |
Update equilibrium history variables according to temp-variables. 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... | |
const FloatArray & | giveNormal () const |
void | letNormalBe (FloatArray iN) |
double | giveRveLength () |
virtual void | copyStateVariables (const MaterialStatus &iStatus) |
Functions for MaterialStatusMapperInterface. More... | |
virtual void | addStateVariables (const MaterialStatus &iStatus) |
Public Member Functions inherited from oofem::StructuralMaterialStatus | |
StructuralMaterialStatus (int n, Domain *d, GaussPoint *g) | |
Constructor. Creates new StructuralMaterialStatus with number n, belonging to domain d and IntegrationPoint g. More... | |
virtual | ~StructuralMaterialStatus () |
Destructor. More... | |
virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
Print receiver's output to given stream. More... | |
const FloatArray & | giveStrainVector () const |
Returns the const pointer to receiver's strain vector. More... | |
const FloatArray & | giveStressVector () const |
Returns the const pointer to receiver's stress vector. More... | |
const FloatArray & | givePVector () const |
Returns the const pointer to receiver's first Piola-Kirchhoff stress vector. More... | |
const FloatArray & | giveCVector () const |
Returns the const pointer to receiver's Cauchy stress vector. More... | |
const FloatArray & | giveFVector () const |
Returns the const pointer to receiver's deformation gradient vector. More... | |
const FloatArray & | giveTempStrainVector () const |
Returns the const pointer to receiver's temporary strain vector. More... | |
const FloatArray & | giveTempStressVector () const |
Returns the const pointer to receiver's temporary stress vector. More... | |
const FloatArray & | giveTempPVector () const |
Returns the const pointer to receiver's temporary first Piola-Kirchhoff stress vector. More... | |
const FloatArray & | giveTempCVector () const |
Returns the const pointer to receiver's temporary Cauchy stress vector. More... | |
const FloatArray & | giveTempFVector () const |
Returns the const pointer to receiver's temporary deformation gradient vector. More... | |
void | letStrainVectorBe (const FloatArray &v) |
Assigns strain vector to given vector v. More... | |
void | letStressVectorBe (const FloatArray &v) |
Assigns stressVector to given vector v. More... | |
void | letPVectorBe (const FloatArray &v) |
Assigns PVector to given vector v. More... | |
void | letCVectorBe (const FloatArray &v) |
Assigns CVector to given vector v. More... | |
void | letFVectorBe (const FloatArray &v) |
Assigns FVector to given vector v. More... | |
void | letTempStressVectorBe (const FloatArray &v) |
Assigns tempStressVector to given vector v. More... | |
void | letTempStrainVectorBe (const FloatArray &v) |
Assigns tempStrainVector to given vector v. More... | |
void | letTempPVectorBe (const FloatArray &v) |
Assigns tempPVector to given vector v. More... | |
void | letTempCVectorBe (const FloatArray &v) |
Assigns tempPVector to given vector v. More... | |
void | letTempFVectorBe (const FloatArray &v) |
Assigns tempFVector to given vector v. More... | |
Public Member Functions inherited from oofem::MaterialStatus | |
MaterialStatus (int n, Domain *d, GaussPoint *g) | |
Constructor. More... | |
virtual | ~MaterialStatus () |
Destructor. More... | |
virtual bool | giveMaterialProperty (int propID, double &value) |
Returns the value of material model property stored in receiving status. More... | |
virtual void | setMaterialProperty (int propID, double value) |
Allows to set the value of material model property to be stored in receiving status. More... | |
virtual void | setStatusVariable (int varID, double value) |
Allows to set the value of a specific variable, identified by varID. More... | |
virtual void | restoreConsistency () |
Restores consistency of the status, i.e., computes or corrects the values of certain status variables such that the state is admissible. More... | |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver according to object description stored in input record. More... | |
Public Member Functions inherited from oofem::IntegrationPointStatus | |
IntegrationPointStatus (int n, Domain *d, GaussPoint *g) | |
Constructor. More... | |
virtual | ~IntegrationPointStatus () |
Destructor. More... | |
virtual const char * | giveInputRecordName () const |
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 void | giveInputRecord (DynamicInputRecord &input) |
Setups the input record string of receiver. More... | |
virtual int | checkConsistency () |
Allows programmer to test some internal data, before computation begins. 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... | |
Public Member Functions inherited from oofem::MaterialStatusMapperInterface | |
MaterialStatusMapperInterface () | |
virtual | ~MaterialStatusMapperInterface () |
virtual int | MSMI_map (const GaussPoint &iGP, const Domain &iOldDom, Set &sourceSet, const TimeStep &iTStep, MaterialStatus &oStatus) |
Maps all internal state variables from the old domain to the given gp status. More... | |
virtual int | MSMI_map_cz (const GaussPoint &iGP, const Domain &iOldDom, Set &sourceSet, const TimeStep &iTStep, MaterialStatus &oStatus) |
virtual int | MSMI_update (const GaussPoint &iGP, const TimeStep &iTStep) |
Updates the internal state variables from previously mapped values. More... | |
virtual int | MSMI_finish (const TimeStep &iTStep) |
Finishes the mapping for given time step. More... | |
Public Attributes | |
bool | mNewlyInitialized |
Protected Attributes | |
std::unique_ptr< EngngModel > | rve |
The RVE. More... | |
PrescribedGradientHomogenization * | bc |
Boundary condition in RVE that performs the computational homogenization. More... | |
FloatMatrix | tangent |
bool | oldTangent |
FloatArray | mNormalDir |
Interface normal direction. More... | |
std::string | mInputFile |
Protected Attributes inherited from oofem::StructuralMaterialStatus | |
FloatArray | strainVector |
Equilibrated strain vector in reduced form. More... | |
FloatArray | stressVector |
Equilibrated stress vector in reduced form. More... | |
FloatArray | tempStressVector |
Temporary stress vector in reduced form (increments are used mainly in nonlinear analysis) More... | |
FloatArray | tempStrainVector |
Temporary strain vector in reduced form (to find balanced state) More... | |
FloatArray | PVector |
Equilibrated first Piola-Kirchhoff stress vector. More... | |
FloatArray | tempPVector |
Temporary first Piola-Kirchhoff stress vector (to find balanced state) More... | |
FloatArray | CVector |
Equilibrated Cauchy stress vector. More... | |
FloatArray | tempCVector |
Temporary Cauchy stress vector (to find balanced state) More... | |
FloatArray | FVector |
Equilibrated deformation gradient in reduced form. More... | |
FloatArray | tempFVector |
Temporary deformation gradient in reduced form (to find balanced state) More... | |
Protected Attributes inherited from oofem::IntegrationPointStatus | |
GaussPoint * | gp |
Associated integration point. 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... | |
Protected Attributes inherited from oofem::MaterialStatusMapperInterface | |
MaterialMappingAlgorithm * | mpMaterialMapper |
Definition at line 54 of file structuralfe2material.h.
oofem::StructuralFE2MaterialStatus::StructuralFE2MaterialStatus | ( | int | n, |
Domain * | d, | ||
GaussPoint * | g, | ||
const std::string & | inputfile | ||
) |
Definition at line 252 of file structuralfe2material.C.
References createRVE(), oofem::IntegrationPointStatus::gp, mInputFile, oldTangent, and OOFEM_ERROR.
|
inlinevirtual |
Definition at line 74 of file structuralfe2material.h.
|
inlinevirtual |
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 106 of file structuralfe2material.h.
void oofem::StructuralFE2MaterialStatus::computeTangent | ( | TimeStep * | tStep | ) |
Definition at line 322 of file structuralfe2material.C.
References bc, oofem::PrescribedGradientHomogenization::computeTangent(), giveTangent(), oofem::TimeStep::isTheCurrentTimeStep(), oldTangent, and OOFEM_ERROR.
Referenced by oofem::StructuralFE2Material::give3dMaterialStiffnessMatrix(), and giveRVE().
|
virtual |
Functions for MaterialStatusMapperInterface.
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 374 of file structuralfe2material.C.
References oofem::XfemManager::appendEnrichmentItems(), oofem::EnrichmentItem::appendInputRecords(), bc, oofem::classFactory, oofem::XfemManager::clearEnrichmentItems(), oofem::XfemStructureManager::computeTotalCrackLength(), oofem::StructuralMaterialStatus::copyStateVariables(), oofem::ClassFactory::createEnrichmentItem(), oofem::FEMComponent::domain, giveClassName(), oofem::EngngModel::giveDomain(), oofem::Domain::giveEngngModel(), oofem::XfemManager::giveEnrichmentItem(), oofem::DynamicDataReader::giveInputRecord(), oofem::XfemManager::giveNumberOfEnrichmentItems(), oofem::EngngModel::giveNumberOfProcesses(), oofem::VTKXMLExportModule::givePrimVarSmoother(), oofem::EngngModel::giveRank(), oofem::InputRecord::giveRecordKeywordField(), giveRVE(), oofem::VTKXMLExportModule::giveSmoother(), oofem::Domain::giveXfemManager(), oofem::Domain::hasXfemManager(), oofem::DataReader::IR_enrichItemRec, oofem::IRRT_OK, oofem::EngngModel::isParallel(), mNewlyInitialized, oldTangent, OOFEM_ERROR, oofem::Domain::postInitialize(), oofem::InputRecord::report_error(), oofem::FloatArray::resize(), rve, oofem::NodalRecoveryModel::setDomain(), oofem::Domain::SetEngngModel(), and oofem::FloatArray::zero().
Referenced by letNormalBe().
bool oofem::StructuralFE2MaterialStatus::createRVE | ( | int | n, |
GaussPoint * | gp, | ||
const std::string & | inputfile | ||
) |
Creates/Initiates the RVE problem.
Definition at line 274 of file structuralfe2material.C.
References oofem::_processor, bc, oofem::FEMComponent::domain, oofem::Domain::giveEngngModel(), oofem::EngngModel::giveNumberOfProcesses(), oofem::EngngModel::giveRank(), oofem::InstanciateProblem(), oofem::EngngModel::isParallel(), oofem::microScale, OOFEM_ERROR, and rve.
Referenced by giveRVE(), and StructuralFE2MaterialStatus().
PrescribedGradientHomogenization * oofem::StructuralFE2MaterialStatus::giveBC | ( | ) |
|
inlinevirtual |
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 90 of file structuralfe2material.h.
References initTempStatus(), restoreContext(), saveContext(), and updateYourself().
Referenced by copyStateVariables().
|
inline |
Definition at line 99 of file structuralfe2material.h.
References mNormalDir.
Referenced by oofem::XfemStructuralElementInterface::computeCohesiveForces(), oofem::XfemStructuralElementInterface::computeCohesiveTangent(), oofem::XfemStructuralElementInterface::computeEffectiveSveSize(), and oofem::GnuplotExportModule::outputXFEM().
|
inline |
Definition at line 76 of file structuralfe2material.h.
References computeTangent(), createRVE(), giveBC(), oofem::IntegrationPointStatus::gp, markOldTangent(), and setTimeStep().
Referenced by copyStateVariables(), and oofem::StructuralFE2Material::giveRealStressVector_3d().
double oofem::StructuralFE2MaterialStatus::giveRveLength | ( | ) |
Definition at line 369 of file structuralfe2material.C.
References bc, and oofem::PrescribedGradientHomogenization::domainSize().
Referenced by letNormalBe().
|
inline |
Definition at line 88 of file structuralfe2material.h.
References tangent.
Referenced by computeTangent(), and oofem::StructuralFE2Material::give3dMaterialStiffnessMatrix().
|
virtual |
Initializes the temporary internal variables, describing the current state according to previously reached equilibrium internal variables.
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 313 of file structuralfe2material.C.
References oofem::StructuralMaterialStatus::initTempStatus().
Referenced by giveClassName().
|
inline |
Definition at line 100 of file structuralfe2material.h.
References copyStateVariables(), and giveRveLength().
Referenced by oofem::XfemStructuralElementInterface::XfemElementInterface_updateIntegrationRule().
void oofem::StructuralFE2MaterialStatus::markOldTangent | ( | ) |
Definition at line 319 of file structuralfe2material.C.
References oldTangent.
Referenced by oofem::StructuralFE2Material::giveRealStressVector_3d(), and giveRVE().
|
virtual |
Restores the receiver state previously written in stream.
stream | Input stream. |
mode | Determines amount of info available in stream (state, definition, ...). |
obj | Special parameter for sending extra information. |
throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 359 of file structuralfe2material.C.
References oofem::CIO_OK, oofem::StructuralMaterialStatus::restoreContext(), rve, and THROW_CIOERR.
Referenced by giveClassName().
|
virtual |
Stores receiver state to output stream.
stream | Output stream. |
mode | Determines amount of info required in stream (state, definition, ...). |
obj | Special parameter, used only to send particular integration point to material class version of this method. |
throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 347 of file structuralfe2material.C.
References oofem::CIO_OK, rve, oofem::StructuralMaterialStatus::saveContext(), and THROW_CIOERR.
Referenced by giveClassName().
void oofem::StructuralFE2MaterialStatus::setTimeStep | ( | TimeStep * | tStep | ) |
Copies time step data to RVE.
Definition at line 304 of file structuralfe2material.C.
References oofem::TimeStep::giveNumber(), oofem::TimeStep::giveTargetTime(), oofem::TimeStep::giveTimeIncrement(), rve, oofem::TimeStep::setNumber(), oofem::TimeStep::setTime(), and oofem::TimeStep::setTimeIncrement().
Referenced by oofem::StructuralFE2Material::giveRealStressVector_3d(), and giveRVE().
|
virtual |
Update equilibrium history variables according to temp-variables.
Invoked, after new equilibrium state has been reached.
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 336 of file structuralfe2material.C.
References mNewlyInitialized, rve, and oofem::StructuralMaterialStatus::updateYourself().
Referenced by giveClassName().
|
protected |
Boundary condition in RVE that performs the computational homogenization.
Definition at line 60 of file structuralfe2material.h.
Referenced by computeTangent(), copyStateVariables(), createRVE(), giveBC(), and giveRveLength().
|
protected |
Definition at line 68 of file structuralfe2material.h.
Referenced by StructuralFE2MaterialStatus().
bool oofem::StructuralFE2MaterialStatus::mNewlyInitialized |
Definition at line 106 of file structuralfe2material.h.
Referenced by copyStateVariables(), and updateYourself().
|
protected |
Interface normal direction.
Definition at line 66 of file structuralfe2material.h.
Referenced by giveNormal().
|
protected |
Definition at line 63 of file structuralfe2material.h.
Referenced by computeTangent(), copyStateVariables(), markOldTangent(), and StructuralFE2MaterialStatus().
|
protected |
The RVE.
Definition at line 58 of file structuralfe2material.h.
Referenced by copyStateVariables(), createRVE(), giveBC(), restoreContext(), saveContext(), setTimeStep(), and updateYourself().
|
protected |
Definition at line 62 of file structuralfe2material.h.
Referenced by giveTangent().