template<class DataTypes>
class sofa::component::solidmechanics::fem::nonuniform::NonUniformHexahedronFEMForceFieldAndMass< DataTypes >
Need a SparseGridTopology with _sparseGrid->d_nbVirtualFinerLevels >= this->d_nbVirtualFinerLevels
@InProceedings{NPF06, author = "Nesme, Matthieu and Payan, Yohan and Faure, Fran\c{c}ois", title = "Animating Shapes at Arbitrary Resolution with Non-Uniform Stiffness", booktitle = "Eurographics Workshop in Virtual Reality Interaction and Physical Simulation (VRIPHYS)", month = "nov", year = "2006", organization = "Eurographics", address = "Madrid", url = "http://www-evasion.imag.fr/Publications/2006/NPF06" }
|
| SOFA_CLASS (SOFA_TEMPLATE(NonUniformHexahedronFEMForceFieldAndMass, DataTypes), SOFA_TEMPLATE(component::solidmechanics::fem::elastic::HexahedronFEMForceFieldAndMass, DataTypes)) |
|
void | init () override |
| Initialization method called at graph creation and modification, during top-down traversal. More...
|
|
void | reinit () override |
| Update method called when variables used in precomputation are modified. More...
|
|
void | addMDx (const core::MechanicalParams *mparams, DataVecDeriv &f, const DataVecDeriv &dx, SReal factor) override |
|
void | addGravityToV (const core::MechanicalParams *mparams, DataVecDeriv &d_v) override |
|
void | addForce (const core::MechanicalParams *mparams, DataVecDeriv &f, const DataVecCoord &x, const DataVecDeriv &v) override |
|
Public Member Functions inherited from sofa::component::solidmechanics::fem::elastic::HexahedronFEMForceFieldAndMass< DataTypes > |
| SOFA_CLASS2 (SOFA_TEMPLATE(HexahedronFEMForceFieldAndMass, DataTypes), SOFA_TEMPLATE(sofa::core::behavior::Mass, DataTypes), SOFA_TEMPLATE(HexahedronFEMForceField, DataTypes)) |
|
virtual void | computeElementMasses () |
| compute the mass matrices More...
|
|
virtual void | computeElementMass (ElementMass &Mass, const type::fixed_array< Coord, 8 > &nodes, const Index elementIndice, SReal stiffnessFactor=1.0) |
| compute the mass matrix of an element More...
|
|
Real | integrateMass (int signx, int signy, int signz, Real l0, Real l1, Real l2) |
|
void | addMToMatrix (sofa::linearalgebra::BaseMatrix *mat, SReal mFact, unsigned int &offset) override |
|
bool | isDiagonal () const override |
|
void | addKToMatrix (sofa::linearalgebra::BaseMatrix *matrix, SReal kFact, unsigned int &offset) override |
|
void | buildStiffnessMatrix (core::behavior::StiffnessMatrix *) override |
|
void | buildMassMatrix (sofa::core::behavior::MassMatrixAccumulator *matrices) override |
|
void | accFromF (const core::MechanicalParams *mparams, DataVecDeriv &a, const DataVecDeriv &f) override |
|
SReal | getKineticEnergy (const core::MechanicalParams *, const DataVecDeriv &) const override |
| < vMv/2 using dof->getV() override More...
|
|
SReal | getPotentialEnergy (const core::MechanicalParams *, const DataVecCoord &) const override |
|
SReal | getPotentialEnergy (const core::MechanicalParams *) const override |
| Mgx. More...
|
|
void | addDForce (const core::MechanicalParams *mparams, DataVecDeriv &df, const DataVecDeriv &dx) override |
|
SReal | getElementMass (Index index) const override |
| Get the mass 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...
|
|
virtual void | initTextures () |
|
virtual void | update () |
|
void | setDensity (Real d) |
|
Real | getDensity () |
|
void | addKToMatrix (sofa::linearalgebra::BaseMatrix *matrix, SReal kFact, unsigned int &offset) override |
|
| 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 |
|
virtual type::Vec6 | getMomentum (const MechanicalParams *, const DataVecCoord &, const DataVecDeriv &) const |
|
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 |
|
| 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) |
|
| 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...
|
|
| 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 |
|
| 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 | handleEvent (Event *) |
| Handle an event. More...
|
|
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 () |
|
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) |
|
| 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 |
|
| SOFA_ABSTRACT_CLASS (BaseMass, StateAccessor) |
|
| SOFA_CLASS (SOFA_TEMPLATE(HexahedronFEMForceField, DataTypes), SOFA_TEMPLATE(BaseLinearElasticityFEMForceField, DataTypes)) |
|
| SOFA_ATTRIBUTE_DISABLED ("", "v24.12", "Use d_youngModulus instead") DeprecatedAndRemoved f_youngModulus |
|
void | setMethod (int val) |
|
void | setUpdateStiffnessMatrix (bool val) |
|
const Transformation & | getElementRotation (const sofa::Index elemidx) |
|
void | getNodeRotation (Transformation &R, sofa::Index nodeIdx) |
|
void | getRotations (linearalgebra::BaseMatrix *rotations, int offset=0) override |
|
void | buildDampingMatrix (core::behavior::DampingMatrix *) override |
|
void | computeBBox (const core::ExecParams *params, bool onlyVisible) override |
|
void | handleTopologyChange () override |
|
| SOFA_CLASS (SOFA_TEMPLATE(BaseLinearElasticityFEMForceField, DataTypes), SOFA_TEMPLATE(core::behavior::ForceField, DataTypes)) |
|
| BaseLinearElasticityFEMForceField () |
|
void | setPoissonRatio (Real val) |
|
void | setYoungModulus (Real val) |
|
Real | getYoungModulusInElement (sofa::Size elementId) const |
|
Real | getPoissonRatioInElement (sofa::Size elementId) const |
|
|
| NonUniformHexahedronFEMForceFieldAndMass () |
|
void | addFineToCoarse (ElementStiffness &coarse, const ElementStiffness &fine, Index indice) |
| add a matrix of a fine element to its englobing coarser matrix More...
|
|
virtual void | computeMechanicalMatricesByCondensation (ElementStiffness &K, ElementMass &M, const int elementIndice, int level) |
|
virtual void | computeMechanicalMatricesByCondensation () |
|
void | computeClassicalMechanicalMatrices (ElementStiffness &K, ElementMass &M, const Index elementIndice, int level) |
|
void | computeMaterialStiffness (MaterialStiffness &m, double youngModulus, double poissonRatio) |
| compute the hookean material matrix More...
|
|
Protected Member Functions inherited from sofa::component::solidmechanics::fem::elastic::HexahedronFEMForceFieldAndMass< DataTypes > |
| HexahedronFEMForceFieldAndMass () |
|
| Mass (MechanicalState< DataTypes > *mm=nullptr) |
|
| ~Mass () override |
|
| ForceField (MechanicalState< DataTypes > *mm=nullptr) |
|
| ~ForceField () override |
|
| BaseForceField () |
|
| ~BaseForceField () override=default |
|
| StateAccessor () |
|
| ~StateAccessor () override=default |
|
| BaseObject () |
|
| ~BaseObject () override |
|
virtual void | doUpdateInternal () |
| Implementation of the internal update. More...
|
|
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...
|
|
| 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...
|
|
| SingleStateAccessor (MechanicalState< DataTypes > *mm=nullptr) |
|
| ~SingleStateAccessor () override=default |
|
| BaseMass () |
|
| ~BaseMass () override=default |
|
| HexahedronFEMForceField () |
|
const VecElement * | getIndexedElements () |
|
virtual void | computeElementStiffness (ElementStiffness &K, const MaterialStiffness &M, const type::Vec< 8, Coord > &nodes, const sofa::Index elementIndice, double stiffnessFactor=1.0) const |
|
void | computeMaterialStiffness (sofa::Index i) |
|
void | initLarge (sofa::Index i, const Element &elem) |
|
virtual void | accumulateForceLarge (WDataRefVecDeriv &f, RDataRefVecCoord &p, sofa::Index i, const Element &elem) |
|
void | initPolar (sofa::Index i, const Element &elem) |
|
void | computeRotationPolar (Transformation &r, type::Vec< 8, Coord > &nodes) |
|
virtual void | accumulateForcePolar (WDataRefVecDeriv &f, RDataRefVecCoord &p, sofa::Index i, const Element &elem) |
|
void | initSmall (sofa::Index i, const Element &elem) |
|
virtual void | accumulateForceSmall (WDataRefVecDeriv &f, RDataRefVecCoord &p, sofa::Index i, const Element &elem) |
|
void | checkPoissonRatio () |
|
void | checkYoungModulus () |
|
Real | getVecRealInElement (sofa::Size elementId, const Data< VecReal > &data, Real defaultValue) const |
|