OOFEM  2.1
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
oofem::EngngModel Class Reference

Abstract base class representing the "problem" under consideration. More...

#include <engngm.h>

+ Inheritance diagram for oofem::EngngModel:
+ Collaboration diagram for oofem::EngngModel:

List of all members.

Public Types

enum  EngngModel_UpdateMode { EngngModel_Unknown_Mode, EngngModel_SUMM_Mode, EngngModel_SET_Mode }
enum  EngngModelCommType { PC_default, PC_nonlocal }
enum  InitialGuess { IG_None = 0, IG_Tangent = 1 }
 Means to choose methods for finding a good initial guess. More...

Public Member Functions

 EngngModel (int i, EngngModel *_master=NULL)
 Constructor.
virtual ~EngngModel ()
 Destructor.
DomaingiveDomain (int n)
 Service for accessing particular problem domain.
void setDomain (int i, Domain *ptr)
 Sets i-th domain of receiver.
int giveNumberOfDomains ()
 Returns number of domains in problem.
virtual ErrorEstimatorgiveDomainErrorEstimator (int n)
 Service for accessing ErrorEstimator corresponding to particular domain.
virtual MaterialInterfacegiveMaterialInterface (int n)
 Returns material interface representation for given domain.
XfemManagergiveXfemManager (int n)
 Returns XfemManager at a particular position.
bool hasXfemManager (int n)
 Return true if XfemManager at a particular position is available.
void setNumberOfEquations (int id, int neq)
FILE * giveOutputStream ()
 Returns file descriptor of output file.
std::string giveOutputBaseFileName ()
 Returns base output file name to which extensions, like .out .vtu .osf should be added.
void letOutputBaseFileNameBe (const std::string &src)
 Sets the base output file name.
ContextOutputMode giveContextOutputMode ()
 Returns domain context output mode.
int giveContextOutputStep ()
 Returns domain context output step.
void setContextOutputMode (ContextOutputMode contextMode)
 Sets context output mode of receiver.
void setUDContextOutputMode (int cStep)
 Sets user defined context output mode (it sets contextOutputMode to contextOutputMode), setting contextOutputStep to given value.
void setProblemMode (problemMode pmode)
 Sets domain mode to given mode.
void setParallelMode (bool parallelFlag)
 Sets the problem to run in parallel (or not).
problemMode giveProblemMode ()
 Returns domain mode.
void setProblemScale (problemScale pscale)
 Sets scale in multiscale simulation.
problemScale giveProblemScale ()
 Returns scale in multiscale simulation.
virtual void setRenumberFlag ()
 Sets the renumber flag to true.
virtual void resetRenumberFlag ()
 Sets the renumber flag to false.
void terminateAnalysis ()
 Performs analysis termination after finishing analysis.
virtual void solveYourself ()
 Starts solution process.
virtual void solveYourselfAt (TimeStep *tStep)
 Solves problem for given time step.
virtual void terminate (TimeStep *tStep)
 Terminates the solution of time step.
virtual void doStepOutput (TimeStep *tStep)
 Prints the ouput of the solution step (using virtual this->printOutputAtservice) to the stream detemined using this->giveOutputStream() method and calls exportModuleManager to do output.
void saveStepContext (TimeStep *tStep)
 Saves context of given solution step, if required (determined using this->giveContextOutputMode() method).
virtual void updateYourself (TimeStep *tStep)
 Updates internal state after finishing time step.
virtual void initializeYourself (TimeStep *tStep)
 Provides the opportunity to initialize state variables stored in element integration points according to initial conditions using function initializeYourself() on element level.
virtual int initializeAdaptive (int stepNumber)
 Initializes the newly generated discretization state according to previous solution.
virtual int giveNumberOfEquations (EquationID eid)
 Returns total number of equations in active (current time step) time step.
virtual int giveNumberOfPrescribedEquations (EquationID eid)
 Returns total number of prescribed equations in active (current time step) time step.
virtual int giveNumberOfDomainEquations (int di, EquationID eid)
 Returns number of equations for given domain in active (current time step) time step.
virtual int giveNumberOfPrescribedDomainEquations (int di, EquationID eid)
 Returns number of prescribed equations for given domain in active (current time step) time step.
virtual CharType giveTypeOfComponent (NumericalCmpn)
 Provides backward mapping between numerical component and characteristic component on EngngModel level.
virtual double giveUnknownComponent (EquationID, ValueModeType, TimeStep *, Domain *, Dof *)
 Returns requested unknown.
virtual double giveUnknownComponent (UnknownType, ValueModeType, TimeStep *, Domain *, Dof *)
int updateSharedDofManagers (FloatArray &answer, int ExchangeTag)
 Exchanges necessary remote DofManagers data.
int updateSharedPrescribedDofManagers (FloatArray &answer, int ExchangeTag)
 Exchanges necessary remote prescribed DofManagers data.
int exchangeRemoteElementData (int ExchangeTag)
 Exchanges necessary remote element data with remote partitions.
int packRemoteElementData (ProcessCommunicator &processComm)
 Packs data of local element to be received by their remote counterpart on remote partitions.
int unpackRemoteElementData (ProcessCommunicator &processComm)
 Unpacks data for remote elements (which are mirrors of remote partition's local elements).
int packDofManagers (FloatArray *src, ProcessCommunicator &processComm)
 Packing function for vector values of DofManagers.
int packPrescribedDofManagers (FloatArray *src, ProcessCommunicator &processComm)
 Packing function for vector values of DofManagers.
int unpackDofManagers (FloatArray *dest, ProcessCommunicator &processComm)
 Unpacking function for vector values of DofManagers .
int unpackPrescribedDofManagers (FloatArray *dest, ProcessCommunicator &processComm)
 Unpacking function for vector values of DofManagers .
void initializeCommMaps (bool forceInit=false)
ProblemCommunicatorgiveProblemCommunicator (EngngModelCommType t)
virtual int instanciateYourself (DataReader *dr, InputRecord *ir, const char *outFileName, const char *desc)
 Initializes whole problem according to its description stored in inputStream.
void Instanciate_init (const char *dataOutputFileName, int ndomains)
 Initialization of the receiver state (opening the default output stream, empty domain creation, initialization of PETSc context, etc) before Initialization form DataReader.
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description in input reader.
int instanciateDomains (DataReader *dr)
 Instanciate problem domains by calling their instanciateYourself() service.
int instanciateMetaSteps (DataReader *dr)
 Instanciate problem meta steps by calling their instanciateYourself() service.
virtual int instanciateDefaultMetaStep (InputRecord *ir)
 Instanciate default metastep, if nmsteps is zero.
virtual void updateAttributes (MetaStep *mStep)
 Update receiver attributes according to step metaStep attributes.
void initMetaStepAttributes (MetaStep *mStep)
 Update e-model attributes attributes according to step metaStep attributes.
virtual contextIOResultType saveContext (DataStream *stream, ContextMode mode, void *obj=NULL)
 Stores the state of model to output stream.
virtual contextIOResultType restoreContext (DataStream *stream, ContextMode mode, void *obj=NULL)
 Restores the state of model from output stream.
virtual void updateDomainLinks ()
 Updates domain links after the domains of receiver have changed.
void resolveCorrespondingStepNumber (int &, int &, void *obj)
MetaStepgiveCurrentMetaStep ()
 Returns current meta step.
TimeStepgiveCurrentStep ()
 Returns current time step.
TimeStepgivePreviousStep ()
 Returns previous time step.
virtual TimeStepgiveNextStep ()
 Returns next time step (next to current step) of receiver.
virtual TimeStepgiveSolutionStepWhenIcApply ()
 Returns the solution step when Initial Conditions (IC) apply.
virtual int giveNumberOfFirstStep ()
 Returns number of first time step used by receiver.
int giveNumberOfMetaSteps ()
 Return number of meta steps.
MetaStepgiveMetaStep (int i)
 Returns the i-th meta step.
int giveNumberOfSteps ()
 Returns total number of steps.
virtual double giveEndOfTimeOfInterest ()
 Returns end of time interest (time corresponding to end of time integration).
virtual int giveNumberOfTimeStepWhenIcApply ()
 Returns the time step number, when initial conditions should apply.
virtual NumericalMethodgiveNumericalMethod (MetaStep *mStep)
 Returns reference to receiver's numerical method.
ExportModuleManagergiveExportModuleManager ()
 Returns receiver's export module manager.
EngngModelTimergiveTimer ()
 Returns reference to receiver timer (EngngModelTimer).
virtual int giveNewEquationNumber (int domain, DofIDItem)
 Increases number of equations of receiver's domain and returns newly created equation number.
virtual int giveNewPrescribedEquationNumber (int domain, DofIDItem)
 Increases number of prescribed equations of receiver's domain and returns newly created equation number.
int giveContextFile (FILE **contextFile, int stepNumber, int stepVersion, ContextFileMode cmode, int errLevel=1)
 Assigns context file-descriptor for given step number to stream.
bool testContextFile (int stepNumber, int stepVersion)
 Returns true if context file for given step and version is available.
DataReaderGiveDomainDataReader (int domainNum, int domainSerNum, ContextFileMode cmode)
 Creates new DataReader for given domain.
virtual void updateComponent (TimeStep *tStep, NumericalCmpn cmpn, Domain *d)
 Updates components mapped to numerical method if necessary during solution process.
virtual void initStepIncrements ()
 Initializes solution of new time step.
virtual int forceEquationNumbering (int i)
 Forces equation renumbering on given domain.
virtual int forceEquationNumbering ()
 Forces equation renumbering on all domains associated to engng model.
virtual int requiresUnknownsDictionaryUpdate ()
 Indicates if EngngModel requires Dofs dictionaries to be updated.
virtual bool requiresEquationRenumbering (TimeStep *tStep)
 Returns true if equation renumbering is required for given solution step.
virtual void updateDofUnknownsDictionary (DofManager *, TimeStep *)
 Updates necessary values in Dofs unknown dictionaries.
virtual int giveUnknownDictHashIndx (EquationID type, ValueModeType mode, TimeStep *stepN)
 This method is responsible for computing unique dictionary id (ie hash value) from given equationId, valueModeType and time step.
virtual UnknownNumberingSchemegiveUnknownNumberingScheme (EquationID type)
 Returns UnknownNUmberingScheme related to given EquationID.
virtual void giveElementCharacteristicMatrix (FloatMatrix &answer, int num, CharType type, TimeStep *tStep, Domain *domain)
 Returns characteristic matrix of element.
virtual void giveElementCharacteristicVector (FloatArray &answer, int num, CharType type, ValueModeType mode, TimeStep *tStep, Domain *domain)
 Returns characteristic vector of element.
virtual PetscContextgivePetscContext (int n, EquationID eid)
 Returns the PETSc context corresponding to given domain (n) and unknown type Default implementation returns i-th context from petscContextList.
virtual void initPetscContexts ()
 Creates PETSc contexts.
virtual void assemble (SparseMtrx *answer, TimeStep *tStep, EquationID eid, CharType type, const UnknownNumberingScheme &s, Domain *domain)
 Assembles characteristic matrix of required type into given sparse matrix.
virtual void assemble (SparseMtrx *answer, TimeStep *tStep, EquationID eid, CharType type, const UnknownNumberingScheme &r_s, const UnknownNumberingScheme &c_s, Domain *domain)
 Assembles characteristic matrix of required type into given sparse matrix.
virtual void assemble (SparseMtrx *answer, TimeStep *tStep, EquationID r_id, EquationID c_id, CharType type, const UnknownNumberingScheme &s, Domain *domain)
 Assembles characteristic matrix of required type into given sparse matrix.
double assembleVector (FloatArray &answer, TimeStep *tStep, EquationID eid, CharType type, ValueModeType mode, const UnknownNumberingScheme &s, Domain *domain, FloatArray *eNorms=NULL)
 Assembles characteristic vector of required type from dofManagers, element, and active boundary conditions, into given vector.
double assembleVectorFromDofManagers (FloatArray &answer, TimeStep *tStep, EquationID eid, CharType type, ValueModeType mode, const UnknownNumberingScheme &s, Domain *domain, FloatArray *eNorms=NULL)
 Assembles characteristic vector of required type from dofManagers into given vector.
double assembleVectorFromElements (FloatArray &answer, TimeStep *tStep, EquationID eid, CharType type, ValueModeType mode, const UnknownNumberingScheme &s, Domain *domain, FloatArray *eNorms=NULL)
 Assembles characteristic vector of required type from elements into given vector.
double assembleVectorFromActiveBC (FloatArray &answer, TimeStep *tStep, EquationID eid, CharType type, ValueModeType mode, const UnknownNumberingScheme &s, Domain *domain, FloatArray *eNorms=NULL)
 Assembles characteristic vector of required type from active boundary conditions.
void assembleExtrapolatedForces (FloatArray &answer, TimeStep *tStep, EquationID eid, CharType type, Domain *domain)
 Assembles the extrapolated internal forces vector, useful for obtaining a good initial guess in nonlinear analysis with Dirichlet boundary conditions.
virtual int checkConsistency ()
 Allows programmer to test some receiver's internal data, before computation begins.
virtual int checkProblemConsistency ()
 Allows programmer to test problem its internal data, before computation begins.
virtual void init ()
 Initializes the receiver state.
virtual void printOutputAt (FILE *file, TimeStep *tStep)
 Prints output of receiver to output domain stream, for given time step.
void printYourself ()
 Prints state of receiver. Useful for debugging.
virtual void printDofOutputAt (FILE *stream, Dof *iDof, TimeStep *atTime)=0
 DOF printing routine.
virtual const char * giveClassName () const
 Returns class name of the receiver.
virtual classType giveClassID () const
 Returns classType id of receiver.
virtual int isIncremental ()
 Returns nonzero if receiver does incremental analysis.
virtual int useNonlocalStiffnessOption ()
 Returns nonzero if nonlocal stiffness option activated.
bool isParallel ()
 Returns true if receiver in parallel mode.
virtual fMode giveFormulation ()
 Indicates type of non linear computation (total or updated formulation).
EngngModelContextgiveContext ()
 Context requesting service.
virtual int giveNumberOfSlaveProblems ()
 Returns number of slave problems.
virtual EngngModelgiveSlaveProblem (int i)
 Returns i-th slave problem.
virtual bool giveEquationScalingFlag ()
 Returns the Equation scaling flag, which is used to indicate that governing equation(s) are scaled, or non-dimensionalized.
virtual double giveVariableScale (VarScaleType varId)
 Returns the scale factor for given variable type.
virtual int estimateMaxPackSize (IntArray &commMap, CommunicationBuffer &buff, int packUnpackType)
 Determines the space necessary for send/receive buffer.
virtual void balanceLoad (TimeStep *tStep)
 Recovers the load balance between processors, if needed.
virtual LoadBalancergiveLoadBalancer ()
 Returns reference to receiver's load balancer.
virtual LoadBalancerMonitorgiveLoadBalancerMonitor ()
 Returns reference to receiver's load balancer monitor.
int giveRank ()
 Returns domain rank in a group of collaborating processes (0..groupSize-1)
int giveNumberOfProcesses ()
 Returns the number of collaborating processes.
void initParallel ()
 Request domain rank and problem size.
EngngModelgiveEngngModel ()
 Returns reference to itself -> required by communicator.h.
ProblemCommunicatorMode giveProblemCommMode ()
 Returns Communicator mode. Determines current domain-decomposition strategy used.
virtual void drawYourself (oofegGraphicContext &context)
virtual void drawElements (oofegGraphicContext &context)
virtual void drawNodes (oofegGraphicContext &context)
virtual void showSparseMtrxStructure (int type, oofegGraphicContext &context, TimeStep *atTime)
 Shows the sparse structure of required matrix, type == 1 stiffness.
Error and warning reporting methods.

These methods will print error (or warning) message using oofem default loggers.

Do not use these methods directly, to avoid specify file and line parameters. More preferably, use these methods via corresponding OOFEM_CLASS_ERROR and OOFEM_CLASS_WARNING macros, that will include file and line parameters automatically.

Uses variable number of arguments, so a format string followed by optional arguments is expected (according to printf conventions).

Parameters:
fileSource file name, where error encountered (where error* function called).
lineSource file line number, where error encountered.
void error (const char *file, int line, const char *format,...) const
 prints error message and exits
void warning (const char *file, int line, const char *format,...) const
 prints warning message

Protected Types

enum  {
  InternalForcesExchangeTag, MassExchangeTag, LoadExchangeTag, ReactionExchangeTag,
  RemoteElementExchangeTag
}
 Message tags. More...

Protected Member Functions

int packDofManagers (FloatArray *src, ProcessCommunicator &processComm, bool prescribedEquations)
 Packing function for vector values of DofManagers.
int unpackDofManagers (FloatArray *dest, ProcessCommunicator &processComm, bool prescribedEquations)
 Unpacking function for vector values of DofManagers .
virtual void packMigratingData (TimeStep *)
 Packs receiver data when rebalancing load.
virtual void unpackMigratingData (TimeStep *)
 Unpacks receiver data when rebalancing load.

Protected Attributes

int ndomains
 Number of receiver domains.
AList< Domain > * domainList
 List of problem domains.
int numberOfSteps
 Total number of time steps.
int numberOfEquations
 Total number of equation in current time step.
int numberOfPrescribedEquations
 Total number or prescribed equations in current time step.
IntArray domainNeqs
 Number of equations per domain.
IntArray domainPrescribedNeqs
 Number of prescribed equations per domain.
bool renumberFlag
 Renumbering flag (renumbers equations after each step, necessary if Dirichlet BCs change).
bool profileOpt
 Profile optimized numbering flag (using Sloan's algorithm).
int equationNumberingCompleted
 Equation numbering completed flag.
int nMetaSteps
 Number of meta steps.
AList< MetaStep > * metaStepList
 List of problem metasteps.
TimeStepstepWhenIcApply
 Solution step when IC (initial conditions) apply.
TimeStepcurrentStep
 Current time step.
TimeSteppreviousStep
 Previous time step.
int number
 Receivers id.
EModelDefaultEquationNumbering defaultNumberingScheme
EModelDefaultPrescribedEquationNumbering defaultPrescribedNumberingScheme
std::string dataOutputFileName
 Path to output stream.
std::string coreOutputFileName
 String with core output file name.
FILE * outputStream
 Output stream.
ContextOutputMode contextOutputMode
 Domain context output mode.
int contextOutputStep
ExportModuleManagerexportModuleManager
 Export module manager.
InitModuleManagerinitModuleManager
 Initialization module manager.
problemMode pMode
 Domain mode.
problemScale pScale
 Multiscale mode.
time_t startTime
 Solution start time.
EngngModelmaster
 Master e-model; if defined receiver is in maintained (slave) mode.
EngngModelContextcontext
 Context.
EngngModelTimer timer
 E-model timer.
int parallelFlag
 Flag indicating that the receiver runs in parallel.
AList< XfemManager > * xfemManagerList
 List of Xfemmanagers.
int nxfemman
 Number of Xfemmanagers.
enum fMode nonLinFormulation
 Type of non linear formulation (total or updated formulation).
ErrorEstimatordefaultErrEstimator
 Error estimator. Useful for adaptivity, or simply printing errors output.
int rank
 Domain rank in a group of collaborating processes (0..groupSize-1).
int numProcs
 Total number of collaborating processes.
char processor_name [PROCESSOR_NAME_LENGTH]
 Processor name.
ProblemCommunicatorMode commMode
 Communicator mode. Determines current strategy used.
CommunicatorBuffcommBuff
 Common Communicator buffer.
ProblemCommunicatorcommunicator
 Communicator.
int nonlocalExt
 Flag indicating if nonlocal extension active, which will cause data to be sent between shared elements before computing the internal forces.
ProblemCommunicatornonlocCommunicator
 NonLocal Communicator. Necessary when nonlocal constitutive models are used.
AList< PetscContext > * petscContextList
 List where PETSc contexts are stored.
Load balancing attributes
LoadBalancerlb
 Load Balancer.
LoadBalancerMonitorlbm
bool loadBalancingFlag
 If set to true, load balancing is active.
bool force_load_rebalance_in_first_step
 Debug flag forcing load balancing after first step.

Detailed Description

Abstract base class representing the "problem" under consideration.

The engineering model describes the problem and type of analysis to be done. It "knows" the type and form of governing equation, knows how to assemble this problem from local element contributions and uses suitable instance of numerical method class to solve problem. It possesses and manages one or more problem domains. Concept of time steps is introduced. For problems discretized in time the introduction of time step is natural. In other cases, time steps can represent for example load increments or different load cases.

The solution steps are grouped together into so called meta steps. The meta step can be thought as an sequence of solution steps, with same set of attributes used to drive behavior of engng model. For each metastep, the engng model typically updates its control attributes according to metastep engng attributes (see initMetaStepAttributes and updateAttributes services) and creates the solution steps accordingly. This allows to switch to different time increment, different solution control, etc. If no metastep is specified, the engng model creates default one for all required solution steps. There are two services, where attributes are updated, the first one, used for those attributes, which do not vary during solution of problem are set in initializeFrom service. The second service is updateAttributes, where the attributes allowed to change (with metastep validity) are updated. If no metastep is introduced, default one is created (with attributes set to engng model init record). Then there is no difference, whether attributes are read in initializeFrom or updateAttributes, but preferred scheme is to read all attributes in initializeFrom and left updateAttributes service empty.

The basic EngngModel tasks are following

Definition at line 171 of file engngm.h.


Member Enumeration Documentation

anonymous enum [protected]

Message tags.

Enumerator:
InternalForcesExchangeTag 
MassExchangeTag 
LoadExchangeTag 
ReactionExchangeTag 
RemoteElementExchangeTag 

Definition at line 302 of file engngm.h.

Enumerator:
EngngModel_Unknown_Mode 
EngngModel_SUMM_Mode 
EngngModel_SET_Mode 

Definition at line 175 of file engngm.h.

Enumerator:
PC_default 
PC_nonlocal 

Definition at line 176 of file engngm.h.

Means to choose methods for finding a good initial guess.

This is ad-hoc methods, often problem-specific for obtaining a point from which Newton iterations work. Only nonlinear analysis needs to worry about this.

Enumerator:
IG_None 

No special treatment for new iterations. Probably means ending up using $ {}^{n+1}x = {}^{n}x $ for all free dofs.

IG_Tangent 

Solves an approximated tangent problem from the last iteration. Useful for changing Dirichlet boundary conditions.

Definition at line 184 of file engngm.h.


Constructor & Destructor Documentation

oofem::EngngModel::EngngModel ( int  i,
EngngModel _master = NULL 
)

Member Function Documentation

void oofem::EngngModel::assemble ( SparseMtrx answer,
TimeStep tStep,
EquationID  eid,
CharType  type,
const UnknownNumberingScheme s,
Domain domain 
) [virtual]

Assembles characteristic matrix of required type into given sparse matrix.

Parameters:
answerAssembled matrix.
tStepTime step, when answer is assembled.
eidDetermines type of equation and corresponding element code numbers.
sDetermines the equation numbering scheme.
typeCharacteristic components of type type are requested from elements and assembled.
domainSource domain.

Reimplemented in oofem::NonLinearDynamic, and oofem::NonLinearStatic.

Definition at line 885 of file engngm.C.

References _error, oofem::ActiveBoundaryCondition::assemble(), oofem::SparseMtrx::assemble(), oofem::SparseMtrx::assembleBegin(), oofem::SparseMtrx::assembleEnd(), oofem::Element_remote, oofem::EngngModelTimer::EMTT_NetComputationalStepTimer, oofem::Domain::giveBc(), oofem::Domain::giveElement(), giveElementCharacteristicMatrix(), oofem::Element::giveLocationArray(), oofem::Domain::giveNumberOfBoundaryConditions(), oofem::Domain::giveNumberOfElements(), oofem::Element::giveParallelMode(), oofem::Element::giveRotationMatrix(), oofem::Element::isActivated(), oofem::Matrix::isNotEmpty(), oofem::EngngModelTimer::pauseTimer(), oofem::EngngModelTimer::resumeTimer(), oofem::FloatMatrix::rotatedWith(), and timer.

Referenced by oofem::PrescribedGradient::computeTangent(), oofem::MixedGradientPressureDirichlet::computeTangents(), oofem::MixedGradientPressureNeumann::computeTangents(), oofem::MicroMaterial::giveMacroStiffnessMatrix(), oofem::NLTransientTransportProblem::solveYourselfAt(), oofem::StationaryTransportProblem::solveYourselfAt(), oofem::IncrementalLinearStatic::solveYourselfAt(), oofem::LinearStatic::solveYourselfAt(), oofem::NonStationaryTransportProblem::solveYourselfAt(), oofem::EigenValueDynamic::solveYourselfAt(), oofem::DIIDynamic::solveYourselfAt(), oofem::LinearStability::solveYourselfAt(), oofem::CBS::solveYourselfAt(), oofem::SUPG::solveYourselfAt(), oofem::DarcyFlow::updateComponent(), and oofem::StokesFlow::updateComponent().

void oofem::EngngModel::assemble ( SparseMtrx answer,
TimeStep tStep,
EquationID  eid,
CharType  type,
const UnknownNumberingScheme r_s,
const UnknownNumberingScheme c_s,
Domain domain 
) [virtual]

Assembles characteristic matrix of required type into given sparse matrix.

Parameters:
answerassembled matrix
tStepTime step, when answer is assembled.
eidDetermines type of equation and corresponding element code numbers.
r_sDetermines the equation numbering scheme for the rows.
c_sDetermines the equation numbering scheme for the columns.
typeCharacteristic components of type type are requested from elements and assembled.
domainSource domain.

Definition at line 1020 of file engngm.C.

References oofem::ActiveBoundaryCondition::assemble(), oofem::SparseMtrx::assemble(), oofem::SparseMtrx::assembleBegin(), oofem::SparseMtrx::assembleEnd(), oofem::Element_remote, oofem::EngngModelTimer::EMTT_NetComputationalStepTimer, oofem::Domain::giveBc(), oofem::Domain::giveElement(), giveElementCharacteristicMatrix(), oofem::Element::giveLocationArray(), oofem::Domain::giveNumberOfBoundaryConditions(), oofem::Domain::giveNumberOfElements(), oofem::Element::giveParallelMode(), oofem::Element::giveRotationMatrix(), oofem::Element::isActivated(), oofem::Matrix::isNotEmpty(), OOFEM_ERROR, oofem::EngngModelTimer::pauseTimer(), oofem::EngngModelTimer::resumeTimer(), oofem::FloatMatrix::rotatedWith(), and timer.

void oofem::EngngModel::assemble ( SparseMtrx answer,
TimeStep tStep,
EquationID  r_id,
EquationID  c_id,
CharType  type,
const UnknownNumberingScheme s,
Domain domain 
) [virtual]

Assembles characteristic matrix of required type into given sparse matrix.

Parameters:
answerAssembled matrix.
tStepTime step, when answer is assembled.
r_idDetermines type of equation and corresponding element code numbers for matrix rows.
c_idDetermines type of equation and corresponding element code numbers for matrix columns.
sDetermines the equation numbering scheme.
typeCharacteristic components of type type are requested from elements and assembled.
domainSource domain.
Todo:
Check transpose here
Todo:
Check transpose here
Todo:
This function is rarely called. Do we need the active bc to assemble here as well?

Definition at line 950 of file engngm.C.

References _error, oofem::SparseMtrx::assemble(), oofem::SparseMtrx::assembleBegin(), oofem::SparseMtrx::assembleEnd(), oofem::FloatMatrix::beProductOf(), oofem::FloatMatrix::beTProductOf(), oofem::Element_remote, oofem::EngngModelTimer::EMTT_NetComputationalStepTimer, oofem::Domain::giveElement(), giveElementCharacteristicMatrix(), oofem::Element::giveLocationArray(), oofem::Domain::giveNumberOfElements(), oofem::Element::giveParallelMode(), oofem::Element::giveRotationMatrix(), oofem::Element::isActivated(), oofem::Matrix::isNotEmpty(), oofem::EngngModelTimer::pauseTimer(), oofem::EngngModelTimer::resumeTimer(), and timer.

void oofem::EngngModel::assembleExtrapolatedForces ( FloatArray answer,
TimeStep tStep,
EquationID  eid,
CharType  type,
Domain domain 
)

Assembles the extrapolated internal forces vector, useful for obtaining a good initial guess in nonlinear analysis with Dirichlet boundary conditions.

Parameters:
answerAssembled vector.
tStepTime step, when answer is assembled.
eidDetermines type of equation and corresponding element code numbers.
typeDetermines the type of matrix to use, typically the tangent matrix or possibly the elastic tangent.
domainDomain to assemble from.
Returns:
Sum of element norm (squared) of assembled vector.
Todo:
This is not perfect. It is probably no good for viscoelastic materials, and possibly other scenarios that are rate dependent (tangent will be computed for the previous step, with whatever deltaT it had)
Todo:
Deal with element deactivation and reactivation properly.

Definition at line 1257 of file engngm.C.

References oofem::FloatArray::assemble(), oofem::FloatArray::beProductOf(), oofem::Element::computeVectorOf(), oofem::Element_remote, oofem::EngngModelTimer::EMTT_NetComputationalStepTimer, oofem::Element::giveCharacteristicMatrix(), oofem::Domain::giveElement(), oofem::Element::giveLocationArray(), oofem::Domain::giveNumberOfElements(), giveNumberOfEquations(), oofem::Element::giveParallelMode(), oofem::Element::isActivated(), oofem::EngngModelTimer::pauseTimer(), oofem::FloatArray::resize(), oofem::EngngModelTimer::resumeTimer(), timer, and oofem::FloatArray::zero().

Referenced by oofem::NonLinearStatic::proceedStep().

double oofem::EngngModel::assembleVector ( FloatArray answer,
TimeStep tStep,
EquationID  eid,
CharType  type,
ValueModeType  mode,
const UnknownNumberingScheme s,
Domain domain,
FloatArray eNorms = NULL 
)

Assembles characteristic vector of required type from dofManagers, element, and active boundary conditions, into given vector.

This routine is simple a convenient call to all three subroutines, since this is most likely what any engineering model will want to do. The return value is used to normalize the residual when checking for convergence in nonlinear problems. For parallel problems, the returned norm is also summed over all processes.

Parameters:
answerAssembled vector.
eidDetermines type of equation and corresponding element code numbers.
modeMode of unknown (total, incremental, rate of change).
tStepTime step, when answer is assembled.
typeCharacteristic components of type type are requested.
sDetermines the equation numbering scheme.
domainDomain to assemble from.
eNormsIf non-NULL, squared norms of each internal force will be added to this, split up into dof IDs.
Returns:
Sum of element/node norm (squared) of assembled vector.
Todo:
What if different cores have different sizes?

Definition at line 1082 of file engngm.C.

References assembleVectorFromActiveBC(), assembleVectorFromDofManagers(), assembleVectorFromElements(), oofem::Domain::giveMaxDofID(), oofem::Domain::giveNumber(), givePetscContext(), oofem::FloatArray::givePointer(), oofem::FloatArray::giveSize(), isParallel(), oofem::norm(), oofem::FloatArray::resize(), and oofem::FloatArray::zero().

Referenced by oofem::NonLinearStatic::assembleIncrementalReferenceLoadVectors(), oofem::NonLinearDynamic::assembleIncrementalReferenceLoadVectors(), oofem::DIIDynamic::assembleLoadVector(), oofem::StructuralEngngModel::computeExternalLoadReactionContribution(), oofem::PrescribedGradient::computeField(), oofem::MixedGradientPressureDirichlet::computeFields(), oofem::NlDEIDynamic::computeLoadVector(), oofem::StructuralEngngModel::computeReaction(), oofem::StructuralEngngModel::giveInternalForces(), oofem::IncrementalLinearStatic::solveYourselfAt(), oofem::DEIDynamic::solveYourselfAt(), oofem::LinearStatic::solveYourselfAt(), oofem::StokesFlow::solveYourselfAt(), oofem::LinearStability::solveYourselfAt(), oofem::DarcyFlow::updateComponent(), and oofem::StokesFlow::updateComponent().

double oofem::EngngModel::assembleVectorFromActiveBC ( FloatArray answer,
TimeStep tStep,
EquationID  eid,
CharType  type,
ValueModeType  mode,
const UnknownNumberingScheme s,
Domain domain,
FloatArray eNorms = NULL 
)

Assembles characteristic vector of required type from active boundary conditions.

Parameters:
answerAssembled vector.
tStepTime step, when answer is assembled.
eidDetermines type of equation and corresponding element code numbers.
modeMode of unknown (total, incremental, rate of change).
typeCharacteristic components of type type are requested from elements and assembled using prescribed eqn numbers.
sDetermines the equation numbering scheme.
domainDomain to assemble from.
Returns:
Sum of element norm (squared) of assembled vector.

Definition at line 1178 of file engngm.C.

References oofem::ActiveBoundaryCondition::assembleVector(), oofem::EngngModelTimer::EMTT_NetComputationalStepTimer, oofem::Domain::giveBc(), oofem::Domain::giveNumberOfBoundaryConditions(), oofem::norm(), oofem::EngngModelTimer::pauseTimer(), oofem::EngngModelTimer::resumeTimer(), and timer.

Referenced by assembleVector().

double oofem::EngngModel::assembleVectorFromDofManagers ( FloatArray answer,
TimeStep tStep,
EquationID  eid,
CharType  type,
ValueModeType  mode,
const UnknownNumberingScheme s,
Domain domain,
FloatArray eNorms = NULL 
)

Assembles characteristic vector of required type from dofManagers into given vector.

Parameters:
answerAssembled vector.
eidDetermines type of equation and corresponding element code numbers.
modeMode of unknown (total, incremental, rate of change).
tStepTime step, when answer is assembled.
typeCharacteristic components of type type are requested.
sDetermines the equation numbering scheme.
domainDomain to assemble from.
Returns:
Sum of element norm (squared) of assembled vector.

Definition at line 1119 of file engngm.C.

References oofem::FloatArray::assemble(), oofem::IntArray::at(), oofem::FloatArray::at(), oofem::DofManager::computeLoadVectorAt(), oofem::DofManager::computeM2LTransformation(), oofem::FloatArray::computeSquaredNorm(), oofem::DofManager_shared, oofem::EngngModelTimer::EMTT_NetComputationalStepTimer, oofem::DofManager::giveCompleteLocationArray(), oofem::DofManager::giveCompleteMasterDofIDArray(), oofem::Domain::giveDofManager(), oofem::Domain::giveNumberOfDofManagers(), oofem::DofManager::giveParallelMode(), oofem::DofManager::givePartitionsConnectivitySize(), oofem::IntArray::giveSize(), oofem::FloatArray::isNotEmpty(), oofem::norm(), oofem::EngngModelTimer::pauseTimer(), oofem::EngngModelTimer::resumeTimer(), oofem::FloatArray::rotatedWith(), timer, and oofem::FloatArray::times().

Referenced by assembleVector(), oofem::StationaryTransportProblem::solveYourselfAt(), oofem::NLTransientTransportProblem::solveYourselfAt(), and oofem::NonStationaryTransportProblem::solveYourselfAt().

double oofem::EngngModel::assembleVectorFromElements ( FloatArray answer,
TimeStep tStep,
EquationID  eid,
CharType  type,
ValueModeType  mode,
const UnknownNumberingScheme s,
Domain domain,
FloatArray eNorms = NULL 
)

Assembles characteristic vector of required type from elements into given vector.

Parameters:
answerAssembled vector.
tStepTime step, when answer is assembled.
eidDetermines type of equation and corresponding element code numbers.
modeMode of unknown (total, incremental, rate of change).
typeCharacteristic components of type type are requested from elements and assembled using prescribed eqn numbers.
sDetermines the equation numbering scheme.
domainDomain to assemble from.
Returns:
Sum of element norm (squared) of assembled vector.
Todo:
Consider using private answer variables and sum them up at the end, but it just might be slower then a shared variable.

Definition at line 1198 of file engngm.C.

References oofem::FloatArray::assemble(), oofem::IntArray::at(), oofem::FloatArray::at(), oofem::FloatArray::computeSquaredNorm(), oofem::Element_remote, oofem::EngngModelTimer::EMTT_NetComputationalStepTimer, oofem::Domain::giveElement(), giveElementCharacteristicVector(), oofem::Element::giveLocationArray(), oofem::Domain::giveNumberOfElements(), oofem::Element::giveParallelMode(), oofem::Element::giveRotationMatrix(), oofem::IntArray::giveSize(), oofem::Element::isActivated(), oofem::FloatArray::isNotEmpty(), oofem::norm(), oofem::EngngModelTimer::pauseTimer(), oofem::EngngModelTimer::resumeTimer(), oofem::FloatArray::rotatedWith(), and timer.

Referenced by assembleVector(), oofem::DarcyFlow::solveYourselfAt(), oofem::NLTransientTransportProblem::solveYourselfAt(), oofem::StationaryTransportProblem::solveYourselfAt(), oofem::NonStationaryTransportProblem::solveYourselfAt(), oofem::CBS::solveYourselfAt(), and oofem::SUPG::solveYourselfAt().

void oofem::EngngModel::balanceLoad ( TimeStep tStep) [virtual]

Recovers the load balance between processors, if needed.

Uses load balancer monitor and load balancer instances to decide if rebalancing is needed (monitor) and to repartition the domain (load balancer). Method is responsible for packing all relevant data (the use of dof dictionaries is assumed to store e-model dof related staff, which can later help in renumbering after rebalancing) and to send/receive all data. Then the local update and renumbering is necessary to get consistent data structure.

Definition at line 1918 of file engngm.C.

References oofem::LoadBalancer::calculateLoadTransfer(), oofem::LoadBalancerMonitor::decide(), oofem::DofManager_local, oofem::DofManager_shared, oofem::EngngModelTimer::EMTT_LoadBalancingTimer, force_load_rebalance_in_first_step, forceEquationNumbering(), oofem::EngngModelTimer::getUtime(), oofem::Domain::giveDofManager(), giveDomain(), giveLoadBalancer(), giveLoadBalancerMonitor(), oofem::Domain::giveNumberOfDofManagers(), oofem::DofManager::giveNumberOfDofs(), giveRank(), oofem::TimeStep::isNotTheLastStep(), oofem::TimeStep::isTheFirstStep(), lb, oofem::LoadBalancerMonitor::LBD_RECOVER, lbm, oofem::LoadBalancer::migrateLoad(), oofem::OOFEM_LOG_INFO(), packMigratingData(), oofem::LoadBalancer::printStatistics(), oofem::EngngModelTimer::startTimer(), oofem::EngngModelTimer::stopTimer(), timer, and unpackMigratingData().

Referenced by oofem::StaggeredProblem::solveYourself(), solveYourself(), and oofem::AdaptiveNonLinearStatic::solveYourselfAt().

virtual int oofem::EngngModel::checkConsistency ( ) [inline, virtual]

Allows programmer to test problem its internal data, before computation begins.

Returns:
Nonzero if receiver check is o.k.

Reimplemented in oofem::StaggeredProblem.

Definition at line 1851 of file engngm.C.

References oofem::Domain::checkConsistency(), checkConsistency(), giveDomain(), giveNumberOfDomains(), ndomains, oofem::OOFEM_LOG_DEBUG(), and VERBOSE_PRINTS.

Referenced by oofem::StaggeredProblem::checkProblemConsistency(), and oofem::MacroLSpace::computeStiffnessMatrix().

void oofem::EngngModel::doStepOutput ( TimeStep tStep) [virtual]

Prints the ouput of the solution step (using virtual this->printOutputAtservice) to the stream detemined using this->giveOutputStream() method and calls exportModuleManager to do output.

Reimplemented in oofem::StokesFlow, and oofem::StaggeredProblem.

Definition at line 822 of file engngm.C.

References giveOutputStream(), and printOutputAt().

Referenced by oofem::RVEStokesFlowMaterialStatus::exportFilter(), oofem::RVEStokesFlow::exportFilter(), oofem::NonLinearStatic::terminate(), oofem::NonLinearDynamic::terminate(), and terminate().

void oofem::EngngModel::drawNodes ( oofegGraphicContext context) [virtual]
void oofem::EngngModel::error ( const char *  file,
int  line,
const char *  format,
  ... 
) const

prints error message and exits

Definition at line 1680 of file engngm.C.

References __OOFEM_ERROR3, __OOFEM_ERROR4, giveClassName(), MAX_ERROR_MSG_LENGTH, and rank.

virtual int oofem::EngngModel::estimateMaxPackSize ( IntArray commMap,
CommunicationBuffer buff,
int  packUnpackType 
) [inline, virtual]

Determines the space necessary for send/receive buffer.

It uses related communication map pattern to determine the maximum size needed.

Parameters:
commMapCommunication map used to send/receive messages.
buffCommunication buffer.
packUnpackTypeDetermines the type of packed quantity, used by receiver to estimate the size of pack/unpack buffer accordingly.
Returns:
Upper bound of space needed.

Reimplemented in oofem::NlDEIDynamic, oofem::NonLinearDynamic, oofem::NonLinearStatic, and oofem::LinearStatic.

Definition at line 1111 of file engngm.h.

Exchanges necessary remote element data with remote partitions.

The receiver's nonlocalExt flag must be set. Uses receiver nonlocCommunicator to perform the task using packRemoteElementData and unpackRemoteElementData receiver's services.

Parameters:
ExchangeTagExchange tag used by communicator.
Returns:
Nonzero if successful.

Definition at line 2046 of file engngm.C.

References _error, oofem::Communicator::finishExchange(), giveRank(), oofem::Communicator::initExchange(), isParallel(), nonlocalExt, nonlocCommunicator, oofem::Communicator::packAllData(), packRemoteElementData(), oofem::Communicator::unpackAllData(), unpackRemoteElementData(), and VERBOSEPARALLEL_PRINT.

Referenced by oofem::AdaptiveNonLinearStatic::adaptiveRemap(), and oofem::StructuralEngngModel::giveInternalForces().

Forces equation renumbering on given domain.

All equation numbers in all dofManagers are invalidated, and new equation numbers are generated starting from domainNeqs entry corresponding to given domain. It will update numberOfEquations variable accordingly. Should be used at startup to force equation numbering and therefore sets numberOfEquations. Must be used if model supports changes of static system to assign new valid equation numbers to dofManagers.

Reimplemented in oofem::SUPG, oofem::StokesFlow, and oofem::DarcyFlow.

Definition at line 569 of file engngm.C.

References oofem::DofManager::askNewEquationNumbers(), oofem::SloanGraph::askNewOptimalNumbering(), oofem::IntArray::at(), domainNeqs, domainPrescribedNeqs, oofem::Timer::getUtime(), oofem::Domain::giveBc(), giveCurrentStep(), oofem::Domain::giveDofManager(), giveDomain(), oofem::Domain::giveElement(), oofem::GeneralBoundaryCondition::giveInternalDofManager(), oofem::Element::giveInternalDofManager(), oofem::Domain::giveNumberOfBoundaryConditions(), oofem::Domain::giveNumberOfDofManagers(), oofem::Domain::giveNumberOfElements(), oofem::GeneralBoundaryCondition::giveNumberOfInternalDofManagers(), oofem::Element::giveNumberOfInternalDofManagers(), oofem::SloanGraph::giveOptimalProfileSize(), oofem::SloanGraph::initialize(), oofem::OOFEM_LOG_DEBUG(), oofem::OOFEM_LOG_INFO(), profileOpt, oofem::Timer::startTimer(), oofem::Timer::stopTimer(), timer, and oofem::SloanGraph::tryParameters().

Referenced by oofem::StaggeredProblem::forceEquationNumbering().

Forces equation renumbering on all domains associated to engng model.

All equation numbers in all domains for all dofManagers are invalidated, and new equation numbers are generated starting from 1 on each domain. It will update numberOfEquations variable accordingly. Should be used at startup to force equation numbering and therefore sets numberOfEquations. Must be used if model supports changes of static system to assign new valid equation numbers to dofManagers.

Reimplemented in oofem::SUPG, and oofem::StaggeredProblem.

Definition at line 643 of file engngm.C.

References oofem::AList< T >::at(), oofem::IntArray::at(), domainNeqs, domainPrescribedNeqs, equationNumberingCompleted, oofem::AList< T >::giveSize(), oofem::PetscContext::init(), ndomains, numberOfEquations, numberOfPrescribedEquations, oofem::OOFEM_LOG_DEBUG(), and petscContextList.

Referenced by oofem::AdaptiveNonLinearStatic::adaptiveRemap(), balanceLoad(), oofem::DarcyFlow::forceEquationNumbering(), oofem::StokesFlow::forceEquationNumbering(), oofem::CBS::giveNumberOfDomainEquations(), giveNumberOfDomainEquations(), oofem::CBS::giveNumberOfEquations(), giveNumberOfEquations(), oofem::CBS::giveNumberOfPrescribedDomainEquations(), giveNumberOfPrescribedDomainEquations(), oofem::CBS::giveNumberOfPrescribedEquations(), giveNumberOfPrescribedEquations(), and solveYourself().

virtual classType oofem::EngngModel::giveClassID ( ) const [inline, virtual]
virtual const char* oofem::EngngModel::giveClassName ( ) const [inline, virtual]
int oofem::EngngModel::giveContextFile ( FILE **  contextFile,
int  stepNumber,
int  stepVersion,
ContextFileMode  cmode,
int  errLevel = 1 
)

Assigns context file-descriptor for given step number to stream.

Returns nonzero on success.

Parameters:
contextFileAssigned file descriptor.
stepNumberSolution step number to store/restore.
stepVersionVersion of step.
cmodeDetermines the i/o mode of context file.
errLevelDetermines the amount of warning messages if errors are encountered, level 0 no warnings reported.

Definition at line 1608 of file engngm.C.

References _error2, oofem::contextMode_read, and coreOutputFileName.

Referenced by oofem::StationaryTransportProblem::restoreContext(), oofem::IncrementalLinearStatic::restoreContext(), oofem::LinearStatic::restoreContext(), oofem::NonStationaryTransportProblem::restoreContext(), oofem::EigenValueDynamic::restoreContext(), oofem::LinearStability::restoreContext(), oofem::DIIDynamic::restoreContext(), oofem::CBS::restoreContext(), oofem::AdaptiveNonLinearStatic::restoreContext(), oofem::SUPG::restoreContext(), oofem::NonLinearStatic::restoreContext(), oofem::NonLinearDynamic::restoreContext(), oofem::NlDEIDynamic::restoreContext(), restoreContext(), oofem::StationaryTransportProblem::saveContext(), oofem::IncrementalLinearStatic::saveContext(), oofem::LinearStatic::saveContext(), oofem::NonStationaryTransportProblem::saveContext(), oofem::EigenValueDynamic::saveContext(), oofem::LinearStability::saveContext(), oofem::DIIDynamic::saveContext(), oofem::CBS::saveContext(), oofem::AdaptiveNonLinearStatic::saveContext(), oofem::SUPG::saveContext(), oofem::NonLinearStatic::saveContext(), oofem::NonLinearDynamic::saveContext(), oofem::NlDEIDynamic::saveContext(), and saveContext().

Returns domain context output mode.

Definition at line 381 of file engngm.h.

References contextOutputMode.

Referenced by saveStepContext().

Returns domain context output step.

Definition at line 385 of file engngm.h.

References contextOutputStep.

Referenced by saveStepContext().

Returns current time step.

Definition at line 703 of file engngm.h.

References currentStep, giveCurrentStep(), and master.

Referenced by oofem::AdaptiveNonLinearStatic::adaptiveRemap(), oofem::NLTransientTransportProblem::assembleAlgorithmicPartOfRhs(), oofem::LIBeam3d2::computeBmatrixAt(), oofem::NonLinearStatic::computeExternalLoadReactionContribution(), oofem::NonLinearDynamic::computeExternalLoadReactionContribution(), oofem::LIBeam3d2::computeGtoLRotationMatrix(), oofem::Beam3d::computeKappaCoeffs(), oofem::MacroLSpace::computeStiffnessMatrix(), oofem::InterfaceElem2dQuad::drawDeformedGeometry(), oofem::InterfaceElem1d::drawDeformedGeometry(), oofem::LumpedMassElement::drawDeformedGeometry(), oofem::QTrPlaneStrain::drawDeformedGeometry(), oofem::QTrPlaneStress2d::drawDeformedGeometry(), oofem::LIBeam2dNL::drawDeformedGeometry(), oofem::CohesiveSurface3d::drawDeformedGeometry(), oofem::Axisymm3d::drawDeformedGeometry(), oofem::Truss2d::drawDeformedGeometry(), oofem::QPlaneStrain::drawDeformedGeometry(), oofem::Q4Axisymm::drawDeformedGeometry(), oofem::LIBeam3d::drawDeformedGeometry(), oofem::QPlaneStress2d::drawDeformedGeometry(), oofem::TrPlaneStress2d::drawDeformedGeometry(), oofem::LIBeam3dNL2::drawDeformedGeometry(), oofem::LIBeam3dNL::drawDeformedGeometry(), oofem::Truss1d::drawDeformedGeometry(), oofem::TR_SHELL01::drawDeformedGeometry(), oofem::Beam2d::drawDeformedGeometry(), oofem::L4Axisymm::drawDeformedGeometry(), oofem::Lattice2d::drawDeformedGeometry(), oofem::Truss3d::drawDeformedGeometry(), oofem::LTRSpace::drawDeformedGeometry(), oofem::Beam3d::drawDeformedGeometry(), oofem::LIBeam3d2::drawDeformedGeometry(), oofem::PlaneStress2d::drawDeformedGeometry(), oofem::Quad1PlaneStrain::drawDeformedGeometry(), oofem::LSpace::drawDeformedGeometry(), oofem::TrPlaneStrain::drawDeformedGeometry(), oofem::CCTPlate::drawDeformedGeometry(), oofem::drawIGAPatchDeformedGeometry(), oofem::TR_SHELL01::drawRawGeometry(), oofem::CCTPlate::drawRawGeometry(), oofem::InterfaceElem2dQuad::drawScalar(), oofem::PlaneStress2dXfem::drawScalar(), oofem::InterfaceElem1d::drawScalar(), oofem::Quad1_ht::drawScalar(), oofem::QTrPlaneStrain::drawScalar(), oofem::QTrPlaneStress2d::drawScalar(), oofem::BsplinePlaneStressElement::drawScalar(), oofem::CohesiveSurface3d::drawScalar(), oofem::Axisymm3d::drawScalar(), oofem::QPlaneStrain::drawScalar(), oofem::Tetrah1_ht::drawScalar(), oofem::QPlaneStress2d::drawScalar(), oofem::TrPlaneStress2d::drawScalar(), oofem::Truss1d::drawScalar(), oofem::Brick1_ht::drawScalar(), oofem::TR_SHELL01::drawScalar(), oofem::L4Axisymm::drawScalar(), oofem::LTRSpace::drawScalar(), oofem::TR1_2D_SUPG2_AXI::drawScalar(), oofem::LIBeam3d2::drawScalar(), oofem::PlaneStress2d::drawScalar(), oofem::Quad1PlaneStrain::drawScalar(), oofem::NURBSPlaneStressElement::drawScalar(), oofem::TR21_2D_SUPG::drawScalar(), oofem::Quad10_2D_SUPG::drawScalar(), oofem::LSpace::drawScalar(), oofem::TrPlaneStrain::drawScalar(), oofem::TR1_2D_CBS::drawScalar(), oofem::CCTPlate::drawScalar(), oofem::TSplinePlaneStressElement::drawScalar(), oofem::TR1_2D_SUPG2::drawScalar(), oofem::TR1_2D_SUPG::drawScalar(), oofem::NURBSSpace3dElement::drawScalar(), oofem::TrPlaneStress2d::drawSpecial(), oofem::Lattice2d::drawSpecial(), oofem::LTRSpace::drawSpecial(), oofem::PlaneStress2d::drawSpecial(), oofem::Quad1PlaneStrain::drawSpecial(), oofem::LSpace::drawSpecial(), oofem::Node::drawYourself(), oofem::HuertaErrorEstimator::estimateError(), oofem::DarcyFlow::forceEquationNumbering(), oofem::StaggeredProblem::forceEquationNumbering(), oofem::SUPG::forceEquationNumbering(), forceEquationNumbering(), giveCurrentMetaStep(), giveCurrentStep(), oofem::MacroLSpace::giveInternalForcesVector(), oofem::RerShell::giveIPValue(), oofem::Beam2d::giveKappaCoeff(), giveSolutionStepWhenIcApply(), oofem::NLTransientTransportProblem::giveUnknownComponent(), oofem::DEIDynamic::giveUnknownComponent(), oofem::LinearStatic::giveUnknownComponent(), oofem::DIIDynamic::giveUnknownComponent(), oofem::AdaptiveNonLinearStatic::giveUnknownComponent(), oofem::NonLinearStatic::giveUnknownComponent(), oofem::NonLinearDynamic::giveUnknownComponent(), oofem::NlDEIDynamic::giveUnknownComponent(), oofem::NLTransientTransportProblem::giveUnknownDictHashIndx(), oofem::SUPG::giveUnknownDictHashIndx(), oofem::HellmichMaterial::initGpForNewStep(), oofem::AdaptiveNonLinearStatic::initializeAdaptiveFrom(), oofem::NodalAveragingRecoveryModel::initRegionMap(), oofem::ZZNodalRecoveryModel::initRegionMap(), oofem::SPRNodalRecoveryModel::initRegionMap(), oofem::VTKXMLExportModule::initRegionNodeNumbering(), oofem::TimeStep::isTheCurrentTimeStep(), packRemoteElementData(), oofem::EigenValueDynamic::restoreContext(), oofem::LinearStability::restoreContext(), oofem::HellmichMaterial::restoreIPContext(), oofem::StationaryTransportProblem::saveContext(), oofem::IncrementalLinearStatic::saveContext(), oofem::LinearStatic::saveContext(), oofem::NonStationaryTransportProblem::saveContext(), oofem::EigenValueDynamic::saveContext(), oofem::LinearStability::saveContext(), oofem::DIIDynamic::saveContext(), oofem::CBS::saveContext(), oofem::AdaptiveNonLinearStatic::saveContext(), oofem::SUPG::saveContext(), oofem::NonLinearStatic::saveContext(), oofem::HuertaErrorEstimator::saveContext(), oofem::NonLinearDynamic::saveContext(), oofem::NlDEIDynamic::saveContext(), saveContext(), oofem::HellmichMaterial::saveIPContext(), oofem::FE2FluidMaterialStatus::setTimeStep(), oofem::HuertaErrorEstimator::setupRefinedProblemEpilog2(), oofem::HuertaErrorEstimator::setupRefinedProblemProlog(), oofem::HuertaErrorEstimator::solveRefinedElementProblem(), oofem::HuertaErrorEstimator::solveRefinedPatchProblem(), oofem::LinearStability::solveYourself(), oofem::StaggeredProblem::solveYourself(), solveYourself(), oofem::AdaptiveNonLinearStatic::solveYourselfAt(), oofem::LinearStability::solveYourselfAt(), oofem::SUPG::solveYourselfAt(), unpackRemoteElementData(), oofem::Concrete2::updateStirrups(), and oofem::MacroLSpace::updateYourself().

Service for accessing particular problem domain.

Generates error if no such domain is defined.

Parameters:
nPointer to n-th domain is returned.
Returns:
Domain number n.

Definition at line 1716 of file engngm.C.

References _error, oofem::AList< T >::at(), domainList, and ndomains.

Referenced by oofem::PrimaryField::__evaluateAt(), oofem::AdaptiveNonLinearStatic::adaptiveRemap(), oofem::NRSolver::applyConstraintsToLoadIncrement(), oofem::NLTransientTransportProblem::applyIC(), oofem::NonStationaryTransportProblem::applyIC(), oofem::CBS::applyIC(), oofem::SUPG::applyIC(), oofem::NLTransientTransportProblem::assembleAlgorithmicPartOfRhs(), oofem::NonStationaryTransportProblem::assembleAlgorithmicPartOfRhs(), oofem::AdaptiveNonLinearStatic::assembleInitialLoadVector(), balanceLoad(), oofem::SkylineUnsym::buildInternalStructure(), oofem::DynCompRow::buildInternalStructure(), oofem::PetscSparseMtrx::buildInternalStructure(), oofem::DynCompCol::buildInternalStructure(), oofem::Skyline::buildInternalStructure(), oofem::DSSMatrix::buildInternalStructure(), oofem::SymCompCol::buildInternalStructure(), oofem::CompCol::buildInternalStructure(), oofem::StructuralEngngModel::buildReactionTable(), oofem::StationaryTransportProblem::checkConsistency(), oofem::LinearStatic::checkConsistency(), oofem::NonStationaryTransportProblem::checkConsistency(), oofem::DIIDynamic::checkConsistency(), oofem::StokesFlow::checkConsistency(), oofem::CBS::checkConsistency(), oofem::SUPG::checkConsistency(), oofem::NonLinearDynamic::checkConsistency(), checkProblemConsistency(), oofem::MatlabExportModule::computeArea(), oofem::StructuralEngngModel::computeExternalLoadReactionContribution(), oofem::XfemManager::computeFictPosition(), oofem::NlDEIDynamic::computeLoadVector(), oofem::NlDEIDynamic::computeMassMtrx(), oofem::XfemManager::computeNodeEnrichmentType(), oofem::StructuralEngngModel::computeReaction(), oofem::FE2FluidMaterialStatus::computeSize(), oofem::MacroLSpace::computeStiffnessMatrix(), oofem::StokesFlowVelocityHomogenization::computeTangent(), oofem::NLTransientTransportProblem::copyUnknownsInDictionary(), oofem::NLTransientTransportProblem::createPreviousSolutionInDofUnknownsDictionary(), oofem::FE2FluidMaterialStatus::createRVE(), oofem::ProblemCommunicator::DofManCmp(), oofem::GPInitModule::doInit(), oofem::DofManExportModule::doOutput(), oofem::GPExportModule::doOutput(), oofem::HOMExportModule::doOutput(), oofem::VTKExportModule::doOutput(), oofem::VTKXMLExportModule::doOutput(), oofem::MatlabExportModule::doOutputData(), oofem::MatlabExportModule::doOutputMesh(), oofem::MatlabExportModule::doOutputSpecials(), oofem::StokesFlow::doStepOutput(), drawElements(), drawNodes(), drawYourself(), oofem::ProblemCommunicator::ElemCmp(), oofem::LinearStatic::estimateMaxPackSize(), oofem::NonLinearStatic::estimateMaxPackSize(), oofem::NonLinearDynamic::estimateMaxPackSize(), oofem::NlDEIDynamic::estimateMaxPackSize(), oofem::SUPG::evaluateElementStabilizationCoeffs(), oofem::VTKXMLExportModule::exportCellVarAs(), oofem::VTKExportModule::exportCellVars(), oofem::POIExportModule::exportIntVarAs(), oofem::VTKExportModule::exportIntVarAs(), oofem::VTKXMLExportModule::exportIntVarAs(), oofem::POIExportModule::exportIntVars(), oofem::POIExportModule::exportPrimaryVars(), oofem::POIExportModule::exportPrimVarAs(), oofem::VTKExportModule::exportPrimVarAs(), oofem::VTKXMLExportModule::exportPrimVarAs(), oofem::DarcyFlow::forceEquationNumbering(), oofem::SUPG::forceEquationNumbering(), forceEquationNumbering(), oofem::StokesFlowVelocityHomogenization::getMeans(), oofem::StokesFlowVelocityHomogenization::giveAreaOfDomain(), oofem::StokesFlowVelocityHomogenization::giveAreaOfRVE(), oofem::XfemManager::giveDomain(), oofem::NonStationaryTransportProblem::giveDtTimeFunction(), oofem::StaggeredProblem::giveDtTimeFunction(), oofem::StructuralEngngModel::giveInternalForces(), oofem::AdaptiveNonLinearStatic::giveLoadBalancer(), oofem::NonLinearStatic::giveLoadBalancer(), oofem::NonLinearDynamic::giveLoadBalancer(), oofem::MicroMaterial::giveMacroStiffnessMatrix(), oofem::CBS::giveNextStep(), oofem::SUPG::giveNextStep(), oofem::StationaryTransportProblem::giveNumericalMethod(), oofem::DarcyFlow::giveNumericalMethod(), oofem::LinearStatic::giveNumericalMethod(), oofem::DIIDynamic::giveNumericalMethod(), oofem::NonStationaryTransportProblem::giveNumericalMethod(), oofem::EigenValueDynamic::giveNumericalMethod(), oofem::IncrementalLinearStatic::giveNumericalMethod(), oofem::LinearStability::giveNumericalMethod(), oofem::CBS::giveNumericalMethod(), oofem::StokesFlow::giveNumericalMethod(), oofem::SUPG::giveNumericalMethod(), oofem::NonLinearStatic::giveNumericalMethod(), oofem::NonLinearDynamic::giveNumericalMethod(), oofem::NlDEIDynamic::giveNumericalMethod(), oofem::LinearStability::giveNumericalMethodForLinStaticProblem(), oofem::VTKXMLExportModule::givePrimVarSmoother(), oofem::VTKExportModule::giveSmoother(), oofem::VTKXMLExportModule::giveSmoother(), oofem::StokesFlowVelocityHomogenization::handlePrescribedValues(), oofem::PetscNatural2GlobalOrdering::init(), oofem::PetscNatural2LocalOrdering::init(), oofem::oofegGraphicContext::init(), oofem::DofDistributedPrimaryField::initialize(), oofem::HOMExportModule::initialize(), oofem::AdaptiveNonLinearStatic::initializeAdaptive(), oofem::AdaptiveNonLinearStatic::initializeAdaptiveFrom(), oofem::SUPG::initializeFrom(), initializeFrom(), initStepIncrements(), oofem::XfemManager::instanciateYourself(), packDofManagers(), oofem::NonLinearStatic::packMigratingData(), oofem::NonLinearDynamic::packMigratingData(), packRemoteElementData(), oofem::NonLinearStatic::printOutputAt(), oofem::NonLinearDynamic::printOutputAt(), oofem::NlDEIDynamic::printOutputAt(), printOutputAt(), oofem::StructuralEngngModel::printReactionForces(), oofem::NonLinearStatic::proceedStep(), oofem::NonLinearDynamic::proceedStep(), oofem::XfemManager::restoreContext(), restoreContext(), oofem::StokesFlowVelocityHomogenization::rveGiveCharacteristicData(), saveContext(), oofem::oofegGraphicContext::setActiveProblem(), oofem::MicroMaterial::setMacroProperties(), oofem::FETICommunicator::setUpCommunicationMaps(), oofem::ProblemCommunicator::setUpCommunicationMapsForElementCut(), oofem::ProblemCommunicator::setUpCommunicationMapsForNodeCut(), oofem::ProblemCommunicator::setUpCommunicationMapsForRemoteElementMode(), oofem::StructuralEngngModel::showSparseMtrxStructure(), oofem::NonLinearStatic::showSparseMtrxStructure(), oofem::NonLinearDynamic::showSparseMtrxStructure(), oofem::HuertaErrorEstimator::solveRefinedElementProblem(), oofem::HuertaErrorEstimator::solveRefinedPatchProblem(), oofem::DarcyFlow::solveYourselfAt(), oofem::NLTransientTransportProblem::solveYourselfAt(), oofem::StationaryTransportProblem::solveYourselfAt(), oofem::IncrementalLinearStatic::solveYourselfAt(), oofem::DEIDynamic::solveYourselfAt(), oofem::LinearStatic::solveYourselfAt(), oofem::NonStationaryTransportProblem::solveYourselfAt(), oofem::EigenValueDynamic::solveYourselfAt(), oofem::DIIDynamic::solveYourselfAt(), oofem::AdaptiveNonLinearStatic::solveYourselfAt(), oofem::StokesFlow::solveYourselfAt(), oofem::LinearStability::solveYourselfAt(), oofem::CBS::solveYourselfAt(), oofem::SUPG::solveYourselfAt(), oofem::NlDEIDynamic::solveYourselfAt(), oofem::EigenValueDynamic::terminate(), oofem::LinearStability::terminate(), oofem::LinearStability::terminateLinStatic(), unpackDofManagers(), oofem::NonLinearStatic::unpackMigratingData(), oofem::NonLinearDynamic::unpackMigratingData(), unpackRemoteElementData(), oofem::DofDistributedPrimaryField::update(), oofem::DarcyFlow::updateComponent(), oofem::StokesFlow::updateComponent(), oofem::NonLinearDynamic::updateComponent(), oofem::SUPG::updateDofUnknownsDictionary_corrector(), oofem::SUPG::updateDofUnknownsDictionary_predictor(), oofem::AdaptiveLinearStatic::updateDomainLinks(), oofem::StationaryTransportProblem::updateDomainLinks(), oofem::LinearStatic::updateDomainLinks(), oofem::NonStationaryTransportProblem::updateDomainLinks(), oofem::CBS::updateDomainLinks(), oofem::AdaptiveNonLinearStatic::updateDomainLinks(), oofem::SUPG::updateDomainLinks(), oofem::NonLinearStatic::updateDomainLinks(), oofem::NonLinearDynamic::updateDomainLinks(), oofem::SUPG::updateElementsForNewInterfacePosition(), oofem::NLTransientTransportProblem::updateInternalState(), oofem::StructuralEngngModel::updateInternalState(), oofem::StationaryTransportProblem::updateInternalState(), oofem::StokesFlow::updateInternalState(), oofem::CBS::updateInternalState(), oofem::NonStationaryTransportProblem::updateInternalState(), oofem::SUPG::updateInternalState(), oofem::SUPG::updateSolutionVectors(), oofem::SUPG::updateSolutionVectors_predictor(), oofem::AdaptiveLinearStatic::updateYourself(), oofem::NonStationaryTransportProblem::updateYourself(), oofem::FE2FluidMaterialStatus::updateYourself(), and updateYourself().

DataReader * oofem::EngngModel::GiveDomainDataReader ( int  domainNum,
int  domainSerNum,
ContextFileMode  cmode 
)

Creates new DataReader for given domain.

Returns nonzero on success.

Parameters:
domainNumDomain number.
domainSerNumDomain serial number.
cmodeDetermines the i/o mode of context file.

Definition at line 1658 of file engngm.C.

References _error, and coreOutputFileName.

Referenced by oofem::AdaptiveNonLinearStatic::initializeAdaptive(), and oofem::Domain::restoreContext().

virtual ErrorEstimator* oofem::EngngModel::giveDomainErrorEstimator ( int  n) [inline, virtual]

Service for accessing ErrorEstimator corresponding to particular domain.

Definition at line 353 of file engngm.h.

References defaultErrEstimator.

Referenced by oofem::Domain::giveErrorEstimator(), oofem::NonLinearStatic::unpackMigratingData(), and oofem::NonLinearDynamic::unpackMigratingData().

void oofem::EngngModel::giveElementCharacteristicMatrix ( FloatMatrix answer,
int  num,
CharType  type,
TimeStep tStep,
Domain domain 
) [virtual]

Returns characteristic matrix of element.

The Element::giveCharacteristicMatrix function should not be called directly, because EngngModel may require some special modification of characteristic matrices supported on element level. But default implementation does the direct call to element level.

Parameters:
answerCharacteristic matrix.
numElement number.
typeType of matrix requested.
tStepTime step when response is computed.
domainSource domain.

Reimplemented in oofem::SUPG, oofem::NonLinearDynamic, oofem::NonStationaryTransportProblem, and oofem::DIIDynamic.

Definition at line 1307 of file engngm.C.

References oofem::Element::giveCharacteristicMatrix(), and oofem::Domain::giveElement().

Referenced by assemble(), oofem::StationaryTransportProblem::assembleDirichletBcRhsVector(), and oofem::HuertaErrorEstimator::solveRefinedElementProblem().

void oofem::EngngModel::giveElementCharacteristicVector ( FloatArray answer,
int  num,
CharType  type,
ValueModeType  mode,
TimeStep tStep,
Domain domain 
) [virtual]

Returns characteristic vector of element.

The Element::giveCharacteristicVector function should not be called directly, because EngngModel may require some special modification of characteristic vectors supported on element level. But default implementation does the direct call to element level.

Parameters:
answerCharacteristic vector.
numElement number.
typeType of vector requested.
modeMode of unknown (total, incremental, rate of change).
tStepTime step when response is computed.
domainSource domain.

Reimplemented in oofem::SUPG.

Definition at line 1314 of file engngm.C.

References oofem::Element::giveCharacteristicVector(), and oofem::Domain::giveElement().

Referenced by assembleVectorFromElements().

virtual double oofem::EngngModel::giveEndOfTimeOfInterest ( ) [inline, virtual]

Returns end of time interest (time corresponding to end of time integration).

Reimplemented in oofem::IncrementalLinearStatic.

Definition at line 719 of file engngm.h.

Referenced by oofem::RheoChainMaterial::giveEndOfTimeOfInterest().

Returns reference to itself -> required by communicator.h.

Definition at line 1132 of file engngm.h.

virtual bool oofem::EngngModel::giveEquationScalingFlag ( ) [inline, virtual]

Returns the Equation scaling flag, which is used to indicate that governing equation(s) are scaled, or non-dimensionalized.

Reimplemented in oofem::SUPG, and oofem::CBS.

Definition at line 1096 of file engngm.h.

Referenced by oofem::NewtonianFluidMaterial::checkConsistency(), oofem::NonlinearFluidMaterial::checkConsistency(), oofem::BinghamFluidMaterial2::checkConsistency(), and oofem::Node::initializeFrom().

Returns receiver's export module manager.

Definition at line 726 of file engngm.h.

References exportModuleManager.

Referenced by oofem::StaggeredProblem::doStepOutput(), oofem::StokesFlow::solveYourselfAt(), and updateDomainLinks().

virtual fMode oofem::EngngModel::giveFormulation ( ) [inline, virtual]
virtual LoadBalancer* oofem::EngngModel::giveLoadBalancer ( ) [inline, virtual]

Returns reference to receiver's load balancer.

Reimplemented in oofem::NonLinearDynamic, oofem::NonLinearStatic, and oofem::AdaptiveNonLinearStatic.

Definition at line 1121 of file engngm.h.

Referenced by balanceLoad(), oofem::WallClockLoadBalancerMonitor::decide(), and updateAttributes().

Returns reference to receiver's load balancer monitor.

Reimplemented in oofem::NonLinearDynamic, oofem::NonLinearStatic, and oofem::AdaptiveNonLinearStatic.

Definition at line 1123 of file engngm.h.

Referenced by balanceLoad(), oofem::ParmetisLoadBalancer::calculateLoadTransfer(), and updateAttributes().

virtual MaterialInterface* oofem::EngngModel::giveMaterialInterface ( int  n) [inline, virtual]
virtual int oofem::EngngModel::giveNewEquationNumber ( int  domain,
DofIDItem   
) [inline, virtual]

Increases number of equations of receiver's domain and returns newly created equation number.

Used mainly by DofManagers to allocate their corresponding equation number if it is not currently allocated. The DofIDItem parameter allows to distinguish between several possible governing equations, that can be numbered separately.

Reimplemented in oofem::SUPG, and oofem::CBS.

Definition at line 737 of file engngm.h.

References oofem::IntArray::at(), and domainNeqs.

Referenced by oofem::ActiveDof::askNewEquationNumber(), and oofem::MasterDof::askNewEquationNumber().

virtual int oofem::EngngModel::giveNewPrescribedEquationNumber ( int  domain,
DofIDItem   
) [inline, virtual]

Increases number of prescribed equations of receiver's domain and returns newly created equation number.

Used mainly by DofManagers to allocate their corresponding equation number if it is not currently allocated. The DofIDItem parameter allows to distinguish between several possible governing equations, that can be numbered separately.

Reimplemented in oofem::SUPG, and oofem::CBS.

Definition at line 745 of file engngm.h.

References oofem::IntArray::at(), and domainPrescribedNeqs.

Referenced by oofem::ActiveDof::askNewEquationNumber(), and oofem::MasterDof::askNewEquationNumber().

virtual TimeStep* oofem::EngngModel::giveNextStep ( ) [inline, virtual]
int oofem::EngngModel::giveNumberOfDomainEquations ( int  di,
EquationID  eid 
) [virtual]

Returns total number of equations in active (current time step) time step.

The UnknownType parameter allows to distinguish between several possible governing equations, that can be numbered separately.

Todo:
This function is misleading, it will sum equations from all domains which isn't very useful (it works because all problems calling this only has one domain).

Reimplemented in oofem::SUPG, and oofem::CBS.

Definition at line 503 of file engngm.C.

References equationNumberingCompleted, forceEquationNumbering(), and numberOfEquations.

Referenced by oofem::NonStationaryTransportProblem::applyIC(), assembleExtrapolatedForces(), oofem::NonLinearStatic::assembleIncrementalReferenceLoadVectors(), oofem::NonLinearDynamic::assembleIncrementalReferenceLoadVectors(), oofem::AdaptiveNonLinearStatic::assembleInitialLoadVector(), oofem::DIIDynamic::assembleLoadVector(), oofem::PetscSparseMtrx::buildInternalStructure(), oofem::XfemManager::computeFictPosition(), oofem::NlDEIDynamic::computeLoadVector(), oofem::NlDEIDynamic::computeMassMtrx(), oofem::StokesFlowVelocityHomogenization::computeTangent(), oofem::DarcyFlow::DumpMatricesToFile(), oofem::PetscContext::giveNumberOfGlobalEqs(), oofem::PetscContext::giveNumberOfLocalEqs(), oofem::PetscContext::giveNumberOfNaturalEqs(), oofem::PetscNatural2GlobalOrdering::init(), oofem::PetscNatural2LocalOrdering::init(), oofem::DofDistributedPrimaryField::initialize(), oofem::PrimaryField::initialize(), oofem::NonLinearStatic::proceedStep(), oofem::NonLinearDynamic::proceedStep(), oofem::LinearStatic::solveYourself(), oofem::NonLinearStatic::solveYourself(), oofem::NonLinearDynamic::solveYourself(), oofem::NlDEIDynamic::solveYourself(), oofem::DarcyFlow::solveYourselfAt(), oofem::NLTransientTransportProblem::solveYourselfAt(), oofem::StationaryTransportProblem::solveYourselfAt(), oofem::IncrementalLinearStatic::solveYourselfAt(), oofem::DEIDynamic::solveYourselfAt(), oofem::LinearStatic::solveYourselfAt(), oofem::NonStationaryTransportProblem::solveYourselfAt(), oofem::EigenValueDynamic::solveYourselfAt(), oofem::DIIDynamic::solveYourselfAt(), oofem::StokesFlow::solveYourselfAt(), oofem::LinearStability::solveYourselfAt(), oofem::NonLinearDynamic::solveYourselfAt(), oofem::NlDEIDynamic::solveYourselfAt(), oofem::DIIDynamic::timesMtrx(), oofem::NonLinearDynamic::timesMtrx(), oofem::NonLinearStatic::unpackMigratingData(), oofem::NonLinearDynamic::unpackMigratingData(), oofem::NonLinearDynamic::updateComponent(), oofem::DIIDynamic::updateYourself(), and oofem::NonLinearDynamic::updateYourself().

virtual int oofem::EngngModel::giveNumberOfFirstStep ( ) [inline, virtual]

Return number of meta steps.

Definition at line 713 of file engngm.h.

References nMetaSteps.

Referenced by oofem::StaggeredProblem::solveYourself().

Returns number of prescribed equations for given domain in active (current time step) time step.

The UnknownType parameter allows to distinguish between several possible governing equations, that can be numbered separately.

Reimplemented in oofem::SUPG, and oofem::CBS.

Definition at line 552 of file engngm.C.

References oofem::IntArray::at(), domainPrescribedNeqs, equationNumberingCompleted, and forceEquationNumbering().

Referenced by oofem::StructuralEngngModel::buildReactionTable(), oofem::StructuralEngngModel::computeExternalLoadReactionContribution(), oofem::PrescribedGradient::computeField(), oofem::MixedGradientPressureDirichlet::computeFields(), oofem::StructuralEngngModel::computeReaction(), oofem::StructuralEngngModel::printReactionForces(), and oofem::PrescribedGradient::updateCoefficientMatrix().

virtual int oofem::EngngModel::giveNumberOfSlaveProblems ( ) [inline, virtual]

Returns number of slave problems.

Reimplemented in oofem::StaggeredProblem.

Definition at line 1091 of file engngm.h.

virtual int oofem::EngngModel::giveNumberOfTimeStepWhenIcApply ( ) [inline, virtual]
virtual NumericalMethod* oofem::EngngModel::giveNumericalMethod ( MetaStep mStep) [inline, virtual]

Definition at line 608 of file engngm.h.

References communicator, nonlocCommunicator, PC_default, and PC_nonlocal.

Referenced by oofem::Subdivision::packRemoteElements().

Returns domain mode.

Definition at line 413 of file engngm.h.

References pMode.

Referenced by Instanciate_init().

Returns scale in multiscale simulation.

Definition at line 420 of file engngm.h.

References pScale.

Referenced by oofem::NRSolver::checkConvergence(), oofem::NRSolver::solve(), oofem::StokesFlow::solveYourselfAt(), and oofem::Tr21Stokes::Tr21Stokes().

int oofem::EngngModel::giveRank ( ) [inline]

Returns domain rank in a group of collaborating processes (0..groupSize-1)

Definition at line 1126 of file engngm.h.

References rank.

Referenced by balanceLoad(), oofem::ParmetisLoadBalancer::calculateLoadTransfer(), oofem::NlDEIDynamic::computeMassMtrx(), oofem::FE2FluidMaterialStatus::createRVE(), oofem::WallClockLoadBalancerMonitor::decide(), oofem::LoadBalancer::deleteRemoteDofManagers(), oofem::LoadBalancer::deleteRemoteElements(), oofem::VTKXMLExportModule::doOutput(), oofem::HuertaErrorEstimator::estimateError(), oofem::FETISolver::estimateMaxPackSize(), exchangeRemoteElementData(), oofem::ExportModule::giveOutputBaseFileName(), oofem::MatlabExportModule::giveOutputStream(), oofem::DofManager::givePartitionsConnectivitySize(), oofem::Subdivision::giveRank(), oofem::PetscNatural2GlobalOrdering::init(), oofem::NonlocalMaterialWTP::init(), oofem::PetscContext::init(), oofem::NodalAveragingRecoveryModel::initCommMaps(), oofem::ZZNodalRecoveryModel::initCommMaps(), oofem::SPRNodalRecoveryModel::initCommMaps(), oofem::ParmetisLoadBalancer::initGlobalParmetisElementNumbering(), oofem::DarcyFlow::initializeFrom(), oofem::LinearStatic::initializeFrom(), oofem::DirectErrorIndicatorRC::initializeFrom(), oofem::NonLinearStatic::initializeFrom(), oofem::NonLinearDynamic::initializeFrom(), oofem::NlDEIDynamic::initializeFrom(), oofem::PetscOrdering_Base::isLocal(), oofem::DofManager::isLocal(), oofem::ParmetisLoadBalancer::labelDofManagers(), oofem::NonlocalMaterialWTP::migrate(), oofem::LoadBalancer::migrateLoad(), oofem::LoadBalancer::packMigratingData(), oofem::NonlocalMaterialWTP::packMigratingElementDependencies(), oofem::NonlocalMaterialWTP::packRemoteElements(), oofem::ParmetisLoadBalancer::packSharedDmanPartitions(), oofem::LoadBalancer::printStatistics(), oofem::SPRNodalRecoveryModel::recoverValues(), oofem::FETISolver::setUpCommunicationMaps(), oofem::FETISolver::solve(), oofem::HuertaErrorEstimator::solveRefinedElementProblem(), oofem::HuertaErrorEstimator::solveRefinedPatchProblem(), oofem::LinearStatic::solveYourself(), oofem::NonLinearStatic::solveYourself(), oofem::NonLinearDynamic::solveYourself(), oofem::NlDEIDynamic::solveYourself(), oofem::NonLinearDynamic::solveYourselfAt(), oofem::LoadBalancer::unpackMigratingData(), oofem::NonlocalMaterialWTP::unpackMigratingElementDependencies(), oofem::NonlocalMaterialWTP::unpackRemoteElements(), oofem::Subdivision::unpackRemoteElements(), oofem::ParmetisLoadBalancer::unpackSharedDmanPartitions(), updateSharedDofManagers(), updateSharedPrescribedDofManagers(), and oofem::FETISolver::~FETISolver().

virtual EngngModel* oofem::EngngModel::giveSlaveProblem ( int  i) [inline, virtual]

Returns i-th slave problem.

Reimplemented in oofem::StaggeredProblem.

Definition at line 1093 of file engngm.h.

Referenced by oofem::oofegGraphicContext::getActiveProblem(), and oofem::oofegGraphicContext::setActiveProblem().

Returns the solution step when Initial Conditions (IC) apply.

Reimplemented in oofem::SUPG, oofem::StaggeredProblem, oofem::CBS, and oofem::NonStationaryTransportProblem.

Definition at line 709 of file engngm.h.

References giveCurrentStep(), master, and stepWhenIcApply.

Returns reference to receiver timer (EngngModelTimer).

Definition at line 728 of file engngm.h.

References timer.

Referenced by oofem::WallClockLoadBalancerMonitor::decide(), and oofem::LoadBalancer::printStatistics().

Provides backward mapping between numerical component and characteristic component on EngngModel level.

Definition at line 516 of file engngm.h.

virtual double oofem::EngngModel::giveUnknownComponent ( EquationID  ,
ValueModeType  ,
TimeStep ,
Domain ,
Dof  
) [inline, virtual]

Returns requested unknown.

Unknown at give time step is characterized by its type and mode and by its equation number. This function is used by Dofs, when they are requested for their associated unknowns.

See also:
Dof::giveUnknown

Reimplemented in oofem::NlDEIDynamic, oofem::NonLinearDynamic, oofem::NonLinearStatic, oofem::SUPG, oofem::CBS, oofem::LinearStability, oofem::StokesFlow, oofem::AdaptiveNonLinearStatic, oofem::DIIDynamic, oofem::EigenValueDynamic, oofem::NonStationaryTransportProblem, oofem::LinearStatic, oofem::DEIDynamic, oofem::IncrementalLinearStatic, oofem::DarcyFlow, oofem::NLTransientTransportProblem, and oofem::StationaryTransportProblem.

Definition at line 523 of file engngm.h.

Referenced by oofem::TR1_2D_SUPG::computeCriticalLEPlicTimeStep(), oofem::Tet1_3D_SUPG::computeCriticalTimeStep(), oofem::TR1_2D_CBS::computeCriticalTimeStep(), oofem::TR1_2D_CBS::computeDensityRhsPressureTerms(), oofem::TR1_2D_CBS::computeDensityRhsVelocityTerms(), oofem::TR1_2D_SUPG_AXI::computeDiffusionDerivativeTerm_MB(), oofem::TR1_2D_SUPG2_AXI::computeDiffusionDerivativeTerm_MB(), oofem::SUPGElement2::computeDiffusionDerivativeTerm_MB(), oofem::TR1_2D_SUPG::computeDiffusionDerivativeTerm_MB(), oofem::TR1_2D_SUPG2::computeDiffusionDerivativeTerm_MB(), oofem::TR1_2D_SUPG_AXI::computeDiffusionDerivativeTerm_MC(), oofem::TR1_2D_SUPG2_AXI::computeDiffusionDerivativeTerm_MC(), oofem::TR1_2D_SUPG_AXI::computeDiffusionTerm_MB(), oofem::TR1_2D_SUPG2_AXI::computeDiffusionTerm_MB(), oofem::SUPGElement2::computeDiffusionTerm_MB(), oofem::TR1_2D_SUPG::computeDiffusionTerm_MB(), oofem::TR1_2D_SUPG2::computeDiffusionTerm_MB(), oofem::TR1_2D_SUPG_AXI::computeDiffusionTerm_MC(), oofem::TR1_2D_SUPG2_AXI::computeDiffusionTerm_MC(), oofem::TR1_2D_CBS::computeDiffusionTermsI(), oofem::TR1_2D_CBS::computePrescribedTractionPressure(), and oofem::TractionPressureBC::give().

virtual double oofem::EngngModel::giveUnknownComponent ( UnknownType  ,
ValueModeType  ,
TimeStep ,
Domain ,
Dof  
) [inline, virtual]
virtual int oofem::EngngModel::giveUnknownDictHashIndx ( EquationID  type,
ValueModeType  mode,
TimeStep stepN 
) [inline, virtual]

This method is responsible for computing unique dictionary id (ie hash value) from given equationId, valueModeType and time step.

This function is used by particular dofs to access unknown identified by given parameters from its dictionary using computed index. Usually the hash algorithm should produce index that depend on time step relatively to actual one to avoid storage of complete history.

Reimplemented in oofem::SUPG, oofem::NonLinearDynamic, oofem::NonLinearStatic, oofem::IncrementalLinearStatic, oofem::NonStationaryTransportProblem, and oofem::NLTransientTransportProblem.

Definition at line 844 of file engngm.h.

Referenced by oofem::MasterDof::giveUnknownsDictionaryValue(), and oofem::MasterDof::updateUnknownsDictionary().

Returns UnknownNUmberingScheme related to given EquationID.

Definition at line 848 of file engngm.h.

References defaultNumberingScheme.

Referenced by oofem::PrimaryField::giveUnknownValue().

virtual double oofem::EngngModel::giveVariableScale ( VarScaleType  varId) [inline, virtual]

Return true if XfemManager at a particular position is available.

Definition at line 1751 of file engngm.C.

References oofem::AList< T >::includes().

void oofem::EngngModel::init ( ) [virtual]

Initializes the receiver state.

Default implementation calls initModuleManager::doInit service to invoke initialization by individual init modules.

Definition at line 1877 of file engngm.C.

References oofem::InitModuleManager::doInit(), and initModuleManager.

Referenced by oofem::DEIDynamic::solveYourselfAt().

virtual int oofem::EngngModel::initializeAdaptive ( int  stepNumber) [inline, virtual]

Initializes the newly generated discretization state according to previous solution.

This process should typically include restoring old solution, instanciating newly generated domain(s) and by mapping procedure.

Reimplemented in oofem::StaggeredProblem, oofem::AdaptiveNonLinearStatic, and oofem::AdaptiveLinearStatic.

Definition at line 482 of file engngm.h.

void oofem::EngngModel::initializeCommMaps ( bool  forceInit = false)

Initializes receiver according to object description in input reader.

InitString can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record.

Reimplemented in oofem::NlDEIDynamic, oofem::NonLinearDynamic, oofem::NonLinearStatic, oofem::SUPG, oofem::CBS, oofem::StaggeredProblem, oofem::StokesFlow, oofem::LinearStability, oofem::NonStationaryTransportProblem, oofem::LinearStatic, oofem::AdaptiveNonLinearStatic, oofem::EigenValueDynamic, oofem::DIIDynamic, oofem::DEIDynamic, oofem::StationaryTransportProblem, oofem::IncrementalLinearStatic, oofem::DarcyFlow, oofem::AdaptiveLinearStatic, and oofem::NLTransientTransportProblem.

Definition at line 380 of file engngm.C.

References _error, contextOutputStep, oofem::CreateUsrDefErrorEstimator(), defaultErrEstimator, force_load_rebalance_in_first_step, giveDomain(), oofem::IFT_EngngModel_contextoutputstep, oofem::IFT_EngngModel_eetype, oofem::IFT_EngngModel_nmsteps, oofem::IFT_EngngModel_nonLinFormulation, oofem::IFT_EngngModel_nsteps, oofem::IFT_EngngModel_nxfemman, oofem::IFT_EngngModel_parallelflag, oofem::IFT_EngngModel_profileOpt, oofem::IFT_EngngModel_renumberFlag, oofem::IFT_NonLinearStatic_forceloadBalancingFlag, oofem::IFT_NonLinearStatic_loadBalancingFlag, oofem::ErrorEstimator::initializeFrom(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, oofem::IRRT_OK, loadBalancingFlag, nMetaSteps, nonLinFormulation, numberOfSteps, nxfemman, parallelFlag, profileOpt, renumberFlag, and setUDContextOutputMode().

Referenced by instanciateYourself().

virtual void oofem::EngngModel::initializeYourself ( TimeStep tStep) [inline, virtual]

Provides the opportunity to initialize state variables stored in element integration points according to initial conditions using function initializeYourself() on element level.

Should be called when current time step is time step when IC will apply (see EngngModel::giveNumberOfTimeStepWhenIcApply) somewhere from solveYourselfAt function). Implementation must be provided. Default implementation is empty.

Reimplemented in oofem::StaggeredProblem.

Definition at line 476 of file engngm.h.

Update e-model attributes attributes according to step metaStep attributes.

Calls updateAttributes. At the end the meta step input reader finish() service is called in order to allow for unread attribute check.

Definition at line 731 of file engngm.C.

References oofem::InputRecord::finish(), oofem::MetaStep::giveAttributesRecord(), and updateAttributes().

Referenced by oofem::MacroLSpace::computeStiffnessMatrix(), oofem::StaggeredProblem::solveYourself(), solveYourself(), and oofem::StokesFlow::solveYourselfAt().

Request domain rank and problem size.

Definition at line 1885 of file engngm.C.

References numProcs, oofem::OOFEM_LOG_RELEVANT(), processor_name, and rank.

Referenced by setParallelMode().

Creates PETSc contexts.

Must be implemented by derived classes since the governing equation type is required for context creation.

Reimplemented in oofem::NonLinearDynamic, oofem::NonLinearStatic, oofem::SUPG, oofem::StructuralEngngModel, oofem::StokesFlow, oofem::EigenValueDynamic, oofem::DarcyFlow, and oofem::StationaryTransportProblem.

Definition at line 1775 of file engngm.C.

Referenced by Instanciate_init().

Initializes solution of new time step.

Default implementation resets all internal history variables (in integration points of elements) to previously reached equilibrium values. Can be used for time step restart.

Definition at line 1332 of file engngm.C.

References oofem::Element_remote, giveDomain(), oofem::Domain::giveElement(), oofem::Domain::giveNumberOfElements(), oofem::Element::giveParallelMode(), oofem::Element::initForNewStep(), and ndomains.

Referenced by oofem::AdaptiveNonLinearStatic::adaptiveRemap(), oofem::AdaptiveNonLinearStatic::initializeAdaptive(), restoreContext(), oofem::NRSolver2::solve(), and oofem::CylindricalALM::solve().

void oofem::EngngModel::Instanciate_init ( const char *  dataOutputFileName,
int  ndomains 
)

Initialization of the receiver state (opening the default output stream, empty domain creation, initialization of PETSc context, etc) before Initialization form DataReader.

Called at the beginning of instanciateYourself.

Parameters:
dataOutputFileNameName of default output stream
ndomainsnumber of receiver domains

Definition at line 272 of file engngm.C.

References _error2, oofem::_postProcessor, coreOutputFileName, domainList, domainNeqs, domainPrescribedNeqs, giveProblemMode(), oofem::AList< T >::growTo(), initPetscContexts(), ndomains, outputStream, oofem::AList< T >::put(), and oofem::IntArray::resize().

Referenced by instanciateYourself().

Instanciate default metastep, if nmsteps is zero.

Reimplemented in oofem::StaggeredProblem.

Definition at line 479 of file engngm.C.

References _error, oofem::AList< T >::at(), giveNumberOfFirstStep(), oofem::AList< T >::growTo(), nMetaSteps, numberOfSteps, oofem::OOFEM_LOG_RELEVANT(), and oofem::AList< T >::put().

Referenced by instanciateYourself().

Instanciate problem domains by calling their instanciateYourself() service.

Definition at line 434 of file engngm.C.

References oofem::AList< T >::at(), domainList, oofem::Domain::instanciateYourself(), ndomains, and oofem::Domain::postInitialize().

Referenced by instanciateYourself().

int oofem::EngngModel::instanciateYourself ( DataReader dr,
InputRecord ir,
const char *  outFileName,
const char *  desc 
) [virtual]
virtual int oofem::EngngModel::isIncremental ( ) [inline, virtual]

Returns nonzero if receiver does incremental analysis.

Reimplemented in oofem::NonLinearDynamic, oofem::NonLinearStatic, and oofem::StaggeredProblem.

Definition at line 1068 of file engngm.h.

Referenced by oofem::RerShell::printOutputAt().

bool oofem::EngngModel::isParallel ( ) [inline]

Returns true if receiver in parallel mode.

Definition at line 1072 of file engngm.h.

References parallelFlag.

Referenced by oofem::PetscContext::accumulate(), oofem::AdaptiveNonLinearStatic::adaptiveRemap(), oofem::PetscSparseMtrx::assemble(), assembleVector(), oofem::PetscSparseMtrx::buildInternalStructure(), oofem::NRSolver::checkConvergence(), oofem::FE2FluidMaterialStatus::createRVE(), oofem::PetscContext::createVecGlobal(), oofem::VTKXMLExportModule::doOutput(), exchangeRemoteElementData(), oofem::StructuralEngngModel::giveInternalForces(), oofem::Domain::giveNextFreeDofID(), oofem::PetscContext::giveNumberOfGlobalEqs(), oofem::PetscContext::giveNumberOfLocalEqs(), oofem::LinearStatic::giveNumericalMethod(), oofem::ExportModule::giveOutputBaseFileName(), oofem::PetscContext::init(), oofem::DarcyFlow::initializeFrom(), oofem::LinearStatic::initializeFrom(), oofem::NonLinearStatic::initializeFrom(), oofem::NonLinearDynamic::initializeFrom(), instanciateYourself(), oofem::PetscContext::isLocal(), oofem::PetscContext::localDotProduct(), oofem::PetscContext::localNorm(), oofem::PetscContext::naturalDotProduct(), oofem::PetscContext::naturalNorm(), oofem::PetscContext::PetscContext(), oofem::NodalAveragingRecoveryModel::recoverValues(), oofem::ZZNodalRecoveryModel::recoverValues(), oofem::PetscContext::scatterG2N(), oofem::PetscContext::scatterL2G(), oofem::PetscContext::scatterN2G(), oofem::LinearStatic::solveYourself(), oofem::NonLinearStatic::solveYourself(), oofem::NonLinearDynamic::solveYourself(), oofem::NonLinearDynamic::solveYourselfAt(), oofem::PetscSparseMtrx::times(), oofem::PetscSparseMtrx::timesT(), updateSharedDofManagers(), and updateSharedPrescribedDofManagers().

void oofem::EngngModel::letOutputBaseFileNameBe ( const std::string &  src) [inline]

Sets the base output file name.

See also:
giveOutputBaseFileName
Parameters:
srcNew output file name.

Definition at line 377 of file engngm.h.

References dataOutputFileName.

Referenced by oofem::FE2FluidMaterialStatus::createRVE(), oofem::RVEStokesFlowMaterialStatus::exportFilter(), and oofem::RVEStokesFlow::exportFilter().

int oofem::EngngModel::packDofManagers ( FloatArray src,
ProcessCommunicator processComm,
bool  prescribedEquations 
) [protected]

Packing function for vector values of DofManagers.

Packs vector values of shared/remote DofManagers into send communication buffer of given process communicator.

Parameters:
processCommTask communicator.
srcSource vector.
prescribedEquationsTrue if src uses prescribed equations numbering.
Returns:
Nonzero if successful.
Todo:
Must fix: Internal dofmanagers in xfem and bc

Definition at line 2133 of file engngm.C.

References oofem::Dof::__giveEquationNumber(), oofem::Dof::__givePrescribedEquationNumber(), oofem::IntArray::at(), oofem::FloatArray::at(), oofem::DofManager::giveDof(), oofem::Domain::giveDofManager(), giveDomain(), oofem::DofManager::giveNumberOfDofs(), oofem::ProcessCommunicator::giveProcessCommunicatorBuff(), oofem::IntArray::giveSize(), oofem::ProcessCommunicator::giveToSendMap(), oofem::Dof::isPrimaryDof(), and oofem::ProcessCommunicatorBuff::packDouble().

Referenced by packDofManagers(), packPrescribedDofManagers(), and updateSharedDofManagers().

Packing function for vector values of DofManagers.

Packs vector values of shared/remote DofManagers into send communication buffer of given process communicator.

Parameters:
processCommTask communicator.
srcSource vector.
Returns:
Nonzero if successful.

Definition at line 2119 of file engngm.C.

References packDofManagers().

virtual void oofem::EngngModel::packMigratingData ( TimeStep ) [inline, protected, virtual]

Packs receiver data when rebalancing load.

When rebalancing happens, the local numbering will be lost on majority of processors. Instead of identifying values of solution vectors that have to be send/received and then performing renumbering, all solution vectors are assumed to be stored in dof dictionaries before data migration. Then dofs will take care themselves for packing and unpacking. After data migration and local renumbering, the solution vectors will be restored from dof dictionary data back.

Reimplemented in oofem::NonLinearDynamic, and oofem::NonLinearStatic.

Definition at line 1012 of file engngm.h.

Referenced by balanceLoad().

Packing function for vector values of DofManagers.

Packs vector values of shared/remote prescribed DofManagers into send communication buffer of given process communicator.

Parameters:
processCommTask communicator.
srcSource vector.
Returns:
Nonzero if successful.

Definition at line 2126 of file engngm.C.

References packDofManagers().

Referenced by updateSharedPrescribedDofManagers().

Packs data of local element to be received by their remote counterpart on remote partitions.

Remote elements are introduced when nonlocal constitutive models are used, in order to allow local averaging procedure (remote elements, which are involved in averaging on local partition are mirrored on this local partition) instead of implementing inefficient fine-grain communication. Remote element data are exchanged only if necessary and once for all of them. Current implementation calls packUnknowns service for all elements listed in given process communicator send map.

Parameters:
processCommCorresponding process communicator.
Returns:
Nonzero if successful.

Definition at line 2079 of file engngm.C.

References oofem::IntArray::at(), giveCurrentStep(), giveDomain(), oofem::Domain::giveElement(), oofem::ProcessCommunicator::giveProcessCommunicatorBuff(), oofem::ProcessCommunicatorBuff::giveSendBuff(), oofem::IntArray::giveSize(), and oofem::ProcessCommunicator::giveToSendMap().

Referenced by exchangeRemoteElementData().

virtual void oofem::EngngModel::printDofOutputAt ( FILE *  stream,
Dof iDof,
TimeStep atTime 
) [pure virtual]

DOF printing routine.

Called by DofManagers to print Dof specific part. Dof class provides component printing routines, but emodel is responsible for what will be printed at DOF level.

Parameters:
streamoutput stream
iDofdof to be processed
atTimesolution step

Implemented in oofem::NlDEIDynamic, oofem::SUPG, oofem::CBS, oofem::NonLinearDynamic, oofem::StaggeredProblem, oofem::StokesFlow, oofem::LinearStability, oofem::NonStationaryTransportProblem, oofem::EigenValueDynamic, oofem::DIIDynamic, oofem::IncrementalLinearStatic, oofem::LinearStatic, oofem::DEIDynamic, oofem::StationaryTransportProblem, and oofem::DarcyFlow.

Referenced by oofem::DofManager::printOutputAt().

void oofem::EngngModel::printOutputAt ( FILE *  file,
TimeStep tStep 
) [virtual]

Prints state of receiver. Useful for debugging.

Reimplemented in oofem::StaggeredProblem.

Definition at line 878 of file engngm.C.

References giveClassName(), giveNumberOfSteps(), and numberOfEquations.

virtual bool oofem::EngngModel::requiresEquationRenumbering ( TimeStep tStep) [inline, virtual]

Returns true if equation renumbering is required for given solution step.

This may of course change the number of equation and in general there is no guarantee that for a certain dof the same equation will be assigned. So the use of DOF unknowns dictionaries is generally recommended.

Reimplemented in oofem::IncrementalLinearStatic, and oofem::NonStationaryTransportProblem.

Definition at line 829 of file engngm.h.

References renumberFlag.

Referenced by oofem::StaggeredProblem::forceEquationNumbering(), oofem::StaggeredProblem::solveYourself(), and solveYourself().

virtual int oofem::EngngModel::requiresUnknownsDictionaryUpdate ( ) [inline, virtual]

Indicates if EngngModel requires Dofs dictionaries to be updated.

If EngngModel does not support changes of static system, the dof forwards the requests for its unknowns to EngngModel, where unknowns are naturally kept. This is possible, because dof equation number is same during whole solution. But when changes of static system are allowed, several problem arise. For example by solving simple incremental static with allowed static changes, the incremental displacement vector of structure can not be added to total displacement vector of structure, because equation numbers may have changed, and one can not simply add these vector to obtain new total displacement vector, because incompatible displacement will be added. To solve this problem, unknown dictionary at dof level has been assumed. Dof then keeps its unknowns in its own private dictionary. After computing increment of solution, engngModel updates for each dof its unknowns in its dictionary (using updateUnknownsDictionary function). For aforementioned example engngModel updates incremental values but also total value by asking dof for previous total value (dof will use its dictionary, does not asks back EngngModel) adds corresponding increment and updates total value in dictionary.

Reimplemented in oofem::SUPG, oofem::IncrementalLinearStatic, and oofem::NonStationaryTransportProblem.

Definition at line 822 of file engngm.h.

Referenced by oofem::MasterDof::giveUnknown(), oofem::PetscSolver::petsc_solve(), oofem::MasterDof::restoreContext(), oofem::MasterDof::saveContext(), oofem::EigenValueDynamic::terminate(), oofem::LinearStability::terminate(), oofem::LinearStability::terminateLinStatic(), oofem::StructuralEngngModel::updateInternalState(), and oofem::CBS::updateInternalState().

virtual void oofem::EngngModel::resetRenumberFlag ( ) [inline, virtual]

Sets the renumber flag to false.

Definition at line 424 of file engngm.h.

References renumberFlag.

void oofem::EngngModel::resolveCorrespondingStepNumber ( int &  istep,
int &  iversion,
void *  obj 
)
contextIOResultType oofem::EngngModel::restoreContext ( DataStream stream,
ContextMode  mode,
void *  obj = NULL 
) [virtual]

Restores the state of model from output stream.

Restores not only the receiver state, but also same function is invoked for all DofManagers and Elements in associated domain. Note that by restoring element context also contexts of all associated integration points (and material statuses) are restored. Each context is associated with unique time step. Only one context per time step is allowed. Restore context function will restore such context, which is related (through its step number) to time step number and version given in obj parameter. Restoring context will change current time step in order to correspond to newly restored context.

Parameters:
streamContext file.
modeDetermines amount of info in stream.
objVoid pointer to an int array containing two values:time step number and version of a context file to be restored.
Returns:
contextIOResultType.
Exceptions:
ContextIOERRexception if error encountered.

Reimplemented in oofem::NlDEIDynamic, oofem::NonLinearDynamic, oofem::NonLinearStatic, oofem::SUPG, oofem::StaggeredProblem, oofem::AdaptiveNonLinearStatic, oofem::CBS, oofem::DIIDynamic, oofem::LinearStability, oofem::EigenValueDynamic, oofem::NonStationaryTransportProblem, oofem::LinearStatic, oofem::IncrementalLinearStatic, oofem::StationaryTransportProblem, oofem::AdaptiveLinearStatic, and oofem::DarcyFlow.

Definition at line 1460 of file engngm.C.

References oofem::CIO_IOERR, oofem::CIO_OK, oofem::contextMode_read, currentStep, domainNeqs, domainPrescribedNeqs, giveContextFile(), giveCurrentMetaStep(), giveDomain(), giveMetaStep(), oofem::TimeStep::giveMetaStepNumber(), giveNumericalMethod(), oofem::TimeStep::giveSolutionStateCounter(), oofem::TimeStep::giveTargetTime(), oofem::TimeStep::giveTimeIncrement(), initStepIncrements(), ndomains, nMetaSteps, numberOfEquations, numberOfPrescribedEquations, oofem::OOFEM_LOG_RELEVANT(), previousStep, oofem::DataStream::read(), renumberFlag, resolveCorrespondingStepNumber(), oofem::FEMComponent::restoreContext(), oofem::TimeStep::restoreContext(), oofem::Domain::restoreContext(), oofem::IntArray::restoreYourself(), THROW_CIOERR, updateAttributes(), and updateDomainLinks().

Referenced by oofem::HuertaErrorEstimator::estimateError(), oofem::StationaryTransportProblem::restoreContext(), oofem::IncrementalLinearStatic::restoreContext(), oofem::LinearStatic::restoreContext(), oofem::NonStationaryTransportProblem::restoreContext(), oofem::EigenValueDynamic::restoreContext(), oofem::LinearStability::restoreContext(), oofem::DIIDynamic::restoreContext(), oofem::CBS::restoreContext(), oofem::StaggeredProblem::restoreContext(), oofem::SUPG::restoreContext(), oofem::NonLinearStatic::restoreContext(), oofem::NonLinearDynamic::restoreContext(), and oofem::NlDEIDynamic::restoreContext().

contextIOResultType oofem::EngngModel::saveContext ( DataStream stream,
ContextMode  mode,
void *  obj = NULL 
) [virtual]

Stores the state of model to output stream.

Stores not only the receiver state, but also same function is invoked for all DofManagers and Elements in associated domain. Note that by storing element context also contexts of all associated integration points (and material statuses) are stored. Stored context is associated with current time step. One time step can have only one associated context. Multiple call to saveContext within same time step override previously saved context for this step. By default the stream parameter is used to store data and is not closed. If stream is NULL, new file descriptor is created and this must be also closed at the end.

Parameters:
streamContext stream. If NULL then new file descriptor will be opened and closed at the end else the stream given as parameter will be used and not closed at the end.
modeDetermines amount of info in stream.
objVoid pointer to an int array containing two values:time step number and version of a context file to be restored.
Returns:
contextIOResultType.
Exceptions:
ContextIOERRIf error encountered.

Reimplemented in oofem::NlDEIDynamic, oofem::NonLinearDynamic, oofem::NonLinearStatic, oofem::SUPG, oofem::AdaptiveNonLinearStatic, oofem::StaggeredProblem, oofem::CBS, oofem::DIIDynamic, oofem::LinearStability, oofem::EigenValueDynamic, oofem::NonStationaryTransportProblem, oofem::LinearStatic, oofem::IncrementalLinearStatic, oofem::StationaryTransportProblem, and oofem::DarcyFlow.

Definition at line 1372 of file engngm.C.

References oofem::CIO_IOERR, oofem::CIO_OK, oofem::contextMode_write, domainNeqs, domainPrescribedNeqs, giveContextFile(), giveCurrentStep(), giveDomain(), giveMetaStep(), giveNumericalMethod(), ndomains, numberOfEquations, numberOfPrescribedEquations, oofem::OOFEM_LOG_INFO(), renumberFlag, oofem::FEMComponent::saveContext(), oofem::Domain::saveContext(), oofem::IntArray::storeYourself(), THROW_CIOERR, and oofem::DataStream::write().

Referenced by oofem::StationaryTransportProblem::saveContext(), oofem::IncrementalLinearStatic::saveContext(), oofem::LinearStatic::saveContext(), oofem::NonStationaryTransportProblem::saveContext(), oofem::EigenValueDynamic::saveContext(), oofem::LinearStability::saveContext(), oofem::DIIDynamic::saveContext(), oofem::CBS::saveContext(), oofem::StaggeredProblem::saveContext(), oofem::SUPG::saveContext(), oofem::NonLinearStatic::saveContext(), oofem::NonLinearDynamic::saveContext(), oofem::NlDEIDynamic::saveContext(), and saveStepContext().

Sets context output mode of receiver.

Parameters:
contextModedomain context mode.

Reimplemented in oofem::StaggeredProblem.

Definition at line 390 of file engngm.h.

References contextOutputMode.

Referenced by oofem::InstanciateProblem(), and oofem::AdaptiveNonLinearStatic::solveYourselfAt().

void oofem::EngngModel::setDomain ( int  i,
Domain ptr 
)

Sets i-th domain of receiver.

Given domain is assumed to be owned (and deleted) by receiver. The old domain, if defined, will be deleted.

Parameters:
iDomain index.
ptrPointer to valid domain instance.

Definition at line 1728 of file engngm.C.

References _error3, domainList, ndomains, and oofem::AList< T >::put().

void oofem::EngngModel::setNumberOfEquations ( int  id,
int  neq 
) [inline]

Definition at line 360 of file engngm.h.

References oofem::IntArray::at(), domainNeqs, and numberOfEquations.

Referenced by instanciateYourself().

void oofem::EngngModel::setParallelMode ( bool  parallelFlag)

Sets the problem to run in parallel (or not).

Parameters:
parallelFlagDetermines parallel mode.

Definition at line 258 of file engngm.C.

References initParallel(), OOFEM_ERROR, and parallelFlag.

Referenced by oofem::InstanciateProblem().

Sets domain mode to given mode.

Parameters:
pmodeProblem mode.

Reimplemented in oofem::StaggeredProblem.

Definition at line 406 of file engngm.h.

References pMode.

Referenced by oofem::InstanciateProblem().

Sets scale in multiscale simulation.

Parameters:
pscaleProblem scale.

Definition at line 418 of file engngm.h.

References pScale.

Referenced by oofem::MacroLSpace::computeStiffnessMatrix().

virtual void oofem::EngngModel::setRenumberFlag ( ) [inline, virtual]

Sets the renumber flag to true.

Reimplemented in oofem::StaggeredProblem.

Definition at line 422 of file engngm.h.

References renumberFlag.

Referenced by oofem::StaggeredProblem::setRenumberFlag().

void oofem::EngngModel::setUDContextOutputMode ( int  cStep) [inline]

Sets user defined context output mode (it sets contextOutputMode to contextOutputMode), setting contextOutputStep to given value.

Parameters:
cStepnew context output step

Reimplemented in oofem::StaggeredProblem.

Definition at line 397 of file engngm.h.

References oofem::COM_UserDefined, contextOutputMode, and contextOutputStep.

Referenced by initializeFrom().

virtual void oofem::EngngModel::showSparseMtrxStructure ( int  type,
oofegGraphicContext context,
TimeStep atTime 
) [inline, virtual]

Shows the sparse structure of required matrix, type == 1 stiffness.

Reimplemented in oofem::StaggeredProblem, oofem::NonLinearDynamic, oofem::NonLinearStatic, and oofem::StructuralEngngModel.

Definition at line 1144 of file engngm.h.

virtual void oofem::EngngModel::solveYourselfAt ( TimeStep tStep) [inline, virtual]

Solves problem for given time step.

Should assemble characteristic matrices and vectors if necessary and solve problem using appropriate numerical method. After finishing solution, this->updateYourself function for updating solution state and then this->terminate function (for updating nodal and element values) should be called.

Reimplemented in oofem::NlDEIDynamic, oofem::NonLinearDynamic, oofem::NonLinearStatic, oofem::SUPG, oofem::CBS, oofem::StaggeredProblem, oofem::LinearStability, oofem::StokesFlow, oofem::AdaptiveNonLinearStatic, oofem::DIIDynamic, oofem::EigenValueDynamic, oofem::NonStationaryTransportProblem, oofem::LinearStatic, oofem::DEIDynamic, oofem::IncrementalLinearStatic, oofem::NLTransientTransportProblem, oofem::StationaryTransportProblem, oofem::StokesFlowVelocityHomogenization, and oofem::DarcyFlow.

Definition at line 445 of file engngm.h.

Referenced by oofem::MacroLSpace::giveInternalForcesVector(), solveYourself(), and oofem::StaggeredProblem::solveYourselfAt().

void oofem::EngngModel::terminate ( TimeStep tStep) [virtual]

Terminates the solution of time step.

Default implementation calls prinOutput() service and if specified, context of whole domain is stored and output for given time step is printed.

Reimplemented in oofem::NlDEIDynamic, oofem::NonLinearDynamic, oofem::NonLinearStatic, oofem::StaggeredProblem, oofem::IncrementalLinearStatic, oofem::LinearStability, oofem::LinearStatic, and oofem::EigenValueDynamic.

Definition at line 813 of file engngm.C.

References doStepOutput(), giveOutputStream(), and saveStepContext().

Referenced by solveYourself(), oofem::StaggeredProblem::terminate(), oofem::MacroLSpace::updateYourself(), and oofem::FE2FluidMaterialStatus::updateYourself().

bool oofem::EngngModel::testContextFile ( int  stepNumber,
int  stepVersion 
)

Returns true if context file for given step and version is available.

Definition at line 1638 of file engngm.C.

References coreOutputFileName.

int oofem::EngngModel::unpackDofManagers ( FloatArray dest,
ProcessCommunicator processComm,
bool  prescribedEquations 
) [protected]

Unpacking function for vector values of DofManagers .

Unpacks vector of shared/remote DofManagers from receive communication buffer of given process communicator.

Parameters:
processCommTask communicator.
destDestination vector.
prescribedEquationsTrue if src uses prescribed equations numbering.
Returns:
Nonzero if successful.

Definition at line 2179 of file engngm.C.

References oofem::Dof::__giveEquationNumber(), oofem::Dof::__givePrescribedEquationNumber(), _error, oofem::IntArray::at(), oofem::FloatArray::at(), oofem::DofManager_remote, oofem::DofManager_shared, oofem::DofManager::giveDof(), oofem::Domain::giveDofManager(), giveDomain(), oofem::DofManager::giveNumberOfDofs(), oofem::DofManager::giveParallelMode(), oofem::ProcessCommunicator::giveProcessCommunicatorBuff(), oofem::IntArray::giveSize(), oofem::ProcessCommunicator::giveToRecvMap(), oofem::Dof::isPrimaryDof(), and oofem::ProcessCommunicatorBuff::unpackDouble().

Referenced by unpackDofManagers(), unpackPrescribedDofManagers(), and updateSharedDofManagers().

Unpacking function for vector values of DofManagers .

Unpacks vector of shared/remote DofManagers from receive communication buffer of given process communicator.

Parameters:
processCommTask communicator.
destDestination vector.
Returns:
Nonzero if successful.

Definition at line 2165 of file engngm.C.

References unpackDofManagers().

virtual void oofem::EngngModel::unpackMigratingData ( TimeStep ) [inline, protected, virtual]

Unpacks receiver data when rebalancing load.

When rebalancing happens, the local numbering will be lost on majority of processors. Instead of identifying values of solution vectors that have to be send/received and then performing renumbering, all solution vectors are assumed to be stored in dof dictionaries before data migration. Then dofs will take care themselves for packing and unpacking. After data migration and local renumbering, the solution vectors will be restored from dof dictionary data back.

Reimplemented in oofem::NonLinearDynamic, and oofem::NonLinearStatic.

Definition at line 1019 of file engngm.h.

Referenced by balanceLoad().

Unpacking function for vector values of DofManagers .

Unpacks vector of shared/remote prescribed DofManagers from receive communication buffer of given process communicator.

Parameters:
processCommTask communicator.
destDestination vector.
Returns:
Nonzero if successful.

Definition at line 2172 of file engngm.C.

References unpackDofManagers().

Referenced by updateSharedPrescribedDofManagers().

Unpacks data for remote elements (which are mirrors of remote partition's local elements).

Remote elements are introduced when nonlocal constitutive models are used, in order to allow local averaging procedure (remote elements, which are involved in averaging on local partition are mirrored on this local partition) instead of implementing inefficient fine-grain communication. Remote element data are exchanged only if necessary and once for all of them. Current implementation calls unpackAndUpdateUnknowns service for all elements listed in given process communicator receive map.

Parameters:
processCommCorresponding process communicator.
Returns:
Nonzero if successful.

Definition at line 2096 of file engngm.C.

References _error, oofem::IntArray::at(), oofem::Element_remote, giveCurrentStep(), giveDomain(), oofem::Domain::giveElement(), oofem::Element::giveParallelMode(), oofem::ProcessCommunicator::giveProcessCommunicatorBuff(), oofem::ProcessCommunicatorBuff::giveRecvBuff(), oofem::IntArray::giveSize(), oofem::ProcessCommunicator::giveToRecvMap(), and oofem::Element::unpackAndUpdateUnknowns().

Referenced by exchangeRemoteElementData().

void oofem::EngngModel::updateAttributes ( MetaStep mStep) [virtual]

Update receiver attributes according to step metaStep attributes.

Allows the certain parameters or attributes to be updated for particular metastep. The metastep provides the attributes record, from which the corresponding attributes can be read. The service takes a MetaStep parameter. It is recommended, to implement this service in such way, that multiple calls for steps belonging to same MetaStep does not change response. The default implementation updates the numerical method attributes.

Parameters:
mStepMeta step.

Reimplemented in oofem::NonLinearDynamic, oofem::NonLinearStatic, and oofem::StaggeredProblem.

Definition at line 740 of file engngm.C.

References oofem::MetaStep::giveAttributesRecord(), giveLoadBalancer(), giveLoadBalancerMonitor(), giveNumericalMethod(), oofem::LoadBalancerMonitor::initializeFrom(), oofem::FEMComponent::initializeFrom(), and oofem::LoadBalancer::initializeFrom().

Referenced by initMetaStepAttributes(), restoreContext(), oofem::LinearStability::solveYourself(), and oofem::StaggeredProblem::updateAttributes().

void oofem::EngngModel::updateComponent ( TimeStep tStep,
NumericalCmpn  cmpn,
Domain d 
) [virtual]

Updates components mapped to numerical method if necessary during solution process.

Some numerical methods may require updating mapped components during solution process (e.g., updating of tangent stiffness when using updated Newton-Raphson method).

Parameters:
tStepTime when component is updated.
cmpnNumerical component to update.
dDomain.

Reimplemented in oofem::NonLinearDynamic, oofem::NonLinearStatic, oofem::StokesFlow, and oofem::DarcyFlow.

Definition at line 1321 of file engngm.C.

References _error.

Referenced by oofem::CylindricalALM::do_lineSearch(), oofem::LineSearchNM::solve(), oofem::NRSolver::solve(), oofem::NRSolver2::solve(), and oofem::CylindricalALM::solve().

virtual void oofem::EngngModel::updateDofUnknownsDictionary ( DofManager ,
TimeStep  
) [inline, virtual]

Updates domain links after the domains of receiver have changed.

Used mainly after restoring context - the domains may change and this service is then used to update domain variables in all components belonging to receiver like error estimators, solvers, etc, having domains as attributes.

Reimplemented in oofem::NonLinearDynamic, oofem::NonLinearStatic, oofem::SUPG, oofem::AdaptiveNonLinearStatic, oofem::StaggeredProblem, oofem::CBS, oofem::NonStationaryTransportProblem, oofem::LinearStatic, oofem::StationaryTransportProblem, and oofem::AdaptiveLinearStatic.

Definition at line 1366 of file engngm.C.

References giveExportModuleManager(), and oofem::ExportModuleManager::initialize().

Referenced by restoreContext(), and oofem::StaggeredProblem::updateDomainLinks().

int oofem::EngngModel::updateSharedDofManagers ( FloatArray answer,
int  ExchangeTag 
)
int oofem::EngngModel::updateSharedPrescribedDofManagers ( FloatArray answer,
int  ExchangeTag 
)

Exchanges necessary remote prescribed DofManagers data.

Parameters:
answerArray with collected values.
ExchangeTagExchange tag used by communicator.
Returns:
Nonzero if successful.

Definition at line 2005 of file engngm.C.

References communicator, oofem::Communicator::finishExchange(), giveRank(), oofem::Communicator::initExchange(), isParallel(), oofem::Communicator::packAllData(), packPrescribedDofManagers(), oofem::Communicator::unpackAllData(), unpackPrescribedDofManagers(), and VERBOSEPARALLEL_PRINT.

Referenced by oofem::StructuralEngngModel::computeReaction().

void oofem::EngngModel::updateYourself ( TimeStep tStep) [virtual]
virtual int oofem::EngngModel::useNonlocalStiffnessOption ( ) [inline, virtual]

Returns nonzero if nonlocal stiffness option activated.

Reimplemented in oofem::NonLinearDynamic, oofem::NonLinearStatic, and oofem::StaggeredProblem.

Definition at line 1070 of file engngm.h.

Referenced by oofem::SkylineUnsym::buildInternalStructure().

void oofem::EngngModel::warning ( const char *  file,
int  line,
const char *  format,
  ... 
) const

prints warning message

Definition at line 1696 of file engngm.C.

References __OOFEM_WARNING3, __OOFEM_WARNING4, giveClassName(), MAX_ERROR_MSG_LENGTH, and rank.


Member Data Documentation

Context.

Definition at line 256 of file engngm.h.

Referenced by EngngModel(), giveContext(), and ~EngngModel().

std::string oofem::EngngModel::coreOutputFileName [protected]

String with core output file name.

Definition at line 232 of file engngm.h.

Referenced by giveContextFile(), GiveDomainDataReader(), Instanciate_init(), and testContextFile().

std::string oofem::EngngModel::dataOutputFileName [protected]

Path to output stream.

Definition at line 230 of file engngm.h.

Referenced by giveOutputBaseFileName(), and letOutputBaseFileNameBe().

Definition at line 225 of file engngm.h.

Referenced by giveUnknownNumberingScheme().

Definition at line 227 of file engngm.h.

Debug flag forcing load balancing after first step.

Definition at line 289 of file engngm.h.

Referenced by balanceLoad(), EngngModel(), and initializeFrom().

Initialization module manager.

Definition at line 242 of file engngm.h.

Referenced by EngngModel(), init(), instanciateYourself(), and ~EngngModel().

List of problem metasteps.

Definition at line 214 of file engngm.h.

Referenced by EngngModel(), and ~EngngModel().

int oofem::EngngModel::ndomains [protected]

Number of receiver domains.

Definition at line 192 of file engngm.h.

Referenced by oofem::AdaptiveNonLinearStatic::adaptiveRemap(), oofem::CBS::CBS(), checkProblemConsistency(), oofem::DarcyFlow::DarcyFlow(), oofem::DEIDynamic::DEIDynamic(), oofem::DIIDynamic::DIIDynamic(), oofem::EigenValueDynamic::EigenValueDynamic(), EngngModel(), forceEquationNumbering(), giveDomain(), oofem::NonStationaryTransportProblem::giveDtTimeFunction(), oofem::StaggeredProblem::giveDtTimeFunction(), giveNumberOfDomains(), givePetscContext(), oofem::IncrementalLinearStatic::IncrementalLinearStatic(), oofem::StaggeredProblem::initializeFrom(), oofem::StationaryTransportProblem::initPetscContexts(), oofem::DarcyFlow::initPetscContexts(), oofem::EigenValueDynamic::initPetscContexts(), oofem::StokesFlow::initPetscContexts(), oofem::StructuralEngngModel::initPetscContexts(), oofem::SUPG::initPetscContexts(), oofem::NonLinearStatic::initPetscContexts(), oofem::NonLinearDynamic::initPetscContexts(), initStepIncrements(), Instanciate_init(), instanciateDomains(), instanciateYourself(), oofem::LinearStability::LinearStability(), oofem::LinearStatic::LinearStatic(), oofem::NlDEIDynamic::NlDEIDynamic(), oofem::NonLinearDynamic::NonLinearDynamic(), oofem::NonStationaryTransportProblem::NonStationaryTransportProblem(), printOutputAt(), restoreContext(), saveContext(), setDomain(), oofem::StaggeredProblem::StaggeredProblem(), oofem::StationaryTransportProblem::StationaryTransportProblem(), oofem::StokesFlow::StokesFlow(), oofem::SUPG::SUPG(), oofem::NonStationaryTransportProblem::updateYourself(), and updateYourself().

int oofem::EngngModel::number [protected]

Receivers id.

Definition at line 222 of file engngm.h.

Referenced by EngngModel().

int oofem::EngngModel::numProcs [protected]

Total number of collaborating processes.

Definition at line 274 of file engngm.h.

Referenced by giveNumberOfProcesses(), initParallel(), and instanciateYourself().

int oofem::EngngModel::nxfemman [protected]

Number of Xfemmanagers.

Definition at line 264 of file engngm.h.

Referenced by EngngModel(), initializeFrom(), and instanciateYourself().

Flag indicating that the receiver runs in parallel.

Definition at line 260 of file engngm.h.

Referenced by EngngModel(), initializeFrom(), isParallel(), setParallelMode(), and oofem::DarcyFlow::solveYourselfAt().

Processor name.

Definition at line 276 of file engngm.h.

Referenced by initParallel(), and instanciateYourself().

Profile optimized numbering flag (using Sloan's algorithm).

Definition at line 208 of file engngm.h.

Referenced by EngngModel(), forceEquationNumbering(), and initializeFrom().

int oofem::EngngModel::rank [protected]

Domain rank in a group of collaborating processes (0..groupSize-1).

Definition at line 272 of file engngm.h.

Referenced by error(), giveRank(), initParallel(), instanciateYourself(), and warning().

Renumbering flag (renumbers equations after each step, necessary if Dirichlet BCs change).

Definition at line 206 of file engngm.h.

Referenced by EngngModel(), oofem::StaggeredProblem::initializeFrom(), initializeFrom(), requiresEquationRenumbering(), oofem::SUPG::requiresUnknownsDictionaryUpdate(), resetRenumberFlag(), restoreContext(), saveContext(), and setRenumberFlag().

time_t oofem::EngngModel::startTime [protected]

Solution start time.

Definition at line 249 of file engngm.h.

Referenced by instanciateYourself().

List of Xfemmanagers.

Definition at line 262 of file engngm.h.

Referenced by EngngModel(), and ~EngngModel().


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 Sun Mar 10 2013 18:16:59 for OOFEM by doxygen 1.7.6.1 written by Dimitri van Heesch, © 1997-2011