include/meltpooldg/level_set/level_set_tools.hpp File Reference
|
Developer Documentation
|
level_set_tools.hpp File Reference
#include <deal.II/base/point.h>#include <deal.II/base/vectorization.h>#include <deal.II/dofs/dof_handler.h>#include <deal.II/fe/fe_system.h>#include <deal.II/fe/mapping.h>#include <deal.II/grid/tria.h>#include <deal.II/lac/la_parallel_block_vector.h>#include <deal.II/lac/la_parallel_vector.h>#include <meltpooldg/core/scratch_data.hpp>#include <functional>#include <tuple>#include <utility>#include <vector>
Include dependency graph for level_set_tools.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::LevelSet |
| This operation solves the reinitialization problem for a CG- or DG-FEM-based discrete level-set field by solving an elliptic problem. | |
| namespace | MeltPoolDG::LevelSet::Tools |
Enumerations | |
| enum | MeltPoolDG::LevelSet::Tools::BooleanType { MeltPoolDG::LevelSet::Tools::Union , MeltPoolDG::LevelSet::Tools::Intersection , MeltPoolDG::LevelSet::Tools::Subtraction } |
Functions | |
| template<typename value_type1 , typename value_type2 , typename value_type3 > | |
| value_type1 | MeltPoolDG::LevelSet::Tools::interpolate (const value_type1 &ls, const value_type2 &val1, const value_type3 &val2) |
| template<typename value_type1 , typename value_type2 , typename value_type3 > | |
| value_type1 | MeltPoolDG::LevelSet::Tools::interpolate_reciprocal (const value_type1 &ls, const value_type2 &val1, const value_type3 &val2) |
| template<typename value_type1 , typename value_type2 , typename value_type3 > | |
| value_type1 | MeltPoolDG::LevelSet::Tools::interpolate_cubic (const value_type1 &ls, const value_type2 &val1, const value_type3 &val2) |
| template<typename value_type1 , typename value_type2 , typename value_type3 > | |
| value_type1 | MeltPoolDG::LevelSet::Tools::interpolate_cubic_derivative (const value_type1 &ls, const value_type2 &val1, const value_type3 &val2) |
| template<typename number > | |
| number | MeltPoolDG::LevelSet::Tools::approximate_distance_from_tanh_level_set (const number phi, const number eps, const number cutoff) |
| Computes an approximate signed distance from a hyperbolic tangent level-set value. | |
| template<typename number > | |
| dealii::LinearAlgebra::distributed::Vector< number > | MeltPoolDG::LevelSet::Tools::merge_two_indicator_fields (const dealii::LinearAlgebra::distributed::Vector< number > &indicator_1, const dealii::LinearAlgebra::distributed::Vector< number > &indicator_2, BooleanType type=BooleanType::Union, const number indicator_value_interior=1.0, const number indicator_value_exterior=-1.0) |
| template<int dim, typename number > | |
| void | MeltPoolDG::LevelSet::Tools::collect_interface_cells_and_intersection_points (std::vector< std::pair< std::pair< unsigned int, unsigned int >, std::vector< dealii::Point< dim > > > > &surface_cells_and_unit_points, std::vector< dealii::Point< dim > > &surface_points, const dealii::DoFHandler< dim > &dof_handler, const dealii::Mapping< dim > &mapping, const dealii::LinearAlgebra::distributed::Vector< number > &level_set_vector, const number contour_value=0.0, const unsigned int n_subdivisions=1, const number tolerance=1e-10) |
| Identifies volume cells intersected by a level set and extracts the corresponding quadrature points at the intersection (in both real and reference coordinates). | |
| template<int dim, typename number > | |
| void | MeltPoolDG::LevelSet::Tools::evaluate_at_interface (const dealii::DoFHandler< dim > &dof_handler, const dealii::Mapping< dim > &mapping, const dealii::LinearAlgebra::distributed::Vector< number > &level_set_vector, const std::function< void(const typename dealii::DoFHandler< dim >::active_cell_iterator &, const std::vector< dealii::Point< dim > > &, const std::vector< dealii::Point< dim > > &, const std::vector< number > &)> &evaluate_at_interface_points, const number contour_value=0.0, const unsigned int n_subdivisions=1, const number tolerance=1e-10, const bool use_mca=true) |
| Evaluates user-defined quantities at an implicitly defined interface. | |
| template<int dim, typename number > | |
| std::vector< std::tuple< const typename dealii::Triangulation< dim, dim >::cell_iterator, std::vector< dealii::Point< dim > >, std::vector< number > > > | MeltPoolDG::LevelSet::Tools::generate_surface_mesh_info (const dealii::DoFHandler< dim > &dof_handler, const dealii::Mapping< dim > &mapping, const dealii::LinearAlgebra::distributed::Vector< number > &level_set, const number contour_value=0.0, const unsigned int n_subdivisions=1, const number tolerance=1e-10, const bool use_mca=true) |
| Generates surface mesh data corresponding to an implicit interface. | |
| template<int dim, typename number > | |
| void | MeltPoolDG::LevelSet::Tools::generate_points_along_normal (std::vector< dealii::Point< dim > > &global_points_normal_to_interface, std::vector< unsigned int > &global_points_normal_to_interface_pointer, const dealii::DoFHandler< dim > &dof_handler_ls, const dealii::FESystem< dim > &fe_normal, const dealii::Mapping< dim > &mapping, const dealii::LinearAlgebra::distributed::Vector< number > &level_set_vector, const dealii::LinearAlgebra::distributed::BlockVector< number > &normal_vector, const number max_distance_per_side, const unsigned int n_inc_per_side, const bool bidirectional=true, const number contour_value=0.0, const unsigned int n_subdivisions_MCA=1) |
| template<int dim, typename number > | |
| void | MeltPoolDG::LevelSet::Tools::set_material_id_from_level_set (const ScratchData< dim, dim, number > &scratch_data, const unsigned int ls_dof_idx, const dealii::LinearAlgebra::distributed::Vector< number > &level_set_heaviside, const number lower_threshold=0.5) |
| template<typename number > | |
| dealii::VectorizedArray< number > | MeltPoolDG::LevelSet::Tools::compute_mask_narrow_band (const dealii::VectorizedArray< number > &val, const number narrow_band_threshold) |
Generated by