chrono::fea::ChNodeFEAfieldXYZ Class Reference

Description

Class for a node of a generic 3D finite element node with x,y,z position.

This is the typical node that can be used for tetrahedrons, etc. Note: this type of multiphysics node do not carry any ChVariable with it, because attaching ChVariables is up to some ChField. See also ChDomain.

#include <ChNodeFEAfieldXYZ.h>

Inheritance diagram for chrono::fea::ChNodeFEAfieldXYZ:
Collaboration diagram for chrono::fea::ChNodeFEAfieldXYZ:

Public Member Functions

 ChNodeFEAfieldXYZ (ChVector3d reference_pos=VNULL)
 
 ChNodeFEAfieldXYZ (const ChNodeFEAfieldXYZ &other)
 
void SetReferencePos (const ChVector3d ref_pos)
 
ChVector3d GetReferencePos ()
 
virtual void Relax () override
 Set the rest position as the actual position.
 
virtual void ForceToRest () override
 Reset to no speed and acceleration.
 
virtual void SetFixed (bool fixed) override
 Fix/release this node. More...
 
virtual bool IsFixed () const override
 Return true if the node is fixed (i.e., its state variables are not changed by the solver).
 
virtual unsigned int GetNumCoordsPosLevel () const override
 Get the number of degrees of freedom.
 
- Public Member Functions inherited from chrono::fea::ChNodeFEAbase
virtual void SetIndex (unsigned int mindex)
 Sets the global index of the node.
 
virtual unsigned int GetIndex ()
 Gets the global index of the node.
 
virtual void SetupInitial (ChSystem *system)
 Initial setup.
 
- Public Member Functions inherited from chrono::ChNodeBase
 ChNodeBase (const ChNodeBase &other)
 
ChNodeBaseoperator= (const ChNodeBase &other)
 
virtual unsigned int GetNumCoordsVelLevel () const
 Get the number of degrees of freedom, derivative. More...
 
virtual unsigned int GetNumCoordsPosLevelActive () const
 Get the actual number of active degrees of freedom. More...
 
virtual unsigned int GetNumCoordsVelLevelActive () const
 Get the actual number of active degrees of freedom, derivative. More...
 
virtual bool IsAllCoordsActive () const
 Return true if all node DOFs are active (no node variable is fixed).
 
unsigned int NodeGetOffsetPosLevel ()
 Get offset in the state vector (position part).
 
unsigned int NodeGetOffsetVelLevel ()
 Get offset in the state vector (speed part).
 
void NodeSetOffsetPosLevel (const unsigned int moff)
 Set offset in the state vector (position part).
 
void NodeSetOffsetVelLevel (const unsigned int moff)
 Set offset in the state vector (speed part).
 
virtual void NodeIntStateGather (const unsigned int off_x, ChState &x, const unsigned int off_v, ChStateDelta &v, double &T)
 
virtual void NodeIntStateScatter (const unsigned int off_x, const ChState &x, const unsigned int off_v, const ChStateDelta &v, const double T)
 
virtual void NodeIntStateGatherAcceleration (const unsigned int off_a, ChStateDelta &a)
 
virtual void NodeIntStateScatterAcceleration (const unsigned int off_a, const ChStateDelta &a)
 
virtual void NodeIntStateIncrement (const unsigned int off_x, ChState &x_new, const ChState &x, const unsigned int off_v, const ChStateDelta &Dv)
 
virtual void NodeIntStateGetIncrement (const unsigned int off_x, const ChState &x_new, const ChState &x, const unsigned int off_v, ChStateDelta &Dv)
 
virtual void NodeIntLoadResidual_F (const unsigned int off, ChVectorDynamic<> &R, const double c)
 
virtual void NodeIntLoadResidual_Mv (const unsigned int off, ChVectorDynamic<> &R, const ChVectorDynamic<> &w, const double c)
 
virtual void NodeIntLoadLumpedMass_Md (const unsigned int off, ChVectorDynamic<> &Md, double &error, const double c)
 
virtual void NodeIntToDescriptor (const unsigned int off_v, const ChStateDelta &v, const ChVectorDynamic<> &R)
 
virtual void NodeIntFromDescriptor (const unsigned int off_v, ChStateDelta &v)
 
virtual void InjectVariables (ChSystemDescriptor &descriptor)
 Register with the given system descriptor any ChVariable objects associated with this item.
 
virtual void VariablesFbReset ()
 Set the 'fb' part (the known term) of the encapsulated ChVariables to zero.
 
virtual void VariablesFbLoadForces (double factor=1)
 Add the current forces (applied to node) into the encapsulated ChVariables. More...
 
virtual void VariablesQbLoadSpeed ()
 Initialize the 'qb' part of the ChVariables with the current value of speeds.
 
virtual void VariablesFbIncrementMq ()
 Add M*q (masses multiplied current 'qb') to Fb, ex. More...
 
virtual void VariablesQbSetSpeed (double step=0)
 Fetch the item speed (ex. More...
 
virtual void VariablesQbIncrementPosition (double step)
 Increment node positions by the 'qb' part of the ChVariables, multiplied by a 'step' factor. More...
 
virtual void ArchiveOut (ChArchiveOut &archive_out)
 Method to allow serialization of transient data to archives.
 
virtual void ArchiveIn (ChArchiveIn &archive_in)
 Method to allow de-serialization of transient data from archives.
 
- Public Member Functions inherited from chrono::ChVector3< double >
 ChVector3 (double x, double y, double z)
 
 ChVector3 (double a)
 
 ChVector3 (const ChVector3< double > &other)
 
 ChVector3 (const ChVector3< RealB > &other)
 Copy constructor with type change.
 
 ChVector3 (const Eigen::MatrixBase< Derived > &vec, typename std::enable_if<(Derived::MaxRowsAtCompileTime==1||Derived::MaxColsAtCompileTime==1), Derived >::type *=0)
 Construct a 3d vector from an Eigen vector expression.
 
double & x ()
 Access to components.
 
const double & x () const
 
double & y ()
 
const double & y () const
 
double & z ()
 
const double & z () const
 
double * data ()
 Access to underlying array storage.
 
const double * data () const
 
Eigen::Map< Eigen::Matrix< double, 3, 1 > > eigen ()
 View this 3d vector as an Eigen vector.
 
Eigen::Map< const Eigen::Matrix< double, 3, 1 > > eigen () const
 
ChVector3operator= (const Eigen::MatrixBase< Derived > &vec)
 Assign an Eigen vector expression to this 3d vector.
 
ChVector3< double > & operator= (const ChVector3< double > &other)
 Assignment operator (copy from another vector).
 
ChVector3< double > & operator= (const ChVector3< RealB > &other)
 Assignment operator (copy from another vector) with type change.
 
void Set (double x, double y, double z)
 Set the three values of the vector at once.
 
void Set (const ChVector3< double > &v)
 Set the vector as a copy of another vector.
 
void Set (double s)
 Set all the vector components ts to the same scalar.
 
void SetNull ()
 Set the vector to the null vector. More...
 
bool IsNull () const
 Return true if this vector is the null vector.
 
bool Equals (const ChVector3< double > &other) const
 Return true if this vector is equal to another vector.
 
bool Equals (const ChVector3< double > &other, double tol) const
 Return true if this vector is equal to another vector, within a tolerance 'tol'.
 
double Length () const
 Compute the euclidean norm of the vector, that is its length or magnitude.
 
double Length2 () const
 Compute the squared euclidean norm of the vector.
 
double LengthInf () const
 Compute the infinity norm of the vector, that is the maximum absolute value of one of its elements.
 
double & operator[] (unsigned index)
 Subscript operator.
 
const double & operator[] (unsigned index) const
 
ChVector3< double > operator+ () const
 Operators for sign change.
 
ChVector3< double > operator+ (const ChVector3< double > &other) const
 Operator for vector sum.
 
ChVector3< double > operator- () const
 
ChVector3< double > operator- (const ChVector3< double > &other) const
 Operator for vector difference.
 
ChVector3< double > & operator+= (const ChVector3< double > &other)
 
ChVector3< double > & operator-= (const ChVector3< double > &other)
 
ChVector3< double > operator* (const ChVector3< double > &other) const
 Operator for element-wise multiplication. More...
 
ChVector3< double > operator* (double s) const
 Operator for scaling the vector by a scalar value, as V*s.
 
ChVector3< double > & operator*= (const ChVector3< double > &other)
 
ChVector3< double > & operator*= (double s)
 
ChVector3< double > operator/ (const ChVector3< double > &other) const
 Operator for element-wise division. More...
 
ChVector3< double > operator/ (double v) const
 Operator for scaling the vector by inverse of a scalar value, as v/s.
 
ChVector3< double > & operator/= (const ChVector3< double > &other)
 
ChVector3< double > & operator/= (double v)
 
double operator^ (const ChVector3< double > &other) const
 Operator for dot product: A^B means the scalar dot-product A*B Note: pay attention to operator low precedence (see C++ precedence rules!)
 
ChVector3< double > operator% (const ChVector3< double > &other) const
 Operator for cross product: AB means the vector cross-product AxB Note: pay attention to operator low precedence (see C++ precedence rules!)
 
ChVector3< double > & operator%= (const ChVector3< double > &other)
 
bool operator<= (const ChVector3< double > &other) const
 Component-wise comparison operators.
 
bool operator>= (const ChVector3< double > &other) const
 
bool operator< (const ChVector3< double > &other) const
 
bool operator> (const ChVector3< double > &other) const
 
bool operator== (const ChVector3< double > &other) const
 
bool operator!= (const ChVector3< double > &other) const
 
void Add (const ChVector3< double > &A, const ChVector3< double > &B)
 Set this vector to the sum of A and B: this = A + B.
 
void Sub (const ChVector3< double > &A, const ChVector3< double > &B)
 Set this vector to the difference of A and B: this = A - B.
 
void Mul (const ChVector3< double > &A, double s)
 Set this vector to the product of a vector A and scalar s: this = A * s.
 
void Scale (double s)
 Scale this vector by a scalar: this *= s.
 
void Abs ()
 Set this vector to its component-wise absolute values.
 
void Cross (const ChVector3< double > &A, const ChVector3< double > &B)
 Set this vector to the cross product of A and B: this = A x B.
 
ChVector3< double > Cross (const ChVector3< double > other) const
 Return the cross product with another vector: result = this x other.
 
double Dot (const ChVector3< double > &B) const
 Return the dot product with another vector: result = this ^ B.
 
bool Normalize ()
 Normalize this vector in place, so that its euclidean length is 1. More...
 
ChVector3< double > GetNormalized () const
 Return a normalized copy of this vector, with euclidean length = 1. More...
 
void SetLength (double s)
 Impose a new length to the vector, keeping the direction unchanged.
 
void GetDirectionAxesAsX (ChVector3< double > &Vx, ChVector3< double > &Vy, ChVector3< double > &Vz, ChVector3< double > y_sugg=ChVector3< double >(0, 1, 0)) const
 Output three orthonormal vectors considering this vector along X axis. More...
 
void GetDirectionAxesAsY (ChVector3< double > &Vx, ChVector3< double > &Vy, ChVector3< double > &Vz, ChVector3< double > z_sugg=ChVector3< double >(0, 0, 1)) const
 Output three orthonormal vectors considering this vector along Y axis. More...
 
void GetDirectionAxesAsZ (ChVector3< double > &Vx, ChVector3< double > &Vy, ChVector3< double > &Vz, ChVector3< double > x_sugg=ChVector3< double >(1, 0, 0)) const
 Output three orthonormal vectors considering this vector along Z axis. More...
 
int GetMaxComponent () const
 Return the index of the largest component in absolute value.
 
ChVector3< double > GetOrthogonalVector () const
 Return a unit vector orthogonal to this vector.
 
void ArchiveOut (ChArchiveOut &archive_out)
 Method to allow serialization of transient m_data to archives.
 
void ArchiveIn (ChArchiveIn &archive_in)
 Method to allow de-serialization of transient m_data from archives.
 

Additional Inherited Members

- Public Attributes inherited from chrono::fea::ChNodeFEAbase
double m_TotalMass
 Nodal mass obtained from element mass matrix.
 
- Protected Attributes inherited from chrono::fea::ChNodeFEAbase
unsigned int g_index
 global node index
 
- Protected Attributes inherited from chrono::ChNodeBase
unsigned int offset_x
 offset in vector of state (position part)
 
unsigned int offset_w
 offset in vector of state (speed part)
 

Member Function Documentation

◆ SetFixed()

virtual void chrono::fea::ChNodeFEAfieldXYZ::SetFixed ( bool  fixed)
inlineoverridevirtual

Fix/release this node.

If fixed, its state variables are not changed by the solver.

Implements chrono::fea::ChNodeFEAbase.


The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono/fea/ChNodeFEAfieldXYZ.h