|
OOFEM 3.0
|
#include <fieldmanager.h>
Public Member Functions | |
| FieldManager () | |
| ~FieldManager () | |
| void | registerField (FieldPtr eField, FieldType key) |
| FieldPtr | giveField (FieldType key) |
| bool | isFieldRegistered (FieldType key) |
| void | unregisterField (FieldType key) |
| std::vector< FieldType > | giveRegisteredKeys () |
| int | instanciateYourself (DataReader &dr, InputRecord &ir) |
Protected Attributes | |
| std ::map< FieldType, std ::shared_ptr< Field > > | externalFields |
Definition at line 49 of file fieldmanager.h.
|
inline |
Definition at line 63 of file fieldmanager.h.
References externalFields.
| oofem::FieldManager::~FieldManager | ( | ) |
Definition at line 41 of file fieldmanager.C.
Returns the previously registered field under given key; NULL otherwise
Definition at line 66 of file fieldmanager.C.
References externalFields.
Referenced by oofem::B3Material::computeShrinkageStrainVector(), oofem::StructuralMaterial::computeStressIndependentStrainVector(), oofem::StructuralMaterial::computeStressIndependentStrainVector_3d(), oofem::LEPlic::doLagrangianPhase(), oofem::DGProblem::giveField(), oofem::TransientTransportProblem::giveField(), oofem::B3SolidMaterial::giveHumidity(), oofem::MPSMaterial::giveHumidity(), oofem::B3SolidMaterial::giveHumidityIncrement(), oofem::StructuralMaterial::giveIPValue(), oofem::MisesMat::giveTemperature(), oofem::MPSMaterial::giveTemperature(), and oofem::SimpleCrossSection::giveTemperatureVector().
| std::vector< FieldType > oofem::FieldManager::giveRegisteredKeys | ( | ) |
Returns list of registered field keys, which can be obtained by calling giveField.
Definition at line 89 of file fieldmanager.C.
References externalFields.
| int oofem::FieldManager::instanciateYourself | ( | DataReader & | dr, |
| InputRecord & | ir ) |
Initialize receiver from input record.
Definition at line 98 of file fieldmanager.C.
References oofem::classFactory, oofem::DataReader::giveGroupRecords(), oofem::DataReader::IR_fieldRec, OOFEM_ERROR, oofem::InputRecord::ptr(), and registerField().
| bool oofem::FieldManager::isFieldRegistered | ( | FieldType | key | ) |
Returns true if field is registered under key
Definition at line 60 of file fieldmanager.C.
References externalFields.
Registers the given field (the receiver is not assumed to own given field). The field is registered under given key. Using this key, it can be later accessed.
could be replaced in future by this->externalFields.insert_or_assign({key, eField});
Definition at line 45 of file fieldmanager.C.
References externalFields.
Referenced by oofem::CBS::initializeFrom(), oofem::DGProblem::initializeFrom(), oofem::MPMProblem::initializeFrom(), oofem::StationaryTransportProblem::initializeFrom(), oofem::SUPG::initializeFrom(), oofem::TransientTransportProblem::initializeFrom(), and instanciateYourself().
| void oofem::FieldManager::unregisterField | ( | FieldType | key | ) |
Unregisters (deletes) the field registered under given key.
Definition at line 78 of file fieldmanager.C.
References externalFields.
Field container. Stores smart pointers to objects (not object themselves) to avoid copying elements and to preserve the use of polymorphic types. The use of shared_ptr is essential here, as some registered fields may be ovned (and maintained) by emodel, some may be cretead on demand and thus managed only by field manager.
Definition at line 60 of file fieldmanager.h.
Referenced by FieldManager(), giveField(), giveRegisteredKeys(), isFieldRegistered(), registerField(), and unregisterField().