OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::ClassFactory Class Reference

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

#include <classfactory.h>

Public Member Functions

 ClassFactory ()
 Creates empty factory. More...
 
ElementcreateElement (const char *name, int num, Domain *domain)
 Creates new instance of element corresponding to given keyword. More...
 
bool registerElement (const char *name, Element *(*creator)(int, Domain *))
 Registers a new element in the class factory. More...
 
DofManagercreateDofManager (const char *name, int num, Domain *domain)
 Creates new instance of Dof manager corresponding to given keyword. More...
 
bool registerDofManager (const char *name, DofManager *(*creator)(int, Domain *))
 Registers a new dof manager in the class factory. More...
 
GeneralBoundaryConditioncreateBoundaryCondition (const char *name, int num, Domain *domain)
 Creates new instance of boundary condition corresponding to given keyword. More...
 
bool registerBoundaryCondition (const char *name, GeneralBoundaryCondition *(*creator)(int, Domain *))
 Registers a new boundary condition in the class factory. More...
 
CrossSectioncreateCrossSection (const char *name, int num, Domain *domain)
 Creates new instance of cross section corresponding to given keyword. More...
 
bool registerCrossSection (const char *name, CrossSection *(*creator)(int, Domain *))
 Registers a new cross section in the class factory. More...
 
MaterialcreateMaterial (const char *name, int num, Domain *domain)
 Creates new instance of material corresponding to given keyword. More...
 
bool registerMaterial (const char *name, Material *(*creator)(int, Domain *))
 Registers a new material in the class factory. More...
 
EngngModelcreateEngngModel (const char *name, int num, EngngModel *master)
 Creates new instance of engng model corresponding to given keyword. More...
 
bool registerEngngModel (const char *name, EngngModel *(*creator)(int, EngngModel *))
 Registers a new engineering model in the class factory. More...
 
FunctioncreateFunction (const char *name, int num, Domain *domain)
 Creates new instance of load time function corresponding to given keyword. More...
 
bool registerFunction (const char *name, Function *(*creator)(int, Domain *))
 Registers a new load time function in the class factory. More...
 
NonlocalBarriercreateNonlocalBarrier (const char *name, int num, Domain *domain)
 Creates new instance of nonlocal barrier corresponding to given keyword. More...
 
bool registerNonlocalBarrier (const char *name, NonlocalBarrier *(*creator)(int, Domain *))
 Registers a new nonlocal barrier in the class factory. More...
 
ExportModulecreateExportModule (const char *name, int num, EngngModel *emodel)
 Creates new instance of export module corresponding to given keyword. More...
 
bool registerExportModule (const char *name, ExportModule *(*creator)(int, EngngModel *))
 Registers a new export module in the class factory. More...
 
SparseNonLinearSystemNMcreateNonLinearSolver (const char *name, Domain *domain, EngngModel *emodel)
 Creates new instance of nonlinear solver corresponding to given keyword. More...
 
bool registerSparseNonLinearSystemNM (const char *name, SparseNonLinearSystemNM *(*creator)(Domain *, EngngModel *))
 Registers a new nonlinear solver in the class factory. More...
 
InitModulecreateInitModule (const char *name, int num, EngngModel *emodel)
 Creates new instance of init module corresponding to given keyword. More...
 
bool registerInitModule (const char *name, InitModule *(*creator)(int, EngngModel *))
 Registers a new init module in the class factory. More...
 
InitialConditioncreateInitialCondition (const char *name, int num, Domain *d)
 Creates new instance of Initial Condition corresponding to given type. More...
 
TopologyDescriptioncreateTopology (const char *name, Domain *domain)
 Creates new instance of topology description corresponding to given keyword. More...
 
bool registerTopologyDescription (const char *name, TopologyDescription *(*creator)(Domain *))
 Registers a new topology description in the class factory. More...
 
SparseMtrxcreateSparseMtrx (SparseMtrxType type)
 Creates new instance of sparse matrix corresponding to given keyword. More...
 
bool registerSparseMtrx (SparseMtrxType type, SparseMtrx *(*creator)())
 Registers a sparse matrix type. More...
 
DofcreateDof (dofType type, DofIDItem dofid, DofManager *dman)
 Creates new instance of DOF corresponding to given keyword. More...
 
SparseLinearSystemNMcreateSparseLinSolver (LinSystSolverType st, Domain *d, EngngModel *m)
 Creates new instance of SparseLinearSystemNM corresponding to given type. More...
 
bool registerSparseLinSolver (LinSystSolverType type, SparseLinearSystemNM *(*creator)(Domain *, EngngModel *))
 Registers a sparse linear system solver. More...
 
ErrorEstimatorcreateErrorEstimator (ErrorEstimatorType type, int num, Domain *d)
 Creates new instance of ErrorEstimator corresponding to given type. More...
 
bool registerErrorEstimator (ErrorEstimatorType type, ErrorEstimator *(*creator)(int, Domain *))
 Registers a new error estimator. More...
 
bool registerNodalRecoveryModel (NodalRecoveryModel::NodalRecoveryModelType name, NodalRecoveryModel *(*creator)(Domain *))
 Registers a new nodal recovery model. More...
 
NodalRecoveryModelcreateNodalRecoveryModel (NodalRecoveryModel::NodalRecoveryModelType type, Domain *d)
 Creates new instance of nodal recovery model corresponding to given type. More...
 
EnrichmentItemcreateEnrichmentItem (const char *name, int num, XfemManager *xm, Domain *domain)
 
bool registerEnrichmentItem (const char *name, EnrichmentItem *(*creator)(int, XfemManager *, Domain *))
 
NucleationCriterioncreateNucleationCriterion (const char *name, Domain *domain)
 
bool registerNucleationCriterion (const char *name, NucleationCriterion *(*creator)(Domain *))
 
EnrichmentFunctioncreateEnrichmentFunction (const char *name, int num, Domain *domain)
 
bool registerEnrichmentFunction (const char *name, EnrichmentFunction *(*creator)(int, Domain *))
 
EnrichmentDomain * createEnrichmentDomain (const char *name)
 
bool registerEnrichmentDomain (const char *name, EnrichmentDomain *(*creator)())
 
EnrichmentFrontcreateEnrichmentFront (const char *name)
 
bool registerEnrichmentFront (const char *name, EnrichmentFront *(*creator)())
 
PropagationLawcreatePropagationLaw (const char *name)
 
bool registerPropagationLaw (const char *name, PropagationLaw *(*creator)())
 
BasicGeometrycreateGeometry (const char *name)
 
bool registerGeometry (const char *name, BasicGeometry *(*creator)())
 
XfemManagercreateXfemManager (const char *name, Domain *domain)
 
bool registerXfemManager (const char *name, XfemManager *(*creator)(Domain *))
 
ContactManagercreateContactManager (const char *name, Domain *domain)
 
bool registerContactManager (const char *name, ContactManager *(*creator)(Domain *))
 
ContactDefinitioncreateContactDefinition (const char *name, ContactManager *cMan)
 
bool registerContactDefinition (const char *name, ContactDefinition *(*creator)(ContactManager *))
 
FailureCriteriacreateFailureCriteria (const char *name, int num, FractureManager *fracManager)
 
bool registerFailureCriteria (const char *name, FailureCriteria *(*creator)(int, FractureManager *))
 
FailureCriteriaStatuscreateFailureCriteriaStatus (const char *name, int num, FailureCriteria *critManager)
 
bool registerFailureCriteriaStatus (const char *name, FailureCriteriaStatus *(*creator)(int, FailureCriteria *))
 
bool registerGeneralizedEigenValueSolver (GenEigvalSolverType name, SparseGeneralEigenValueSystemNM *(*creator)(Domain *, EngngModel *))
 
SparseGeneralEigenValueSystemNMcreateGeneralizedEigenValueSolver (GenEigvalSolverType name, Domain *d, EngngModel *m)
 
IntegrationRulecreateIRule (IntegrationRuleType name, int number, Element *e)
 
bool registerMaterialMappingAlgorithm (MaterialMappingAlgorithmType name, MaterialMappingAlgorithm *(*creator)())
 
MaterialMappingAlgorithmcreateMaterialMappingAlgorithm (MaterialMappingAlgorithmType name)
 
bool registerMesherInterface (MeshPackageType name, MesherInterface *(*creator)(Domain *))
 
MesherInterfacecreateMesherInterface (MeshPackageType name, Domain *d)
 
LoadBalancerMonitorcreateLoadBalancerMonitor (const char *name, EngngModel *e)
 
bool registerLoadBalancerMonitor (const char *name, LoadBalancerMonitor *(*creator)(EngngModel *))
 
LoadBalancercreateLoadBalancer (const char *name, Domain *d)
 
bool registerLoadBalancer (const char *name, LoadBalancer *(*creator)(Domain *))
 

Private Attributes

std::map< std::string, Element *(*)(int, Domain *) > elemList
 Associative container containing element creators with element name as key. More...
 
std::map< std::string, DofManager *(*)(int, Domain *) > dofmanList
 Associative container containing dofmanager creators with dofmanager name as key. More...
 
std::map< std::string, GeneralBoundaryCondition *(*)(int, Domain *) > bcList
 Associative container containing boundary condition creators with bc name as key. More...
 
std::map< std::string, CrossSection *(*)(int, Domain *) > csList
 Associative container containing cross section creators with cross section name as key. More...
 
std::map< std::string, Material *(*)(int, Domain *) > matList
 Associative container containing material creators with material name as key. More...
 
std::map< std::string, EngngModel *(*)(int, EngngModel *) > engngList
 Associative container containing engng model creators with engng model name as key. More...
 
std::map< std::string, Function *(*)(int, Domain *) > funcList
 Associative container containing load time function creators with function name as key. More...
 
std::map< std::string, NonlocalBarrier *(*)(int, Domain *) > nlbList
 Associative container containing nonlocal barriers creators with barrier name as key. More...
 
std::map< std::string, ExportModule *(*)(int, EngngModel *) > exportList
 Associative container containing export module creators. More...
 
std::map< std::string, SparseNonLinearSystemNM *(*)(Domain *, EngngModel *) > nonlinList
 Associative container containing nonlinear solver creators. More...
 
std::map< std::string, InitModule *(*)(int, EngngModel *) > initList
 Associative container containing init module creators. More...
 
std::map< std::string, TopologyDescription *(*)(Domain *) > topologyList
 Associative container containing topology description creators. More...
 
std::map< std::string, LoadBalancer *(*)(Domain *) > loadBalancerList
 Associative container containing load balancer creators. More...
 
std::map< std::string, LoadBalancerMonitor *(*)(EngngModel *) > loadMonitorList
 Associative container containing load balancer monitor creators. More...
 
std::map< SparseMtrxType, SparseMtrx *(*)() > sparseMtrxList
 Associative container containing sparse matrix creators. More...
 
std::map< dofType, Dof *(*)(DofIDItem, DofManager *) > dofList
 Associative container containing dof creators. More...
 
std::map< ErrorEstimatorType, ErrorEstimator *(*)(int, Domain *) > errEstList
 Associative container containing error estimator creators. More...
 
std::map< LinSystSolverType, SparseLinearSystemNM *(*)(Domain *, EngngModel *) > sparseLinSolList
 Associative container containing sparse linear solver creators. More...
 
std::map< NodalRecoveryModel::NodalRecoveryModelType, NodalRecoveryModel *(*)(Domain *) > nodalRecoveryModelList
 Associative container containing nodal recovery model creators. More...
 
std::map< GenEigvalSolverType, SparseGeneralEigenValueSystemNM *(*)(Domain *, EngngModel *) > generalizedEigenValueSolverList
 Associative container containing sparse generalized eigenvalue creators. More...
 
std::map< MaterialMappingAlgorithmType, MaterialMappingAlgorithm *(*)() > materialMappingList
 Associative container containing material mapping algorithm creators. More...
 
std::map< MeshPackageType, MesherInterface *(*)(Domain *) > mesherInterfaceList
 Associative container containing mesher interface creators. More...
 
std::map< std::string, EnrichmentItem *(*)(int, XfemManager *, Domain *) > enrichItemList
 Associative container containing enrichment item creators. More...
 
std::map< std::string, NucleationCriterion *(*)(Domain *) > nucleationCritList
 Associative container containing nucleation criterion creators. More...
 
std::map< std::string, EnrichmentFunction *(*)(int, Domain *) > enrichFuncList
 Associative container containing enrichment function creators. More...
 
std::map< std::string, BasicGeometry *(*)() > geometryList
 Associative container containing geometry creators. More...
 
std::map< std::string, EnrichmentDomain *(*)() > enrichmentDomainList
 Associative container containing enrichment-domain creators. More...
 
std::map< std::string, EnrichmentFront *(*)() > enrichmentFrontList
 Associative container containing enrichment front creators. More...
 
std::map< std::string, PropagationLaw *(*)() > propagationLawList
 Associative container containing propagation law creators. More...
 
std::map< std::string, XfemManager *(*)(Domain *) > xManList
 Associative container containing XfemManager creators. More...
 
std::map< std::string, FailureCriteria *(*)(int, FractureManager *) > failureCriteriaList
 Associative container containing failure criteria creators. More...
 
std::map< std::string, FailureCriteriaStatus *(*)(int, FailureCriteria *) > failureCriteriaStatusList
 
std::map< std::string, ContactManager *(*)(Domain *) > contactManList
 Associative container containing ContactManager creators. More...
 
std::map< std::string, ContactDefinition *(*)(ContactManager *) > contactDefList
 

Detailed Description

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.

Global instance of ClassFactory named classFactory is created on startup.

Note
To register new elements on startup, you must call GiveClassFactory to ensure that the global class factory is created first. This is ensured if you use the corresponding macro.

Definition at line 204 of file classfactory.h.

Constructor & Destructor Documentation

oofem::ClassFactory::ClassFactory ( )

Creates empty factory.

Definition at line 96 of file classfactory.C.

References dofList.

Member Function Documentation

GeneralBoundaryCondition * oofem::ClassFactory::createBoundaryCondition ( const char *  name,
int  num,
Domain domain 
)

Creates new instance of boundary condition corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
numnumber of new object.
domainDomain assigned to new object.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 179 of file classfactory.C.

References bcList.

Referenced by oofem::MacroLSpace::changeMicroBoundaryConditions(), oofem::Subdivision::createMesh(), oofem::Domain::instanciateYourself(), oofem::Domain::restoreContext(), oofem::SolutionbasedShapeFunction::setBoundaryConditionOnDof(), oofem::SolutionbasedShapeFunction::setLoads(), and oofem::T3DInterface::t3d_2_OOFEM().

ContactDefinition * oofem::ClassFactory::createContactDefinition ( const char *  name,
ContactManager cMan 
)
ContactManager * oofem::ClassFactory::createContactManager ( const char *  name,
Domain domain 
)

Definition at line 385 of file classfactory.C.

References contactManList.

Referenced by oofem::Domain::instanciateYourself().

CrossSection * oofem::ClassFactory::createCrossSection ( const char *  name,
int  num,
Domain domain 
)

Creates new instance of cross section corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
numobject's number.
domainDomain assigned to new object.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 189 of file classfactory.C.

References csList.

Referenced by oofem::Quasicontinuum::addCrosssectionToInterpolationElements(), oofem::Subdivision::createMesh(), oofem::Domain::instanciateYourself(), oofem::Domain::restoreContext(), and oofem::T3DInterface::t3d_2_OOFEM().

Dof * oofem::ClassFactory::createDof ( dofType  type,
DofIDItem  dofid,
DofManager dman 
)

Creates new instance of DOF corresponding to given keyword.

Parameters
typeID determining the type of new instance.
dofidThe dof ID.
dmanDof manager assigned to new object.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 115 of file classfactory.C.

References dofList.

Referenced by oofem::Domain::createDofs(), and oofem::DofManager::restoreContext().

DofManager * oofem::ClassFactory::createDofManager ( const char *  name,
int  num,
Domain domain 
)

Creates new instance of Dof manager corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
numdofmanager number.
domainDomain assigned to new instance.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 169 of file classfactory.C.

References dofmanList.

Referenced by oofem::Subdivision::createMesh(), oofem::Domain::instanciateYourself(), oofem::Domain::restoreContext(), oofem::LoadBalancer::unpackMigratingData(), oofem::NonlocalMaterialWTP::unpackRemoteElements(), and oofem::Subdivision::unpackRemoteElements().

Element * oofem::ClassFactory::createElement ( const char *  name,
int  num,
Domain domain 
)

Creates new instance of element corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
numElement number.
domainDomain assigned to new element.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 159 of file classfactory.C.

References elemList.

Referenced by oofem::Quasicontinuum::createInterpolationElements(), oofem::Subdivision::createMesh(), oofem::Domain::instanciateYourself(), oofem::ParticleTopologyDescription::replaceFEMesh(), oofem::Domain::restoreContext(), oofem::T3DInterface::t3d_2_OOFEM(), oofem::LoadBalancer::unpackMigratingData(), oofem::NonlocalMaterialWTP::unpackRemoteElements(), and oofem::Subdivision::unpackRemoteElements().

EngngModel * oofem::ClassFactory::createEngngModel ( const char *  name,
int  num,
EngngModel master 
)

Creates new instance of engng model corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
numEngng model number.
masterMaster engineering model (used for multiscale modeling).
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 209 of file classfactory.C.

References engngList.

Referenced by oofem::InstanciateProblem().

EnrichmentDomain * oofem::ClassFactory::createEnrichmentDomain ( const char *  name)

Definition at line 311 of file classfactory.C.

References enrichmentDomainList.

EnrichmentFront * oofem::ClassFactory::createEnrichmentFront ( const char *  name)
EnrichmentFunction * oofem::ClassFactory::createEnrichmentFunction ( const char *  name,
int  num,
Domain domain 
)
EnrichmentItem * oofem::ClassFactory::createEnrichmentItem ( const char *  name,
int  num,
XfemManager xm,
Domain domain 
)
ErrorEstimator * oofem::ClassFactory::createErrorEstimator ( ErrorEstimatorType  type,
int  num,
Domain d 
)

Creates new instance of ErrorEstimator corresponding to given type.

Parameters
typeErrorEstimatorType id determining the type of new instance.
numobject's number.
dDomain assigned to new object.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 130 of file classfactory.C.

References errEstList.

Referenced by oofem::EngngModel::initializeFrom().

ExportModule * oofem::ClassFactory::createExportModule ( const char *  name,
int  num,
EngngModel emodel 
)

Creates new instance of export module corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
numExport module number.
emodelEngineering model that object belongs to.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 239 of file classfactory.C.

References exportList.

Referenced by oofem::ExportModuleManager::CreateModule().

FailureCriteria * oofem::ClassFactory::createFailureCriteria ( const char *  name,
int  num,
FractureManager fracManager 
)

Definition at line 364 of file classfactory.C.

References failureCriteriaList.

Referenced by oofem::FractureManager::instanciateYourself().

FailureCriteriaStatus * oofem::ClassFactory::createFailureCriteriaStatus ( const char *  name,
int  num,
FailureCriteria critManager 
)

Definition at line 374 of file classfactory.C.

References failureCriteriaStatusList.

Function * oofem::ClassFactory::createFunction ( const char *  name,
int  num,
Domain domain 
)

Creates new instance of load time function corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
numobject's number.
domainDomain assigned to new object.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 219 of file classfactory.C.

References funcList.

Referenced by oofem::MacroLSpace::changeMicroBoundaryConditions(), oofem::Subdivision::createMesh(), oofem::Domain::instanciateYourself(), oofem::Domain::restoreContext(), and oofem::T3DInterface::t3d_2_OOFEM().

SparseGeneralEigenValueSystemNM * oofem::ClassFactory::createGeneralizedEigenValueSolver ( GenEigvalSolverType  name,
Domain d,
EngngModel m 
)
BasicGeometry * oofem::ClassFactory::createGeometry ( const char *  name)

Definition at line 341 of file classfactory.C.

References geometryList.

Referenced by oofem::GeometryBasedEI::instanciateYourself().

InitialCondition * oofem::ClassFactory::createInitialCondition ( const char *  name,
int  num,
Domain d 
)

Creates new instance of Initial Condition corresponding to given type.

Parameters
nameKeyword string determining the type of new instance.
numobject's number.
dDomain assigned to new object.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 140 of file classfactory.C.

References oofem::conv2lower().

Referenced by oofem::Domain::restoreContext().

InitModule * oofem::ClassFactory::createInitModule ( const char *  name,
int  num,
EngngModel emodel 
)

Creates new instance of init module corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
numInit module number.
emodelEngineering model that object belongs to.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 259 of file classfactory.C.

References initList.

Referenced by oofem::InitModuleManager::CreateModule().

IntegrationRule * oofem::ClassFactory::createIRule ( IntegrationRuleType  name,
int  number,
Element e 
)

Definition at line 416 of file classfactory.C.

References oofem::IRT_Gauss, and oofem::IRT_Lobatto.

Referenced by oofem::Element::restoreContext().

LoadBalancer * oofem::ClassFactory::createLoadBalancer ( const char *  name,
Domain d 
)
LoadBalancerMonitor * oofem::ClassFactory::createLoadBalancerMonitor ( const char *  name,
EngngModel e 
)
Material * oofem::ClassFactory::createMaterial ( const char *  name,
int  num,
Domain domain 
)

Creates new instance of material corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
nummaterial number.
domainDomain assigned to new material.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 199 of file classfactory.C.

References matList.

Referenced by oofem::Quasicontinuum::applyApproach1(), oofem::Quasicontinuum::applyApproach2(), oofem::Quasicontinuum::applyApproach3(), oofem::Subdivision::createMesh(), oofem::Domain::instanciateYourself(), oofem::Domain::restoreContext(), and oofem::T3DInterface::t3d_2_OOFEM().

MaterialMappingAlgorithm * oofem::ClassFactory::createMaterialMappingAlgorithm ( MaterialMappingAlgorithmType  name)

Definition at line 431 of file classfactory.C.

References materialMappingList.

Referenced by oofem::InternalVariableField::InternalVariableField().

MesherInterface * oofem::ClassFactory::createMesherInterface ( MeshPackageType  name,
Domain d 
)
NodalRecoveryModel * oofem::ClassFactory::createNodalRecoveryModel ( NodalRecoveryModel::NodalRecoveryModelType  type,
Domain d 
)

Creates new instance of nodal recovery model corresponding to given type.

Parameters
typeID determining the type of new instance.
dDomain assigned to new object.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 153 of file classfactory.C.

References nodalRecoveryModelList.

Referenced by oofem::VTKXMLExportModule::givePrimVarSmoother(), oofem::VTKExportModule::giveSmoother(), oofem::VTKXMLExportModule::giveSmoother(), and oofem::SmoothedNodalInternalVariableField::SmoothedNodalInternalVariableField().

SparseNonLinearSystemNM * oofem::ClassFactory::createNonLinearSolver ( const char *  name,
Domain domain,
EngngModel emodel 
)

Creates new instance of nonlinear solver corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
domainDomain assigned to new object.
emodelEngineering model that object belongs to.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 249 of file classfactory.C.

References nonlinList.

Referenced by oofem::StaticStructural::giveNumericalMethod().

NonlocalBarrier * oofem::ClassFactory::createNonlocalBarrier ( const char *  name,
int  num,
Domain domain 
)

Creates new instance of nonlocal barrier corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
numobject's number.
domainDomain assigned to new object.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 229 of file classfactory.C.

References nlbList.

Referenced by oofem::Subdivision::createMesh(), oofem::Domain::instanciateYourself(), oofem::Domain::restoreContext(), and oofem::T3DInterface::t3d_2_OOFEM().

NucleationCriterion * oofem::ClassFactory::createNucleationCriterion ( const char *  name,
Domain domain 
)

Definition at line 291 of file classfactory.C.

References nucleationCritList.

Referenced by oofem::XfemManager::instanciateYourself().

PropagationLaw * oofem::ClassFactory::createPropagationLaw ( const char *  name)
SparseLinearSystemNM * oofem::ClassFactory::createSparseLinSolver ( LinSystSolverType  st,
Domain d,
EngngModel m 
)

Creates new instance of SparseLinearSystemNM corresponding to given type.

Parameters
stLinSystSolverType id determining the type of new instance.
dDomain assigned to new object.
mEngngModel assigned to new object.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 120 of file classfactory.C.

References sparseLinSolList.

Referenced by oofem::StokesFlowVelocityHomogenization::computeTangent(), oofem::PrescribedGradientBCNeumann::computeTangent(), oofem::PrescribedGradientBCPeriodic::computeTangent(), oofem::TransportGradientNeumann::computeTangent(), oofem::TransportGradientPeriodic::computeTangent(), oofem::PrescribedGradient::computeTangent(), oofem::PrescribedGenStrainShell7::computeTangent(), oofem::TransportGradientDirichlet::computeTangent(), oofem::PrescribedGradientBCWeak::computeTangent(), oofem::MixedGradientPressureWeakPeriodic::computeTangents(), oofem::MixedGradientPressureDirichlet::computeTangents(), oofem::MixedGradientPressureNeumann::computeTangents(), oofem::TransportGradientDirichlet::computeXi(), oofem::NRSolver::giveLinearSolver(), oofem::CylindricalALM::giveLinearSolver(), oofem::LinearStatic::giveNumericalMethod(), oofem::FreeWarping::giveNumericalMethod(), oofem::DIIDynamic::giveNumericalMethod(), oofem::IncrementalLinearStatic::giveNumericalMethod(), oofem::NlDEIDynamic::giveNumericalMethod(), oofem::NonStationaryTransportProblem::giveNumericalMethod(), oofem::SUPG::giveNumericalMethod(), oofem::PFEM::giveNumericalMethod(), oofem::CBS::giveNumericalMethod(), oofem::LinearStability::giveNumericalMethodForLinStaticProblem(), oofem::LSPrimaryVariableMapper::mapPrimaryVariables(), and oofem::InverseIteration::solve().

SparseMtrx * oofem::ClassFactory::createSparseMtrx ( SparseMtrxType  type)

Creates new instance of sparse matrix corresponding to given keyword.

Parameters
typeSparseMtrxType id determining the type of new instance.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 105 of file classfactory.C.

References sparseMtrxList.

Referenced by oofem::AdaptiveNonLinearStatic::adaptiveRemap(), oofem::StokesFlowVelocityHomogenization::computeTangent(), oofem::PrescribedGradientBCNeumann::computeTangent(), oofem::PrescribedGradientBCPeriodic::computeTangent(), oofem::TransportGradientNeumann::computeTangent(), oofem::TransportGradientPeriodic::computeTangent(), oofem::PrescribedGradient::computeTangent(), oofem::PrescribedGenStrainShell7::computeTangent(), oofem::TransportGradientDirichlet::computeTangent(), oofem::PrescribedGradientBCWeak::computeTangent(), oofem::MixedGradientPressureWeakPeriodic::computeTangents(), oofem::MixedGradientPressureDirichlet::computeTangents(), oofem::MixedGradientPressureNeumann::computeTangents(), oofem::TransportGradientDirichlet::computeXi(), oofem::MicroMaterial::giveMacroStiffnessMatrix(), oofem::AdaptiveNonLinearStatic::initializeAdaptiveFrom(), oofem::LSPrimaryVariableMapper::mapPrimaryVariables(), oofem::NonLinearDynamic::proceedStep(), oofem::NonLinearStatic::proceedStep(), oofem::DarcyFlow::solveYourselfAt(), oofem::NLTransientTransportProblem::solveYourselfAt(), oofem::StationaryTransportProblem::solveYourselfAt(), oofem::LinearStatic::solveYourselfAt(), oofem::FreeWarping::solveYourselfAt(), oofem::IncrementalLinearStatic::solveYourselfAt(), oofem::EigenValueDynamic::solveYourselfAt(), oofem::StaticStructural::solveYourselfAt(), oofem::StokesFlow::solveYourselfAt(), oofem::LinearStability::solveYourselfAt(), oofem::TransientTransportProblem::solveYourselfAt(), oofem::DIIDynamic::solveYourselfAt(), oofem::NonStationaryTransportProblem::solveYourselfAt(), oofem::SUPG::solveYourselfAt(), oofem::PFEM::solveYourselfAt(), and oofem::CBS::solveYourselfAt().

TopologyDescription * oofem::ClassFactory::createTopology ( const char *  name,
Domain domain 
)

Creates new instance of topology description corresponding to given keyword.

Parameters
nameKeyword string determining the type of new instance.
domainDomain assigned to new object.
Returns
Newly allocated object of requested type, null if keyword not supported.

Definition at line 269 of file classfactory.C.

References topologyList.

Referenced by oofem::Domain::instanciateYourself().

XfemManager * oofem::ClassFactory::createXfemManager ( const char *  name,
Domain domain 
)

Definition at line 351 of file classfactory.C.

References xManList.

Referenced by oofem::Domain::instanciateYourself().

bool oofem::ClassFactory::registerBoundaryCondition ( const char *  name,
GeneralBoundaryCondition *(*)(int, Domain *)  creator 
)

Registers a new boundary condition in the class factory.

Parameters
nameKeyword string.

Definition at line 184 of file classfactory.C.

References bcList, and oofem::cf_store().

bool oofem::ClassFactory::registerContactDefinition ( const char *  name,
ContactDefinition *(*)(ContactManager *)  creator 
)

Definition at line 401 of file classfactory.C.

References oofem::cf_store(), and contactDefList.

bool oofem::ClassFactory::registerContactManager ( const char *  name,
ContactManager *(*)(Domain *)  creator 
)

Definition at line 390 of file classfactory.C.

References oofem::cf_store(), and contactManList.

bool oofem::ClassFactory::registerCrossSection ( const char *  name,
CrossSection *(*)(int, Domain *)  creator 
)

Registers a new cross section in the class factory.

Parameters
nameKeyword string.

Definition at line 194 of file classfactory.C.

References oofem::cf_store(), and csList.

bool oofem::ClassFactory::registerDofManager ( const char *  name,
DofManager *(*)(int, Domain *)  creator 
)

Registers a new dof manager in the class factory.

Parameters
nameKeyword string.

Definition at line 174 of file classfactory.C.

References oofem::cf_store(), and dofmanList.

bool oofem::ClassFactory::registerElement ( const char *  name,
Element *(*)(int, Domain *)  creator 
)

Registers a new element in the class factory.

Parameters
nameKeyword string.

Definition at line 164 of file classfactory.C.

References oofem::cf_store(), and elemList.

bool oofem::ClassFactory::registerEngngModel ( const char *  name,
EngngModel *(*)(int, EngngModel *)  creator 
)

Registers a new engineering model in the class factory.

Parameters
nameKeyword string.

Definition at line 214 of file classfactory.C.

References oofem::cf_store(), and engngList.

bool oofem::ClassFactory::registerEnrichmentDomain ( const char *  name,
EnrichmentDomain *(*)()  creator 
)

Definition at line 316 of file classfactory.C.

References oofem::cf_store(), and enrichmentDomainList.

bool oofem::ClassFactory::registerEnrichmentFront ( const char *  name,
EnrichmentFront *(*)()  creator 
)

Definition at line 326 of file classfactory.C.

References oofem::cf_store(), and enrichmentFrontList.

bool oofem::ClassFactory::registerEnrichmentFunction ( const char *  name,
EnrichmentFunction *(*)(int, Domain *)  creator 
)

Definition at line 306 of file classfactory.C.

References oofem::cf_store(), and enrichFuncList.

bool oofem::ClassFactory::registerEnrichmentItem ( const char *  name,
EnrichmentItem *(*)(int, XfemManager *, Domain *)  creator 
)

Definition at line 286 of file classfactory.C.

References oofem::cf_store(), and enrichItemList.

bool oofem::ClassFactory::registerErrorEstimator ( ErrorEstimatorType  type,
ErrorEstimator *(*)(int, Domain *)  creator 
)

Registers a new error estimator.

Parameters
typeErrorEstimatorType id determining the type of new instance.

Definition at line 135 of file classfactory.C.

References oofem::cf_store2(), and errEstList.

bool oofem::ClassFactory::registerExportModule ( const char *  name,
ExportModule *(*)(int, EngngModel *)  creator 
)

Registers a new export module in the class factory.

Parameters
nameKeyword string.

Definition at line 244 of file classfactory.C.

References oofem::cf_store(), and exportList.

bool oofem::ClassFactory::registerFailureCriteria ( const char *  name,
FailureCriteria *(*)(int, FractureManager *)  creator 
)

Definition at line 369 of file classfactory.C.

References oofem::cf_store(), and failureCriteriaList.

bool oofem::ClassFactory::registerFailureCriteriaStatus ( const char *  name,
FailureCriteriaStatus *(*)(int, FailureCriteria *)  creator 
)

Definition at line 379 of file classfactory.C.

References oofem::cf_store(), and failureCriteriaStatusList.

bool oofem::ClassFactory::registerFunction ( const char *  name,
Function *(*)(int, Domain *)  creator 
)

Registers a new load time function in the class factory.

Parameters
nameKeyword string.

Definition at line 224 of file classfactory.C.

References oofem::cf_store(), and funcList.

bool oofem::ClassFactory::registerGeneralizedEigenValueSolver ( GenEigvalSolverType  name,
SparseGeneralEigenValueSystemNM *(*)(Domain *, EngngModel *)  creator 
)

Definition at line 406 of file classfactory.C.

References oofem::cf_store2(), and generalizedEigenValueSolverList.

bool oofem::ClassFactory::registerGeometry ( const char *  name,
BasicGeometry *(*)()  creator 
)

Definition at line 346 of file classfactory.C.

References oofem::cf_store(), and geometryList.

bool oofem::ClassFactory::registerInitModule ( const char *  name,
InitModule *(*)(int, EngngModel *)  creator 
)

Registers a new init module in the class factory.

Parameters
nameKeyword string.

Definition at line 264 of file classfactory.C.

References oofem::cf_store(), and initList.

bool oofem::ClassFactory::registerLoadBalancer ( const char *  name,
LoadBalancer *(*)(Domain *)  creator 
)

Definition at line 462 of file classfactory.C.

References oofem::cf_store(), and loadBalancerList.

bool oofem::ClassFactory::registerLoadBalancerMonitor ( const char *  name,
LoadBalancerMonitor *(*)(EngngModel *)  creator 
)

Definition at line 452 of file classfactory.C.

References oofem::cf_store(), and loadMonitorList.

bool oofem::ClassFactory::registerMaterial ( const char *  name,
Material *(*)(int, Domain *)  creator 
)

Registers a new material in the class factory.

Parameters
nameKeyword string.

Definition at line 204 of file classfactory.C.

References oofem::cf_store(), and matList.

bool oofem::ClassFactory::registerMaterialMappingAlgorithm ( MaterialMappingAlgorithmType  name,
MaterialMappingAlgorithm *(*)()  creator 
)

Definition at line 426 of file classfactory.C.

References oofem::cf_store2(), and materialMappingList.

bool oofem::ClassFactory::registerMesherInterface ( MeshPackageType  name,
MesherInterface *(*)(Domain *)  creator 
)

Definition at line 436 of file classfactory.C.

References oofem::cf_store2(), and mesherInterfaceList.

bool oofem::ClassFactory::registerNodalRecoveryModel ( NodalRecoveryModel::NodalRecoveryModelType  name,
NodalRecoveryModel *(*)(Domain *)  creator 
)

Registers a new nodal recovery model.

Parameters
nameIndentifier.

Definition at line 148 of file classfactory.C.

References oofem::cf_store2(), and nodalRecoveryModelList.

bool oofem::ClassFactory::registerNonlocalBarrier ( const char *  name,
NonlocalBarrier *(*)(int, Domain *)  creator 
)

Registers a new nonlocal barrier in the class factory.

Parameters
nameKeyword string.

Definition at line 234 of file classfactory.C.

References oofem::cf_store(), and nlbList.

bool oofem::ClassFactory::registerNucleationCriterion ( const char *  name,
NucleationCriterion *(*)(Domain *)  creator 
)

Definition at line 296 of file classfactory.C.

References oofem::cf_store(), and nucleationCritList.

bool oofem::ClassFactory::registerPropagationLaw ( const char *  name,
PropagationLaw *(*)()  creator 
)

Definition at line 336 of file classfactory.C.

References oofem::cf_store(), and propagationLawList.

bool oofem::ClassFactory::registerSparseLinSolver ( LinSystSolverType  type,
SparseLinearSystemNM *(*)(Domain *, EngngModel *)  creator 
)

Registers a sparse linear system solver.

Parameters
typeLinSystSolverType id determining the type of new instance.

Definition at line 125 of file classfactory.C.

References oofem::cf_store2(), and sparseLinSolList.

bool oofem::ClassFactory::registerSparseMtrx ( SparseMtrxType  type,
SparseMtrx *(*)()  creator 
)

Registers a sparse matrix type.

Parameters
typeSparseMtrxType id determining the type of new instance.

Definition at line 110 of file classfactory.C.

References oofem::cf_store2(), and sparseMtrxList.

bool oofem::ClassFactory::registerSparseNonLinearSystemNM ( const char *  name,
SparseNonLinearSystemNM *(*)(Domain *, EngngModel *)  creator 
)

Registers a new nonlinear solver in the class factory.

Parameters
nameKeyword string.

Definition at line 254 of file classfactory.C.

References oofem::cf_store(), and nonlinList.

bool oofem::ClassFactory::registerTopologyDescription ( const char *  name,
TopologyDescription *(*)(Domain *)  creator 
)

Registers a new topology description in the class factory.

Parameters
nameKeyword string.

Definition at line 274 of file classfactory.C.

References oofem::cf_store(), and topologyList.

bool oofem::ClassFactory::registerXfemManager ( const char *  name,
XfemManager *(*)(Domain *)  creator 
)

Definition at line 356 of file classfactory.C.

References oofem::cf_store(), and xManList.

Member Data Documentation

std :: map< std :: string, GeneralBoundaryCondition * ( * )(int, Domain *) > oofem::ClassFactory::bcList
private

Associative container containing boundary condition creators with bc name as key.

Definition at line 212 of file classfactory.h.

Referenced by createBoundaryCondition(), and registerBoundaryCondition().

std :: map< std :: string, ContactDefinition * ( * )(ContactManager *) > oofem::ClassFactory::contactDefList
private

Definition at line 278 of file classfactory.h.

Referenced by createContactDefinition(), and registerContactDefinition().

std :: map< std :: string, ContactManager * ( * )(Domain *) > oofem::ClassFactory::contactManList
private

Associative container containing ContactManager creators.

Definition at line 277 of file classfactory.h.

Referenced by createContactManager(), and registerContactManager().

std :: map< std :: string, CrossSection * ( * )(int, Domain *) > oofem::ClassFactory::csList
private

Associative container containing cross section creators with cross section name as key.

Definition at line 214 of file classfactory.h.

Referenced by createCrossSection(), and registerCrossSection().

std :: map< dofType, Dof * ( * )(DofIDItem, DofManager *) > oofem::ClassFactory::dofList
private

Associative container containing dof creators.

Definition at line 239 of file classfactory.h.

Referenced by ClassFactory(), and createDof().

std :: map< std :: string, DofManager * ( * )(int, Domain *) > oofem::ClassFactory::dofmanList
private

Associative container containing dofmanager creators with dofmanager name as key.

Definition at line 210 of file classfactory.h.

Referenced by createDofManager(), and registerDofManager().

std :: map< std :: string, Element * ( * )(int, Domain *) > oofem::ClassFactory::elemList
private

Associative container containing element creators with element name as key.

Definition at line 208 of file classfactory.h.

Referenced by createElement(), and registerElement().

std :: map< std :: string, EngngModel * ( * )(int, EngngModel *) > oofem::ClassFactory::engngList
private

Associative container containing engng model creators with engng model name as key.

Definition at line 218 of file classfactory.h.

Referenced by createEngngModel(), and registerEngngModel().

std :: map< std :: string, EnrichmentFunction * ( * )(int, Domain *) > oofem::ClassFactory::enrichFuncList
private

Associative container containing enrichment function creators.

Definition at line 259 of file classfactory.h.

Referenced by createEnrichmentFunction(), and registerEnrichmentFunction().

std :: map< std :: string, EnrichmentItem * ( * )(int, XfemManager *, Domain *) > oofem::ClassFactory::enrichItemList
private

Associative container containing enrichment item creators.

Definition at line 255 of file classfactory.h.

Referenced by createEnrichmentItem(), and registerEnrichmentItem().

std :: map< std :: string, EnrichmentDomain * ( * )() > oofem::ClassFactory::enrichmentDomainList
private

Associative container containing enrichment-domain creators.

Definition at line 263 of file classfactory.h.

Referenced by createEnrichmentDomain(), and registerEnrichmentDomain().

std :: map< std :: string, EnrichmentFront * ( * )() > oofem::ClassFactory::enrichmentFrontList
private

Associative container containing enrichment front creators.

Definition at line 265 of file classfactory.h.

Referenced by createEnrichmentFront(), and registerEnrichmentFront().

std :: map< ErrorEstimatorType, ErrorEstimator * ( * )(int, Domain *) > oofem::ClassFactory::errEstList
private

Associative container containing error estimator creators.

Definition at line 241 of file classfactory.h.

Referenced by createErrorEstimator(), and registerErrorEstimator().

std :: map< std :: string, ExportModule * ( * )(int, EngngModel *) > oofem::ClassFactory::exportList
private

Associative container containing export module creators.

Definition at line 224 of file classfactory.h.

Referenced by createExportModule(), and registerExportModule().

std :: map< std :: string, FailureCriteria * ( * )(int, FractureManager *) > oofem::ClassFactory::failureCriteriaList
private

Associative container containing failure criteria creators.

Definition at line 273 of file classfactory.h.

Referenced by createFailureCriteria(), and registerFailureCriteria().

std :: map< std :: string, FailureCriteriaStatus * ( * )(int, FailureCriteria *) > oofem::ClassFactory::failureCriteriaStatusList
private

Definition at line 274 of file classfactory.h.

Referenced by createFailureCriteriaStatus(), and registerFailureCriteriaStatus().

std :: map< std :: string, Function * ( * )(int, Domain *) > oofem::ClassFactory::funcList
private

Associative container containing load time function creators with function name as key.

Definition at line 220 of file classfactory.h.

Referenced by createFunction(), and registerFunction().

std :: map< GenEigvalSolverType, SparseGeneralEigenValueSystemNM * ( * )(Domain *, EngngModel *) > oofem::ClassFactory::generalizedEigenValueSolverList
private

Associative container containing sparse generalized eigenvalue creators.

Definition at line 247 of file classfactory.h.

Referenced by createGeneralizedEigenValueSolver(), and registerGeneralizedEigenValueSolver().

std :: map< std :: string, BasicGeometry * ( * )() > oofem::ClassFactory::geometryList
private

Associative container containing geometry creators.

Definition at line 261 of file classfactory.h.

Referenced by createGeometry(), and registerGeometry().

std :: map< std :: string, InitModule * ( * )(int, EngngModel *) > oofem::ClassFactory::initList
private

Associative container containing init module creators.

Definition at line 228 of file classfactory.h.

Referenced by createInitModule(), and registerInitModule().

std :: map< std :: string, LoadBalancer * ( * )(Domain *) > oofem::ClassFactory::loadBalancerList
private

Associative container containing load balancer creators.

Definition at line 233 of file classfactory.h.

Referenced by createLoadBalancer(), and registerLoadBalancer().

std :: map< std :: string, LoadBalancerMonitor * ( * )(EngngModel *) > oofem::ClassFactory::loadMonitorList
private

Associative container containing load balancer monitor creators.

Definition at line 235 of file classfactory.h.

Referenced by createLoadBalancerMonitor(), and registerLoadBalancerMonitor().

std :: map< MaterialMappingAlgorithmType, MaterialMappingAlgorithm * ( * )() > oofem::ClassFactory::materialMappingList
private

Associative container containing material mapping algorithm creators.

Definition at line 249 of file classfactory.h.

Referenced by createMaterialMappingAlgorithm(), and registerMaterialMappingAlgorithm().

std :: map< std :: string, Material * ( * )(int, Domain *) > oofem::ClassFactory::matList
private

Associative container containing material creators with material name as key.

Definition at line 216 of file classfactory.h.

Referenced by createMaterial(), and registerMaterial().

std :: map< MeshPackageType, MesherInterface * ( * )(Domain *) > oofem::ClassFactory::mesherInterfaceList
private

Associative container containing mesher interface creators.

Definition at line 251 of file classfactory.h.

Referenced by createMesherInterface(), and registerMesherInterface().

std :: map< std :: string, NonlocalBarrier * ( * )(int, Domain *) > oofem::ClassFactory::nlbList
private

Associative container containing nonlocal barriers creators with barrier name as key.

Definition at line 222 of file classfactory.h.

Referenced by createNonlocalBarrier(), and registerNonlocalBarrier().

std :: map< NodalRecoveryModel :: NodalRecoveryModelType, NodalRecoveryModel * ( * )(Domain *) > oofem::ClassFactory::nodalRecoveryModelList
private

Associative container containing nodal recovery model creators.

Definition at line 245 of file classfactory.h.

Referenced by createNodalRecoveryModel(), and registerNodalRecoveryModel().

std :: map< std :: string, SparseNonLinearSystemNM * ( * )(Domain *, EngngModel *) > oofem::ClassFactory::nonlinList
private

Associative container containing nonlinear solver creators.

Definition at line 226 of file classfactory.h.

Referenced by createNonLinearSolver(), and registerSparseNonLinearSystemNM().

std :: map< std :: string, NucleationCriterion * ( * )(Domain *) > oofem::ClassFactory::nucleationCritList
private

Associative container containing nucleation criterion creators.

Definition at line 257 of file classfactory.h.

Referenced by createNucleationCriterion(), and registerNucleationCriterion().

std :: map< std :: string, PropagationLaw * ( * )() > oofem::ClassFactory::propagationLawList
private

Associative container containing propagation law creators.

Definition at line 267 of file classfactory.h.

Referenced by createPropagationLaw(), and registerPropagationLaw().

std :: map< LinSystSolverType, SparseLinearSystemNM * ( * )(Domain *, EngngModel *) > oofem::ClassFactory::sparseLinSolList
private

Associative container containing sparse linear solver creators.

Definition at line 243 of file classfactory.h.

Referenced by createSparseLinSolver(), and registerSparseLinSolver().

std :: map< SparseMtrxType, SparseMtrx * ( * )() > oofem::ClassFactory::sparseMtrxList
private

Associative container containing sparse matrix creators.

Definition at line 237 of file classfactory.h.

Referenced by createSparseMtrx(), and registerSparseMtrx().

std :: map< std :: string, TopologyDescription * ( * )(Domain *) > oofem::ClassFactory::topologyList
private

Associative container containing topology description creators.

Definition at line 230 of file classfactory.h.

Referenced by createTopology(), and registerTopologyDescription().

std :: map< std :: string, XfemManager * ( * )(Domain *) > oofem::ClassFactory::xManList
private

Associative container containing XfemManager creators.

Definition at line 269 of file classfactory.h.

Referenced by createXfemManager(), and registerXfemManager().


The documentation for this class was generated from the following files:

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:34 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011