IFEM  90A354
ForceIntegrator.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _FORCE_INTEGRATOR_H
15 #define _FORCE_INTEGRATOR_H
16 
17 #include "MatVec.h"
18 
19 class SIMbase;
20 class Vec3;
21 class ForceBase;
22 class GlbForceVec;
23 struct TimeDomain;
24 
25 
26 namespace SIM
27 {
35  Vector getBoundaryForce(const Vectors& solution, SIMbase* model, int code,
36  const TimeDomain& time, const RealArray* X0);
44  Vector getBoundaryForce(const Vectors& solution, SIMbase* model, int code,
45  const TimeDomain& time, const Vec3* X0 = nullptr);
46 
53  bool getNodalForces(const Vectors& solution, SIMbase* model, int code,
54  const TimeDomain& time, GlbForceVec& force);
55 
60  bool initBoundaryNodeMap(SIMbase* model, int code, GlbForceVec& force);
61 
70  bool integrate(const Vectors& solution, SIMbase* model, int code,
71  const TimeDomain& time, ForceBase* forceInt,
72  GlbForceVec* force = nullptr);
73 }
74 
75 #endif
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition: ImmersedBoundaries.h:29
Global algebraic operations on index 1-based matrices and vectors.
std::vector< Vector > Vectors
An array of real-valued vectors with algebraic operations.
Definition: MatVec.h:37
Base class representing a system level boundary force quantity.
Definition: IntegrandBase.h:523
Class for storage of a global nodal force vector with assembly methods.
Definition: GlbForceVec.h:31
Base class for NURBS-based FEM simulators.
Definition: SIMbase.h:72
Simple class for representing a point in 3D space.
Definition: Vec3.h:27
A vector class with some added algebraic operations.
Definition: matrix.h:64
Simulation scope.
Definition: ForceIntegrator.h:27
bool initBoundaryNodeMap(SIMbase *model, int code, GlbForceVec &force)
Detects the global nodes that reside on a specified boundary.
Definition: ForceIntegrator.C:83
bool getNodalForces(const Vectors &solution, SIMbase *model, int code, const TimeDomain &time, GlbForceVec &force)
Integrates nodal forces on a specified boundary.
Definition: ForceIntegrator.C:61
Vector getBoundaryForce(const Vectors &solution, SIMbase *model, int code, const TimeDomain &time, const RealArray *X0)
Integrates the force resultant on a specified boundary.
Definition: ForceIntegrator.C:23
bool integrate(const Vectors &solution, SIMbase *model, int code, const TimeDomain &time, ForceBase *forceInt, GlbForceVec *force=nullptr)
Integrates a force integrand on a specified topology set.
Definition: ForceIntegrator.C:91
Struct representing the time domain.
Definition: TimeDomain.h:23