Project Chrono: chrono::fea::PolarDecomposition Class Reference

Static Public Member Functions | Static Protected Member Functions | List of all members
chrono::fea::PolarDecomposition Class Reference
Chrono::Engine » Finite Element Analysis » Mathematical support

## Description

Polar decomposition of a general 3x3 matrix.

This class is wrapped by ChPolarDecomposition. It is based on VEGA (J. Barbic).

`#include <ChPolarDecomposition.h>`

## Static Public Member Functions
static double | Compute (const double *M, double *Q, double *S, double tolerance=1E-6)
| Computes the Polar Decomposition of a general 3x3 matrix M.

## Static Protected Member Functions
static double | oneNorm (const double *A)
static double | infNorm (const double *A)
static void | crossProduct (const double *a, const double *b, double *c)

## Member Function Documentation

## ◆ Compute()

double chrono::fea::PolarDecomposition::Compute | ( | const double * | M,
|  | double * | Q,
|  | double * | S,
|  | double | tolerance = 1E-6 )
| static

Computes the Polar Decomposition of a general 3x3 matrix M.

M = Q * S. M is 3x3 input matrix. Q is 3x3 orthogonal output matrix, Q Q^T = Q^T Q = I. S is 3x3 symmetric output matrix. Note: det(Q)=sgn(det(M)); this sign can be 1 or -1, depending on M. M is not modified. All matrices are row-major.

The documentation for this class was generated from the following files:

- D:/W/B/src/chrono-9.0.1/src/chrono/fea/ChPolarDecomposition.h
- D:/W/B/src/chrono-9.0.1/src/chrono/fea/ChPolarDecomposition.cpp