IFEM  90A354
Public Member Functions | Protected Member Functions | Private Types | Private Attributes | List of all members
ForceDirField Class Reference

Traction field based on a given force resultant and orientation. More...

#include <TractionField.h>

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

Public Member Functions

 ForceDirField (const ScalarFunc *f, const Vec3Func *d, const RealFunc *s, const Vec3 &Xaxis=Vec3(Real(1), Real(0), Real(0)), const Vec3 &Zaxis=Vec3(Real(0), Real(0), Real(1)), const Vec3 &Xorig=Vec3(), bool v=false)
 The constructor initializes the function pointers. More...
 
 ForceDirField (const ScalarFunc *f, const ScalarFunc *a, char x, const RealFunc *s, const Vec3 &Xaxis=Vec3(Real(1), Real(0), Real(0)), const Vec3 &Zaxis=Vec3(Real(0), Real(0), Real(1)), const Vec3 &Xorig=Vec3())
 Alternative constructor for single-axis rotation. More...
 
virtual ~ForceDirField ()
 The destructor frees the force functions.
 
virtual bool isZero () const
 Returns whether the function is identically zero or not.
 
- Public Member Functions inherited from TractionFunc
virtual bool isNormalPressure () const
 Returns whether the traction is always normal to the face or not.
 
virtual Vec3 timeDerivative (const Vec3 &, const Vec3 &) const
 Returns the time-derivative of the function.
 
- Public Member Functions inherited from utl::Function2< Vec3, Vec3 >
virtual ~Function2 ()
 Empty destructor.
 
Vec3 operator() (const Vec3 &x, const Vec3 &y) const
 Operator returning the function value for the given arguments.
 

Protected Member Functions

virtual Vec3 evaluate (const Vec3 &x, const Vec3 &) const
 Evaluates the traction field function at the specified point. More...
 
- Protected Member Functions inherited from utl::Function2< Vec3, Vec3 >
 Function2 ()
 The constructor is protected to allow sub-class instances only.
 

Private Types

typedef utl::Function< Real, Vec3Vec3Func
 Convenience type.
 

Private Attributes

Vec3 X0
 Local origin.
 
Tensor Tlg
 Local-to-global transformation.
 
const ScalarFuncforce
 Force resultant magnitude.
 
const ScalarFuncangle
 Force angle about rotAxis.
 
const Vec3Funcfdir
 Force direction/angles.
 
const RealFuncshape
 Shape function for force distribution.
 
bool dirVec
 If true, fdir is the force direction vector.
 
char rotAxis
 Which local axis the angle is referring to.
 

Additional Inherited Members

- Public Types inherited from utl::Function2< Vec3, Vec3 >
typedef Vec3 Input
 Input type.
 
typedef Vec3 Output
 Output type.
 

Detailed Description

Traction field based on a given force resultant and orientation.

This class defines an explicit traction field function based on a time-dependent force magnitude function, a time-dependent vector-valued function (fdir) giving either the force direction as a unit vector or the three rotation angles (roll, pitch and yaw) about the local coordinate axes. Finally, a spatial shape function is used to describe the distribution of the force resultant over the loaded face.

The global force is acting along the Y-axis of the local coordinate system, which is defined by the specified origin X0 and the local-to-global transformation Tlg. This local coordinate system is then assigned a time-dependent rotation as given by fdir. The traction value at a given global point X and time t is therefore computed as

\[ {\bf t}({\bf X},t) = {\bf T}_{lg}\left\{f(t)S({\bf x}(t)){\bf d}(t)\right\} \]

where \(f(t)\) denotes the value for the force magnitude function, \(S({\bf x}(t))\) is the shape function value at the local point x and time t, and \({\bf d}(t)\) is the time-dependent force direction vector of unit length. The local, time-dependent coordinates x are computed from the global coordinate X through

\[ {\bf x}(t) = {\bf T}_{rot}(t)\left\{({\bf X}-{\bf X}_0){\bf T}_{lg}\right\} \]

where \({\bf T}_{rot}(t)\) is the time-dependent rotation matrix derived from either the vector-valued function fdir, or the scalar-valued function angle and the rotAxis parameter. The Local force direction vector \({\bf d}(t)\) is then taken as the second column of this transformation matrix (i.e., the Y-axis).

Constructor & Destructor Documentation

◆ ForceDirField() [1/2]

ForceDirField::ForceDirField ( const ScalarFunc f,
const Vec3Func d,
const RealFunc s,
const Vec3 Xaxis = Vec3(Real(1),Real(0),Real(0)),
const Vec3 Zaxis = Vec3(Real(0),Real(0),Real(1)),
const Vec3 Xorig = Vec3(),
bool  v = false 
)
inline

The constructor initializes the function pointers.

Parameters
[in]fThe scalar function defining the force magnitude
[in]dThe direction/angles the force is acting in
[in]sShape function defining the force distribution
[in]XaxisLocal X-axis direction
[in]ZaxisLocal Z-axis direction
[in]XorigOrigin of the local coordinate system
[in]vIf true, fdir is the force direction vector

◆ ForceDirField() [2/2]

ForceDirField::ForceDirField ( const ScalarFunc f,
const ScalarFunc a,
char  x,
const RealFunc s,
const Vec3 Xaxis = Vec3(Real(1),Real(0),Real(0)),
const Vec3 Zaxis = Vec3(Real(0),Real(0),Real(1)),
const Vec3 Xorig = Vec3() 
)
inline

Alternative constructor for single-axis rotation.

Parameters
[in]fThe scalar function defining the force magnitude
[in]aThe scalar function defining the force angle
[in]xWhich local axis the angle is referring to
[in]sShape function defining the force distribution
[in]XaxisLocal X-axis direction
[in]ZaxisLocal Z-axis direction
[in]XorigOrigin of the local coordinate system

Member Function Documentation

◆ evaluate()

Vec3 ForceDirField::evaluate ( const Vec3 x,
const Vec3  
) const
protectedvirtual

Evaluates the traction field function at the specified point.

Parameters
[in]xGlobal coordinates of evaluation point

Implements utl::Function2< Vec3, Vec3 >.

References angle, dirVec, fdir, force, Real, rotAxis, shape, Vec4::t, Tlg, Vec3::x, X0, Vec3::y, and Vec3::z.


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