www.mooseframework.org
XFEMFuncs.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include <vector>
13 #include "libmesh/point.h"
14 #include "EFAPoint.h"
15 
16 using namespace libMesh;
17 
18 namespace Xfem
19 {
20 static const double tol = 1.0e-10;
21 
22 void dunavant_rule2(const Real * wts,
23  const Real * a,
24  const Real * b,
25  const unsigned int * permutation_ids,
26  unsigned int n_wts,
27  std::vector<Point> & points,
28  std::vector<Real> & weights);
29 
30 void stdQuadr2D(unsigned int nen, unsigned int iord, std::vector<std::vector<Real>> & sg2);
31 
32 void wissmannPoints(unsigned int nqp, std::vector<std::vector<Real>> & wss);
33 
34 void shapeFunc2D(unsigned int nen,
35  std::vector<Real> & ss,
36  std::vector<Point> & xl,
37  std::vector<std::vector<Real>> & shp,
38  Real & xsj,
39  bool natl_flg);
40 
41 double r8vec_norm(int n, double a[]);
42 
43 void r8vec_copy(int n, double a1[], double a2[]);
44 
45 bool r8vec_eq(int n, double a1[], double a2[]);
46 
47 double r8vec_dot_product(int n, double a1[], double a2[]);
48 
49 bool line_exp_is_degenerate_nd(int dim_num, double p1[], double p2[]);
50 
52  double pp[3], double normal[3], double p1[3], double p2[3], double pint[3]);
53 
55  double coord[], int order_max, int face_num, int node[], int node_num, int order[]);
56 
57 void i4vec_zero(int n, int a[]);
58 
59 void normalizePoint(Point & p);
60 
61 void normalizePoint(EFAPoint & p);
62 
63 double r8_acos(double c);
64 
65 double angle_rad_3d(double p1[3], double p2[3], double p3[3]);
66 } // namespace Xfem
67 
EFAPoint.h
Xfem::shapeFunc2D
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:269
Xfem::polyhedron_volume_3d
double polyhedron_volume_3d(double coord[], int order_max, int face_num, int node[], int node_num, int order[])
Definition: XFEMFuncs.C:489
Xfem::line_exp_is_degenerate_nd
bool line_exp_is_degenerate_nd(int dim_num, double p1[], double p2[])
Definition: XFEMFuncs.C:394
libMesh
Definition: RANFSNormalMechanicalContact.h:24
Xfem::i4vec_zero
void i4vec_zero(int n, int a[])
Definition: XFEMFuncs.C:586
Xfem::plane_normal_line_exp_int_3d
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:403
Xfem::r8vec_norm
double r8vec_norm(int n, double a[])
Definition: XFEMFuncs.C:354
tol
const double tol
Definition: Setup.h:18
EFAPoint
Definition: EFAPoint.h:12
Xfem::r8vec_dot_product
double r8vec_dot_product(int n, double a1[], double a2[])
Definition: XFEMFuncs.C:384
Xfem::normalizePoint
void normalizePoint(EFAPoint &p)
Definition: XFEMFuncs.C:631
Xfem
Definition: XFEM.h:25
Xfem::r8vec_eq
bool r8vec_eq(int n, double a1[], double a2[])
Definition: XFEMFuncs.C:374
Xfem::r8_acos
double r8_acos(double c)
Definition: XFEMFuncs.C:639
Xfem::stdQuadr2D
void stdQuadr2D(unsigned int nen, unsigned int iord, std::vector< std::vector< Real >> &sg2)
Definition: XFEMFuncs.C:96
Xfem::r8vec_copy
void r8vec_copy(int n, double a1[], double a2[])
Definition: XFEMFuncs.C:365
Xfem::angle_rad_3d
double angle_rad_3d(double p1[3], double p2[3], double p3[3])
Definition: XFEMFuncs.C:691
Xfem::dunavant_rule2
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:21
Xfem::wissmannPoints
void wissmannPoints(unsigned int nqp, std::vector< std::vector< Real >> &wss)
Definition: XFEMFuncs.C:233