105 OOFEM_LOG_INFO(
"StokesFlow :: solveYourselfAt - Mesh deformation at %e\n", meshdeformation);
134 incrementOfSolution.
resize(neq);
138 externalForces.
resize(neq);
139 externalForces.
zero();
152 int currentIterations;
186 static_cast< FMElement *
>( elem.get() )->updateStabilizationCoeffs(tStep);
238 if ( dynamic_cast< FMElement * >( elem.get() ) == NULL ) {
239 OOFEM_WARNING(
"Element %d has no FMElement base", elem->giveLabel());
250 if ( domain->giveTopology() ) {
252 this->
ts = domain->giveTopology()->updateYourself(tStep);
255 for (
auto &elem : domain->giveElements() ) {
256 elem->updateInternalState(tStep);
LinSystSolverType
The values of this type should be related not to specific solvers, but more to specific packages that...
The representation of EngngModel default unknown numbering.
#define NM_Success
Numerical method exited with success.
virtual double giveUnknownComponent(ValueModeType mode, TimeStep *tStep, Domain *domain, Dof *dof)
Returns requested unknown.
std::unique_ptr< TimeStep > currentStep
Current time step.
void initMetaStepAttributes(MetaStep *mStep)
Update e-model attributes attributes according to step metaStep attributes.
Implementation for assembling internal forces vectors in standard monolithic, nonlinear FE-problems...
virtual int giveNumberOfDomainEquations(int di, const UnknownNumberingScheme &num)
Returns number of equations for given domain in active (current time step) time step.
problemScale giveProblemScale()
Returns scale in multiscale simulation.
TopologyDescription * giveTopology()
Returns receiver's associated topology description.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description in input reader.
This class implements Newton-Raphson Method, derived from abstract NumericalMethod class for solving ...
SparseMtrx * createSparseMtrx(SparseMtrxType type)
Creates new instance of sparse matrix corresponding to given keyword.
virtual void doOutput(TimeStep *tStep)
File output of the current state of the topology description.
std::vector< std::unique_ptr< Domain > > domainList
List of problem domains.
virtual void doStepOutput(TimeStep *tStep)
Prints the ouput of the solution step (using virtual this->printOutputAtservice) to the stream detemi...
virtual double giveReynoldsNumber()
std::unique_ptr< TimeStep > previousStep
Previous time step.
ExportModuleManager * giveExportModuleManager()
Returns receiver's export module manager.
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description in input reader.
Base class for fluid problems.
This base class is an abstraction for numerical algorithm.
virtual TimeStep * giveNextStep()
Returns next time step (next to current step) of receiver.
Indicates that everything is OK with respect to topology.
Implementation for assembling tangent matrices in standard monolithic FE-problems.
std::unique_ptr< SparseMtrx > stiffnessMatrix
#define _IFT_StokesFlow_deltat
int giveNumberOfElements() const
Returns number of elements in domain.
Indicates that the topology has reached a need for remeshing, as the case with merging surfaces...
SparseMtrxType sparseMtrxType
Sparse matrix type.
REGISTER_EngngModel(ProblemSequence)
unsigned long NM_Status
Mask defining NumMetod Status; which can be asked after finishing computation by Numerical Method...
double maxdef
Maximum deformation allowed.
Class representing field of primary variables, which are typically allocated on nodes.
virtual void assemble(SparseMtrx &answer, TimeStep *tStep, const MatrixAssembler &ma, const UnknownNumberingScheme &s, Domain *domain)
Assembles characteristic matrix of required type into given sparse matrix.
MetaStep * giveCurrentMetaStep()
Returns current meta step.
virtual void updateComponent(TimeStep *tStep, NumericalCmpn cmpn, Domain *d)
Updates components mapped to numerical method if necessary during solution process.
StokesFlow(int i, EngngModel *_master=NULL)
int giveNumber()
Returns receiver's number.
#define OOFEM_LOG_INFO(...)
LinSystSolverType solverType
Linear solver type.
NumericalCmpn
Type representing numerical component.
#define _IFT_EngngModel_smtype
int ndomains
Number of receiver domains.
virtual int checkConsistency()
Allows programmer to test some receiver's internal data, before computation begins.
int updateSharedDofManagers(FloatArray &answer, const UnknownNumberingScheme &s, int ExchangeTag)
Exchanges necessary remote DofManagers data.
FloatArray eNorm
Element norm for nonlinear analysis (squared)
SparseMtrxType
Enumerative type used to identify the sparse matrix type.
The reference incremental load vector is defined as totalLoadVector assembled at given time...
Implementation for assembling external forces vectors in standard monolithic FE-problems.
virtual void updateYourself(TimeStep *tStep)
Updates internal state after finishing time step.
void updateInternalState(TimeStep *tStep)
double deltaT
Time increment read from input record.
virtual int forceEquationNumbering()
Forces equation renumbering on all domains associated to engng model.
virtual NumericalMethod * giveNumericalMethod(MetaStep *mStep)
Returns reference to receiver's numerical method.
virtual void doStepOutput(TimeStep *tStep)
Prints the ouput of the solution step (using virtual this->printOutputAtservice) to the stream detemi...
PETSc library mtrx representation.
This error estimator measures the quality of the elements.
std::unique_ptr< SparseNonLinearSystemNM > nMethod
Numerical method.
TopologyState ts
Topology state, most notably used for determining if there is a need to remesh.
Class representing vector of real numbers.
virtual int checkConsistency()
Allows programmer to test some receiver's internal data, before computation begins.
This abstract class represent a general base element class for fluid dynamic problems.
std::unique_ptr< PrimaryField > velocityPressureField
Primary unknowns.
#define _IFT_EngngModel_lstype
IRResultType
Type defining the return values of InputRecord reading operations.
int giveMetaStepNumber()
Returns receiver's meta step number.
int giveNumberOfTimeStepWhenIcApply()
Returns the time step number, when initial conditions should apply.
FloatArray solutionVector
FloatArray internalForces
void zero()
Zeroes all coefficients of receiver.
Abstract class for topology description.
ClassFactory & classFactory
std::unique_ptr< MeshQualityErrorEstimator > meshqualityee
Used for determining if a new mesh must be created.
void initialize()
Initializes output manager.
std::vector< std::unique_ptr< Element > > & giveElements()
Abstract base class representing the "problem" under consideration.
the oofem namespace is to define a context or scope in which all oofem names are defined.
Domain * giveDomain(int n)
Service for accessing particular problem domain.
Abstract class Dof represents Degree Of Freedom in finite element mesh.
void negated()
Switches the sign of every coefficient of receiver.
virtual void solveYourselfAt(TimeStep *tStep)
Solves problem for given time step.
virtual void replaceFEMesh()
Generates the FE components from the bare mesh.
virtual void updateYourself(TimeStep *tStep)
Updates everything for the problem.
#define OOFEM_WARNING(...)
void assembleVector(FloatArray &answer, TimeStep *tStep, const VectorAssembler &va, ValueModeType mode, const UnknownNumberingScheme &s, Domain *domain, FloatArray *eNorms=NULL)
Assembles characteristic vector of required type from dofManagers, element, and active boundary condi...
Class representing solution step.
void add(const FloatArray &src)
Adds array src to receiver.
void resize(int s)
Resizes receiver towards requested size.
int equationNumberingCompleted
Equation numbering completed flag.