IFEM  90A354
Enumerations | Functions
SIM Namespace Reference

Simulation scope. More...

Enumerations

enum  Formulation { NONE = 0 , LINEAR = 1 , NONLINEAR = 2 }
 Enum defining various solution formulations that may occur. More...
 
enum  SolutionMode {
  INIT = 0 , STATIC = 1 , ARCLEN = 2 , DYNAMIC ,
  VIBRATION , BUCKLING , STIFF_ONLY , MASS_ONLY ,
  RHS_ONLY , INT_FORCES , RECOVERY , NORMS
}
 Enum defining the various solution modes that may occur.
 
enum  ConvStatus {
  FAILURE , DIVERGED , SLOW , OK ,
  CONVERGED
}
 Enum defining the various convergence statuses that may occur. More...
 

Functions

Vector getBoundaryForce (const Vectors &solution, SIMbase *model, int code, const TimeDomain &time, const RealArray *X0)
 Integrates the force resultant on a specified boundary. More...
 
Vector getBoundaryForce (const Vectors &solution, SIMbase *model, int code, const TimeDomain &time, const Vec3 *X0=nullptr)
 Integrates the force resultant on a specified boundary. More...
 
bool getNodalForces (const Vectors &solution, SIMbase *model, int code, const TimeDomain &time, GlbForceVec &force)
 Integrates nodal forces on a specified boundary. More...
 
bool initBoundaryNodeMap (SIMbase *model, int code, GlbForceVec &force)
 Detects the global nodes that reside on a specified boundary. More...
 
bool integrate (const Vectors &solution, SIMbase *model, int code, const TimeDomain &time, ForceBase *forceInt, GlbForceVec *force=nullptr)
 Integrates a force integrand on a specified topology set. More...
 

Detailed Description

Simulation scope.

Enumeration Type Documentation

◆ ConvStatus

Enum defining the various convergence statuses that may occur.

Note
The order of the values are not random. It reflects the severity of the status somehow (the smaller the value, the further from convergence).

◆ Formulation

Enum defining various solution formulations that may occur.

Used as a bit field - power of two values only.

Function Documentation

◆ getBoundaryForce() [1/2]

Vector SIM::getBoundaryForce ( const Vectors solution,
SIMbase model,
int  code,
const TimeDomain time,
const RealArray X0 
)

Integrates the force resultant on a specified boundary.

Parameters
[in]solutionPrimary solution vectors in DOF order
[in]modelThe isogeometric finite element model
[in]codeCode indentifying the boundary subjected to integration
[in]timeParameters for nonlinear and time-dependent simulations
[in]X0Pivot point for torque calculation
Returns
The force (and torque) resultant

◆ getBoundaryForce() [2/2]

Vector SIM::getBoundaryForce ( const Vectors solution,
SIMbase model,
int  code,
const TimeDomain time,
const Vec3 X0 = nullptr 
)

Integrates the force resultant on a specified boundary.

Parameters
[in]solutionPrimary solution vectors in DOF order
[in]modelThe isogeometric finite element model
[in]codeCode indentifying the boundary subjected to integration
[in]timeParameters for nonlinear and time-dependent simulations
[in]X0Pivot point for torque calculation
Returns
The force (and torque) resultant

References ForceBase::assemble(), SIMbase::getBoundaryForceIntegrand(), SIMbase::getNoElms(), ForceBase::initBuffer(), integrate(), and PROFILE1.

◆ getNodalForces()

bool SIM::getNodalForces ( const Vectors solution,
SIMbase model,
int  code,
const TimeDomain time,
GlbForceVec force 
)

Integrates nodal forces on a specified boundary.

Parameters
[in]solutionPrimary solution vectors in DOF order
[in]modelThe isogeometric finite element model
[in]codeCode indentifying the boundary subjected to integration
[in]timeParameters for nonlinear and time-dependent simulations
forceGlobal nodal force container (compressed storage)

References GlbForceVec::finalize(), SIMbase::getNodalForceIntegrand(), GlbForceVec::initialize(), integrate(), and PROFILE1.

◆ initBoundaryNodeMap()

bool SIM::initBoundaryNodeMap ( SIMbase model,
int  code,
GlbForceVec force 
)

Detects the global nodes that reside on a specified boundary.

Parameters
[in]modelThe isogeometric finite element model
[in]codeProperty code associated with the boundary
[out]forceGlobal nodal force container (compressed storage)

References SIMbase::getBoundaryNodes(), SIMbase::getNoSpaceDim(), and GlbForceVec::initNodeMap().

◆ integrate()

bool SIM::integrate ( const Vectors solution,
SIMbase model,
int  code,
const TimeDomain time,
ForceBase forceInt,
GlbForceVec force = nullptr 
)

Integrates a force integrand on a specified topology set.

Parameters
[in]solutionPrimary solution vectors in DOF order
[in]modelThe isogeometric finite element model
[in]codeCode indentifying the boundary subjected to integration
[in]timeParameters for nonlinear and time-dependent simulations
[in]forceIntThe force integrand to integrate
[in]forceIf non-nullptr nodal forces are stored here
Returns
True if integration succeeded

References SIMbase::begin_prop(), SIMbase::end_prop(), SIMbase::extractPatchSolution(), SIMbase::getFEModel(), ASMbase::getNoParamDim(), SIMbase::getPatch(), ForceBase::hasBoundaryTerms(), ForceBase::hasInteriorTerms(), ASMbase::integrate(), and SIMbase::setPatchMaterial().

Referenced by getBoundaryForce(), and getNodalForces().