OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
classfactory.h File Reference
#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...
 

Macro Definition Documentation

#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.


This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:32 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011