![]() |
v0.15.0 |
Loose implementation of some useful functions. More...
#include <definitions.h>#include <stdlib.h>#include <stdio.h>#include <math.h>#include <complex.h>#include <assert.h>#include <string.h>#include <fem_tools.h>#include <gm_rule.h>#include <h1_hdiv_hcurl_l2.h>Go to the source code of this file.
Macros | |
| #define | N_MBTETQ0(x, y, z) ((2. * (1. - x - y - z) - 1.) * (1. - x - y - z)) |
| #define | N_MBTETQ1(x, y, z) ((2. * x - 1.) * x) |
| #define | N_MBTETQ2(x, y, z) ((2. * y - 1.) * y) |
| #define | N_MBTETQ3(x, y, z) ((2. * z - 1.) * z) |
| #define | N_MBTETQ4(x, y, z) (4. * (1. - x - y - z) * x) |
| #define | N_MBTETQ5(x, y, z) (4. * x * y) |
| #define | N_MBTETQ6(x, y, z) (4. * (1. - x - y - z) * y) |
| #define | N_MBTETQ7(x, y, z) (4. * (1. - x - y - z) * z) |
| #define | N_MBTETQ8(x, y, z) (4. * x * z) |
| #define | N_MBTETQ9(x, y, z) (4. * y * z) |
| #define | diffN_MBTETQ0x(x, y, z) (-3. + 4. * x + 4. * y + 4. * z) |
| #define | diffN_MBTETQ0y(x, y, z) (-3. + 4. * x + 4. * y + 4. * z) |
| #define | diffN_MBTETQ0z(x, y, z) (-3. + 4. * x + 4. * y + 4. * z) |
| #define | diffN_MBTETQ1x(x, y, z) (4. * x - 1.) |
| #define | diffN_MBTETQ1y(x, y, z) (0.) |
| #define | diffN_MBTETQ1z(x, y, z) (0.) |
| #define | diffN_MBTETQ2x(x, y, z) (0.) |
| #define | diffN_MBTETQ2y(x, y, z) (4. * y - 1.) |
| #define | diffN_MBTETQ2z(x, y, z) (0.) |
| #define | diffN_MBTETQ3x(x, y, z) (0.) |
| #define | diffN_MBTETQ3y(x, y, z) (0.) |
| #define | diffN_MBTETQ3z(x, y, z) (4. * z - 1.) |
| #define | diffN_MBTETQ4x(x, y, z) (-8. * x + 4. - 4. * y - 4. * z) |
| #define | diffN_MBTETQ4y(x, y, z) (-4. * x) |
| #define | diffN_MBTETQ4z(x, y, z) (-4. * x) |
| #define | diffN_MBTETQ5x(x, y, z) (4. * y) |
| #define | diffN_MBTETQ5y(x, y, z) (4. * x) |
| #define | diffN_MBTETQ5z(x, y, z) (0.) |
| #define | diffN_MBTETQ6x(x, y, z) (-4. * y) |
| #define | diffN_MBTETQ6y(x, y, z) (-8. * y + 4. - 4. * x - 4. * z) |
| #define | diffN_MBTETQ6z(x, y, z) (-4. * y) |
| #define | diffN_MBTETQ7x(x, y, z) (-4. * z) |
| #define | diffN_MBTETQ7y(x, y, z) (-4. * z) |
| #define | diffN_MBTETQ7z(x, y, z) (-8. * z + 4. - 4. * x - 4. * y) |
| #define | diffN_MBTETQ8x(x, y, z) (4. * z) |
| #define | diffN_MBTETQ8y(x, y, z) (0.) |
| #define | diffN_MBTETQ8z(x, y, z) (4. * x) |
| #define | diffN_MBTETQ9x(x, y, z) (0.) |
| #define | diffN_MBTETQ9y(x, y, z) (4. * z) |
| #define | diffN_MBTETQ9z(x, y, z) (4. * y) |
Functions | |
| double | ShapeDetJacVolume (double *jac) |
| determined of jacobian | |
| PetscErrorCode | ShapeInvJacVolume (double *jac) |
| PetscErrorCode | Grundmann_Moeller_integration_points_1D_EDGE (int rule, double *G_TRI_X, double *G_TRI_W) |
| Compute weights and integration points for edge using Grundmann_Moeller rule. | |
| PetscErrorCode | Grundmann_Moeller_integration_points_2D_TRI (int rule, double *G_TRI_X, double *G_TRI_Y, double *G_TRI_W) |
| PetscErrorCode | Grundmann_Moeller_integration_points_3D_TET (int rule, double *G_TET_X, double *G_TET_Y, double *G_TET_Z, double *G_TET_W) |
| PetscErrorCode | ShapeMBTRI (double *N, const double *X, const double *Y, const int G_DIM) |
| calculate shape functions on triangle | |
| PetscErrorCode | ShapeDiffMBTRI (double *diffN) |
| calculate derivatives of shape functions | |
| PetscErrorCode | ShapeFaceBaseMBTRI (double *diffN, const double *coords, double *normal, double *s1, double *s2) |
| PetscErrorCode | ShapeFaceNormalMBTRI (double *diffN, const double *coords, double *normal) |
| PetscErrorCode | ShapeFaceDiffNormalMBTRI (double *diffN, const double *coords, double *diff_normal) |
| calculate derivative of normal in respect to nodal positions | |
| PetscErrorCode | ShapeJacMBTET (double *diffN, const double *coords, double *jac) |
| calculate jacobian | |
| double | ShapeVolumeMBTET (double *diffN, const double *coords) |
| calculate TET volume | |
| PetscErrorCode | ShapeMBTET (double *N, const double *G_X, const double *G_Y, const double *G_Z, int DIM) |
| calculate shape functions | |
| PetscErrorCode | ShapeDiffMBTET (double *diffN) |
| calculate derivatives of shape functions | |
| PetscErrorCode | ShapeMBTET_inverse (double *N, double *diffN, const double *elem_coords, const double *glob_coords, double *loc_coords) |
| calculate local coordinates for given global coordinates | |
| PetscErrorCode | ShapeMBTRI_inverse (double *N, double *diffN, const double *elem_coords, const double *glob_coords, double *loc_coords) |
| calculate local coordinates of triangle element for given global coordinates in 2D (Assume e.g. z=0) | |
| PetscErrorCode | ShapeDiffMBTETinvJ (double *diffN, double *invJac, double *diffNinvJac) |
| calculate shape functions derivatives in space | |
| PetscErrorCode | GradientOfDeformation (double *diffN, double *dofs, double *F) |
| calculate gradient of deformation | |
| void | ShapeDiffMBTETinvJ_complex (double *diffN, __CLPK_doublecomplex *invJac, __CLPK_doublecomplex *diffNinvJac, enum CBLAS_TRANSPOSE Trans) |
| PetscErrorCode | ShapeFaceNormalMBTRI_complex (double *diffN, __CLPK_doublecomplex *xcoords, __CLPK_doublecomplex *xnormal) |
| PetscErrorCode | MakeComplexTensor (double *reA, double *imA, __CLPK_doublecomplex *xA) |
| PetscErrorCode | InvertComplexGradient (__CLPK_doublecomplex *xF) |
| PetscErrorCode | InvertComplexSymmMatrix3by3 (__CLPK_doublecomplex *xC) |
| PetscErrorCode | DeterminantComplexGradient (__CLPK_doublecomplex *xF, __CLPK_doublecomplex *det_xF) |
| PetscErrorCode | Spin (double *spinOmega, double *vecOmega) |
| calculate spin matrix from vector | |
| PetscErrorCode | make_complex_matrix (double *reA, double *imA, __CLPK_doublecomplex *xA) |
| Compose complex matrix (3x3) from two real matrices. | |
| PetscErrorCode | Normal_hierarchical (int order_approx, int *order_edge_approx, int order, int *order_edge, double *diffN, double *diffN_face, double *diffN_edge[], double *dofs, double *dofs_edge[], double *dofs_face, double *idofs, double *idofs_edge[], double *idofs_face, __CLPK_doublecomplex *xnormal, __CLPK_doublecomplex *xs1, __CLPK_doublecomplex *xs2, int gg) |
| Complex normal. | |
| PetscErrorCode | Base_scale (__CLPK_doublecomplex *xnormal, __CLPK_doublecomplex *xs1, __CLPK_doublecomplex *xs2) |
| PetscErrorCode | ShapeMBEDGE (double *N, const double *G_X, int DIM) |
| PetscErrorCode | ShapeDiffMBEDGE (double *diffN) |
| PetscErrorCode | ShapeMBTRIQ (double *N, const double *X, const double *Y, const int G_DIM) |
| PetscErrorCode | ShapeDiffMBTRIQ (double *diffN, const double *X, const double *Y, const int G_DIM) |
| PetscErrorCode | ShapeMBTETQ (double *N, const double x, const double y, const double z) |
| PetscErrorCode | ShapeDiffMBTETQ (double *diffN, const double x, const double y, const double z) |
| PetscErrorCode | ShapeMBTETQ_GAUSS (double *N, const double *X, const double *Y, const double *Z, const int G_DIM) |
| PetscErrorCode | ShapeDiffMBTETQ_GAUSS (double *diffN, const double *X, const double *Y, const double *Z, const int G_DIM) |
| PetscErrorCode | ShapeJacMBTETQ (const double *diffN, const double *coords, double *Jac) |
| PetscErrorCode | ShapeMBTETQ_detJac_at_Gauss_Points (double *detJac_at_Gauss_Points, const double *diffN, const double *coords, int G_DIM) |
| double | ShapeVolumeMBTETQ (const double *diffN, const double *coords, int G_DIM, double *G_TET_W) |
| PetscErrorCode | ShapeMBTETQ_inverse (double *N, double *diffN, const double *elem_coords, const double *glob_coords, double *loc_coords, const double eps) |
Variables | |
| static PetscErrorCode | ierr |
Loose implementation of some useful functions.
Definition in file fem_tools.c.
| #define diffN_MBTETQ0x | ( | x, | |
| y, | |||
| z | |||
| ) | (-3. + 4. * x + 4. * y + 4. * z) |
Definition at line 828 of file fem_tools.c.
| #define diffN_MBTETQ0y | ( | x, | |
| y, | |||
| z | |||
| ) | (-3. + 4. * x + 4. * y + 4. * z) |
Definition at line 829 of file fem_tools.c.
| #define diffN_MBTETQ0z | ( | x, | |
| y, | |||
| z | |||
| ) | (-3. + 4. * x + 4. * y + 4. * z) |
Definition at line 830 of file fem_tools.c.
| #define diffN_MBTETQ1x | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * x - 1.) |
Definition at line 831 of file fem_tools.c.
| #define diffN_MBTETQ1y | ( | x, | |
| y, | |||
| z | |||
| ) | (0.) |
Definition at line 832 of file fem_tools.c.
| #define diffN_MBTETQ1z | ( | x, | |
| y, | |||
| z | |||
| ) | (0.) |
Definition at line 833 of file fem_tools.c.
| #define diffN_MBTETQ2x | ( | x, | |
| y, | |||
| z | |||
| ) | (0.) |
Definition at line 834 of file fem_tools.c.
| #define diffN_MBTETQ2y | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * y - 1.) |
Definition at line 835 of file fem_tools.c.
| #define diffN_MBTETQ2z | ( | x, | |
| y, | |||
| z | |||
| ) | (0.) |
Definition at line 836 of file fem_tools.c.
| #define diffN_MBTETQ3x | ( | x, | |
| y, | |||
| z | |||
| ) | (0.) |
Definition at line 837 of file fem_tools.c.
| #define diffN_MBTETQ3y | ( | x, | |
| y, | |||
| z | |||
| ) | (0.) |
Definition at line 838 of file fem_tools.c.
| #define diffN_MBTETQ3z | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * z - 1.) |
Definition at line 839 of file fem_tools.c.
| #define diffN_MBTETQ4x | ( | x, | |
| y, | |||
| z | |||
| ) | (-8. * x + 4. - 4. * y - 4. * z) |
Definition at line 840 of file fem_tools.c.
| #define diffN_MBTETQ4y | ( | x, | |
| y, | |||
| z | |||
| ) | (-4. * x) |
Definition at line 841 of file fem_tools.c.
| #define diffN_MBTETQ4z | ( | x, | |
| y, | |||
| z | |||
| ) | (-4. * x) |
Definition at line 842 of file fem_tools.c.
| #define diffN_MBTETQ5x | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * y) |
Definition at line 843 of file fem_tools.c.
| #define diffN_MBTETQ5y | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * x) |
Definition at line 844 of file fem_tools.c.
| #define diffN_MBTETQ5z | ( | x, | |
| y, | |||
| z | |||
| ) | (0.) |
Definition at line 845 of file fem_tools.c.
| #define diffN_MBTETQ6x | ( | x, | |
| y, | |||
| z | |||
| ) | (-4. * y) |
Definition at line 846 of file fem_tools.c.
| #define diffN_MBTETQ6y | ( | x, | |
| y, | |||
| z | |||
| ) | (-8. * y + 4. - 4. * x - 4. * z) |
Definition at line 847 of file fem_tools.c.
| #define diffN_MBTETQ6z | ( | x, | |
| y, | |||
| z | |||
| ) | (-4. * y) |
Definition at line 848 of file fem_tools.c.
| #define diffN_MBTETQ7x | ( | x, | |
| y, | |||
| z | |||
| ) | (-4. * z) |
Definition at line 849 of file fem_tools.c.
| #define diffN_MBTETQ7y | ( | x, | |
| y, | |||
| z | |||
| ) | (-4. * z) |
Definition at line 850 of file fem_tools.c.
| #define diffN_MBTETQ7z | ( | x, | |
| y, | |||
| z | |||
| ) | (-8. * z + 4. - 4. * x - 4. * y) |
Definition at line 851 of file fem_tools.c.
| #define diffN_MBTETQ8x | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * z) |
Definition at line 852 of file fem_tools.c.
| #define diffN_MBTETQ8y | ( | x, | |
| y, | |||
| z | |||
| ) | (0.) |
Definition at line 853 of file fem_tools.c.
| #define diffN_MBTETQ8z | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * x) |
Definition at line 854 of file fem_tools.c.
| #define diffN_MBTETQ9x | ( | x, | |
| y, | |||
| z | |||
| ) | (0.) |
Definition at line 855 of file fem_tools.c.
| #define diffN_MBTETQ9y | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * z) |
Definition at line 856 of file fem_tools.c.
| #define diffN_MBTETQ9z | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * y) |
Definition at line 857 of file fem_tools.c.
| #define N_MBTETQ0 | ( | x, | |
| y, | |||
| z | |||
| ) | ((2. * (1. - x - y - z) - 1.) * (1. - x - y - z)) |
Definition at line 818 of file fem_tools.c.
| #define N_MBTETQ1 | ( | x, | |
| y, | |||
| z | |||
| ) | ((2. * x - 1.) * x) |
Definition at line 819 of file fem_tools.c.
| #define N_MBTETQ2 | ( | x, | |
| y, | |||
| z | |||
| ) | ((2. * y - 1.) * y) |
Definition at line 820 of file fem_tools.c.
| #define N_MBTETQ3 | ( | x, | |
| y, | |||
| z | |||
| ) | ((2. * z - 1.) * z) |
Definition at line 821 of file fem_tools.c.
| #define N_MBTETQ4 | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * (1. - x - y - z) * x) |
Definition at line 822 of file fem_tools.c.
| #define N_MBTETQ5 | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * x * y) |
Definition at line 823 of file fem_tools.c.
| #define N_MBTETQ6 | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * (1. - x - y - z) * y) |
Definition at line 824 of file fem_tools.c.
| #define N_MBTETQ7 | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * (1. - x - y - z) * z) |
Definition at line 825 of file fem_tools.c.
| #define N_MBTETQ8 | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * x * z) |
Definition at line 826 of file fem_tools.c.
| #define N_MBTETQ9 | ( | x, | |
| y, | |||
| z | |||
| ) | (4. * y * z) |
Definition at line 827 of file fem_tools.c.
| PetscErrorCode Base_scale | ( | __CLPK_doublecomplex * | xnormal, |
| __CLPK_doublecomplex * | xs1, | ||
| __CLPK_doublecomplex * | xs2 | ||
| ) |
Definition at line 741 of file fem_tools.c.
| PetscErrorCode DeterminantComplexGradient | ( | __CLPK_doublecomplex * | xF, |
| __CLPK_doublecomplex * | det_xF | ||
| ) |
Definition at line 526 of file fem_tools.c.
calculate gradient of deformation
Definition at line 425 of file fem_tools.c.
| PetscErrorCode Grundmann_Moeller_integration_points_1D_EDGE | ( | int | rule, |
| double * | G_TRI_X, | ||
| double * | G_TRI_W | ||
| ) |
Compute weights and integration points for edge using Grundmann_Moeller rule.
Definition at line 55 of file fem_tools.c.
| PetscErrorCode Grundmann_Moeller_integration_points_2D_TRI | ( | int | rule, |
| double * | G_TRI_X, | ||
| double * | G_TRI_Y, | ||
| double * | G_TRI_W | ||
| ) |
Compute weights and integration points for 2D Triangle using Grundmann_Moeller rule
Definition at line 98 of file fem_tools.c.
| PetscErrorCode Grundmann_Moeller_integration_points_3D_TET | ( | int | rule, |
| double * | G_TET_X, | ||
| double * | G_TET_Y, | ||
| double * | G_TET_Z, | ||
| double * | G_TET_W | ||
| ) |
Compute weights and integration points for 3D Tet using Grundmann_Moeller rule
Definition at line 143 of file fem_tools.c.
| PetscErrorCode InvertComplexGradient | ( | __CLPK_doublecomplex * | xF | ) |
Definition at line 499 of file fem_tools.c.
| PetscErrorCode InvertComplexSymmMatrix3by3 | ( | __CLPK_doublecomplex * | xC | ) |
Definition at line 513 of file fem_tools.c.
| PetscErrorCode make_complex_matrix | ( | double * | reA, |
| double * | imA, | ||
| __CLPK_doublecomplex * | xA | ||
| ) |
Compose complex matrix (3x3) from two real matrices.
Definition at line 557 of file fem_tools.c.
| PetscErrorCode MakeComplexTensor | ( | double * | reA, |
| double * | imA, | ||
| __CLPK_doublecomplex * | xA | ||
| ) |
Definition at line 487 of file fem_tools.c.
| PetscErrorCode Normal_hierarchical | ( | int | order_approx, |
| int * | order_edge_approx, | ||
| int | order, | ||
| int * | order_edge, | ||
| double * | diffN, | ||
| double * | diffN_face, | ||
| double * | diffN_edge[], | ||
| double * | dofs, | ||
| double * | dofs_edge[], | ||
| double * | dofs_face, | ||
| double * | idofs, | ||
| double * | idofs_edge[], | ||
| double * | idofs_face, | ||
| __CLPK_doublecomplex * | xnormal, | ||
| __CLPK_doublecomplex * | xs1, | ||
| __CLPK_doublecomplex * | xs2, | ||
| int | gg | ||
| ) |
Complex normal.
Definition at line 569 of file fem_tools.c.
determined of jacobian
Definition at line 22 of file fem_tools.c.
| PetscErrorCode ShapeDiffMBEDGE | ( | double * | diffN | ) |
Definition at line 771 of file fem_tools.c.
| PetscErrorCode ShapeDiffMBTET | ( | double * | diffN | ) |
calculate derivatives of shape functions
Definition at line 319 of file fem_tools.c.
calculate shape functions derivatives in space
Definition at line 415 of file fem_tools.c.
| void ShapeDiffMBTETinvJ_complex | ( | double * | diffN, |
| __CLPK_doublecomplex * | invJac, | ||
| __CLPK_doublecomplex * | diffNinvJac, | ||
| enum CBLAS_TRANSPOSE | Trans | ||
| ) |
Definition at line 437 of file fem_tools.c.
Definition at line 873 of file fem_tools.c.
| PetscErrorCode ShapeDiffMBTETQ_GAUSS | ( | double * | diffN, |
| const double * | X, | ||
| const double * | Y, | ||
| const double * | Z, | ||
| const int | G_DIM | ||
| ) |
Definition at line 927 of file fem_tools.c.
| PetscErrorCode ShapeDiffMBTRI | ( | double * | diffN | ) |
calculate derivatives of shape functions
Definition at line 194 of file fem_tools.c.
| PetscErrorCode ShapeDiffMBTRIQ | ( | double * | diffN, |
| const double * | X, | ||
| const double * | Y, | ||
| const int | G_DIM | ||
| ) |
Definition at line 795 of file fem_tools.c.
| PetscErrorCode ShapeFaceBaseMBTRI | ( | double * | diffN, |
| const double * | coords, | ||
| double * | normal, | ||
| double * | s1, | ||
| double * | s2 | ||
| ) |
Definition at line 204 of file fem_tools.c.
| PetscErrorCode ShapeFaceDiffNormalMBTRI | ( | double * | diffN, |
| const double * | coords, | ||
| double * | diff_normal | ||
| ) |
calculate derivative of normal in respect to nodal positions
Definition at line 237 of file fem_tools.c.
calculate face normal
| diffN | derivatives of shape functions |
| coords | is position of the nodes |
| normal | vector |
Definition at line 229 of file fem_tools.c.
| PetscErrorCode ShapeFaceNormalMBTRI_complex | ( | double * | diffN, |
| __CLPK_doublecomplex * | xcoords, | ||
| __CLPK_doublecomplex * | xnormal | ||
| ) |
Definition at line 452 of file fem_tools.c.
| PetscErrorCode ShapeInvJacVolume | ( | double * | jac | ) |
Definition at line 39 of file fem_tools.c.
calculate jacobian
Definition at line 288 of file fem_tools.c.
Definition at line 967 of file fem_tools.c.
Definition at line 761 of file fem_tools.c.
| PetscErrorCode ShapeMBTET | ( | double * | N, |
| const double * | G_X, | ||
| const double * | G_Y, | ||
| const double * | G_Z, | ||
| int | DIM | ||
| ) |
calculate shape functions
Definition at line 306 of file fem_tools.c.
| PetscErrorCode ShapeMBTET_inverse | ( | double * | N, |
| double * | diffN, | ||
| const double * | elem_coords, | ||
| const double * | glob_coords, | ||
| double * | loc_coords | ||
| ) |
calculate local coordinates for given global coordinates
new version for multiple points need to be implemented
Definition at line 335 of file fem_tools.c.
Definition at line 858 of file fem_tools.c.
| PetscErrorCode ShapeMBTETQ_detJac_at_Gauss_Points | ( | double * | detJac_at_Gauss_Points, |
| const double * | diffN, | ||
| const double * | coords, | ||
| int | G_DIM | ||
| ) |
Definition at line 979 of file fem_tools.c.
| PetscErrorCode ShapeMBTETQ_GAUSS | ( | double * | N, |
| const double * | X, | ||
| const double * | Y, | ||
| const double * | Z, | ||
| const int | G_DIM | ||
| ) |
Definition at line 908 of file fem_tools.c.
| PetscErrorCode ShapeMBTETQ_inverse | ( | double * | N, |
| double * | diffN, | ||
| const double * | elem_coords, | ||
| const double * | glob_coords, | ||
| double * | loc_coords, | ||
| const double | eps | ||
| ) |
Definition at line 1007 of file fem_tools.c.
calculate shape functions on triangle
| N | shape function array |
| X | array of Gauss X coordinates |
| Y | array of Gauss Y coordinates |
| G_DIM | number of Gauss points |
Definition at line 182 of file fem_tools.c.
| PetscErrorCode ShapeMBTRI_inverse | ( | double * | N, |
| double * | diffN, | ||
| const double * | elem_coords, | ||
| const double * | glob_coords, | ||
| double * | loc_coords | ||
| ) |
calculate local coordinates of triangle element for given global coordinates in 2D (Assume e.g. z=0)
\[ \left[\begin{array}{cc} \frac{\partial N_{1}}{\partial\xi}x_{N_{1}}+\frac{\partial N_{2}}{\partial\xi}x_{N_{2}}+\frac{\partial N_{3}}{\partial\xi}x_{N_{3}} & \frac{\partial N_{1}}{\partial\eta}x_{N_{1}}+\frac{\partial N_{2}}{\partial\eta}x_{N_{2}}+\frac{\partial N_{3}}{\partial\eta}x_{N_{3}}\\ \frac{\partial N_{1}}{\partial\xi}y_{N_{1}}+\frac{\partial N_{2}}{\partial\xi}y_{N_{2}}+\frac{\partial N_{3}}{\partial\xi}y_{N_{3}} & \frac{\partial N_{1}}{\partial\eta}y_{N_{1}}+\frac{\partial N_{2}}{\partial\eta}y_{N_{2}}+\frac{\partial N_{3}}{\partial\eta}y_{N_{3}} \end{array}\right]\left\{ \begin{array}{c} \xi\\ \eta \end{array}\right\} =\left\{ \begin{array}{c} x_{gp}-\left(N_{1}x_{N_{1}}+N_{2}x_{N_{2}}+N_{3}x_{N_{3}}\right)\\ y_{gp}-\left(N_{1}y_{N_{1}}+N_{2}y_{N_{2}}+N_{3}y_{N_{3}}\right) \end{array}\right\} \]
/
| N | shape function array / |
| diffN | array of shape function derivative w.r.t to local coordinates / |
| elem_coords | global coordinates of element / |
| glob_coords | global coordinates of required point / |
| loc_coords | local coordinates of required point |
Definition at line 380 of file fem_tools.c.
Definition at line 780 of file fem_tools.c.
calculate TET volume
Definition at line 298 of file fem_tools.c.
| double ShapeVolumeMBTETQ | ( | const double * | diffN, |
| const double * | coords, | ||
| int | G_DIM, | ||
| double * | G_TET_W | ||
| ) |
Definition at line 993 of file fem_tools.c.
calculate spin matrix from vector
Definition at line 546 of file fem_tools.c.
|
static |
Definition at line 20 of file fem_tools.c.