Added: Integrand for calculation of global nodal forces on boundaries
git-svn-id: http://svn.sintef.no/trondheim/IFEM/trunk@2357 e10b68d5-8a6e-419e-a041-bce267b0401d
This commit is contained in:
@@ -221,8 +221,10 @@ public:
|
||||
//! \brief Returns a pointer to an Integrand for solution norm evaluation.
|
||||
virtual NormBase* getNormIntegrand(AnaSol* = 0) const { return 0; }
|
||||
//! \brief Returns a pointer to an Integrand for boundary force evaluation.
|
||||
virtual ForceBase* getForceIntegrand(const Vec3* = 0, AnaSol* = 0) const
|
||||
virtual ForceBase* getForceIntegrand(const Vec3*, AnaSol* = 0) const
|
||||
{ return 0; }
|
||||
//! \brief Returns a pointer to an Integrand for nodal force evaluation.
|
||||
virtual ForceBase* getForceIntegrand() const { return 0; }
|
||||
|
||||
//! \brief Returns the number of primary/secondary solution field components.
|
||||
virtual size_t getNoFields(int = 2) const { return 0; }
|
||||
@@ -374,7 +376,8 @@ public:
|
||||
virtual void initIntegration(size_t, size_t) {}
|
||||
|
||||
//! \brief Returns a local integral container for the element \a iEl.
|
||||
virtual LocalIntegral* getLocalIntegral(size_t, size_t iEl, bool) const;
|
||||
virtual LocalIntegral* getLocalIntegral(size_t nen, size_t iEl,
|
||||
bool = false) const;
|
||||
|
||||
//! \brief Dummy implementation (only boundary integration is relevant).
|
||||
virtual bool initElement(const std::vector<int>&, LocalIntegral&)
|
||||
|
||||
@@ -1711,6 +1711,12 @@ ForceBase* SIMbase::getBoundaryForceIntegrand (const Vec3* X0) const
|
||||
}
|
||||
|
||||
|
||||
ForceBase* SIMbase::getNodalForceIntegrand () const
|
||||
{
|
||||
return myProblem->getForceIntegrand();
|
||||
}
|
||||
|
||||
|
||||
bool SIMbase::solutionNorms (const TimeDomain& time,
|
||||
const Vectors& psol, const Vectors& ssol,
|
||||
Vectors& gNorm, Matrix* eNorm)
|
||||
|
||||
@@ -168,7 +168,8 @@ public:
|
||||
//! \param[in] nMats Number of system matrices
|
||||
//! \param[in] nVec Number of system right-hand-side vectors
|
||||
//! \param[in] withRF Whether nodal reaction forces should be computed or not
|
||||
bool initSystem(int mType, size_t nMats, size_t nVec, bool withRF = true);
|
||||
bool initSystem(int mType, size_t nMats = 1, size_t nVec = 1,
|
||||
bool withRF = true);
|
||||
|
||||
//! \brief Associates a system vector to a system matrix.
|
||||
//! \sa AlgEqSystem::setAssociatedVector
|
||||
@@ -601,6 +602,11 @@ public:
|
||||
//! manually deleted before the variable receiving the pointer value goes
|
||||
//! out of scope.
|
||||
ForceBase* getBoundaryForceIntegrand(const Vec3* X0 = NULL) const;
|
||||
//! \brief Returns a pointer to a force integrand object for this simulator.
|
||||
//! \note The object is allocated dynamically and has therefore to be
|
||||
//! manually deleted before the variable receiving the pointer value goes
|
||||
//! out of scope.
|
||||
ForceBase* getNodalForceIntegrand() const;
|
||||
|
||||
//! \brief Returns a unique integer code for a Property set.
|
||||
//! \param[in] setName Name of the topology set the property is defined on
|
||||
|
||||
Reference in New Issue
Block a user