www.mooseframework.org
XFEMCutElem3D.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 XFEMCUTELEM3D_H
9 #define XFEMCUTELEM3D_H
10 
11 #include "XFEMCutElem.h"
12 #include "EFAElement3D.h"
13 
14 using namespace libMesh;
15 
16 namespace libMesh
17 {
18 class MeshBase;
19 class Elem;
20 class Node;
21 }
22 
23 class XFEMCutElem3D : public XFEMCutElem
24 {
25 public:
26  XFEMCutElem3D(Elem * elem, const EFAElement3D * const CEMelem, unsigned int n_qpoints);
27  ~XFEMCutElem3D();
28 
29 private:
30  EFAElement3D _efa_elem3d; // 3D 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 
50 #endif
EFAElement3D _efa_elem3d
Definition: XFEMCutElem3D.h:30