NormalVectorDGOperation< dim, number > Class Template Reference

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

#include <normal_vector_DG_operation.hpp>

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

Public Member Functions

 NormalVectorDGOperation (const ScratchData< dim, dim, number > &scratch_data_in, const unsigned int normal_dof_idx_in, const unsigned int normal_quad_idx_in, const VectorType &solution_level_set_in, const NormalVectorData< number > &normal_vector_data)
 
void reinit () override
 
void solve () override
 
const BlockVectorTypeget_solution_normal_vector () const override
 
BlockVectorTypeget_solution_normal_vector () override
 
void attach_vectors (std::vector< dealii::LinearAlgebra::distributed::Vector< number > * > &vectors) override
 
template<uint direction>
void right_hand_side_domain (const MatrixFree< dim, number > &data, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &cell_range) const
 
- Public Member Functions inherited from MeltPoolDG::LevelSet::NormalVectorOperationBase< dim, number >
virtual ~NormalVectorOperationBase ()=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

template<uint direction>
void right_hand_side_domain (const dealii::MatrixFree< dim, number > &data, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &cell_range) const
 

Private Attributes

const ScratchData< dim, dim, number > & scratch_data
 
const VectorTypesolution_level_set
 
const NormalVectorData< number > normal_vector_data
 
TimeIntegration::SolutionHistory< BlockVectorTypesolution_history
 
const unsigned int normal_dof_idx
 
const unsigned int normal_quad_idx
 
const HelmholtzDGOperator< dim, number > helmholtz_operator
 

Detailed Description

template<int dim, typename number>
class MeltPoolDG::LevelSet::NormalVectorDGOperation< dim, number >

!!!! the normal vector field is not normalized to length one, it actually represents the gradient of the level set function !!!!

Member Typedef Documentation

◆ BlockVectorType

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

◆ SparseMatrixType

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

◆ VectorType

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

Constructor & Destructor Documentation

◆ NormalVectorDGOperation()

template<int dim, typename number >
MeltPoolDG::LevelSet::NormalVectorDGOperation< dim, number >::NormalVectorDGOperation ( const ScratchData< dim, dim, number > &  scratch_data_in,
const unsigned int  normal_dof_idx_in,
const unsigned int  normal_quad_idx_in,
const VectorType solution_level_set_in,
const NormalVectorData< number > &  normal_vector_data 
)

Member Function Documentation

◆ attach_vectors()

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

◆ get_solution_normal_vector() [1/2]

template<int dim, typename number >
const NormalVectorDGOperation< dim, number >::BlockVectorType & MeltPoolDG::LevelSet::NormalVectorDGOperation< dim, number >::get_solution_normal_vector ( ) const
overridevirtual

◆ get_solution_normal_vector() [2/2]

template<int dim, typename number >
NormalVectorDGOperation< dim, number >::BlockVectorType & MeltPoolDG::LevelSet::NormalVectorDGOperation< dim, number >::get_solution_normal_vector ( )
overridevirtual

◆ reinit()

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

◆ right_hand_side_domain() [1/2]

template<int dim, typename number >
template<uint direction>
void MeltPoolDG::LevelSet::NormalVectorDGOperation< dim, number >::right_hand_side_domain ( const dealii::MatrixFree< dim, number > &  data,
VectorType dst,
const VectorType src,
const std::pair< unsigned int, unsigned int > &  cell_range 
) const
private

Applies the domain integral of the right hand side

Parameters
datathe matrix free object
dstdestination where the result is stored
srcsource vector
cell_range

◆ right_hand_side_domain() [2/2]

template<int dim, typename number >
template<uint direction>
void MeltPoolDG::LevelSet::NormalVectorDGOperation< dim, number >::right_hand_side_domain ( const MatrixFree< dim, number > &  data,
VectorType dst,
const VectorType src,
const std::pair< unsigned int, unsigned int > &  cell_range 
) const

◆ solve()

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

The right hand side is filled for each dimension individually. Afterwards the system is is solved for each component of the normal vector

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

Member Data Documentation

◆ helmholtz_operator

template<int dim, typename number >
const HelmholtzDGOperator<dim, number> MeltPoolDG::LevelSet::NormalVectorDGOperation< dim, number >::helmholtz_operator
private

◆ normal_dof_idx

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

◆ normal_quad_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::LevelSet::NormalVectorDGOperation< dim, number >::normal_quad_idx
private

◆ normal_vector_data

template<int dim, typename number >
const NormalVectorData<number> MeltPoolDG::LevelSet::NormalVectorDGOperation< dim, number >::normal_vector_data
private

◆ scratch_data

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

◆ solution_history

template<int dim, typename number >
TimeIntegration::SolutionHistory<BlockVectorType> MeltPoolDG::LevelSet::NormalVectorDGOperation< dim, number >::solution_history
private

◆ solution_level_set

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

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