|
AGX Dynamics 2.41.3.2
|
#include <DirectSolverData.h>
Inheritance diagram for agx::DirectSolverData:Classes | |
| class | ContactGroups |
| Class that handles the grouping. More... | |
Public Types | |
| typedef agx::ref_ptr< ContactGroups > | ContactGroupsRef |
| typedef agx::HashTable< agx::UInt, agx::UIntVector > | StrongInteractionTable |
Public Member Functions | |
| DirectSolverData (agx::UInt numEquations, agx::UInt numBlockRows, agx::UInt numBlocks, agx::Solver::NlMcpConfig nlMcpConfig, agx::Bool gatherStatistics, INlSolveDataH5 *nlSolveDataH5) | |
| Construct given total number of equations in the direct system, number of block rows and the total number of blocks in the matrix. | |
| void | buildStrongInteractionTable (agx::Physics::InteractionGroupPtr islandGroup, agx::Physics::StrongInteractionData &strongInteractions, const agxData::IndexArray &globalToLocalIndexArray) |
| Builds table that maps a rigid body to the other bodies it interacts with. | |
| DirectSolverData * | clone () |
| Clones solver data. | |
| void | commitVelocities (const agxData::IndexArray &indices, agxData::Array< agx::Vec3 > &linearVelocities, agxData::Array< agx::Vec3 > &angularVelocities, const agxData::Array< agx::RigidBodyState > &states) const |
| Copy solution to velocity buffers. | |
| const agx::NlMixedCp::McpAlgorithm * | getAlgorithm () const |
| agx::DirectSolverData::ContactGroups * | getContactGroups () const |
| agx::IndexSet & | getIndexSet () |
| agx::LogicalStructure & | getLogicalStructure () |
| const agx::LogicalStructure & | getLogicalStructure () const |
| agx::SparseMatrix & | getMatrix () |
| const agx::SparseMatrix & | getMatrix () const |
| agx::UInt | getNumBlockRows () const |
| agx::RealValarray & | getQ () |
| const agx::RealValarray & | getQ () const |
| agx::RealValarray & | getSigns () |
| const agx::RealValarray & | getSigns () const |
| agx::RealValarray & | getSolution () |
| const agx::RealValarray & | getSolution () const |
| agx::SparseRangeReal & | getSparseBounds () |
| const agx::SparseRangeReal & | getSparseBounds () const |
| agx::StabilityReport * | getStabilityReport () const |
| const agx::DirectSolverData::StrongInteractionTable & | getStrongInteractionTable () const |
| void | initialize () |
| Initialize for a new solve. | |
| void | setContactGroups (agx::DirectSolverData::ContactGroups *contactGroups) |
| Assign new contact groups object. | |
| const agx::RealValarray & | solve () |
| Solve the current configuration of the matrix, right hand side and bounds. | |
Public Member Functions inherited from agx::Referenced | |
| Referenced () | |
| Default constructor. | |
| Referenced (const Referenced &) | |
| template<typename T > | |
| T * | as () |
| Subclass casting. | |
| template<typename T > | |
| const T * | as () const |
| template<typename T > | |
| T * | asSafe () |
| Safe subclass casting, return nullptr if template type does not match. | |
| template<typename T > | |
| const T * | asSafe () const |
| int | getReferenceCount () const |
| template<typename T > | |
| bool | is () const |
| Subclass test. | |
| Referenced & | operator= (const Referenced &) |
| Assignment operator. Will increment the number of references to the referenced object. | |
| void | reference (void *ptr=nullptr) const |
| Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
| void | unreference (void *ptr=nullptr) const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
| void | unreference_nodelete () const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
Protected Member Functions | |
| DirectSolverData ()=delete | |
| virtual | ~DirectSolverData () |
Protected Member Functions inherited from agx::Referenced | |
| virtual | ~Referenced () |
| Destructor. | |
| void | allocateObserverVector () const |
| void | deleteUsingDeleteHandler () const |
Protected Attributes | |
| ContactGroupsRef | m_contactGroups |
| LogicalStructure | m_logicalStructure |
| NlMixedCpRef | m_nlmcp |
| INlSolveDataH5 * | m_nlSolveDataH5 |
| UInt | m_numBlockRows |
| UInt | m_numBlocks |
| UInt | m_numEquations |
| UInt | m_numSolves |
| StabilityReportRef | m_stabilityReport |
| StrongInteractionTable | m_strongInteractionTable |
Protected Attributes inherited from agx::Referenced | |
| Mutex | m_mutex |
| ObserverContainer | m_observers |
| AtomicValue | m_refCount |
Additional Inherited Members | |
Static Public Member Functions inherited from agx::Referenced | |
| template<typename T > | |
| static bool | ValidateCast (const Referenced *object) |
Static Protected Member Functions inherited from agx::Referenced | |
| static DeleteHandler * | getDeleteHandler () |
| static void | setDeleteHandler (DeleteHandler *handler) |
| Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to. | |
Definition at line 92 of file DirectSolverData.h.
Definition at line 126 of file DirectSolverData.h.
Definition at line 95 of file DirectSolverData.h.
| agx::DirectSolverData::DirectSolverData | ( | agx::UInt | numEquations, |
| agx::UInt | numBlockRows, | ||
| agx::UInt | numBlocks, | ||
| agx::Solver::NlMcpConfig | nlMcpConfig, | ||
| agx::Bool | gatherStatistics, | ||
| INlSolveDataH5 * | nlSolveDataH5 | ||
| ) |
Construct given total number of equations in the direct system, number of block rows and the total number of blocks in the matrix.
| numEquations | - total number of equations |
| numBlockRows | - total number of block rows in matrix |
| numBlocks | - total number of blocks in matrix |
| nlMcpConfig | - direct solver configuration |
|
protecteddelete |
|
protectedvirtual |
| void agx::DirectSolverData::buildStrongInteractionTable | ( | agx::Physics::InteractionGroupPtr | islandGroup, |
| agx::Physics::StrongInteractionData & | strongInteractions, | ||
| const agxData::IndexArray & | globalToLocalIndexArray | ||
| ) |
Builds table that maps a rigid body to the other bodies it interacts with.
| strongInteractions | - strong interactions |
| globalToLocalIndexArray | - index array that maps global body indices to island indices |
| DirectSolverData * agx::DirectSolverData::clone | ( | ) |
Clones solver data.
| void agx::DirectSolverData::commitVelocities | ( | const agxData::IndexArray & | indices, |
| agxData::Array< agx::Vec3 > & | linearVelocities, | ||
| agxData::Array< agx::Vec3 > & | angularVelocities, | ||
| const agxData::Array< agx::RigidBodyState > & | states | ||
| ) | const |
Copy solution to velocity buffers.
| indices | - direct body local to global indices |
| linearVelocities | - linear velocity buffer |
| angularVelocities | - angular velocity buffer |
| states | - states |
| const agx::NlMixedCp::McpAlgorithm * agx::DirectSolverData::getAlgorithm | ( | ) | const |
| agx::DirectSolverData::ContactGroups * agx::DirectSolverData::getContactGroups | ( | ) | const |
| agx::IndexSet & agx::DirectSolverData::getIndexSet | ( | ) |
| agx::LogicalStructure & agx::DirectSolverData::getLogicalStructure | ( | ) |
| const agx::LogicalStructure & agx::DirectSolverData::getLogicalStructure | ( | ) | const |
| agx::SparseMatrix & agx::DirectSolverData::getMatrix | ( | ) |
| const agx::SparseMatrix & agx::DirectSolverData::getMatrix | ( | ) | const |
| agx::UInt agx::DirectSolverData::getNumBlockRows | ( | ) | const |
| agx::RealValarray & agx::DirectSolverData::getQ | ( | ) |
| const agx::RealValarray & agx::DirectSolverData::getQ | ( | ) | const |
| agx::RealValarray & agx::DirectSolverData::getSigns | ( | ) |
| const agx::RealValarray & agx::DirectSolverData::getSigns | ( | ) | const |
| agx::RealValarray & agx::DirectSolverData::getSolution | ( | ) |
| const agx::RealValarray & agx::DirectSolverData::getSolution | ( | ) | const |
| agx::SparseRangeReal & agx::DirectSolverData::getSparseBounds | ( | ) |
| const agx::SparseRangeReal & agx::DirectSolverData::getSparseBounds | ( | ) | const |
| agx::StabilityReport * agx::DirectSolverData::getStabilityReport | ( | ) | const |
| const agx::DirectSolverData::StrongInteractionTable & agx::DirectSolverData::getStrongInteractionTable | ( | ) | const |
| void agx::DirectSolverData::initialize | ( | ) |
Initialize for a new solve.
This method can be called many times, e.g., if this object is stored between time steps.
| void agx::DirectSolverData::setContactGroups | ( | agx::DirectSolverData::ContactGroups * | contactGroups | ) |
Assign new contact groups object.
| const agx::RealValarray & agx::DirectSolverData::solve | ( | ) |
Solve the current configuration of the matrix, right hand side and bounds.
The solution is stored and is accessible through getSolution().
|
protected |
Definition at line 265 of file DirectSolverData.h.
|
protected |
Definition at line 264 of file DirectSolverData.h.
|
protected |
Definition at line 263 of file DirectSolverData.h.
|
protected |
Definition at line 269 of file DirectSolverData.h.
|
protected |
Definition at line 261 of file DirectSolverData.h.
|
protected |
Definition at line 262 of file DirectSolverData.h.
|
protected |
Definition at line 260 of file DirectSolverData.h.
|
protected |
Definition at line 266 of file DirectSolverData.h.
|
protected |
Definition at line 267 of file DirectSolverData.h.
|
protected |
Definition at line 268 of file DirectSolverData.h.