CurvatureOperation< dim, number > Class Template Reference

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

#include <curvature_operation.hpp>

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

Public Member Functions

 CurvatureOperation (const ScratchData< dim, dim, number > &scratch_data_in, const CurvatureData< number > &curvature_data, const NormalVectorData< number > &normal_vec_data, const VectorType &solution_level_set, const unsigned int curv_dof_idx_in, const unsigned int curv_quad_idx_in, const std::array< unsigned int, dim > &normal_dof_indices_per_block_in, const unsigned int normal_no_bc_dof_idx_in, const unsigned int ls_dof_idx_in)
 
void solve () override
 
void update_normal_vector () override
 
const dealii::LinearAlgebra::distributed::Vector< number > & get_curvature () const override
 
dealii::LinearAlgebra::distributed::Vector< number > & get_curvature () override
 
const dealii::LinearAlgebra::distributed::BlockVector< number > & get_normal_vector () const override
 
dealii::LinearAlgebra::distributed::BlockVector< number > & get_normal_vector () override
 
void reinit () override
 
void attach_vectors (std::vector< dealii::LinearAlgebra::distributed::Vector< number > * > &vectors) final
 

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 (const VectorType &solution_level_set)
 

Private Attributes

const ScratchData< dim, dim, number > & scratch_data
 
const CurvatureData< number > curvature_data
 
const VectorTypesolution_level_set
 
const unsigned int curv_dof_idx
 
const unsigned int curv_quad_idx
 
const unsigned int normal_dof_idx
 
const unsigned int ls_dof_idx
 
LevelSet::NormalVectorOperation< dim, number > normal_vector_operation
 
TimeIntegration::SolutionHistory< VectorTypesolution_history
 
std::unique_ptr< Predictor< VectorType, number > > predictor
 
std::shared_ptr< CurvatureOperator< dim, number > > curvature_operator
 
VectorType solution_curvature_predictor
 
VectorType rhs
 
Preconditioner< dim, VectorType, number > preconditioner
 

Member Typedef Documentation

◆ BlockVectorType

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

◆ SparseMatrixType

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

◆ VectorType

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

Constructor & Destructor Documentation

◆ CurvatureOperation()

template<int dim, typename number >
MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::CurvatureOperation ( const ScratchData< dim, dim, number > &  scratch_data_in,
const CurvatureData< number > &  curvature_data,
const NormalVectorData< number > &  normal_vec_data,
const VectorType solution_level_set,
const unsigned int  curv_dof_idx_in,
const unsigned int  curv_quad_idx_in,
const std::array< unsigned int, dim > &  normal_dof_indices_per_block_in,
const unsigned int  normal_no_bc_dof_idx_in,
const unsigned int  ls_dof_idx_in 
)

Member Function Documentation

◆ attach_vectors()

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

◆ create_operator()

template<int dim, typename number >
void MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::create_operator ( const VectorType solution_level_set)
private

◆ get_curvature() [1/2]

template<int dim, typename number >
const LinearAlgebra::distributed::Vector< number > & MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::get_curvature ( ) const
overridevirtual

◆ get_curvature() [2/2]

template<int dim, typename number >
LinearAlgebra::distributed::Vector< number > & MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::get_curvature ( )
overridevirtual

◆ get_normal_vector() [1/2]

template<int dim, typename number >
const LinearAlgebra::distributed::BlockVector< number > & MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::get_normal_vector ( ) const
overridevirtual

◆ get_normal_vector() [2/2]

template<int dim, typename number >
LinearAlgebra::distributed::BlockVector< number > & MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::get_normal_vector ( )
overridevirtual

◆ reinit()

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

◆ solve()

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

◆ update_normal_vector()

template<int dim, typename number >
void MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::update_normal_vector ( )
overridevirtual

Member Data Documentation

◆ curv_dof_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::curv_dof_idx
private

◆ curv_quad_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::curv_quad_idx
private

◆ curvature_data

template<int dim, typename number >
const CurvatureData<number> MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::curvature_data
private

◆ curvature_operator

template<int dim, typename number >
std::shared_ptr<CurvatureOperator<dim, number> > MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::curvature_operator
private

◆ ls_dof_idx

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

◆ normal_dof_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::normal_dof_idx
private

◆ normal_vector_operation

template<int dim, typename number >
LevelSet::NormalVectorOperation<dim, number> MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::normal_vector_operation
private

◆ preconditioner

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

◆ predictor

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

◆ rhs

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

◆ scratch_data

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

◆ solution_curvature_predictor

template<int dim, typename number >
VectorType MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::solution_curvature_predictor
private

◆ solution_history

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

◆ solution_level_set

template<int dim, typename number >
const VectorType& MeltPoolDG::LevelSet::CurvatureOperation< dim, number >::solution_level_set
private

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