IFEM  90A354
Public Member Functions | Private Attributes | List of all members
ReactionsOnly Class Reference

Class for assembly of reaction- and interface forces. More...

#include <ReactionsOnly.h>

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

Public Member Functions

 ReactionsOnly (const SAM *sam, const ProcessAdm &adm, RealArray *rf=nullptr, Vector *sf=nullptr)
 The constructor initializes the data members. More...
 
virtual ~ReactionsOnly ()
 Empty destructor.
 
virtual void initialize (char)
 Initializes the integrated quantity to zero.
 
virtual bool finalize (bool)
 Finalizes the integrated quantity after element assembly.
 
virtual bool assemble (const LocalIntegral *elmObj, int elmId)
 Adds a LocalIntegral object into a corresponding global object. More...
 
virtual bool haveContributions (size_t pidx, const std::vector< Property > &pvec) const
 Returns true if the patch pidx have any force contributions. More...
 
- Public Member Functions inherited from GlobalIntegral
 GlobalIntegral ()
 The default constructor.
 
virtual ~GlobalIntegral ()
 Empty destructor.
 
virtual bool threadSafe () const
 Returns true if all elements can be assembled in parallel.
 

Private Attributes

const SAMmySam
 Data for FE assembly management.
 
const ProcessAdmmyAdm
 Parallel processing administrator.
 
StdVector b
 Internal right-hand-side vector used in the force assembly.
 
RealArrayR
 Nodal reaction forces.
 
VectorS
 Nodal internal forces.
 

Detailed Description

Class for assembly of reaction- and interface forces.

This class can be used for linear problems which normally consists of a single assembly loop. For non-linear problems, the reaction forces for a given solution state is calculated during the subsequent iteration where the solution vector of the previous iteration is used. In linear problems we therefore need a separate assembly loop where only the reaction forces are calculated. This class is provided to facilitate such calculations.

The class can also be used to calculate interface force resultants, for boundaries not associated with dirichlet conditions.

Constructor & Destructor Documentation

◆ ReactionsOnly()

ReactionsOnly::ReactionsOnly ( const SAM sam,
const ProcessAdm adm,
RealArray rf = nullptr,
Vector sf = nullptr 
)

The constructor initializes the data members.

Parameters
[in]samData for FE assembly management
[in]admParallell processing administrator
[in]rfReaction forces to be assembled
[in]sfInternal force vector to be assembled

References b, SAM::getNoEquations(), SAM::getNoSpecifiedDOFs(), R, and StdVector::redim().

Member Function Documentation

◆ assemble()

bool ReactionsOnly::assemble ( const LocalIntegral elmObj,
int  elmId 
)
virtual

Adds a LocalIntegral object into a corresponding global object.

Parameters
[in]elmObjThe local integral object to add into *this.
[in]elmIdGlobal number of the element associated with elmObj

Reimplemented from GlobalIntegral.

References SAM::assembleSystem(), b, ElmMats::getRHSVector(), mySam, and R.

◆ haveContributions()

bool ReactionsOnly::haveContributions ( size_t  pidx,
const std::vector< Property > &  pvec 
) const
virtual

Returns true if the patch pidx have any force contributions.

Parameters
[in]pidx1-based patch index
[in]pvecPhysical property mapping

Reimplemented from GlobalIntegral.

References R, and S.


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