www.mooseframework.org
XFEMFuncs.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
8 /****************************************************************/
9 /* This file also contains modified functions from libMesh and */
10 /* the geometry library of John Burkardt */
11 /* http://people.sc.fsu.edu/~jburkardt/ */
12 /* These libraries are both distributed under the LGPL */
13 /****************************************************************/
14 
15 #ifndef XFEMFUNCS_H
16 #define XFEMFUNCS_H
17 
18 #include <vector>
19 #include "libmesh/point.h"
20 #include "EFAPoint.h"
21 
22 using namespace libMesh;
23 
24 namespace Xfem
25 {
26 static const double tol = 1.0e-10;
27 
28 void dunavant_rule2(const Real * wts,
29  const Real * a,
30  const Real * b,
31  const unsigned int * permutation_ids,
32  unsigned int n_wts,
33  std::vector<Point> & points,
34  std::vector<Real> & weights);
35 
36 void stdQuadr2D(unsigned int nen, unsigned int iord, std::vector<std::vector<Real>> & sg2);
37 
38 void wissmannPoints(unsigned int nqp, std::vector<std::vector<Real>> & wss);
39 
40 void shapeFunc2D(unsigned int nen,
41  std::vector<Real> & ss,
42  std::vector<Point> & xl,
43  std::vector<std::vector<Real>> & shp,
44  Real & xsj,
45  bool natl_flg);
46 
47 double r8vec_norm(int n, double a[]);
48 
49 void r8vec_copy(int n, double a1[], double a2[]);
50 
51 bool r8vec_eq(int n, double a1[], double a2[]);
52 
53 double r8vec_dot_product(int n, double a1[], double a2[]);
54 
55 bool line_exp_is_degenerate_nd(int dim_num, double p1[], double p2[]);
56 
58  double pp[3], double normal[3], double p1[3], double p2[3], double pint[3]);
59 
61  double coord[], int order_max, int face_num, int node[], int node_num, int order[]);
62 
63 void i4vec_zero(int n, int a[]);
64 
65 void normalizePoint(Point & p);
66 
67 void normalizePoint(EFAPoint & p);
68 
69 } // namespace Xfem
70 
71 #endif
double polyhedron_volume_3d(double coord[], int order_max, int face_num, int node[], int node_num, int order[])
Definition: XFEMFuncs.C:494
void shapeFunc2D(unsigned int nen, std::vector< Real > &ss, std::vector< Point > &xl, std::vector< std::vector< Real >> &shp, Real &xsj, bool natl_flg)
Definition: XFEMFuncs.C:274
void wissmannPoints(unsigned int nqp, std::vector< std::vector< Real >> &wss)
Definition: XFEMFuncs.C:238
bool line_exp_is_degenerate_nd(int dim_num, double p1[], double p2[])
Definition: XFEMFuncs.C:399
double r8vec_norm(int n, double a[])
Definition: XFEMFuncs.C:359
int plane_normal_line_exp_int_3d(double pp[3], double normal[3], double p1[3], double p2[3], double pint[3])
Definition: XFEMFuncs.C:408
void i4vec_zero(int n, int a[])
Definition: XFEMFuncs.C:592
Definition: XFEM.h:24
static const double tol
Definition: XFEMFuncs.h:26
bool r8vec_eq(int n, double a1[], double a2[])
Definition: XFEMFuncs.C:379
void stdQuadr2D(unsigned int nen, unsigned int iord, std::vector< std::vector< Real >> &sg2)
Definition: XFEMFuncs.C:101
void normalizePoint(EFAPoint &p)
Definition: XFEMFuncs.C:638
void dunavant_rule2(const Real *wts, const Real *a, const Real *b, const unsigned int *permutation_ids, unsigned int n_wts, std::vector< Point > &points, std::vector< Real > &weights)
Definition: XFEMFuncs.C:26
double r8vec_dot_product(int n, double a1[], double a2[])
Definition: XFEMFuncs.C:389
void r8vec_copy(int n, double a1[], double a2[])
Definition: XFEMFuncs.C:370