#include <MeshMatrixMass.h>
This component computes the integral of this mass density over the volume of the object geometry. More...
This component computes the integral of this mass density over the volume of the object geometry.
template <class DataTypes, class TMassType>
DataTypes | type of the state associated to this mass |
GeometricalTypes | type of the geometry, i.e type of the state associated with the topology (if the topology and the mass relates to the same state, this will be the same as DataTypes) |
Public Attributes | |
core::topology::PointData< type::vector< MassType > > | d_vertexMass |
Values of the particles masses stored on vertices. More... | |
core::topology::EdgeData< type::vector< MassType > > | d_edgeMass |
Values of the particles masses stored on edges. More... | |
Data< bool > | d_computeMassOnRest |
if true, the mass of every element is computed based on the rest position rather than the position More... | |
Data< bool > | d_showCenterOfGravity |
to display the center of gravity of the system More... | |
Data< Real > | d_showAxisSize |
scale to change the axis size More... | |
Data< bool > | d_lumping |
if mass lumping should be performed (only compute mass on vertices) More... | |
Data< bool > | d_printMass |
if specific mass information should be outputted More... | |
Data< std::map< std::string, sofa::type::vector< double > > > | f_graph |
Graph of the controlled potential. More... | |
SingleLink< MeshMatrixMass< DataTypes, GeometricalTypes >, sofa::core::topology::BaseMeshTopology, BaseLink::FLAG_STOREPATH|BaseLink::FLAG_STRONGLINK > | l_topology |
Link to be set to the topology container in the component graph. More... | |
SingleLink< MeshMatrixMass< DataTypes, GeometricalTypes >, sofa::core::behavior::MechanicalState< GeometricalTypes >, BaseLink::FLAG_STOREPATH|BaseLink::FLAG_STRONGLINK > | l_geometryState |
Link to be set to the MechanicalObject associated with the geometry. More... | |
Data of mass information | |
Mass density of the object | |
Data< sofa::type::vector< MassType > > | d_massDensity |
Data< MassType > | d_totalMass |
Total mass of the object. More... | |
Public Attributes inherited from sofa::core::behavior::BaseForceField | |
Data< SReal > | rayleighStiffness |
Rayleigh Damping stiffness matrix coefficient. More... | |
objectmodel::lifecycle::DeprecatedData | isCompliance |
Considered as compliance, else considered as stiffness (default to false) More... | |
Public Attributes inherited from sofa::core::objectmodel::BaseObject | |
Data< bool > | f_listening |
if true, handle the events, otherwise ignore the events More... | |
Public Attributes inherited from sofa::core::objectmodel::Base | |
std::vector< lifecycle::DeprecatedData * > | m_oldAttributes |
Data< int > | d_messageLogCount |
Data< std::string > | name |
Name of the object. More... | |
Data< bool > | f_printLog |
if true, emits extra messages at runtime. More... | |
Data< sofa::core::objectmodel::TagSet > | f_tags |
list of the subsets the object belongs to More... | |
Data< sofa::type::BoundingBox > | f_bbox |
this object bounding box More... | |
Data< sofa::core::objectmodel::ComponentState > | d_componentState |
The state of the component among (Dirty, Valid, Undefined, Loading, Invalid). More... | |
std::string | m_definitionSourceFileName {""} |
int | m_definitionSourceFilePos {-1} |
std::string | m_instanciationSourceFileName {""} |
int | m_instanciationSourceFilePos {-1} |
Public Attributes inherited from sofa::core::behavior::BaseMass | |
Data< bool > | m_separateGravity |
Data< SReal > | rayleighMass |
Rayleigh Damping mass matrix coefficient. More... | |
Protected Attributes | |
sofa::geometry::ElementType | m_massTopologyType |
The type of topology to build the mass from the topology. More... | |
Real | m_massLumpingCoeff |
MeshMatrixMassInternalData< DataTypes, MassType, GeometricalTypes > | data |
Internal data required for Cuda computation (copy of vertex mass for deviceRead) More... | |
template<typename T = GeometricalTypes, typename std::enable_if_t< T::spatial_dimensions > = 3, int > | |
sofa::core::topology::BaseMeshTopology * | m_topology |
Pointer to the topology container. Will be set by link. More... | |
sofa::core::behavior::MechanicalState< GeometricalTypes >::SPtr | m_geometryState |
Pointer to the state owning geometrical positions, associated with the topology. More... | |
Protected Attributes inherited from sofa::core::behavior::Mass< DataTypes > | |
std::unique_ptr< std::ofstream > | m_gnuplotFileEnergy |
stream to export Kinematic, Potential and Mechanical Energy to gnuplot files More... | |
Protected Attributes inherited from sofa::core::behavior::StateAccessor | |
MultiLink< StateAccessor, BaseMechanicalState, BaseLink::FLAG_DUPLICATE > | l_mechanicalStates |
Protected Attributes inherited from sofa::core::objectmodel::BaseObject | |
SingleLink< BaseObject, BaseContext, BaseLink::FLAG_DOUBLELINK > | l_context |
LinkSlaves | l_slaves |
SingleLink< BaseObject, BaseObject, BaseLink::FLAG_DOUBLELINK > | l_master |
Protected Attributes inherited from sofa::core::objectmodel::Base | |
std::map< std::string, sofa::core::DataTrackerCallback > | m_internalEngine |
VecData | m_vecData |
List of fields (Data instances) More... | |
MapData | m_aliasData |
name -> Data multi-map (includes names and aliases) More... | |
VecLink | m_vecLink |
List of links. More... | |
MapLink | m_aliasLink |
name -> Link multi-map (includes names and aliases) More... | |
Protected Attributes inherited from sofa::core::behavior::SingleStateAccessor< DataTypes > | |
SingleLink< SingleStateAccessor< DataTypes >, MechanicalState< DataTypes >, BaseLink::FLAG_STRONGLINK > | mstate |
Public Member Functions | |
SOFA_CLASS (SOFA_TEMPLATE2(MeshMatrixMass, DataTypes, GeometricalTypes), SOFA_TEMPLATE(core::behavior::Mass, DataTypes)) | |
virtual void | clear () |
void | reinit () override |
Update method called when variables used in precomputation are modified. More... | |
void | init () override |
Initialization method called at graph creation and modification, during top-down traversal. More... | |
void | handleEvent (sofa::core::objectmodel::Event *event) override |
Handle an event. More... | |
void | doUpdateInternal () override |
Implementation of the internal update. More... | |
sofa::geometry::ElementType | getMassTopologyType () const |
void | setMassTopologyType (sofa::geometry::ElementType t) |
std::size_t | getMassCount () const |
void | printMass () |
Print key mass information (totalMass, vertexMass and massDensity) More... | |
void | computeMass () |
Compute the mass from input values. More... | |
void | copyVertexMass () |
Copy the vertex mass scalar (in case of CudaTypes) More... | |
void | addMDx (const core::MechanicalParams *, DataVecDeriv &f, const DataVecDeriv &dx, SReal factor) override |
void | accFromF (const core::MechanicalParams *, DataVecDeriv &a, const DataVecDeriv &f) override |
void | addForce (const core::MechanicalParams *, DataVecDeriv &f, const DataVecCoord &x, const DataVecDeriv &v) override |
SReal | getKineticEnergy (const core::MechanicalParams *, const DataVecDeriv &v) const override |
vMv/2 using dof->getV() override More... | |
SReal | getPotentialEnergy (const core::MechanicalParams *, const DataVecCoord &x) const override |
Mgx potential in a uniform gravity field, null at origin. More... | |
type::Vec6 | getMomentum (const core::MechanicalParams *mparams, const DataVecCoord &x, const DataVecDeriv &v) const override |
(Mv,cross(x,Mv)) override More... | |
void | addGravityToV (const core::MechanicalParams *mparams, DataVecDeriv &d_v) override |
bool | isDiagonal () const override |
void | addMToMatrix (sofa::linearalgebra::BaseMatrix *mat, SReal mFact, unsigned int &offset) override |
Add Mass contribution to global Matrix assembling. More... | |
void | buildMassMatrix (sofa::core::behavior::MassMatrixAccumulator *matrices) override |
void | buildStiffnessMatrix (core::behavior::StiffnessMatrix *) override |
void | buildDampingMatrix (core::behavior::DampingMatrix *) override |
SReal | getElementMass (Index index) const override |
Get the mass relative to the DOF at index. More... | |
void | getElementMass (Index index, linearalgebra::BaseMatrix *m) const override |
Get the matrix relative to the DOF at index. More... | |
void | draw (const core::visual::VisualParams *vparams) override |
Render internal data of this object, for debugging purposes. More... | |
bool | isLumped () const |
Answer wether mass matrix is lumped or not. More... | |
void | parse (sofa::core::objectmodel::BaseObjectDescription *arg) override |
Parse the given description to assign values to this object's fields and potentially other parameters. More... | |
Vec6 | getMomentum (const core::MechanicalParams *, const DataVecCoord &vx, const DataVecDeriv &vv) const |
template<class DataTypes , class GeometricalTypes > | |
void | applyEdgeMassCreation (Index, MassType &EdgeMass, const core::topology::BaseMeshTopology::Edge &, const sofa::type::vector< Index > &, const sofa::type::vector< SReal > &) |
Read and write access functions in mass information | |
virtual const sofa::type::vector< MassType > & | getVertexMass () |
virtual const sofa::type::vector< MassType > & | getMassDensity () |
virtual const Real & | getTotalMass () |
virtual void | setVertexMass (sofa::type::vector< MassType > vertexMass) |
virtual void | setMassDensity (sofa::type::vector< MassType > massDensity) |
virtual void | setMassDensity (MassType massDensityValue) |
virtual void | setTotalMass (MassType totalMass) |
virtual void | addMassDensity (const sofa::type::vector< Index > &indices, const sofa::type::vector< sofa::type::vector< Index > > &ancestors, const sofa::type::vector< sofa::type::vector< SReal > > &coefs) |
Check and standard initialization functions from mass information | |
virtual bool | checkVertexMass () |
virtual void | initFromVertexMass () |
virtual bool | checkMassDensity () |
virtual void | initFromMassDensity () |
virtual bool | checkTotalMass () |
virtual void | checkTotalMassInit () |
virtual void | initFromTotalMass () |
bool | checkEdgeMass () |
void | initFromVertexAndEdgeMass () |
Public Member Functions inherited from sofa::core::behavior::Mass< DataTypes > | |
SOFA_CLASS2 (SOFA_TEMPLATE(Mass, DataTypes), SOFA_TEMPLATE(ForceField, DataTypes), BaseMass) | |
void | initGnuplot (const std::string path) override |
initialization to export kinetic and potential energy to gnuplot files format More... | |
void | exportGnuplot (const MechanicalParams *mparams, SReal time) override |
export kinetic and potential energy state at "time" to a gnuplot file More... | |
void | addGravityToV (const MechanicalParams *mparams, MultiVecDerivId) override |
perform v += dt*g operation. Used if mass wants to added G separately from the other forces to v. More... | |
SReal | getElementMass (sofa::Index) const override |
recover the mass of an element More... | |
void | getElementMass (sofa::Index index, linearalgebra::BaseMatrix *m) const override |
Get the matrix relative to the DOF at index. More... | |
bool | insertInNode (objectmodel::BaseNode *node) override |
bool | removeInNode (objectmodel::BaseNode *node) override |
void | addMDx (const MechanicalParams *mparams, MultiVecDerivId fid, SReal factor) override |
f += factor M dx More... | |
void | accFromF (const MechanicalParams *mparams, MultiVecDerivId aid) override |
void | addDForce (const MechanicalParams *, DataVecDeriv &, const DataVecDeriv &) override |
Mass forces (gravity) often have null derivative. More... | |
void | addMBKdx (const MechanicalParams *mparams, MultiVecDerivId dfId) override |
SReal | getKineticEnergy (const MechanicalParams *mparams) const override |
SReal | getPotentialEnergy (const MechanicalParams *mparams) const override |
SReal | getPotentialEnergy (const MechanicalParams *mparams, const DataVecCoord &x) const override |
type::Vec6 | getMomentum (const MechanicalParams *mparams) const override |
void | addKToMatrix (sofa::linearalgebra::BaseMatrix *, SReal, unsigned int &) override |
void | addBToMatrix (sofa::linearalgebra::BaseMatrix *, SReal, unsigned int &) override |
void | addMToMatrix (const MechanicalParams *mparams, const sofa::core::behavior::MultiMatrixAccessor *matrix) override |
Add Mass contribution to global Matrix assembling. More... | |
void | addMBKToMatrix (const MechanicalParams *mparams, const sofa::core::behavior::MultiMatrixAccessor *matrix) override |
Public Member Functions inherited from sofa::core::behavior::ForceField< DataTypes > | |
SOFA_CLASS2 (SOFA_TEMPLATE(ForceField, DataTypes), BaseForceField, SOFA_TEMPLATE(SingleStateAccessor, DataTypes)) | |
void | addForce (const MechanicalParams *mparams, MultiVecDerivId fId) override |
void | addDForce (const MechanicalParams *mparams, MultiVecDerivId dfId) override |
virtual void | addClambda (const MechanicalParams *mparams, DataVecDeriv &df, const DataVecDeriv &lambda, SReal cFactor) |
virtual void | addClambda (const MechanicalParams *, MultiVecDerivId, MultiVecDerivId, SReal) |
Accumulate the contribution of the C compliant matrix multiplied by the given Lagrange multipliers lambda vector with the given cFactor coefficient. More... | |
SReal | getPotentialEnergy (const MechanicalParams *mparams) const override |
void | addKToMatrix (const MechanicalParams *mparams, const sofa::core::behavior::MultiMatrixAccessor *matrix) override |
Compute the system matrix corresponding to . More... | |
void | addBToMatrix (const MechanicalParams *mparams, const sofa::core::behavior::MultiMatrixAccessor *matrix) override |
Compute the system matrix corresponding to . More... | |
void | addToMatrix (sofa::linearalgebra::BaseMatrix *bm, unsigned offset, const IndexArray &nodeIndex, const ElementMat &em, SReal scale) |
Public Member Functions inherited from sofa::core::behavior::BaseForceField | |
SOFA_ABSTRACT_CLASS (BaseForceField, StateAccessor) | |
virtual const sofa::linearalgebra::BaseMatrix * | getComplianceMatrix (const MechanicalParams *) |
virtual void | addClambda (const MechanicalParams *, MultiVecDerivId, MultiVecDerivId, SReal) |
Accumulate the contribution of the C compliant matrix multiplied by the given Lagrange multipliers lambda vector with the given cFactor coefficient. More... | |
Public Member Functions inherited from sofa::core::behavior::StateAccessor | |
SOFA_ABSTRACT_CLASS (StateAccessor, objectmodel::BaseObject) | |
virtual const MultiLink< StateAccessor, BaseMechanicalState, BaseLink::FLAG_DUPLICATE >::Container & | getMechanicalStates () const |
Return a list of mechanical states to which this component is associated. More... | |
void | computeBBox (const core::ExecParams *params, bool onlyVisible=false) override |
Public Member Functions inherited from sofa::core::objectmodel::BaseObject | |
SOFA_CLASS (BaseObject, Base) | |
void | setSrc (const std::string &v, std::vector< std::string > *attributeList=nullptr) |
Sets a source Object and parses it to collect dependent Data. More... | |
void | setSrc (const std::string &v, const BaseObject *loader, std::vector< std::string > *attributeList=nullptr) |
Base * | findLinkDestClass (const BaseClass *destType, const std::string &path, const BaseLink *link) override |
virtual std::string | getPathName () const override |
Return the full path name of this object. More... | |
SReal | getTime () const |
Current time. More... | |
const BaseContext * | getContext () const |
BaseContext * | getContext () |
const BaseObject * | getMaster () const |
BaseObject * | getMaster () |
const VecSlaves & | getSlaves () const |
BaseObject * | getSlave (const std::string &name) const |
virtual void | addSlave (BaseObject::SPtr s) |
virtual void | removeSlave (BaseObject::SPtr s) |
virtual void | handleTopologyChange () |
virtual void | handleTopologyChange (core::topology::Topology *t) |
void | parse (BaseObjectDescription *arg) override |
Parse the given description to assign values to this object's fields and potentially other parameters. More... | |
virtual void | bwdInit () |
Initialization method called at graph creation and modification, during bottom-up traversal. More... | |
void | updateInternal () |
Update method called when variables (used to compute other internal variables) are modified. More... | |
virtual void | storeResetState () |
Save the initial state for later uses in reset() More... | |
virtual void | reset () |
Reset to initial state. More... | |
virtual void | cleanup () |
Public Member Functions inherited from sofa::core::objectmodel::Base | |
virtual const BaseClass * | getClass () const |
void | addDeprecatedAttribute (lifecycle::DeprecatedData *attribute) |
void | addUpdateCallback (const std::string &name, std::initializer_list< BaseData * > inputs, std::function< sofa::core::objectmodel::ComponentState(const DataTracker &)> function, std::initializer_list< BaseData * > outputs) |
void | addOutputsToCallback (const std::string &name, std::initializer_list< BaseData * > outputs) |
const std::string & | getName () const |
Accessor to the object name. More... | |
void | setName (const std::string &n) |
Set the name of this object. More... | |
void | setName (const std::string &n, int counter) |
Set the name of this object, adding an integer counter. More... | |
std::string | getTypeName () const |
Get the type name of this object (i.e. class and template types) More... | |
virtual std::string | getClassName () const |
Get the class name of this object. More... | |
virtual std::string | getTemplateName () const final |
Get the template type names (if any) used to instantiate this object. More... | |
std::string | getNameSpaceName () const |
Get the template type names (if any) used to instantiate this object. More... | |
void | setDefinitionSourceFileName (const std::string &sourceFileName) |
Set the source filename (where the component is implemented) More... | |
const std::string & | getDefinitionSourceFileName () const |
Get the source filename (where the component is implemented) More... | |
void | setDefinitionSourceFilePos (const int) |
Set the source location (where the component is implemented) More... | |
int | getDefinitionSourceFilePos () const |
Get the source location (where the component is implemented) More... | |
void | setInstanciationSourceFileName (const std::string &sourceFileName) |
const std::string & | getInstanciationSourceFileName () const |
void | setInstanciationSourceFilePos (const int) |
int | getInstanciationSourceFilePos () const |
void | addMessage (const sofa::helper::logging::Message &m) const |
size_t | countLoggedMessages (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const |
const std::deque< sofa::helper::logging::Message > & | getLoggedMessages () const |
const std::string | getLoggedMessagesAsString (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const |
void | clearLoggedMessages () const |
bool | notMuted () const |
const sofa::core::objectmodel::TagSet & | getTags () const |
Represents the subsets the object belongs to. More... | |
bool | hasTag (Tag t) const |
Return true if the object belong to the given subset. More... | |
void | addTag (Tag t) |
Add a subset qualification to the object. More... | |
void | removeTag (Tag t) |
Remove a subset qualification to the object. More... | |
ComponentState | getComponentState () const |
bool | isComponentStateValid () const |
virtual bool | parseField (const std::string &attribute, const std::string &value) |
Assign one field value (Data or Link) More... | |
virtual bool | hasField (const std::string &attribute) const |
Check if a given Data field or Link exists. More... | |
void | parseFields (const std::list< std::string > &str) |
Assign the field values stored in the given list of name + value pairs of strings. More... | |
virtual void | parseFields (const std::map< std::string, std::string * > &str) |
Assign the field values stored in the given map of name -> value pairs. More... | |
void | writeDatas (std::map< std::string, std::string * > &str) |
Write the current field values to the given map of name -> value pairs. More... | |
void | writeDatas (std::ostream &out, const std::string &separator=" ") |
BaseData * | findData (const std::string &name) const |
std::vector< BaseData * > | findGlobalField (const std::string &name) const |
Find data fields given a name: several can be found as we look into the alias map. More... | |
BaseLink * | findLink (const std::string &name) const |
std::vector< BaseLink * > | findLinks (const std::string &name) const |
Find link fields given a name: several can be found as we look into the alias map. More... | |
virtual void | updateLinks (bool logErrors=true) |
Update pointers in case the pointed-to objects have appeared. More... | |
template<class T > | |
BaseData::BaseInitData | initData (::sofa::core::objectmodel::Data< T > *field, const char *name, const char *help, ::sofa::core::objectmodel::BaseData::DataFlags dataflags) |
Helper method used to initialize a data field containing a value of type T. More... | |
template<class T > | |
BaseData::BaseInitData | initData (Data< T > *field, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false) |
Helper method used to initialize a data field containing a value of type T. More... | |
template<class T > | |
Data< T >::InitData | initData (Data< T > *field, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false) |
Helper method used to initialize a data field containing a value of type T. More... | |
void | addData (BaseData *f, const std::string &name) |
void | addData (BaseData *f) |
void | removeData (BaseData *f) |
Remove a data field. More... | |
void | addAlias (BaseData *field, const char *alias) |
Add an alias to a Data. More... | |
void | addLink (BaseLink *l) |
Add a link. More... | |
void | addAlias (BaseLink *link, const char *alias) |
Add an alias to a Link. More... | |
const VecData & | getDataFields () const |
Accessor to the vector containing all the fields of this object. More... | |
const MapData & | getDataAliases () const |
Accessor to the map containing all the aliases of this object. More... | |
const VecLink & | getLinks () const |
Accessor to the vector containing all the fields of this object. More... | |
const MapLink & | getLinkAliases () const |
Accessor to the map containing all the aliases of this object. More... | |
virtual bool | findDataLinkDest (BaseData *&ptr, const std::string &path, const BaseLink *link) |
template<class T > | |
bool | findLinkDest (T *&ptr, const std::string &path, const BaseLink *link) |
Public Member Functions inherited from sofa::core::behavior::SingleStateAccessor< DataTypes > | |
SOFA_ABSTRACT_CLASS (SOFA_TEMPLATE(SingleStateAccessor, DataTypes), StateAccessor) | |
void | init () override |
Initialization method called at graph creation and modification, during top-down traversal. More... | |
MechanicalState< DataTypes > * | getMState () |
const MechanicalState< DataTypes > * | getMState () const |
Public Member Functions inherited from sofa::core::behavior::BaseMass | |
SOFA_ABSTRACT_CLASS (BaseMass, StateAccessor) | |
Protected Member Functions | |
MeshMatrixMass () | |
~MeshMatrixMass () override | |
sofa::geometry::ElementType | checkTopology () |
void | initTopologyHandlers (sofa::geometry::ElementType topologyType) |
void | massInitialization () |
void | applyVertexMassCreation (Index pointIndex, MassType &VertexMass, const core::topology::BaseMeshTopology::Point &point, const sofa::type::vector< Index > &, const sofa::type::vector< SReal > &) |
void | applyVertexMassDestruction (Index, MassType &) |
template<typename T = GeometricalTypes, typename std::enable_if_t< T::spatial_dimensions > = 3, int > | |
void | applyEdgeMassCreation (Index edgeIndex, MassType &EdgeMass, const core::topology::BaseMeshTopology::Edge &, const sofa::type::vector< Index > &, const sofa::type::vector< SReal > &) |
void | applyEdgeMassDestruction (Index, MassType &) |
Protected Member Functions inherited from sofa::core::behavior::Mass< DataTypes > | |
Mass (MechanicalState< DataTypes > *mm=nullptr) | |
~Mass () override | |
Protected Member Functions inherited from sofa::core::behavior::ForceField< DataTypes > | |
ForceField (MechanicalState< DataTypes > *mm=nullptr) | |
~ForceField () override | |
Protected Member Functions inherited from sofa::core::behavior::BaseForceField | |
BaseForceField () | |
~BaseForceField () override=default | |
Protected Member Functions inherited from sofa::core::behavior::StateAccessor | |
StateAccessor () | |
~StateAccessor () override=default | |
Protected Member Functions inherited from sofa::core::objectmodel::BaseObject | |
BaseObject () | |
~BaseObject () override | |
void | changeContextLink (BaseContext *before, BaseContext *&after) |
void | changeSlavesLink (BaseObject::SPtr ptr, std::size_t, bool add) |
This method insures that slaves objects have master and context links set correctly. More... | |
void | trackInternalData (const BaseData &data) |
Method called to add the Data to the DataTracker (listing the Data to track) More... | |
void | cleanTracker () |
bool | hasDataChanged (const BaseData &data) |
Method called to know if a tracked Data has changed. More... | |
Protected Member Functions inherited from sofa::core::objectmodel::Base | |
Base () | |
virtual | ~Base () |
void | initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false) |
Helper method used by initData() More... | |
void | initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, BaseData::DataFlags dataFlags) |
Helper method used by initData() More... | |
template<class T > | |
void | initData0 (Data< T > *field, typename Data< T >::InitData &res, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false) |
Helper method used by initData() More... | |
Protected Member Functions inherited from sofa::core::behavior::SingleStateAccessor< DataTypes > | |
SingleStateAccessor (MechanicalState< DataTypes > *mm=nullptr) | |
~SingleStateAccessor () override=default | |
Protected Member Functions inherited from sofa::core::behavior::BaseMass | |
BaseMass () | |
~BaseMass () override=default | |
Friends | |
class | MeshMatrixMassInternalData< DataTypes, MassType, GeometricalTypes > |
Additional Inherited Members | |
Static Public Member Functions inherited from sofa::core::behavior::ForceField< DataTypes > | |
static bool | canCreate (T *&obj, objectmodel::BaseContext *context, objectmodel::BaseObjectDescription *arg) |
static std::string | shortName (const T *ptr=nullptr, objectmodel::BaseObjectDescription *arg=nullptr) |
Static Public Member Functions inherited from sofa::core::objectmodel::BaseObject | |
template<class T > | |
static bool | canCreate (T *, BaseContext *, BaseObjectDescription *) |
Pre-construction check method called by ObjectFactory. More... | |
template<class T > | |
static T::SPtr | create (T *, BaseContext *context, BaseObjectDescription *arg) |
Construction method called by ObjectFactory. More... | |
Static Public Member Functions inherited from sofa::core::objectmodel::Base | |
static const BaseClass * | GetClass () |
template<class T > | |
static std::string | shortName (const T *ptr=nullptr, BaseObjectDescription *=nullptr) |
Data< bool > sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::d_computeMassOnRest |
if true, the mass of every element is computed based on the rest position rather than the position
core::topology::EdgeData<type::vector<MassType> > sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::d_edgeMass |
Values of the particles masses stored on edges.
Data< bool > sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::d_lumping |
if mass lumping should be performed (only compute mass on vertices)
Data< sofa::type::vector< MassType > > sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::d_massDensity |
Data< bool > sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::d_printMass |
if specific mass information should be outputted
Boolean to print the mass
Data< Real > sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::d_showAxisSize |
scale to change the axis size
factor length of the axis displayed (only used for rigids)
Data< bool > sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::d_showCenterOfGravity |
to display the center of gravity of the system
Data< MassType > sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::d_totalMass |
Total mass of the object.
core::topology::PointData<type::vector<MassType> > sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::d_vertexMass |
Values of the particles masses stored on vertices.
|
protected |
Internal data required for Cuda computation (copy of vertex mass for deviceRead)
Data< std::map < std::string, sofa::type::vector<double> > > sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::f_graph |
Graph of the controlled potential.
SingleLink<MeshMatrixMass<DataTypes, GeometricalTypes>, sofa::core::behavior::MechanicalState<GeometricalTypes>, BaseLink::FLAG_STOREPATH | BaseLink::FLAG_STRONGLINK> sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::l_geometryState |
Link to be set to the MechanicalObject associated with the geometry.
SingleLink<MeshMatrixMass<DataTypes, GeometricalTypes>, sofa::core::topology::BaseMeshTopology, BaseLink::FLAG_STOREPATH | BaseLink::FLAG_STRONGLINK> sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::l_topology |
Link to be set to the topology container in the component graph.
|
protected |
Pointer to the state owning geometrical positions, associated with the topology.
|
protected |
|
protected |
The type of topology to build the mass from the topology.
|
protected |
Pointer to the topology container. Will be set by link.
Method to update
|
protected |
|
overrideprotected |
|
overridevirtual |
Reimplemented from sofa::core::behavior::Mass< DataTypes >.
|
overridevirtual |
Given the current position and velocity states, update the current force vector by computing and adding the forces associated with this ForceField.
If the ForceField can be represented as a matrix, this method computes
This is the method that should be implemented by the component
Implements sofa::core::behavior::ForceField< DataTypes >.
|
overridevirtual |
Reimplemented from sofa::core::behavior::Mass< DataTypes >.
|
virtual |
|
overridevirtual |
Reimplemented from sofa::core::behavior::Mass< DataTypes >.
|
overridevirtual |
Add Mass contribution to global Matrix assembling.
Reimplemented from sofa::core::behavior::Mass< DataTypes >.
|
protected |
Method to update
void sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::applyEdgeMassCreation | ( | Index | , |
MassType & | EdgeMass, | ||
const core::topology::BaseMeshTopology::Edge & | , | ||
const sofa::type::vector< Index > & | , | ||
const sofa::type::vector< SReal > & | |||
) |
|
protected |
Method to update
|
protected |
Method to initialize
|
protected |
Method to update
|
inlineoverridevirtual |
Reimplemented from sofa::core::behavior::BaseForceField.
|
overridevirtual |
Reimplemented from sofa::core::behavior::BaseMass.
|
inlineoverridevirtual |
Reimplemented from sofa::core::behavior::BaseForceField.
bool sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::checkEdgeMass |
|
virtual |
|
protected |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
void sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::computeMass |
Compute the mass from input values.
void sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::copyVertexMass |
Copy the vertex mass scalar (in case of CudaTypes)
|
overridevirtual |
Implementation of the internal update.
Reimplemented from sofa::core::objectmodel::BaseObject.
|
overridevirtual |
Render internal data of this object, for debugging purposes.
Reimplemented from sofa::core::objectmodel::BaseObject.
|
overridevirtual |
Get the mass relative to the DOF at index.
Implements sofa::core::behavior::BaseMass.
|
overridevirtual |
Get the matrix relative to the DOF at index.
Implements sofa::core::behavior::BaseMass.
|
overridevirtual |
vMv/2 using dof->getV() override
Reimplemented from sofa::core::behavior::Mass< DataTypes >.
|
inline |
|
virtual |
|
inline |
|
virtual |
Reimplemented from sofa::core::behavior::Mass< DataTypes >.
|
overridevirtual |
(Mv,cross(x,Mv)) override
Reimplemented from sofa::core::behavior::Mass< DataTypes >.
|
overridevirtual |
Mgx potential in a uniform gravity field, null at origin.
Implements sofa::core::behavior::ForceField< DataTypes >.
|
virtual |
|
virtual |
|
overridevirtual |
Handle an event.
Reimplemented from sofa::core::objectmodel::BaseObject.
|
overridevirtual |
Initialization method called at graph creation and modification, during top-down traversal.
Reimplemented from sofa::core::objectmodel::BaseObject.
|
virtual |
|
virtual |
void sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::initFromVertexAndEdgeMass |
|
virtual |
|
protected |
|
inlineoverridevirtual |
Implements sofa::core::behavior::BaseMass.
|
inline |
Answer wether mass matrix is lumped or not.
|
protected |
|
inlineoverridevirtual |
Parse the given description to assign values to this object's fields and potentially other parameters.
Reimplemented from sofa::core::objectmodel::Base.
void sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::printMass |
Print key mass information (totalMass, vertexMass and massDensity)
|
overridevirtual |
Update method called when variables used in precomputation are modified.
Reimplemented from sofa::core::objectmodel::BaseObject.
|
virtual |
|
virtual |
|
inline |
|
virtual |
|
virtual |
sofa::component::mass::MeshMatrixMass< DataTypes, GeometricalTypes >::SOFA_CLASS | ( | SOFA_TEMPLATE2(MeshMatrixMass< DataTypes, GeometricalTypes >, DataTypes, GeometricalTypes) | , |
SOFA_TEMPLATE(core::behavior::Mass, DataTypes) | |||
) |
|
friend |