|
IFEM
90A354
|
Base class representing a FEM integrand with gravity terms. More...
#include <HasGravityBase.h>


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 Vec3 & | getGravity () 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 GlobalIntegral & | getGlobalInt (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... | |
| LocalIntegral * | getLocalIntegral (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 NormBase * | getNormIntegrand (AnaSol *=nullptr) const |
| Returns a pointer to an Integrand for solution norm evaluation. | |
| virtual ForceBase * | getForceIntegrand (const Vec3 *, AnaSol *=nullptr) const |
| Returns a pointer to an Integrand for boundary force evaluation. | |
| virtual ForceBase * | getForceIntegrand () 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 Vector * | getExtractionField (size_t=1) |
| Returns the patch-wise extraction function field, if any. | |
| Vector & | getSolution (size_t n=0) |
| Accesses the primary solution vector of current patch. | |
| Vectors & | getSolutions () |
| 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. | |
| Vector * | getNamedVector (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 LocalIntegral * | getLocalIntegral (size_t nen, size_t iEl, bool neumann=false) const=0 |
| Returns a local integral contribution object for the given element. More... | |
| virtual LocalIntegral * | getLocalIntegral (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 LocalIntegral * | getLocalIntegral (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... | |
Base class representing a FEM integrand with gravity terms.