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
19class Vec3;
20
21
22namespace 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 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
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
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