include/meltpooldg/cut/util.hpp File Reference

Developer Documentation: include/meltpooldg/cut/util.hpp File Reference
Developer Documentation
util.hpp File Reference
#include <deal.II/base/array_view.h>
#include <deal.II/base/vectorization.h>
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/grid/tria.h>
#include <deal.II/matrix_free/evaluation_flags.h>
#include <deal.II/matrix_free/fe_point_evaluation.h>
#include <deal.II/matrix_free/matrix_free.h>
#include <deal.II/non_matching/mapping_info.h>
#include <deal.II/non_matching/mesh_classifier.h>
#include <meltpooldg/utilities/enum.hpp>
#include <meltpooldg/utilities/fe_integrator.hpp>
#include <memory>
#include <utility>
#include <vector>
Include dependency graph for util.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  MeltPoolDG
 Interface for a general preconditioner.
 
namespace  MeltPoolDG::CutUtil
 

Typedefs

template<int dim, typename number >
using MeltPoolDG::CutUtil::MappingInfoType = dealii::NonMatching::MappingInfo< dim, dim, dealii::VectorizedArray< number > >
 
template<int dim, typename number >
using MeltPoolDG::CutUtil::MappingInfoVectorType = std::vector< std::shared_ptr< MappingInfoType< dim, number > > >
 

Enumerations

enum  MeltPoolDG::CutUtil::CellCategory { MeltPoolDG::CutUtil::liquid = 0 , MeltPoolDG::CutUtil::intersected = 1 , MeltPoolDG::CutUtil::gas = 2 }
 Definition of the cell category numbering (active FE index). More...
 
enum  MeltPoolDG::CutUtil::FaceType {
  MeltPoolDG::CutUtil::inside_face_liquid , MeltPoolDG::CutUtil::inside_face_gas , MeltPoolDG::CutUtil::intersected_face , MeltPoolDG::CutUtil::mixed_face_liquid_intersected ,
  MeltPoolDG::CutUtil::mixed_face_intersected_liquid , MeltPoolDG::CutUtil::mixed_face_gas_intersected , MeltPoolDG::CutUtil::mixed_face_intersected_gas
}
 Enumeration for the face type. More...
 

Functions

template<int dim>
CutPhaseType MeltPoolDG::CutUtil::get_cut_type (const dealii::DoFHandler< dim > &dof_handler)
 Enum that names a type of CutFEM in use.
 
FaceType MeltPoolDG::CutUtil::get_face_type (const std::pair< unsigned int, unsigned int > &adjacent_cell_categories)
 This function categorizes the FaceType of the current face range.
 
template<int dim>
void MeltPoolDG::CutUtil::set_fe_index (const dealii::DoFHandler< dim > &dof_handler, const dealii::NonMatching::MeshClassifier< dim > &mesh_classifier, const bool set_future)
 This function is setting the FE index for every cell.
 
template<int dim, typename number , typename VectorType >
void MeltPoolDG::CutUtil::compute_intersected_quadrature (MappingInfoVectorType< dim, number > mapping_info_cells, MappingInfoType< dim, number > &mapping_info_surface, const dealii::DoFHandler< dim > &level_set_dof_handler, const VectorType &level_set, const dealii::MatrixFree< dim, number, dealii::VectorizedArray< number > > &matrix_free, const int fe_degree, const bool is_two_phase, const bool is_dg=false, MappingInfoVectorType< dim, number > mapping_info_faces={})
 This function generates the immersed quadrature rules in the case that the domain is described by a discrete level-set function.
 
template<int dim, typename number , typename VectorType >
void MeltPoolDG::CutUtil::compute_immersed_surface_quadrature (MappingInfoType< dim, number > &mapping_info_surface, const dealii::DoFHandler< dim > &level_set_dof_handler, const VectorType &level_set, const dealii::MatrixFree< dim, number, dealii::VectorizedArray< number > > &matrix_free, const int fe_degree)
 This function generates the immersed quadrature rules in the case that the domain is described by a discrete level-set function.
 
template<int dim, typename number , int n_components = 1>
void MeltPoolDG::CutUtil::evaluate_intersected_domain (dealii::FEPointEvaluation< n_components, dim, dim, dealii::VectorizedArray< number > > &point_eval, const FECellIntegrator< dim, n_components, number > &cell_eval, const dealii::EvaluationFlags::EvaluationFlags evaluation_flags, const unsigned int cell_batch, const unsigned int cell_lane, const unsigned int n_dofs_per_cell)
 Evaluates solution values in the intersected domain for a specific SIMD lane within a cell batch.
 
template<int dim>
bool MeltPoolDG::CutUtil::face_has_ghost_penalty (const dealii::NonMatching::MeshClassifier< dim > &mesh_classifier, const typename dealii::Triangulation< dim >::active_cell_iterator &cell, const unsigned int face_index, const dealii::NonMatching::LocationToLevelSet &inactive_location=dealii::NonMatching::LocationToLevelSet::inside)
 This function checks whether the currently considered face requires the application of ghost-penalty stabilization or not.
 
template<int dim>
bool MeltPoolDG::CutUtil::is_new_intersected_face (const dealii::NonMatching::MeshClassifier< dim > &mesh_classifier, const dealii::NonMatching::MeshClassifier< dim > &mesh_classifier_old, const typename dealii::Triangulation< dim >::active_cell_iterator &cell, const unsigned int face_index, const dealii::NonMatching::LocationToLevelSet &inactive_location=dealii::NonMatching::LocationToLevelSet::inside)
 This function checks whether the considered face is a newly created intersected face.