www.mooseframework.org
XFEMCutElem2D.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 #ifndef XFEMCUTELEM2D_H
9 #define XFEMCUTELEM2D_H
10 
11 #include "XFEMCutElem.h"
12 #include "EFAElement2D.h"
13 
14 using namespace libMesh;
15 
16 namespace libMesh
17 {
18 class MeshBase;
19 class Elem;
20 class Node;
21 }
22 
23 class XFEMCutElem2D : public XFEMCutElem
24 {
25 public:
26  XFEMCutElem2D(Elem * elem, const EFAElement2D * const CEMelem, unsigned int n_qpoints);
27  ~XFEMCutElem2D();
28 
29 private:
30  EFAElement2D _efa_elem2d; // 2D EFAelement
31  virtual Point getNodeCoordinates(EFANode * node, MeshBase * displaced_mesh = NULL) const;
32 
33 public:
34  virtual void computePhysicalVolumeFraction();
35  virtual void computeMomentFittingWeights();
36  virtual Point getCutPlaneOrigin(unsigned int plane_id, MeshBase * displaced_mesh = NULL) const;
37  virtual Point getCutPlaneNormal(unsigned int plane_id, MeshBase * displaced_mesh = NULL) const;
38  virtual void
39  getCrackTipOriginAndDirection(unsigned tip_id, Point & origin, Point & direction) const;
40  virtual void getFragmentFaces(std::vector<std::vector<Point>> & frag_faces,
41  MeshBase * displaced_mesh = NULL) const;
42  virtual const EFAElement * getEFAElement() const;
43  virtual unsigned int numCutPlanes() const;
44  virtual void getIntersectionInfo(unsigned int plane_id,
45  Point & normal,
46  std::vector<Point> & intersectionPoints,
47  MeshBase * displaced_mesh = NULL) const;
48 
49 private:
50  void getPhysicalQuadraturePoints(std::vector<std::vector<Real>> & tsg);
51  void solveMomentFitting(unsigned int nen,
52  unsigned int nqp,
53  std::vector<Point> & elem_nodes,
54  std::vector<std::vector<Real>> & tsg,
55  std::vector<std::vector<Real>> & wsg);
56 };
57 
58 #endif
EFAElement2D _efa_elem2d
Definition: XFEMCutElem2D.h:30