|
IFEM
90A354
|
Base class representing a system level boundary force quantity. More...
#include <IntegrandBase.h>


Public Member Functions | |
| virtual | ~ForceBase () |
| The destructor frees the internally allocated objects. | |
| void | initBuffer (size_t nel) |
| Allocates internal element force buffers. | |
| void | assemble (RealArray &force) const |
| Assembles the global forces. | |
| virtual void | initIntegration (size_t, size_t) |
| Initializes the integrand with the number of integration points. | |
| LocalIntegral * | getLocalIntegral (size_t, size_t iEl, bool=false) const override |
| Returns a local integral container for the element iEl. | |
| bool | initElement (const std::vector< int > &, LocalIntegral &) override |
| Dummy implementation (only boundary integration is relevant). | |
| bool | initElement (const std::vector< int > &, const FiniteElement &, const Vec3 &, size_t, LocalIntegral &) override |
| Dummy implementation (only boundary integration is relevant). | |
| bool | initElement (const std::vector< int > &, const std::vector< size_t > &, const std::vector< size_t > &, LocalIntegral &) override |
| Dummy implementation (only boundary integration is relevant). | |
| bool | initElement (const std::vector< int > &, const MxFiniteElement &, const std::vector< size_t > &, const std::vector< size_t > &, LocalIntegral &) override |
| Dummy implementation (only boundary integration is relevant). | |
| bool | initElementBou (const std::vector< int > &MNPC, LocalIntegral &elmInt) override |
| Initializes current element for boundary integration. | |
| 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). | |
| virtual size_t | getNoComps () const =0 |
| Returns the number of force components. | |
| 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 | setParam (const std::string &name, double value) override |
| Assigns a parameter value to property functions of the integrand. More... | |
| void | setParam (const std::string &name, const Vec3 &value) override |
| Assigns parameter values to property functions of the integrand. More... | |
| SIM::SolutionMode | getMode (bool) const override |
| Returns current solution mode. | |
| 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... | |
Protected Member Functions | |
| ForceBase (IntegrandBase &p) | |
| The constructor is protected to allow sub-classes only. | |
| void | clearBuffer () |
| Clears out internal buffers. | |
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 | |
| IntegrandBase & | myProblem |
| The problem-specific data. | |
| LintegralVec | eForce |
| Local integrals used during force integration. | |
| double * | eBuffer |
| Element force buffer used during integration. | |
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 system level boundary force quantity.
|
inline |
Returns a local integral contribution object for the given element.
| [in] | nen | Number of nodes on each basis |
| [in] | iEl | Global element number (1-based) |
| [in] | neumann | Whether or not we are assembling Neumann BCs |
This form is used for mixed formulations only. The default implementation just forwards to the single-basis version. Reimplement this method if your mixed formulation requires specialized local integral objects.
| virtual LocalIntegral* Integrand::getLocalIntegral |
Returns a local integral contribution object for the given element.
| [in] | nen | Number of nodes on element |
| [in] | iEl | Global element number (1-based) |
| [in] | neumann | Whether or not we are assembling Neumann BCs |
|
inlineoverridevirtual |
Assigns parameter values to property functions of the integrand.
| [in] | name | Parameter name |
| [in] | value | Parameter value |
Reimplemented from Integrand.
References myProblem, and Integrand::setParam().
|
inlineoverridevirtual |
Assigns a parameter value to property functions of the integrand.
| [in] | name | Parameter name |
| [in] | value | Parameter value |
Reimplemented from Integrand.
References myProblem, and Integrand::setParam().