#include <XFEMCutElem.h>
Public Member Functions | |
XFEMCutElem (Elem *elem, unsigned int n_qpoints, unsigned int n_sides) | |
Constructor initializes XFEMCutElem object. More... | |
virtual | ~XFEMCutElem () |
void | setQuadraturePointsAndWeights (const std::vector< Point > &qp_points, const std::vector< Real > &qp_weights) |
virtual void | computePhysicalVolumeFraction ()=0 |
Computes the volume fraction of the element fragment. More... | |
Real | getPhysicalVolumeFraction () const |
Returns the volume fraction of the element fragment. More... | |
virtual void | computePhysicalFaceAreaFraction (unsigned int side)=0 |
Computes the surface area fraction of the element side. More... | |
Real | getPhysicalFaceAreaFraction (unsigned int side) const |
Returns the surface area fraction of the element side. More... | |
virtual void | computeMomentFittingWeights ()=0 |
Real | getMomentFittingWeight (unsigned int i_qp) const |
virtual Point | getCutPlaneOrigin (unsigned int plane_id, MeshBase *displaced_mesh=nullptr) const =0 |
virtual Point | getCutPlaneNormal (unsigned int plane_id, MeshBase *displaced_mesh=nullptr) const =0 |
virtual void | getCrackTipOriginAndDirection (unsigned tip_id, Point &origin, Point &direction) const =0 |
virtual void | getFragmentFaces (std::vector< std::vector< Point >> &frag_faces, MeshBase *displaced_mesh=nullptr) const =0 |
virtual const EFAElement * | getEFAElement () const =0 |
virtual unsigned int | numCutPlanes () const =0 |
void | getWeightMultipliers (MooseArray< Real > &weights, QBase *qrule, Xfem::XFEM_QRULE xfem_qrule, const MooseArray< Point > &q_points) |
void | getFaceWeightMultipliers (MooseArray< Real > &face_weights, QBase *qrule, Xfem::XFEM_QRULE xfem_qrule, const MooseArray< Point > &q_points, unsigned int side) |
void | computeXFEMWeights (QBase *qrule, Xfem::XFEM_QRULE xfem_qrule, const MooseArray< Point > &q_points) |
Computes integration weights for the cut element. More... | |
void | computeXFEMFaceWeights (QBase *qrule, Xfem::XFEM_QRULE xfem_qrule, const MooseArray< Point > &q_points, unsigned int side) |
Computes face integration weights for the cut element side. More... | |
bool | isPointPhysical (const Point &p) const |
virtual void | getIntersectionInfo (unsigned int plane_id, Point &normal, std::vector< Point > &intersectionPoints, MeshBase *displaced_mesh=nullptr) const =0 |
Protected Member Functions | |
virtual Point | getNodeCoordinates (EFANode *node, MeshBase *displaced_mesh=nullptr) const =0 |
Protected Attributes | |
unsigned int | _n_nodes |
unsigned int | _n_qpoints |
unsigned int | _n_sides |
std::vector< Node * > | _nodes |
std::vector< Point > | _qp_points |
std::vector< Real > | _qp_weights |
Real | _elem_volume |
std::vector< Real > | _elem_side_area |
Real | _physical_volfrac |
std::vector< Real > | _physical_areafrac |
bool | _have_weights |
std::vector< bool > | _have_face_weights |
std::vector< Real > | _new_weights |
quadrature weights from volume fraction and moment fitting More... | |
std::vector< std::vector< Real > > | _new_face_weights |
face quadrature weights from surface area fraction More... | |
Definition at line 29 of file XFEMCutElem.h.
Constructor initializes XFEMCutElem object.
elem | The element on which XFEMCutElem is built |
n_qpoints | The number of quadrature points |
n_sides | The number of sides which the element has |
Definition at line 22 of file XFEMCutElem.C.
|
virtual |
Definition at line 48 of file XFEMCutElem.C.
|
pure virtual |
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Referenced by computeXFEMWeights().
Computes the surface area fraction of the element side.
side | The side of the element |
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Referenced by computeXFEMFaceWeights().
|
pure virtual |
Computes the volume fraction of the element fragment.
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Referenced by computeXFEMWeights(), and XFEM::getPhysicalVolumeFraction().
void XFEMCutElem::computeXFEMFaceWeights | ( | QBase * | qrule, |
Xfem::XFEM_QRULE | xfem_qrule, | ||
const MooseArray< Point > & | q_points, | ||
unsigned int | side | ||
) |
Computes face integration weights for the cut element side.
qrule | The standard MOOSE face quadrature rule |
xfem_qrule | The integration scheme for the cut element (We use surface area fraction only) |
q_points | The quadrature points for the element side |
side | The side of the element |
Definition at line 92 of file XFEMCutElem.C.
Referenced by getFaceWeightMultipliers().
void XFEMCutElem::computeXFEMWeights | ( | QBase * | qrule, |
Xfem::XFEM_QRULE | xfem_qrule, | ||
const MooseArray< Point > & | q_points | ||
) |
Computes integration weights for the cut element.
qrule | The standard MOOSE quadrature rule |
xfem_qrule | The integration scheme for the cut element |
q_points | The quadrature points for the element |
Definition at line 109 of file XFEMCutElem.C.
Referenced by getWeightMultipliers().
|
pure virtual |
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Referenced by XFEM::storeCrackTipOriginAndDirection().
|
pure virtual |
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Referenced by XFEM::getCutPlane(), and isPointPhysical().
|
pure virtual |
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Referenced by XFEM::getCutPlane(), and isPointPhysical().
|
pure virtual |
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Referenced by XFEM::buildEFAMesh(), XFEM::getCutPlane(), XFEM::getPhysicalVolumeFraction(), XFEM::isElemCut(), and XFEM::storeCrackTipOriginAndDirection().
void XFEMCutElem::getFaceWeightMultipliers | ( | MooseArray< Real > & | face_weights, |
QBase * | qrule, | ||
Xfem::XFEM_QRULE | xfem_qrule, | ||
const MooseArray< Point > & | q_points, | ||
unsigned int | side | ||
) |
Definition at line 77 of file XFEMCutElem.C.
Referenced by XFEM::getXFEMFaceWeights().
|
pure virtual |
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Referenced by XFEM::getFragmentFaces().
|
pure virtual |
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Referenced by XFEM::getXFEMIntersectionInfo().
|
protectedpure virtual |
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Returns the surface area fraction of the element side.
side | The side of the element |
Definition at line 57 of file XFEMCutElem.C.
Referenced by computeXFEMFaceWeights().
Real XFEMCutElem::getPhysicalVolumeFraction | ( | ) | const |
Returns the volume fraction of the element fragment.
Definition at line 51 of file XFEMCutElem.C.
Referenced by computeXFEMWeights(), and XFEM::getPhysicalVolumeFraction().
void XFEMCutElem::getWeightMultipliers | ( | MooseArray< Real > & | weights, |
QBase * | qrule, | ||
Xfem::XFEM_QRULE | xfem_qrule, | ||
const MooseArray< Point > & | q_points | ||
) |
Definition at line 63 of file XFEMCutElem.C.
Referenced by XFEM::getXFEMWeights().
bool XFEMCutElem::isPointPhysical | ( | const Point & | p | ) | const |
Definition at line 193 of file XFEMCutElem.C.
Referenced by computeXFEMWeights(), XFEM::healMesh(), and XFEM::isPointInsidePhysicalDomain().
|
pure virtual |
Implemented in XFEMCutElem2D, and XFEMCutElem3D.
Referenced by isPointPhysical().
void XFEMCutElem::setQuadraturePointsAndWeights | ( | const std::vector< Point > & | qp_points, |
const std::vector< Real > & | qp_weights | ||
) |
|
protected |
Definition at line 49 of file XFEMCutElem.h.
Referenced by XFEMCutElem2D::computePhysicalFaceAreaFraction(), XFEMCutElem3D::computePhysicalFaceAreaFraction(), and XFEMCutElem().
|
protected |
Definition at line 48 of file XFEMCutElem.h.
Referenced by XFEMCutElem2D::computePhysicalVolumeFraction(), XFEMCutElem3D::computePhysicalVolumeFraction(), and XFEMCutElem().
|
protected |
Definition at line 53 of file XFEMCutElem.h.
Referenced by computeXFEMFaceWeights(), getFaceWeightMultipliers(), and XFEMCutElem().
|
protected |
Definition at line 52 of file XFEMCutElem.h.
Referenced by computeXFEMWeights(), and getWeightMultipliers().
|
protected |
Definition at line 42 of file XFEMCutElem.h.
Referenced by XFEMCutElem2D::computeMomentFittingWeights(), and XFEMCutElem().
|
protected |
Definition at line 43 of file XFEMCutElem.h.
Referenced by XFEMCutElem2D::computeMomentFittingWeights(), XFEMCutElem3D::computeMomentFittingWeights(), and computeXFEMWeights().
|
protected |
Definition at line 44 of file XFEMCutElem.h.
Referenced by XFEMCutElem().
|
protected |
face quadrature weights from surface area fraction
Definition at line 57 of file XFEMCutElem.h.
Referenced by computeXFEMFaceWeights(), and getFaceWeightMultipliers().
|
protected |
quadrature weights from volume fraction and moment fitting
Definition at line 55 of file XFEMCutElem.h.
Referenced by XFEMCutElem2D::computeMomentFittingWeights(), XFEMCutElem3D::computeMomentFittingWeights(), computeXFEMWeights(), and getWeightMultipliers().
|
protected |
Definition at line 45 of file XFEMCutElem.h.
Referenced by XFEMCutElem2D::computeMomentFittingWeights(), XFEMCutElem3D::getNodeCoordinates(), XFEMCutElem2D::getNodeCoordinates(), and XFEMCutElem().
|
protected |
Definition at line 51 of file XFEMCutElem.h.
Referenced by XFEMCutElem2D::computePhysicalFaceAreaFraction(), XFEMCutElem3D::computePhysicalFaceAreaFraction(), getPhysicalFaceAreaFraction(), and XFEMCutElem().
|
protected |
Definition at line 50 of file XFEMCutElem.h.
Referenced by XFEMCutElem2D::computeMomentFittingWeights(), XFEMCutElem3D::computeMomentFittingWeights(), XFEMCutElem3D::computePhysicalVolumeFraction(), XFEMCutElem2D::computePhysicalVolumeFraction(), computeXFEMWeights(), and getPhysicalVolumeFraction().
|
protected |
Definition at line 46 of file XFEMCutElem.h.
Referenced by computeXFEMWeights(), and XFEMCutElem2D::solveMomentFitting().
|
protected |
Definition at line 47 of file XFEMCutElem.h.
Referenced by computeXFEMWeights(), and XFEMCutElem2D::solveMomentFitting().