|
IFEM
90A354
|
Traction field based on a given force resultant and orientation. More...
#include <TractionField.h>


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, Vec3 > | Vec3Func |
| Convenience type. | |
Private Attributes | |
| Vec3 | X0 |
| Local origin. | |
| Tensor | Tlg |
| Local-to-global transformation. | |
| const ScalarFunc * | force |
| Force resultant magnitude. | |
| const ScalarFunc * | angle |
| Force angle about rotAxis. | |
| const Vec3Func * | fdir |
| Force direction/angles. | |
| const RealFunc * | shape |
| 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. | |
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).
|
inline |
The constructor initializes the function pointers.
| [in] | f | The scalar function defining the force magnitude |
| [in] | d | The direction/angles the force is acting in |
| [in] | s | Shape function defining the force distribution |
| [in] | Xaxis | Local X-axis direction |
| [in] | Zaxis | Local Z-axis direction |
| [in] | Xorig | Origin of the local coordinate system |
| [in] | v | If true, fdir is the force direction vector |
|
inline |
Alternative constructor for single-axis rotation.
| [in] | f | The scalar function defining the force magnitude |
| [in] | a | The scalar function defining the force angle |
| [in] | x | Which local axis the angle is referring to |
| [in] | s | Shape function defining the force distribution |
| [in] | Xaxis | Local X-axis direction |
| [in] | Zaxis | Local Z-axis direction |
| [in] | Xorig | Origin of the local coordinate system |