IFEM  90A354
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
HasGravityBase Class Reference

Base class representing a FEM integrand with gravity terms. More...

#include <HasGravityBase.h>

Inheritance diagram for HasGravityBase:
Inheritance graph
[legend]
Collaboration diagram for HasGravityBase:
Collaboration graph
[legend]

Public Member Functions

virtual bool parse (const tinyxml2::XMLElement *elem)
 Parses a data section from an XML-element.
 
void setGravity (double gx, double gy=0.0, double gz=0.0)
 Defines the gravitation vector.
 
void setGravity (const Vec3 &g)
 Defines the gravitation vector.
 
const Vec3getGravity () const
 Returns the gravitation vector.
 
- Public Member Functions inherited from IntegrandBase
virtual void printLog () const
 Prints out the problem definition to the log stream.
 
virtual void setMode (SIM::SolutionMode mode)
 Defines the solution mode before the element assembly is started. More...
 
SIM::SolutionMode getMode (bool=false) const override
 Returns current solution mode.
 
virtual void setIntegrationPrm (unsigned short int, double)
 Initializes an integration parameter for the integrand.
 
virtual double getIntegrationPrm (unsigned short int) const
 Returns an integration parameter for the integrand.
 
virtual void initIntegration (size_t, size_t)
 Initializes the integrand with the number of integration points. More...
 
virtual void initIntegration (const TimeDomain &, const Vector &, bool=false)
 Initializes the integrand for a new integration loop. More...
 
virtual void initLHSbuffers (size_t)
 Initializes and toggles the use of left-hand-side matrix buffers.
 
virtual void initMatrixBuffers (size_t, size_t ielMax)
 Initializes the use of left-hand-side matrix buffers. More...
 
virtual void initResultPoints (double time, char=0)
 Initializes the integrand for a new result point loop. More...
 
virtual void initNodeMap (const std::vector< int > &)
 Initializes the global node number mapping for current patch.
 
virtual void setSecondaryInt (GlobalIntegral *=nullptr)
 Assigns a secondary integral to be computed (for reaction forces).
 
virtual GlobalIntegralgetGlobalInt (GlobalIntegral *gq) const
 Returns the system quantity to be integrated by *this. More...
 
virtual void initForPatch (const ASMbase *pch)
 Interface for initialization of integrand with patch-specific data. More...
 
LocalIntegralgetLocalIntegral (size_t nen, size_t iEl, bool neumann) const override
 Returns a local integral contribution object for the given element. More...
 
bool initElement (const std::vector< int > &MNPC, LocalIntegral &elmInt) override
 Initializes current element for numerical integration. More...
 
bool initElement (const std::vector< int > &MNPC, const FiniteElement &fe, const Vec3 &X0, size_t nPt, LocalIntegral &elmInt) override
 Initializes current element for numerical integration. More...
 
bool initElement (const std::vector< int > &MNPC, const std::vector< size_t > &elem_sizes, const std::vector< size_t > &basis_sizes, LocalIntegral &elmInt) override
 Initializes current element for numerical integration (mixed). More...
 
bool initElement (const std::vector< int > &MNPC, const MxFiniteElement &fe, const std::vector< size_t > &elem_sizes, const std::vector< size_t > &basis_sizes, LocalIntegral &elmInt) override
 Initializes current element for numerical integration (mixed). More...
 
bool initElementBou (const std::vector< int > &MNPC, LocalIntegral &elmInt) override
 Initializes current element for boundary integration. More...
 
bool initElementBou (const std::vector< int > &MNPC, const std::vector< size_t > &elem_sizes, const std::vector< size_t > &basis_sizes, LocalIntegral &elmInt) override
 Initializes current element for boundary integration (mixed). More...
 
virtual bool hasInteriorTerms () const
 Returns whether this integrand has explicit interior contributions.
 
virtual bool hasBoundaryTerms () const
 Returns whether this integrand has explicit boundary contributions.
 
void activateElmGroup (const std::vector< int > &elms={})
 Assigns the group of active elements.
 
bool inActive (int iel) const
 Returns true, if the element iel is deactivated.
 
bool evalSol1 (Vector &s, const FiniteElement &fe, const Vec3 &X, const std::vector< int > &MNPC, size_t nskip=0) const
 Evaluates the secondary solution at a result point. More...
 
virtual bool evalSol2 (Vector &s, const Vectors &elmVec, const FiniteElement &fe, const Vec3 &X) const
 Evaluates the secondary solution at a result point. More...
 
virtual bool evalSol (Vector &s, const FiniteElement &fe, const Vec3 &X, const std::vector< int > &MNPC) const
 Evaluates the secondary solution at a result point. More...
 
virtual bool evalSol (Vector &s, const MxFiniteElement &fe, const Vec3 &X, const std::vector< int > &MNPC, const std::vector< size_t > &elem_sizes, const std::vector< size_t > &basis_sizes) const
 Evaluates the secondary solution at a result point (mixed problem). More...
 
virtual bool evalSol (Vector &s, const TensorFunc &asol, const Vec3 &X) const
 Evaluates the analytical secondary solution at a result point. More...
 
virtual bool evalSol (Vector &s, const STensorFunc &asol, const Vec3 &X) const
 Evaluates the analytical secondary solution at a result point. More...
 
virtual bool evalSol (Vector &s, const VecFunc &asol, const Vec3 &X) const
 Evaluates the analytical secondary solution at a result point. More...
 
virtual bool getPrincipalDir (Matrix &, size_t, size_t) const
 Returns an evaluated principal direction vector field for plotting.
 
virtual size_t getNo2ndSolPerLine () const
 Returns max number of 2ndary solution components to print per line.
 
virtual void primaryScalarFields (Matrix &)
 Computes some derived primary solution quantities.
 
virtual int derivativeOrder () const
 Returns the derivative order of the differential operator.
 
virtual bool writeGlvT (VTF *, int, int &, int &) const
 Writes surface tractions/fluxes for a given time step to VTF-file.
 
virtual bool hasTractionValues () const
 Returns whether there are any traction/flux values to write to VTF.
 
virtual bool diverged (size_t=0) const
 Returns true if simulation diverged on integration point level.
 
virtual NormBasegetNormIntegrand (AnaSol *=nullptr) const
 Returns a pointer to an Integrand for solution norm evaluation.
 
virtual ForceBasegetForceIntegrand (const Vec3 *, AnaSol *=nullptr) const
 Returns a pointer to an Integrand for boundary force evaluation.
 
virtual ForceBasegetForceIntegrand () const
 Returns a pointer to an Integrand for nodal force evaluation.
 
size_t getNoSpaceDim () const
 Returns the number of spatial dimensions.
 
virtual size_t getNoFields (int=2) const
 Returns the number of primary/secondary solution field components.
 
virtual size_t getNoGLMs () const
 Returns the number of global Lagrange multipliers in the model.
 
virtual std::string getField1Name (size_t idx, const char *prefix=0) const
 Returns the name of a primary solution field component. More...
 
virtual std::string getField2Name (size_t idx, const char *prefix=0) const
 Returns the name of a secondary solution field component. More...
 
virtual bool suppressOutput (size_t, ASM::ResultClass) const
 Filters a result components for output.
 
virtual size_t getNoSolutions (bool=true) const
 Returns the number of solution vectors.
 
virtual VectorgetExtractionField (size_t=1)
 Returns the patch-wise extraction function field, if any.
 
VectorgetSolution (size_t n=0)
 Accesses the primary solution vector of current patch.
 
VectorsgetSolutions ()
 Accesses the primary solution vectors of current patch.
 
void resetSolution ()
 Resets the primary solution vectors.
 
void printSolution (std::ostream &os, int pindx)
 Prints out the patch-wise solution vectors.
 
virtual void setNamedField (const std::string &, Field *)
 Registers where we can inject a mixed-basis scalar field.
 
virtual void setNamedFields (const std::string &, Fields *)
 Registers where we can inject a mixed-basis vector field.
 
VectorgetNamedVector (const std::string &name) const
 Returns a vector where we can store a named field.
 
virtual LinAlg::LinearSystemType getLinearSystemType () const
 Defines the properties of the resulting linear system. More...
 
void registerVector (const std::string &name, Vector *vec)
 Registers a vector to inject a named field into. More...
 
virtual void getNodalDofTypes (std::vector< char > &) const
 Returns nodal DOF flags for monolithic coupled integrands.
 
double getTimeLevel () const
 Returns current time/load parameter for 2ndary solution evaluation.
 
virtual LocalIntegralgetLocalIntegral (size_t nen, size_t iEl, bool neumann=false) const=0
 Returns a local integral contribution object for the given element. More...
 
virtual LocalIntegralgetLocalIntegral (const std::vector< size_t > &nen, size_t iEl, bool neumann=false) const
 Returns a local integral contribution object for the given element. More...
 
- Public Member Functions inherited from Integrand
virtual ~Integrand ()
 Empty destructor.
 
virtual void setNeumannOrder (char)
 Defines the Neumann order that is the subject of integration. More...
 
virtual void initPatch (size_t)
 Define the index of the patch being processed.
 
virtual LocalIntegralgetLocalIntegral (const std::vector< size_t > &nen, size_t iEl, bool neumann=false) const
 Returns a local integral contribution object for the given element. More...
 
virtual int getIntegrandType () const
 Defines which FE quantities are needed by the integrand.
 
virtual int getReducedIntegration (int) const
 Returns the number of reduced-order integration points.
 
virtual int getBouIntegrationPoints (int nGP) const
 Returns the number of boundary integration points.
 
virtual bool reducedInt (LocalIntegral &elmInt, const FiniteElement &fe, const Vec3 &X) const
 Evaluates reduced integration terms at an interior point. More...
 
virtual bool evalInt (LocalIntegral &elmInt, const FiniteElement &fe, const TimeDomain &time, const Vec3 &X) const
 Evaluates the integrand at an interior point. More...
 
virtual bool evalIntMx (LocalIntegral &elmInt, const MxFiniteElement &fe, const TimeDomain &time, const Vec3 &X) const
 Evaluates the integrand at an interior point. More...
 
virtual bool evalInt (LocalIntegral &elmInt, const FiniteElement &fe, const TimeDomain &time, const Vec3 &X, const Vec3 &normal) const
 Evaluates the integrand at an element interface point. More...
 
virtual bool evalIntMx (LocalIntegral &elmInt, const MxFiniteElement &fe, const TimeDomain &time, const Vec3 &X, const Vec3 &normal) const
 Evaluates the integrand at an element interface point. More...
 
virtual bool evalPoint (LocalIntegral &elmInt, const FiniteElement &fe, const Vec3 &pval)
 Evaluates the dirac-delta integrand at a specified point. More...
 
virtual bool finalizeElement (LocalIntegral &elmInt, const FiniteElement &fe, const TimeDomain &time, size_t iGP=0)
 Finalizes the element quantities after the numerical integration. More...
 
virtual bool finalizeElementBou (LocalIntegral &elmInt, const FiniteElement &fe, const TimeDomain &time)
 Finalizes the element quantities after boundary integration. More...
 
virtual bool evalBou (LocalIntegral &elmInt, const FiniteElement &fe, const TimeDomain &time, const Vec3 &X, const Vec3 &normal) const
 Evaluates the integrand at a boundary point. More...
 
virtual bool evalBouMx (LocalIntegral &elmInt, const MxFiniteElement &fe, const TimeDomain &time, const Vec3 &X, const Vec3 &normal) const
 Evaluates the integrand at a boundary point. More...
 
virtual void setParam (const std::string &, double)
 Assigns a parameter value to property functions of the integrand.
 
virtual void setParam (const std::string &, const Vec3 &)
 Assigns parameter values to property functions of the integrand.
 

Protected Member Functions

 HasGravityBase (unsigned char n=0)
 The default constructor is protected to allow sub-classes only.
 
- Protected Member Functions inherited from IntegrandBase
 IntegrandBase (unsigned short int n)
 The constructor is protected to allow sub-classes only.
 
bool initElement1 (const std::vector< int > &MNPC, Vectors &elmVec, size_t nskip=0) const
 Initializes the first primary solution vector for current element. More...
 
bool initElement2 (const std::vector< int > &MNPC, Vectors &elmVec, size_t nskip=0) const
 Initializes all primary solution vectors for current element. More...
 
- Protected Member Functions inherited from Integrand
 Integrand ()
 The default constructor is protected to allow sub-classes only.
 
virtual bool evalInt (LocalIntegral &, const FiniteElement &fe, const Vec3 &) const
 Evaluates the integrand at interior points for stationary problems.
 
virtual bool evalIntMx (LocalIntegral &, const MxFiniteElement &fe, const Vec3 &) const
 Evaluates the integrand at interior points for stationary problems.
 
virtual bool evalInt (LocalIntegral &, const FiniteElement &fe, const Vec3 &, const Vec3 &) const
 Evaluates the integrand at interface points, stationary problems.
 
virtual bool evalIntMx (LocalIntegral &, const MxFiniteElement &fe, const Vec3 &, const Vec3 &) const
 Evaluates the integrand at interface points, stationary problems.
 
virtual bool evalBou (LocalIntegral &, const FiniteElement &, const Vec3 &, const Vec3 &) const
 Evaluates the integrand at boundary points for stationary problems.
 
virtual bool evalBouMx (LocalIntegral &, const MxFiniteElement &, const Vec3 &, const Vec3 &) const
 Evaluates the integrand at boundary points for stationary problems.
 
virtual bool finalizeElement (LocalIntegral &elmInt, const TimeDomain &, size_t)
 Finalizes the element quantities after the numerical integration. More...
 
virtual bool finalizeElement (LocalIntegral &)
 Finalizes the element quantities after the numerical integration. More...
 

Protected Attributes

Vec3 gravity
 Gravitation vector.
 
- Protected Attributes inherited from IntegrandBase
unsigned short int nsd
 Number of spatial dimensions (1, 2 or 3)
 
unsigned short int npv
 Number of primary solution variables per node.
 
double myTime
 Evaluation time for the secondary solution.
 
SIM::SolutionMode m_mode
 Current solution mode.
 
std::vector< int > elmGrp
 List of currently active elements.
 
Vectors primsol
 Primary solution vectors for current patch.
 

Additional Inherited Members

- Public Types inherited from Integrand
enum  Traits {
  STANDARD = 0 , NO_DERIVATIVES = 1 , SECOND_DERIVATIVES = 1<< 1 , THIRD_DERIVATIVES = 1<< 2 ,
  AVERAGE = 1<< 3 , ELEMENT_CORNERS = 1<< 4 , ELEMENT_CENTER = 1<< 5 , G_MATRIX = 1<< 6 ,
  NODAL_ROTATIONS = 1<< 7 , XO_ELEMENTS = 1<< 8 , INTERFACE_TERMS = 1<< 9 , NORMAL_DERIVS = 1<<10 ,
  UPDATED_NODES = 1<<11 , PIOLA_MAPPING = 1<<12 , POINT_DEFORMATION = 1<<13
}
 Enum defining the additional terms that an Integrand may require. More...
 

Detailed Description

Base class representing a FEM integrand with gravity terms.


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