40 CEPS_ABORT (
"cannot return 0-dim element measure");
83 Jinv.row (0) = J.col (0) / det / det;
115 CepsReal a = J (0, 0) * J (0, 0) + J (1, 0) * J (1, 0) + J (2, 0) * J (2, 0);
116 CepsReal b = J (0, 0) * J (0, 1) + J (1, 0) * J (1, 1) + J (2, 0) * J (2, 1);
118 CepsReal d = J (0, 1) * J (0, 1) + J (1, 1) * J (1, 1) + J (2, 1) * J (2, 1);
125 Jinv (0, 0) = a_m_inv * J (0, 0) + b_m_inv * J (0, 1);
126 Jinv (1, 0) = c_m_inv * J (0, 0) + d_m_inv * J (0, 1);
127 Jinv (0, 1) = a_m_inv * J (1, 0) + b_m_inv * J (1, 1);
128 Jinv (1, 1) = c_m_inv * J (1, 0) + d_m_inv * J (1, 1);
129 Jinv (0, 2) = a_m_inv * J (2, 0) + b_m_inv * J (2, 1);
130 Jinv (1, 2) = c_m_inv * J (2, 0) + d_m_inv * J (2, 1);
164 Jinv (0, 0) = +(J (1, 1) * J (2, 2) - J (1, 2) * J (2, 1)) / det;
165 Jinv (1, 0) = -(J (1, 0) * J (2, 2) - J (1, 2) * J (2, 0)) / det;
166 Jinv (2, 0) = +(J (1, 0) * J (2, 1) - J (1, 1) * J (2, 0)) / det;
167 Jinv (0, 1) = -(J (0, 1) * J (2, 2) - J (0, 2) * J (2, 1)) / det;
168 Jinv (1, 1) = +(J (0, 0) * J (2, 2) - J (0, 2) * J (2, 0)) / det;
169 Jinv (2, 1) = -(J (0, 0) * J (2, 1) - J (0, 1) * J (2, 0)) / det;
170 Jinv (0, 2) = +(J (0, 1) * J (1, 2) - J (0, 2) * J (1, 1)) / det;
171 Jinv (1, 2) = -(J (0, 0) * J (1, 2) - J (0, 2) * J (1, 0)) / det;
172 Jinv (2, 2) = +(J (0, 0) * J (1, 1) - J (0, 1) * J (1, 0)) / det;
#define CEPS_ABORT(message)
Stops the execution with a message. If testing is enabled, only throws a runtime_error.
float CepsReal
Need single precision floating point.
JacobianMatrixType m_jacobian
Jacobian Matrix.
InverseJacobianMatrixType m_invJacobian
Inverse of Jacobian Matrix.
CepsBool m_invJcomputed
Flag to trigger computation of invJ.
Eigen::Matrix< CepsReal, 3, Eigen::Dynamic > JacobianMatrixType
Typedef for jaccobian matrix.
Eigen::Matrix< CepsReal, Eigen::Dynamic, 3 > InverseJacobianMatrixType
Typedef for inverse jaccobian matrix.
CepsReal getJacobianDeterminant() const
Jacobian of geometrical deformation from reference cell.
CepsReal m_detJacobian
determinant of Jacobian matrix
virtual const JacobianMatrixType & getJacobianMatrix()
Jacobian Matrix of deformation from reference cell (3 rows for R^3, element dimension columns)
void computeJacobianDeterminant() override
Computes the determinant of the Jacobian matrix (specialized by dimension)
CepsReal getMeasure() const override
Element size: volume for tetrahedron, area for triangle and length for cable.
void computeInverseJacobianMatrix() override
Computes the inverse of the jacobian matrix.
CepsBool checkJacobianDeterminant() override
Checks if determinant is non-positive, and tries to reorder element's nodes if it is.