KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
#include <split_tetrahedra_utilities.h>
Static Public Member Functions | |
template<class TMatrixType , class TVectorType , class TGradientType > | |
static int | CalculateSplitTetrahedraShapeFuncions (TMatrixType const &rPoints, TGradientType const &DN_DX, TVectorType &rDistances, TVectorType &rVolumes, TMatrixType &rShapeFunctionValues, TVectorType &rPartitionsSign, TVectorType &rEdgeAreas) |
This function implements the element splitting, where the position of the discontinuity is prescribed by giving a level set function prescribing the distance. WARNING: the function works only for simplicial elements (Triangles and tetrahedras) TODO: only implemented for Tetrahedras so far TODO: this must be a master class for the enriched tetraedra utility. reimplement the enriched one.
WARNING: difficulties can be expected if the division prescribed passes exactly in one node or if one of the two sides has a volume approximately 0.
|
inlinestatic |
The method to calculate the ernriched shape functions for given tetrahedra.
rPoints | A 4x3 matrix where row i has the coordinates of node i. |
DN_DX | The gradient of the shape functions Ni respect to the reference coordinates |
rDistances | is an input vector of 4 size which holds relative distance (not need to be exact) for each node. it is used internally to mark the position of the zero level |
rVolumes | Result vector with size 6 (maximumn number of partitions) holding the volume of each partition |
rShapeFunctionValues | Result 6x4 matrix where each row represents a partition and holds the shape functions N1 to N4 of the original tetrahedra evaluated in the 4 gauss point of each computed partition. so that it is N(gauss_index, node_index) |
rPartitionsSign | A result vector of 6 holding the sign of the distance for the partition. The value -1 represents the negative distance sign, 1 represents positive distance and 0 stands for not used partition |
rEdgeAreas | A result vector containing the edge intersection surface area associated to each intersection point in the cut edges. |