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.