ReinitializationHyperbolicCGOperation< dim, number > Class Template Reference

Developer Documentation: MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number > Class Template Reference
Developer Documentation
MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number > Class Template Reference

#include <reinitialization_hyperbolic_CG_operation.hpp>

Inheritance diagram for MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >:
[legend]
Collaboration diagram for MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >:
[legend]

Public Member Functions

 ReinitializationHyperbolicCGOperation (const ScratchData< dim, dim, number > &scratch_data_in, const ReinitializationData< number > &reinit_data, const NormalVectorData< number > &normal_vec_data, const int ls_n_subdivisions_in, const TimeIntegration::TimeIterator< number > &time_iterator, const unsigned int reinit_dof_idx_in, const unsigned int reinit_quad_idx_in, const unsigned int ls_dof_idx_in, const std::array< unsigned int, dim > &normal_dof_indices_per_block_in, const unsigned int normal_no_bc_dof_idx_in)
 
void reinit () override
 
void set_initial_condition (const VectorType &solution_level_set_in) override
 
void set_initial_condition (const dealii::Function< dim > &initial_field_function) override
 
void set_wetting_boundary_condition_ids (std::vector< dealii::types::boundary_id > &&wetting_bc_ids) final
 Sets the boundary IDs where wetting boundary conditions should be applied.
 
void init_time_advance ()
 
void solve () override
 
number get_max_change_level_set () const final
 
const BlockVectorTypeget_normal_vector () const
 
const VectorTypeget_level_set () const override
 
VectorTypeget_level_set () override
 
BlockVectorTypeget_normal_vector ()
 
void attach_vectors (std::vector< dealii::LinearAlgebra::distributed::Vector< number > * > &vectors) override
 
void attach_output_vectors (GenericDataOut< dim, number > &data_out) const override
 
- Public Member Functions inherited from MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >
virtual ~ReinitializationOperationBase ()=default
 
virtual number compute_CFL_based_timestep () const
 
virtual void set_artificial_diffusitivity ()
 
virtual dealii::LinearAlgebra::distributed::Vector< number > * get_sign_indicator_function ()
 
- Public Member Functions inherited from MeltPoolDG::LevelSet::ReinitializationHyperbolicOperationCapable< dim, number >
virtual ~ReinitializationHyperbolicOperationCapable ()=default
 

Private Types

using VectorType = dealii::LinearAlgebra::distributed::Vector< number >
 
using BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number >
 
using SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix
 

Private Member Functions

void create_operator ()
 

Private Attributes

const ScratchData< dim, dim, number > & scratch_data
 
const ReinitializationData< number > reinit_data
 
const int ls_n_subdivisions
 
const TimeIntegration::TimeIterator< number > & time_iterator
 
unsigned int reinit_dof_idx
 
const unsigned int reinit_quad_idx
 
const unsigned int ls_dof_idx
 
const std::array< unsigned int, dim > normal_dof_indices_per_block
 
const unsigned int normal_no_bc_dof_idx
 
TimeIntegration::SolutionHistory< VectorTypesolution_history
 
std::unique_ptr< Predictor< VectorType, number > > predictor
 
std::unique_ptr< OlssonOperator< dim, number > > reinit_operator
 
std::shared_ptr< NormalVectorOperationBase< dim, number > > normal_vector_operation
 
VectorType solution_level_set
 
VectorType delta_psi_extrapolated
 
VectorType rhs
 
Preconditioner< dim, VectorType, number > preconditioner
 
number max_change_level_set = std::numeric_limits<number>::max()
 

Member Typedef Documentation

◆ BlockVectorType

template<int dim, typename number >
using MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector<number>
private

◆ SparseMatrixType

template<int dim, typename number >
using MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix
private

◆ VectorType

template<int dim, typename number >
using MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::VectorType = dealii::LinearAlgebra::distributed::Vector<number>
private

Constructor & Destructor Documentation

◆ ReinitializationHyperbolicCGOperation()

template<int dim, typename number >
MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::ReinitializationHyperbolicCGOperation ( const ScratchData< dim, dim, number > &  scratch_data_in,
const ReinitializationData< number > &  reinit_data,
const NormalVectorData< number > &  normal_vec_data,
const int  ls_n_subdivisions_in,
const TimeIntegration::TimeIterator< number > &  time_iterator,
const unsigned int  reinit_dof_idx_in,
const unsigned int  reinit_quad_idx_in,
const unsigned int  ls_dof_idx_in,
const std::array< unsigned int, dim > &  normal_dof_indices_per_block_in,
const unsigned int  normal_no_bc_dof_idx_in 
)

Member Function Documentation

◆ attach_output_vectors()

template<int dim, typename number >
void MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::attach_output_vectors ( GenericDataOut< dim, number > &  data_out) const
overridevirtual

◆ attach_vectors()

template<int dim, typename number >
void MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::attach_vectors ( std::vector< dealii::LinearAlgebra::distributed::Vector< number > * > &  vectors)
overridevirtual

◆ create_operator()

template<int dim, typename number >
void MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::create_operator ( )
private

◆ get_level_set() [1/2]

template<int dim, typename number >
const ReinitializationHyperbolicCGOperation< dim, number >::VectorType & MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::get_level_set ( ) const
overridevirtual

◆ get_level_set() [2/2]

template<int dim, typename number >
ReinitializationHyperbolicCGOperation< dim, number >::VectorType & MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::get_level_set ( )
overridevirtual

◆ get_max_change_level_set()

template<int dim, typename number >
number MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::get_max_change_level_set ( ) const
finalvirtual

◆ get_normal_vector() [1/2]

template<int dim, typename number >
ReinitializationHyperbolicCGOperation< dim, number >::BlockVectorType & MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::get_normal_vector ( )

◆ get_normal_vector() [2/2]

template<int dim, typename number >
const ReinitializationHyperbolicCGOperation< dim, number >::BlockVectorType & MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::get_normal_vector ( ) const

◆ init_time_advance()

template<int dim, typename number >
void MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::init_time_advance ( )

◆ reinit()

template<int dim, typename number >
void MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::reinit ( )
overridevirtual

◆ set_initial_condition() [1/2]

template<int dim, typename number >
void MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::set_initial_condition ( const dealii::Function< dim > &  initial_field_function)
overridevirtual

Interpolates the initial conditions from a function to the level set field

Implements MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.

◆ set_initial_condition() [2/2]

template<int dim, typename number >
void MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::set_initial_condition ( const VectorType solution_level_set_in)
overridevirtual

Copies a solution field to solution_level_set

Implements MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.

◆ set_wetting_boundary_condition_ids()

template<int dim, typename number >
void MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::set_wetting_boundary_condition_ids ( std::vector< dealii::types::boundary_id > &&  wetting_bc_ids)
finalvirtual

Sets the boundary IDs where wetting boundary conditions should be applied.

This function forwards the provided list of boundary IDs to the reinitialization operation, indicating which boundaries are subject to wetting conditions.

Parameters
[in]wetting_bc_ids_inA list of boundary IDs where wetting conditions apply.

Reimplemented from MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.

◆ solve()

template<int dim, typename number >
void MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::solve ( )
overridevirtual

Member Data Documentation

◆ delta_psi_extrapolated

template<int dim, typename number >
VectorType MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::delta_psi_extrapolated
private

◆ ls_dof_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::ls_dof_idx
private

◆ ls_n_subdivisions

template<int dim, typename number >
const int MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::ls_n_subdivisions
private

◆ max_change_level_set

template<int dim, typename number >
number MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::max_change_level_set = std::numeric_limits<number>::max()
private

◆ normal_dof_indices_per_block

template<int dim, typename number >
const std::array<unsigned int, dim> MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::normal_dof_indices_per_block
private

◆ normal_no_bc_dof_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::normal_no_bc_dof_idx
private

◆ normal_vector_operation

template<int dim, typename number >
std::shared_ptr<NormalVectorOperationBase<dim, number> > MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::normal_vector_operation
private

◆ preconditioner

template<int dim, typename number >
Preconditioner<dim, VectorType, number> MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::preconditioner
private

◆ predictor

template<int dim, typename number >
std::unique_ptr<Predictor<VectorType, number> > MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::predictor
private

◆ reinit_data

template<int dim, typename number >
const ReinitializationData<number> MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::reinit_data
private

◆ reinit_dof_idx

template<int dim, typename number >
unsigned int MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::reinit_dof_idx
mutableprivate

◆ reinit_operator

template<int dim, typename number >
std::unique_ptr<OlssonOperator<dim, number> > MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::reinit_operator
private

◆ reinit_quad_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::reinit_quad_idx
private

◆ rhs

template<int dim, typename number >
VectorType MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::rhs
private

◆ scratch_data

template<int dim, typename number >
const ScratchData<dim, dim, number>& MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::scratch_data
private

◆ solution_history

template<int dim, typename number >
TimeIntegration::SolutionHistory<VectorType> MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::solution_history
private

◆ solution_level_set

template<int dim, typename number >
VectorType MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::solution_level_set
private

◆ time_iterator

template<int dim, typename number >
const TimeIntegration::TimeIterator<number>& MeltPoolDG::LevelSet::ReinitializationHyperbolicCGOperation< dim, number >::time_iterator
private

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