IFEM  90A354
CoordinateMapping.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _COORDINATE_MAPPING_H
15 #define _COORDINATE_MAPPING_H
16 
17 #include "matrixnd.h"
18 
19 class Vec3;
20 
21 
22 namespace utl
23 {
31  Real Jacobian(matrix<Real>& J, matrix<Real>& dNdX,
32  const matrix<Real>& X, const matrix<Real>& dNdu,
33  bool computeGradient = true);
34 
43  Real Jacobian(matrix<Real>& J, Vec3& t, matrix<Real>& dNdX,
44  const matrix<Real>& X, const matrix<Real>& dNdu,
45  size_t tangent);
46 
56  Real Jacobian(matrix<Real>& J, Vec3& n, matrix<Real>& dNdX,
57  const matrix<Real>& X, const matrix<Real>& dNdu,
58  size_t t1, size_t t2);
59 
72  bool Hessian(matrix3d<Real>& H, matrix3d<Real>& d2NdX2,
73  const matrix<Real>& Ji, const matrix<Real>& X,
74  const matrix3d<Real>& d2Ndu2, const matrix<Real>& dNdX,
75  bool geoMapping = true);
77  void Hessian(const matrix3d<Real>& Hess, matrix<Real>& H);
78 
83  void getGmat(const matrix<Real>& Ji, const Real* du, matrix<Real>& G);
84 
90  bool Hessian2(matrix4d<Real>& d3NdX3,
91  const matrix<Real>& Ji, const matrix4d<Real>& d3Ndu3);
92 
97  void JacobianGradient(const matrix<Real>& dudX,
98  const matrix3d<Real>& d2Xdu2,
99  std::vector<matrix<Real>>& dJdX);
100 
106  void detJacGradient(const matrix<Real>& J, const matrix<Real>& Ji,
107  const matrix3d<Real>& H, std::vector<Real>& ddet);
108 }
109 
110 #endif
#define Real
The floating point type to use.
Definition: ImmersedBoundaries.h:18
Simple class for representing a point in 3D space.
Definition: Vec3.h:27
Simple template classes for dense multi-dimensional matrices.
General utility classes and functions.
Definition: SIMoptions.h:22
void detJacGradient(const matrix< Real > &J, const matrix< Real > &Ji, const matrix3d< Real > &H, std::vector< Real > &ddet)
Calculates the derivatives of determinant of the Jacobian.
Definition: CoordinateMapping.C:329
void JacobianGradient(const matrix< Real > &dudX, const matrix3d< Real > &d2Xdu2, std::vector< matrix< Real >> &dJdX)
Calculates the derivatives of the Jacobian of the coordinate mapping.
Definition: CoordinateMapping.C:302
bool Hessian(matrix3d< Real > &H, matrix3d< Real > &d2NdX2, const matrix< Real > &Ji, const matrix< Real > &X, const matrix3d< Real > &d2Ndu2, const matrix< Real > &dNdX, bool geoMapping=true)
Set up the Hessian matrix of the coordinate mapping.
Definition: CoordinateMapping.C:136
Real Jacobian(matrix< Real > &J, matrix< Real > &dNdX, const matrix< Real > &X, const matrix< Real > &dNdu, bool computeGradient=true)
Set up the Jacobian matrix of the coordinate mapping.
Definition: CoordinateMapping.C:24
void getGmat(const matrix< Real > &Ji, const Real *du, matrix< Real > &G)
Compute the stabilization matrix G from the Jacobian inverse.
Definition: CoordinateMapping.C:213
bool Hessian2(matrix4d< Real > &d3NdX3, const matrix< Real > &Ji, const matrix4d< Real > &d3Ndu3)
Set up third-order derivatives of the coordinate mapping.
Definition: CoordinateMapping.C:229