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.
Static Public Member Functions | List of all members
Kratos::SplitTetrahedraUtilities Class Reference

#include <split_tetrahedra_utilities.h>

Collaboration diagram for Kratos::SplitTetrahedraUtilities:

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)
 

Detailed Description

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.

Member Function Documentation

◆ CalculateSplitTetrahedraShapeFuncions()

template<class TMatrixType , class TVectorType , class TGradientType >
static int Kratos::SplitTetrahedraUtilities::CalculateSplitTetrahedraShapeFuncions ( TMatrixType const &  rPoints,
TGradientType const &  DN_DX,
TVectorType &  rDistances,
TVectorType &  rVolumes,
TMatrixType &  rShapeFunctionValues,
TVectorType &  rPartitionsSign,
TVectorType &  rEdgeAreas 
)
inlinestatic

The method to calculate the ernriched shape functions for given tetrahedra.

Parameters
rPointsA 4x3 matrix where row i has the coordinates of node i.
DN_DXThe gradient of the shape functions Ni respect to the reference coordinates
rDistancesis 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
rVolumesResult vector with size 6 (maximumn number of partitions) holding the volume of each partition
rShapeFunctionValuesResult 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)
rPartitionsSignA 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
rEdgeAreasA result vector containing the edge intersection surface area associated to each intersection point in the cut edges.
Returns
number of partitions created which can be from 1 to 6. 1 holds for only 1 partition which is the original element. (No partitioning needed)

The documentation for this class was generated from the following file: