|
PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
|
Functions to compute deformation gradient and its derivatives. More...
#include "Concepts.h"#include "pbat/Aliases.h"#include "pbat/math/linalg/mini/BinaryOperations.h"#include "pbat/math/linalg/mini/Concepts.h"#include "pbat/math/linalg/mini/Matrix.h"Go to the source code of this file.
Namespaces | |
| namespace | pbat |
| The main namespace of the library. | |
| namespace | pbat::fem |
| Finite Element Method (FEM) | |
Functions | |
| template<CElement TElement, class TDerivedx, class TDerivedX> | |
| auto | pbat::fem::DeformationGradient (Eigen::MatrixBase< TDerivedx > const &x, Eigen::MatrixBase< TDerivedX > const &GP) -> Matrix< TDerivedx::RowsAtCompileTime, TElement::kDims > |
| Computes the deformation gradient \( \frac{\partial \mathbf{x}(X)}{\partial X} \) of the deformation map \( \mathbf{x}(X) \). | |
| template<CElement TElement, int Dims, math::linalg::mini::CMatrix TMatrixGF, math::linalg::mini::CMatrix TMatrixGP, class ScalarType = typename TMatrixGF::ScalarType> | |
| auto | pbat::fem::GradientSegmentWrtDofs (TMatrixGF const &GF, TMatrixGP const &GP, auto i) -> math::linalg::mini::SVector< ScalarType, Dims > |
| Computes \( \frac{\partial \Psi}{\partial \mathbf{x}_i} \in \mathbb{R}^d \), i.e. the gradient of a scalar function \( \Psi \) w.r.t. the \( i^{\text{th}}
\) node's degrees of freedom. | |
| template<CElement TElement, int Dims, math::linalg::mini::CMatrix TMatrixGF, math::linalg::mini::CMatrix TMatrixGP, class ScalarType = typename TMatrixGF::ScalarType> | |
| auto | pbat::fem::GradientWrtDofs (TMatrixGF const &GF, TMatrixGP const &GP) -> math::linalg::mini::SVector< ScalarType, TElement::kNodes *Dims > |
| Computes gradient w.r.t. FEM degrees of freedom \( x \) of scalar function \(\Psi(\mathbf{F}) \), where \( F \) is the jacobian of \( x \), via chain rule. This is effectively a rank-3 to rank-1 tensor contraction. | |
| template<CElement TElement, int Dims, math::linalg::mini::CMatrix TMatrixHF, math::linalg::mini::CMatrix TMatrixGP, class ScalarType = typename TMatrixHF::ScalarType> | |
| auto | pbat::fem::HessianBlockWrtDofs (TMatrixHF const &HF, TMatrixGP const &GP, auto i, auto j) -> math::linalg::mini::SMatrix< ScalarType, Dims, Dims > |
| Computes \( \frac{\partial^2 \Psi}{\partial \mathbf{x}_i \partial \mathbf{x}_j} \), i.e. the hessian of a scalar function \( \Psi \) w.r.t. the \( i^{\text{th}} \) and \(j^{\text{th}} \) node's degrees of freedom. | |
| template<CElement TElement, int Dims, math::linalg::mini::CMatrix TMatrixHF, math::linalg::mini::CMatrix TMatrixGP, class ScalarType = typename TMatrixHF::ScalarType> | |
| auto | pbat::fem::HessianWrtDofs (TMatrixHF const &HF, TMatrixGP const &GP) -> math::linalg::mini::SMatrix< ScalarType, TElement::kNodes *Dims, TElement::kNodes *Dims > |
| Computes hessian w.r.t. FEM degrees of freedom \( x \) of scalar function \(\Psi(\mathbf{F}) \), where \( F \) is the jacobian of \( x \), via chain rule. This is effectively a rank-4 to rank-2 tensor contraction. | |
Functions to compute deformation gradient and its derivatives.