Project Chrono: chrono::fea::ChNodeFEAxyzP Class Reference

Public Member Functions | Protected Attributes | List of all members
chrono::fea::ChNodeFEAxyzP Class Reference
Chrono::Engine » Finite Element Analysis » Nodes

## Description

Class for a generic finite element node in 3D space, with scalar field P.

This can be used for typical Poisson-type problems (e.g., thermal, if the scalar field is temperature T, or electrostatics if the scalar field is electric potential V)

`#include <ChNodeFEAxyzP.h>`

Inheritance diagram for chrono::fea::ChNodeFEAxyzP:
[legend]
Collaboration diagram for chrono::fea::ChNodeFEAxyzP:
[legend]

## Public Member Functions
| ChNodeFEAxyzP (ChVector3d initial_pos=VNULL)
| ChNodeFEAxyzP (const ChNodeFEAxyzP &other)
ChNodeFEAxyzP & | operator= (const ChNodeFEAxyzP &other)
virtual ChVariables & | Variables ()
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.
virtual bool | IsFixed () const override
| Return true if the node is fixed (i.e., its state variables are not changed by the solver).
const ChVector3d & | GetPos () const
| Position of the node in absolute coordinates.
void | SetPos (const ChVector3d &mpos)
| Position of the node in absolute coordinates.
void | SetFieldVal (double mp)
| Set the scalar field at node.
double | GetFieldVal () const
| Get the scalar field at node.
void | SetFieldValDt (double mp)
| Set the scalar field time derivative at node.
double | GetFieldValDt () const
| Get the scalar field time derivative at node.
void | SetLoad (double load)
| Set the applied term (the load/source in a Poisson equation).
double | GetLoad () const
| Get the applied term (the load/source in a Poisson equation).
void | SetMass (double mm)
| Set mass of the node.
double | GetMass ()
| Get mass of the node.
virtual unsigned int | GetNumCoordsPosLevel () const override
| Get the number of degrees of freedom.
virtual void | ArchiveOut (ChArchiveOut &archive_out) override
| Method to allow serialization of transient data to archives.
virtual void | ArchiveIn (ChArchiveIn &archive_in) override
| Method to allow de-serialization of transient data from archives.
virtual void | NodeIntStateGather (const unsigned int off_x, ChState &x, const unsigned int off_v, ChStateDelta &v, double &T) override
virtual void | NodeIntStateScatter (const unsigned int off_x, const ChState &x, const unsigned int off_v, const ChStateDelta &v, const double T) override
virtual void | NodeIntStateGatherAcceleration (const unsigned int off_a, ChStateDelta &a) override
virtual void | NodeIntStateScatterAcceleration (const unsigned int off_a, const ChStateDelta &a) override
virtual void | NodeIntLoadResidual_F (const unsigned int off, ChVectorDynamic<> &R, const double c) override
virtual void | NodeIntLoadResidual_Mv (const unsigned int off, ChVectorDynamic<> &R, const ChVectorDynamic<> &w, const double c) override
virtual void | NodeIntLoadLumpedMass_Md (const unsigned int off, ChVectorDynamic<> &Md, double &error, const double c) override
virtual void | NodeIntToDescriptor (const unsigned int off_v, const ChStateDelta &v, const ChVectorDynamic<> &R) override
virtual void | NodeIntFromDescriptor (const unsigned int off_v, ChStateDelta &v) override
virtual void | InjectVariables (ChSystemDescriptor &mdescriptor) override
| Register with the given system descriptor any ChVariable objects associated with this item.
virtual void | VariablesFbReset () override
| Set the 'fb' part (the known term) of the encapsulated ChVariables to zero.
virtual void | VariablesFbLoadForces (double factor=1) override
| Add the current forces (applied to node) into the encapsulated ChVariables.
virtual void | VariablesQbLoadSpeed () override
| Initialize the 'qb' part of the ChVariables with the current value of speeds.
virtual void | VariablesQbSetSpeed (double step=0) override
| Fetch the item speed (ex.
virtual void | VariablesFbIncrementMq () override
| Add M*q (masses multiplied current 'qb') to Fb, ex.
virtual void | VariablesQbIncrementPosition (double step) override
| Increment node positions by the 'qb' part of the ChVariables, multiplied by a 'step' factor.
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)
ChNodeBase & | operator= (const ChNodeBase &other)
virtual unsigned int | GetNumCoordsVelLevel () const
| Get the number of degrees of freedom, derivative.
virtual unsigned int | GetNumCoordsPosLevelActive () const
| Get the actual number of active degrees of freedom.
virtual unsigned int | GetNumCoordsVelLevelActive () const
| Get the actual number of active degrees of freedom, derivative.
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 | 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)

## Protected Attributes
ChVariablesGeneric | variables
double | P
| solver proxy: variable with scalar field P
double | P_dt
| field derivative, if needed
double | F
| applied term
ChVector3d | pos
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)

## Additional Inherited Members
Public Attributes inherited from chrono::fea::ChNodeFEAbase
double | m_TotalMass
| Nodal mass obtained from element mass matrix.

## Member Function Documentation

## ◆ ArchiveIn()

void chrono::fea::ChNodeFEAxyzP::ArchiveIn | ( | ChArchiveIn & | archive_in | ) |
| overridevirtual

Method to allow de-serialization of transient data from archives.

Reimplemented from chrono::ChNodeBase.

## ◆ ArchiveOut()

void chrono::fea::ChNodeFEAxyzP::ArchiveOut | ( | ChArchiveOut & | archive_out | ) |
| overridevirtual

Method to allow serialization of transient data to archives.

Reimplemented from chrono::ChNodeBase.

## ◆ ForceToRest()

virtual void chrono::fea::ChNodeFEAxyzP::ForceToRest | ( |  | ) |
| inlineoverridevirtual

Reset to no speed and acceleration.

Implements chrono::fea::ChNodeFEAbase.

## ◆ GetMass()

double chrono::fea::ChNodeFEAxyzP::GetMass | ( |  | ) |
| inline

Get mass of the node.

Meaning of 'mass' changes depending on the problem type. Not meaningful except for transients.

## ◆ GetNumCoordsPosLevel()

virtual unsigned int chrono::fea::ChNodeFEAxyzP::GetNumCoordsPosLevel | ( |  | ) | const
| inlineoverridevirtual

Get the number of degrees of freedom.

Implements chrono::ChNodeBase.

## ◆ InjectVariables()

void chrono::fea::ChNodeFEAxyzP::InjectVariables | ( | ChSystemDescriptor & | descriptor | ) |
| overridevirtual

Register with the given system descriptor any ChVariable objects associated with this item.

Reimplemented from chrono::ChNodeBase.

## ◆ IsFixed()

bool chrono::fea::ChNodeFEAxyzP::IsFixed | ( |  | ) | const
| overridevirtual

Return true if the node is fixed (i.e., its state variables are not changed by the solver).

Implements chrono::fea::ChNodeFEAbase.

## ◆ NodeIntFromDescriptor()

void chrono::fea::ChNodeFEAxyzP::NodeIntFromDescriptor | ( | const unsigned int | off_v,
|  | ChStateDelta & | v )
| overridevirtual

Reimplemented from chrono::ChNodeBase.

## ◆ NodeIntLoadLumpedMass_Md()

void chrono::fea::ChNodeFEAxyzP::NodeIntLoadLumpedMass_Md | ( | const unsigned int | off,
|  | ChVectorDynamic<> & | Md,
|  | double & | error,
|  | const double | c )
| overridevirtual

Reimplemented from chrono::ChNodeBase.

## ◆ NodeIntLoadResidual_F()

void chrono::fea::ChNodeFEAxyzP::NodeIntLoadResidual_F | ( | const unsigned int | off,
|  | ChVectorDynamic<> & | R,
|  | const double | c )
| overridevirtual

Reimplemented from chrono::ChNodeBase.

## ◆ NodeIntLoadResidual_Mv()

void chrono::fea::ChNodeFEAxyzP::NodeIntLoadResidual_Mv | ( | const unsigned int | off,
|  | ChVectorDynamic<> & | R,
|  | const ChVectorDynamic<> & | w,
|  | const double | c )
| overridevirtual

Reimplemented from chrono::ChNodeBase.

## ◆ NodeIntStateGather()

void chrono::fea::ChNodeFEAxyzP::NodeIntStateGather | ( | const unsigned int | off_x,
|  | ChState & | x,
|  | const unsigned int | off_v,
|  | ChStateDelta & | v,
|  | double & | T )
| overridevirtual

Reimplemented from chrono::ChNodeBase.

## ◆ NodeIntStateGatherAcceleration()

void chrono::fea::ChNodeFEAxyzP::NodeIntStateGatherAcceleration | ( | const unsigned int | off_a,
|  | ChStateDelta & | a )
| overridevirtual

Reimplemented from chrono::ChNodeBase.

## ◆ NodeIntStateScatter()

void chrono::fea::ChNodeFEAxyzP::NodeIntStateScatter | ( | const unsigned int | off_x,
|  | const ChState & | x,
|  | const unsigned int | off_v,
|  | const ChStateDelta & | v,
|  | const double | T )
| overridevirtual

Reimplemented from chrono::ChNodeBase.

## ◆ NodeIntStateScatterAcceleration()

void chrono::fea::ChNodeFEAxyzP::NodeIntStateScatterAcceleration | ( | const unsigned int | off_a,
|  | const ChStateDelta & | a )
| overridevirtual

Reimplemented from chrono::ChNodeBase.

## ◆ NodeIntToDescriptor()

void chrono::fea::ChNodeFEAxyzP::NodeIntToDescriptor | ( | const unsigned int | off_v,
|  | const ChStateDelta & | v,
|  | const ChVectorDynamic<> & | R )
| overridevirtual

Reimplemented from chrono::ChNodeBase.

## ◆ Relax()

void chrono::fea::ChNodeFEAxyzP::Relax | ( |  | ) |
| overridevirtual

Set the rest position as the actual position.

Implements chrono::fea::ChNodeFEAbase.

## ◆ SetFixed()

void chrono::fea::ChNodeFEAxyzP::SetFixed | ( | bool | fixed | ) |
| overridevirtual

Fix/release this node.

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

Implements chrono::fea::ChNodeFEAbase.

## ◆ SetMass()

void chrono::fea::ChNodeFEAxyzP::SetMass | ( | double | mm | ) |
| inline

Set mass of the node.

Meaning of 'mass' changes depending on the problem type. Not meaningful except for transients.

## ◆ VariablesFbIncrementMq()

void chrono::fea::ChNodeFEAxyzP::VariablesFbIncrementMq | ( |  | ) |
| overridevirtual

Add M*q (masses multiplied current 'qb') to Fb, ex.

if qb is initialized with v_old using VariablesQbLoadSpeed, this method can be used in timestepping schemes that do: M*v_new = M*v_old + forces*dt

Reimplemented from chrono::ChNodeBase.

## ◆ VariablesFbLoadForces()

void chrono::fea::ChNodeFEAxyzP::VariablesFbLoadForces | ( | double | factor = 1 | ) |
| overridevirtual

Add the current forces (applied to node) into the encapsulated ChVariables.

Include in the 'fb' part: qf+=forces*factor

Reimplemented from chrono::ChNodeBase.

## ◆ VariablesFbReset()

void chrono::fea::ChNodeFEAxyzP::VariablesFbReset | ( |  | ) |
| overridevirtual

Set the 'fb' part (the known term) of the encapsulated ChVariables to zero.

Reimplemented from chrono::ChNodeBase.

## ◆ VariablesQbIncrementPosition()

void chrono::fea::ChNodeFEAxyzP::VariablesQbIncrementPosition | ( | double | step | ) |
| overridevirtual

Increment node positions by the 'qb' part of the ChVariables, multiplied by a 'step' factor.

pos+=qb*step If qb is a speed, this behaves like a single step of 1-st order numerical integration (Euler integration).

Reimplemented from chrono::ChNodeBase.

## ◆ VariablesQbLoadSpeed()

void chrono::fea::ChNodeFEAxyzP::VariablesQbLoadSpeed | ( |  | ) |
| overridevirtual

Initialize the 'qb' part of the ChVariables with the current value of speeds.

Reimplemented from chrono::ChNodeBase.

## ◆ VariablesQbSetSpeed()

void chrono::fea::ChNodeFEAxyzP::VariablesQbSetSpeed | ( | double | step = 0 | ) |
| overridevirtual

Fetch the item speed (ex.

linear velocity, in xyz nodes) from the 'qb' part of the ChVariables and sets it as the current item speed. If 'step' is not 0, also should compute the approximate acceleration of the item using backward differences, that is accel=(new_speed-old_speed)/step. Mostly used after the solver provided the solution in ChVariables.

Reimplemented from chrono::ChNodeBase.

## Member Data Documentation

## ◆ P

double chrono::fea::ChNodeFEAxyzP::P
| protected

solver proxy: variable with scalar field P

field

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

- D:/W/B/src/chrono-9.0.1/src/chrono/fea/ChNodeFEAxyzP.h
- D:/W/B/src/chrono-9.0.1/src/chrono/fea/ChNodeFEAxyzP.cpp