OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
#include "oofemcfg.h"
#include "sparsemtrxtype.h"
#include "errorestimatortype.h"
#include "doftype.h"
#include "linsystsolvertype.h"
#include "nodalrecoverymodel.h"
#include "integrationrule.h"
#include "geneigvalsolvertype.h"
#include "materialmappingalgorithmtype.h"
#include "meshpackagetype.h"
#include "dofiditem.h"
#include <map>
#include <string>
#include <cstring>
Go to the source code of this file.
Classes | |
class | oofem::ClassFactory |
Class Factory allows to register terminal oofem classes, based on their membership (classes representing elements, dof managers, material models, etc) and create them on demand according to their name or id. More... | |
Namespaces | |
oofem | |
the oofem namespace is to define a context or scope in which all oofem names are defined. | |
Macros | |
#define | OOFEM_ATTR_UNUSED |
Macros for registering new components. Unique dummy variables must be created as a result (design flaw in C++). | |
#define | REGISTER_Element(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerElement(_IFT_ ## class ## _Name, elemCreator< class > ); |
#define | REGISTER_DofManager(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerDofManager(_IFT_ ## class ## _Name, dofmanCreator< class > ); |
#define | REGISTER_BoundaryCondition(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerBoundaryCondition(_IFT_ ## class ## _Name, bcCreator< class > ); |
#define | REGISTER_CrossSection(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerCrossSection(_IFT_ ## class ## _Name, csCreator< class > ); |
#define | REGISTER_Material(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerMaterial(_IFT_ ## class ## _Name, matCreator< class > ); |
#define | REGISTER_Material_Alt(class, altname) static bool __dummy_ ## class ## altname OOFEM_ATTR_UNUSED = GiveClassFactory().registerMaterial(#altname, matCreator< class > ); |
#define | REGISTER_EngngModel(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerEngngModel(_IFT_ ## class ## _Name, engngCreator< class > ); |
#define | REGISTER_Function(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerFunction(_IFT_ ## class ## _Name, funcCreator< class > ); |
#define | REGISTER_NonlocalBarrier(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerNonlocalBarrier(_IFT_ ## class ## _Name, nlbCreator< class > ); |
#define | REGISTER_ExportModule(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerExportModule(_IFT_ ## class ## _Name, exportCreator< class > ); |
#define | REGISTER_SparseNonLinearSystemNM(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerSparseNonLinearSystemNM(_IFT_ ## class ## _Name, nonlinCreator< class > ); |
#define | REGISTER_InitModule(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerInitModule(_IFT_ ## class ## _Name, initCreator< class > ); |
#define | REGISTER_TopologyDescription(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerTopologyDescription(_IFT_ ## class ## _Name, topologyCreator< class > ); |
#define | REGISTER_LoadBalancerMonitor(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerLoadBalancerMonitor(_IFT_ ## class ## _Name, loadMonitorCreator< class > ); |
#define | REGISTER_LoadBalancer(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerLoadBalancer(_IFT_ ## class ## _Name, loadBalancerCreator< class > ); |
#define | REGISTER_SparseMtrx(class, type) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerSparseMtrx(type, sparseMtrxCreator< class > ); |
#define | REGISTER_SparseLinSolver(class, type) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerSparseLinSolver(type, sparseLinSolCreator< class > ); |
#define | REGISTER_ErrorEstimator(class, type) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerErrorEstimator(type, errEstCreator< class > ); |
#define | REGISTER_NodalRecoveryModel(class, type) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerNodalRecoveryModel(type, nrmCreator< class > ); |
#define | REGISTER_GeneralizedEigenValueSolver(class, type) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerGeneralizedEigenValueSolver(type, gesCreator< class > ); |
#define | REGISTER_Mesher(class, type) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerMesherInterface(type, mesherCreator< class > ); |
#define | REGISTER_MaterialMappingAlgorithm(class, type) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerMaterialMappingAlgorithm(type, mmaCreator< class > ); |
#define | REGISTER_XfemManager(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerXfemManager(_IFT_ ## class ## _Name, xManCreator< class > ); |
#define | REGISTER_EnrichmentItem(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerEnrichmentItem(_IFT_ ## class ## _Name, enrichItemCreator< class > ); |
#define | REGISTER_NucleationCriterion(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerNucleationCriterion(_IFT_ ## class ## _Name, nucleationCritCreator< class > ); |
#define | REGISTER_EnrichmentFunction(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerEnrichmentFunction(_IFT_ ## class ## _Name, enrichFuncCreator< class > ); |
#define | REGISTER_EnrichmentDomain(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerEnrichmentDomain(_IFT_ ## class ## _Name, enrichmentDomainCreator< class > ); |
#define | REGISTER_Geometry(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerGeometry(_IFT_ ## class ## _Name, geometryCreator< class > ); |
#define | REGISTER_EnrichmentFront(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerEnrichmentFront(_IFT_ ## class ## _Name, enrichFrontCreator< class > ); |
#define | REGISTER_PropagationLaw(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerPropagationLaw(_IFT_ ## class ## _Name, propagationLawCreator< class > ); |
#define | REGISTER_FailureCriteria(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerFailureCriteria(_IFT_ ## class ## _Name, failureCriteriaCreator< class > ); |
#define | REGISTER_FailureCriteriaStatus(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerFailureCriteriaStatus(_IFT_ ## class ## _Name, failureCriteriaCreator< class > ); |
#define | REGISTER_ContactManager(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerContactManager(_IFT_ ## class ## _Name, contactManCreator< class > ); |
#define | REGISTER_ContactDefinition(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerContactDefinition(_IFT_ ## class ## _Name, contactDefCreator< class > ); |
#define | REGISTER_Quasicontinuum(class) static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerQuasicontinuum(_IFT_ ## class ## _Name, QuasicontinuumCreator< class > ); |
Functions | |
template<typename T > | |
Element * | oofem::elemCreator (int n, Domain *d) |
template<typename T > | |
DofManager * | oofem::dofmanCreator (int n, Domain *d) |
template<typename T > | |
GeneralBoundaryCondition * | oofem::bcCreator (int n, Domain *d) |
template<typename T > | |
CrossSection * | oofem::csCreator (int n, Domain *d) |
template<typename T > | |
Material * | oofem::matCreator (int n, Domain *d) |
template<typename T > | |
EngngModel * | oofem::engngCreator (int n, EngngModel *m) |
template<typename T > | |
Function * | oofem::funcCreator (int n, Domain *d) |
template<typename T > | |
NonlocalBarrier * | oofem::nlbCreator (int n, Domain *d) |
template<typename T > | |
ExportModule * | oofem::exportCreator (int n, EngngModel *e) |
template<typename T > | |
SparseNonLinearSystemNM * | oofem::nonlinCreator (Domain *d, EngngModel *m) |
template<typename T > | |
InitModule * | oofem::initCreator (int n, EngngModel *e) |
template<typename T > | |
TopologyDescription * | oofem::topologyCreator (Domain *d) |
template<typename T > | |
Dof * | oofem::dofCreator (DofIDItem dofid, DofManager *dman) |
template<typename T > | |
SparseMtrx * | oofem::sparseMtrxCreator () |
template<typename T > | |
SparseLinearSystemNM * | oofem::sparseLinSolCreator (Domain *d, EngngModel *m) |
template<typename T > | |
ErrorEstimator * | oofem::errEstCreator (int n, Domain *d) |
template<typename T > | |
NodalRecoveryModel * | oofem::nrmCreator (Domain *d) |
template<typename T > | |
SparseGeneralEigenValueSystemNM * | oofem::gesCreator (Domain *d, EngngModel *m) |
template<typename T > | |
MesherInterface * | oofem::mesherCreator (Domain *d) |
template<typename T > | |
MaterialMappingAlgorithm * | oofem::mmaCreator () |
template<typename T > | |
LoadBalancer * | oofem::loadBalancerCreator (Domain *d) |
template<typename T > | |
LoadBalancerMonitor * | oofem::loadMonitorCreator (EngngModel *e) |
template<typename T > | |
XfemManager * | oofem::xManCreator (Domain *d) |
template<typename T > | |
EnrichmentItem * | oofem::enrichItemCreator (int n, XfemManager *x, Domain *d) |
template<typename T > | |
NucleationCriterion * | oofem::nucleationCritCreator (Domain *d) |
template<typename T > | |
EnrichmentFunction * | oofem::enrichFuncCreator (int n, Domain *d) |
template<typename T > | |
EnrichmentDomain * | oofem::enrichmentDomainCreator () |
template<typename T > | |
BasicGeometry * | oofem::geometryCreator () |
template<typename T > | |
EnrichmentFront * | oofem::enrichFrontCreator () |
template<typename T > | |
PropagationLaw * | oofem::propagationLawCreator () |
template<typename T > | |
FailureCriteria * | oofem::failureCriteriaCreator (int n, FractureManager *x) |
template<typename T > | |
FailureCriteriaStatus * | oofem::failureCriteriaCreator (int n, FailureCriteria *x) |
template<typename T > | |
ContactManager * | oofem::contactManCreator (Domain *d) |
template<typename T > | |
ContactDefinition * | oofem::contactDefCreator (ContactManager *cMan) |
ClassFactory & | oofem::GiveClassFactory () |
This function must be used by all code that run at link time to ensure that the classFactory is constructed first. More... | |
#define OOFEM_ATTR_UNUSED |
Definition at line 104 of file classfactory.h.
#define REGISTER_BoundaryCondition | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerBoundaryCondition(_IFT_ ## class ## _Name, bcCreator< class > ); |
Definition at line 156 of file classfactory.h.
#define REGISTER_ContactDefinition | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerContactDefinition(_IFT_ ## class ## _Name, contactDefCreator< class > ); |
Definition at line 192 of file classfactory.h.
#define REGISTER_ContactManager | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerContactManager(_IFT_ ## class ## _Name, contactManCreator< class > ); |
Definition at line 191 of file classfactory.h.
#define REGISTER_CrossSection | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerCrossSection(_IFT_ ## class ## _Name, csCreator< class > ); |
Definition at line 157 of file classfactory.h.
#define REGISTER_DofManager | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerDofManager(_IFT_ ## class ## _Name, dofmanCreator< class > ); |
Definition at line 155 of file classfactory.h.
#define REGISTER_Element | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerElement(_IFT_ ## class ## _Name, elemCreator< class > ); |
Definition at line 154 of file classfactory.h.
#define REGISTER_EngngModel | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerEngngModel(_IFT_ ## class ## _Name, engngCreator< class > ); |
Definition at line 160 of file classfactory.h.
#define REGISTER_EnrichmentDomain | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerEnrichmentDomain(_IFT_ ## class ## _Name, enrichmentDomainCreator< class > ); |
Definition at line 183 of file classfactory.h.
#define REGISTER_EnrichmentFront | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerEnrichmentFront(_IFT_ ## class ## _Name, enrichFrontCreator< class > ); |
Definition at line 185 of file classfactory.h.
#define REGISTER_EnrichmentFunction | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerEnrichmentFunction(_IFT_ ## class ## _Name, enrichFuncCreator< class > ); |
Definition at line 182 of file classfactory.h.
#define REGISTER_EnrichmentItem | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerEnrichmentItem(_IFT_ ## class ## _Name, enrichItemCreator< class > ); |
Definition at line 180 of file classfactory.h.
#define REGISTER_ErrorEstimator | ( | class, | |
type | |||
) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerErrorEstimator(type, errEstCreator< class > ); |
Definition at line 173 of file classfactory.h.
#define REGISTER_ExportModule | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerExportModule(_IFT_ ## class ## _Name, exportCreator< class > ); |
Definition at line 163 of file classfactory.h.
#define REGISTER_FailureCriteria | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerFailureCriteria(_IFT_ ## class ## _Name, failureCriteriaCreator< class > ); |
Definition at line 188 of file classfactory.h.
#define REGISTER_FailureCriteriaStatus | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerFailureCriteriaStatus(_IFT_ ## class ## _Name, failureCriteriaCreator< class > ); |
Definition at line 189 of file classfactory.h.
#define REGISTER_Function | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerFunction(_IFT_ ## class ## _Name, funcCreator< class > ); |
Definition at line 161 of file classfactory.h.
#define REGISTER_GeneralizedEigenValueSolver | ( | class, | |
type | |||
) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerGeneralizedEigenValueSolver(type, gesCreator< class > ); |
Definition at line 175 of file classfactory.h.
#define REGISTER_Geometry | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerGeometry(_IFT_ ## class ## _Name, geometryCreator< class > ); |
Definition at line 184 of file classfactory.h.
#define REGISTER_InitModule | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerInitModule(_IFT_ ## class ## _Name, initCreator< class > ); |
Definition at line 165 of file classfactory.h.
#define REGISTER_LoadBalancer | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerLoadBalancer(_IFT_ ## class ## _Name, loadBalancerCreator< class > ); |
Definition at line 168 of file classfactory.h.
#define REGISTER_LoadBalancerMonitor | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerLoadBalancerMonitor(_IFT_ ## class ## _Name, loadMonitorCreator< class > ); |
Definition at line 167 of file classfactory.h.
#define REGISTER_Material | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerMaterial(_IFT_ ## class ## _Name, matCreator< class > ); |
Definition at line 158 of file classfactory.h.
#define REGISTER_Material_Alt | ( | class, | |
altname | |||
) | static bool __dummy_ ## class ## altname OOFEM_ATTR_UNUSED = GiveClassFactory().registerMaterial(#altname, matCreator< class > ); |
Definition at line 159 of file classfactory.h.
#define REGISTER_MaterialMappingAlgorithm | ( | class, | |
type | |||
) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerMaterialMappingAlgorithm(type, mmaCreator< class > ); |
Definition at line 177 of file classfactory.h.
#define REGISTER_Mesher | ( | class, | |
type | |||
) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerMesherInterface(type, mesherCreator< class > ); |
Definition at line 176 of file classfactory.h.
#define REGISTER_NodalRecoveryModel | ( | class, | |
type | |||
) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerNodalRecoveryModel(type, nrmCreator< class > ); |
Definition at line 174 of file classfactory.h.
#define REGISTER_NonlocalBarrier | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerNonlocalBarrier(_IFT_ ## class ## _Name, nlbCreator< class > ); |
Definition at line 162 of file classfactory.h.
#define REGISTER_NucleationCriterion | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerNucleationCriterion(_IFT_ ## class ## _Name, nucleationCritCreator< class > ); |
Definition at line 181 of file classfactory.h.
#define REGISTER_PropagationLaw | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerPropagationLaw(_IFT_ ## class ## _Name, propagationLawCreator< class > ); |
Definition at line 186 of file classfactory.h.
#define REGISTER_Quasicontinuum | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerQuasicontinuum(_IFT_ ## class ## _Name, QuasicontinuumCreator< class > ); |
Definition at line 193 of file classfactory.h.
#define REGISTER_SparseLinSolver | ( | class, | |
type | |||
) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerSparseLinSolver(type, sparseLinSolCreator< class > ); |
Definition at line 172 of file classfactory.h.
#define REGISTER_SparseMtrx | ( | class, | |
type | |||
) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerSparseMtrx(type, sparseMtrxCreator< class > ); |
Definition at line 171 of file classfactory.h.
#define REGISTER_SparseNonLinearSystemNM | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerSparseNonLinearSystemNM(_IFT_ ## class ## _Name, nonlinCreator< class > ); |
Definition at line 164 of file classfactory.h.
#define REGISTER_TopologyDescription | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerTopologyDescription(_IFT_ ## class ## _Name, topologyCreator< class > ); |
Definition at line 166 of file classfactory.h.
#define REGISTER_XfemManager | ( | class | ) | static bool __dummy_ ## class OOFEM_ATTR_UNUSED = GiveClassFactory().registerXfemManager(_IFT_ ## class ## _Name, xManCreator< class > ); |
Definition at line 179 of file classfactory.h.