VectorTools Namespace Reference

Developer Documentation: MeltPoolDG::VectorTools Namespace Reference
Developer Documentation
MeltPoolDG::VectorTools Namespace Reference

Functions

template<int dim, int spacedim, typename number >
void convert_fe_system_vector_to_block_vector (const dealii::LinearAlgebra::distributed::Vector< number > &in, const dealii::DoFHandler< dim, spacedim > &dof_handler_fe_system, dealii::LinearAlgebra::distributed::BlockVector< number > &out, const dealii::DoFHandler< dim, spacedim > &dof_handler)
 
template<int dim, int n_components, typename number >
void project_function_to_grid_points (dealii::LinearAlgebra::distributed::Vector< number > &out, const dealii::Function< dim > &function, const dealii::MatrixFree< dim, number > &matrix_free, const unsigned int dof_idx=0, const unsigned int quad_idx=0)
 
template<int dim, int spacedim, typename number >
void convert_block_vector_to_fe_system_vector (const dealii::LinearAlgebra::distributed::BlockVector< number > &in, const dealii::DoFHandler< dim, spacedim > &dof_handler, dealii::LinearAlgebra::distributed::Vector< number > &out, const dealii::DoFHandler< dim, spacedim > &dof_handler_fe_system)
 
template<int dim, typename number , int n_components = dim>
dealii::Vector< number > convert_matrix_free_cell_aligned_vector_to_vector (const MatrixFreeContext< dim, number > &mf_context, const dealii::AlignedVector< dealii::VectorizedArray< number > > &cell_aligned_vector, const dealii::Triangulation< dim > &tria)
 
template<typename... T>
void update_ghost_values (const T &...args)
 
template<typename... T>
void zero_out_ghost_values (const T &...args)
 
template<int dim, typename number >
dealii::Tensor< 1, dim, number > to_vector (const dealii::Tensor< 1, dim, number > &in)
 
template<int dim, typename number >
dealii::Tensor< 1, dim, number > to_vector (const number &in)
 
template<int dim, typename number , int n_components = dim>
dealii::Tensor< 1, n_components, dealii::VectorizedArray< number > > evaluate_function_at_vectorized_points (const dealii::Function< dim > &func, const dealii::Point< dim, dealii::VectorizedArray< number > > &points)
 
template<int dim, typename number >
dealii::VectorizedArray< number > evaluate_function_at_vectorized_points (const dealii::Function< dim > &function, const dealii::Point< dim, dealii::VectorizedArray< number > > &p_vectorized, const unsigned int component)
 
template<int dim, typename number , typename VectorType >
number compute_global_error_norm (const VectorType &solution, const dealii::Triangulation< dim > &triangulation, const dealii::Mapping< dim > &mapping, const dealii::DoFHandler< dim > &dof_handler, const dealii::Quadrature< dim > &quadrature, const dealii::VectorTools::NormType norm_type, const dealii::Function< dim, number > &reference_solution, const dealii::Function< dim, number > *weight=nullptr)
 
template<int dim, typename number , typename VectorType >
number compute_norm (const VectorType &solution, const dealii::Triangulation< dim > &triangulation, const dealii::Mapping< dim > &mapping, const dealii::DoFHandler< dim > &dof_handler, const dealii::Quadrature< dim > &quadrature, const dealii::VectorTools::NormType norm_type)
 
template<int dim, typename number , typename VectorType >
number compute_norm (const VectorType &solution, const ScratchData< dim, dim, number > &scratch_data, const unsigned int dof_idx, const unsigned int quad_idx, const dealii::VectorTools::NormType norm_type=dealii::VectorTools::L2_norm)
 
template<int n_components, int dim, typename VectorType >
void project_vector (const dealii::Mapping< dim > &mapping, const dealii::DoFHandler< dim > &dof, const dealii::AffineConstraints< typename VectorType::value_type > &constraints, const dealii::Quadrature< dim > &quadrature, const VectorType &vec_in, VectorType &vec_out)
 
template<int dim, int n_components, typename T , typename VectorType , typename number >
void fill_dof_vector_from_cell_operation (VectorType &vec, const dealii::MatrixFree< dim, number, dealii::VectorizedArray< number > > &matrix_free, unsigned int dof_idx, unsigned int quad_idx, const T &cell_operation)
 
template<typename number >
number max_element (const dealii::LinearAlgebra::distributed::Vector< number > &vec, const MPI_Comm &mpi_comm)
 
template<typename number >
number min_element (const dealii::LinearAlgebra::distributed::Vector< number > &vec, const MPI_Comm &mpi_comm)
 
template void convert_fe_system_vector_to_block_vector (const dealii::LinearAlgebra::distributed::Vector< double > &, const dealii::DoFHandler< 1, 1 > &, dealii::LinearAlgebra::distributed::BlockVector< double > &, const dealii::DoFHandler< 1, 1 > &)
 
template void convert_fe_system_vector_to_block_vector (const dealii::LinearAlgebra::distributed::Vector< double > &, const dealii::DoFHandler< 2, 2 > &, dealii::LinearAlgebra::distributed::BlockVector< double > &, const dealii::DoFHandler< 2, 2 > &)
 
template void convert_fe_system_vector_to_block_vector (const dealii::LinearAlgebra::distributed::Vector< double > &, const dealii::DoFHandler< 3, 3 > &, dealii::LinearAlgebra::distributed::BlockVector< double > &, const dealii::DoFHandler< 3, 3 > &)
 
template void project_function_to_grid_points< 2, 2, double > (dealii::LinearAlgebra::distributed::Vector< double > &, const dealii::Function< 2 > &, const dealii::MatrixFree< 2, double > &, const unsigned int, const unsigned int)
 
template void convert_block_vector_to_fe_system_vector (const dealii::LinearAlgebra::distributed::BlockVector< double > &, const dealii::DoFHandler< 1, 1 > &, dealii::LinearAlgebra::distributed::Vector< double > &, const dealii::DoFHandler< 1, 1 > &)
 
template void convert_block_vector_to_fe_system_vector (const dealii::LinearAlgebra::distributed::BlockVector< double > &, const dealii::DoFHandler< 2, 2 > &, dealii::LinearAlgebra::distributed::Vector< double > &, const dealii::DoFHandler< 2, 2 > &)
 
template void convert_block_vector_to_fe_system_vector (const dealii::LinearAlgebra::distributed::BlockVector< double > &, const dealii::DoFHandler< 3, 3 > &, dealii::LinearAlgebra::distributed::Vector< double > &, const dealii::DoFHandler< 3, 3 > &)
 
template double compute_global_error_norm (const dealii::LinearAlgebra::distributed::Vector< double > &solution, const dealii::Triangulation< 1 > &triangulation, const dealii::Mapping< 1 > &mapping, const dealii::DoFHandler< 1 > &dof_handler, const dealii::Quadrature< 1 > &quadrature, const dealii::VectorTools::NormType norm_type, const dealii::Function< 1, double > &reference_solution, const dealii::Function< 1, double > *weight)
 
template double compute_global_error_norm (const dealii::LinearAlgebra::distributed::Vector< double > &solution, const dealii::Triangulation< 2 > &triangulation, const dealii::Mapping< 2 > &mapping, const dealii::DoFHandler< 2 > &dof_handler, const dealii::Quadrature< 2 > &quadrature, const dealii::VectorTools::NormType norm_type, const dealii::Function< 2, double > &reference_solution, const dealii::Function< 2, double > *weight)
 
template double compute_global_error_norm (const dealii::LinearAlgebra::distributed::Vector< double > &solution, const dealii::Triangulation< 3 > &triangulation, const dealii::Mapping< 3 > &mapping, const dealii::DoFHandler< 3 > &dof_handler, const dealii::Quadrature< 3 > &quadrature, const dealii::VectorTools::NormType norm_type, const dealii::Function< 3, double > &reference_solution, const dealii::Function< 3, double > *weight)
 
template double compute_norm (const dealii::LinearAlgebra::distributed::Vector< double > &, const dealii::Triangulation< 1 > &, const dealii::Mapping< 1 > &, const dealii::DoFHandler< 1 > &, const dealii::Quadrature< 1 > &, const dealii::VectorTools::NormType)
 
template double compute_norm (const dealii::LinearAlgebra::distributed::Vector< double > &, const dealii::Triangulation< 2 > &, const dealii::Mapping< 2 > &, const dealii::DoFHandler< 2 > &, const dealii::Quadrature< 2 > &, const dealii::VectorTools::NormType)
 
template double compute_norm (const dealii::LinearAlgebra::distributed::Vector< double > &, const dealii::Triangulation< 3 > &, const dealii::Mapping< 3 > &, const dealii::DoFHandler< 3 > &, const dealii::Quadrature< 3 > &, const dealii::VectorTools::NormType)
 
template double compute_norm (const dealii::LinearAlgebra::distributed::Vector< double > &, const ScratchData< 1, 1, double > &, const unsigned int, const unsigned int, const dealii::VectorTools::NormType)
 
template double compute_norm (const dealii::LinearAlgebra::distributed::Vector< double > &, const ScratchData< 2, 2, double > &, const unsigned int, const unsigned int, const dealii::VectorTools::NormType)
 
template double compute_norm (const dealii::LinearAlgebra::distributed::Vector< double > &, const ScratchData< 3, 3, double > &, const unsigned int, const unsigned int, const dealii::VectorTools::NormType)
 
template double max_element (const dealii::LinearAlgebra::distributed::Vector< double > &, const MPI_Comm &)
 
template double min_element (const dealii::LinearAlgebra::distributed::Vector< double > &, const MPI_Comm &)
 

Function Documentation

◆ compute_global_error_norm() [1/4]

template double MeltPoolDG::VectorTools::compute_global_error_norm ( const dealii::LinearAlgebra::distributed::Vector< double > &  solution,
const dealii::Triangulation< 1 > &  triangulation,
const dealii::Mapping< 1 > &  mapping,
const dealii::DoFHandler< 1 > &  dof_handler,
const dealii::Quadrature< 1 > &  quadrature,
const dealii::VectorTools::NormType  norm_type,
const dealii::Function< 1, double > &  reference_solution,
const dealii::Function< 1, double > *  weight 
)

◆ compute_global_error_norm() [2/4]

template double MeltPoolDG::VectorTools::compute_global_error_norm ( const dealii::LinearAlgebra::distributed::Vector< double > &  solution,
const dealii::Triangulation< 2 > &  triangulation,
const dealii::Mapping< 2 > &  mapping,
const dealii::DoFHandler< 2 > &  dof_handler,
const dealii::Quadrature< 2 > &  quadrature,
const dealii::VectorTools::NormType  norm_type,
const dealii::Function< 2, double > &  reference_solution,
const dealii::Function< 2, double > *  weight 
)

◆ compute_global_error_norm() [3/4]

template double MeltPoolDG::VectorTools::compute_global_error_norm ( const dealii::LinearAlgebra::distributed::Vector< double > &  solution,
const dealii::Triangulation< 3 > &  triangulation,
const dealii::Mapping< 3 > &  mapping,
const dealii::DoFHandler< 3 > &  dof_handler,
const dealii::Quadrature< 3 > &  quadrature,
const dealii::VectorTools::NormType  norm_type,
const dealii::Function< 3, double > &  reference_solution,
const dealii::Function< 3, double > *  weight 
)

◆ compute_global_error_norm() [4/4]

template<int dim, typename number , typename VectorType >
number MeltPoolDG::VectorTools::compute_global_error_norm ( const VectorType &  solution,
const dealii::Triangulation< dim > &  triangulation,
const dealii::Mapping< dim > &  mapping,
const dealii::DoFHandler< dim > &  dof_handler,
const dealii::Quadrature< dim > &  quadrature,
const dealii::VectorTools::NormType  norm_type,
const dealii::Function< dim, number > &  reference_solution,
const dealii::Function< dim, number > *  weight = nullptr 
)

◆ compute_norm() [1/8]

template double MeltPoolDG::VectorTools::compute_norm ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const dealii::Triangulation< 1 > &  ,
const dealii::Mapping< 1 > &  ,
const dealii::DoFHandler< 1 > &  ,
const dealii::Quadrature< 1 > &  ,
const dealii::VectorTools::NormType   
)

◆ compute_norm() [2/8]

template double MeltPoolDG::VectorTools::compute_norm ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const dealii::Triangulation< 2 > &  ,
const dealii::Mapping< 2 > &  ,
const dealii::DoFHandler< 2 > &  ,
const dealii::Quadrature< 2 > &  ,
const dealii::VectorTools::NormType   
)

◆ compute_norm() [3/8]

template double MeltPoolDG::VectorTools::compute_norm ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const dealii::Triangulation< 3 > &  ,
const dealii::Mapping< 3 > &  ,
const dealii::DoFHandler< 3 > &  ,
const dealii::Quadrature< 3 > &  ,
const dealii::VectorTools::NormType   
)

◆ compute_norm() [4/8]

template double MeltPoolDG::VectorTools::compute_norm ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const ScratchData< 1, 1, double > &  ,
const unsigned int  ,
const unsigned int  ,
const dealii::VectorTools::NormType   
)

◆ compute_norm() [5/8]

template double MeltPoolDG::VectorTools::compute_norm ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const ScratchData< 2, 2, double > &  ,
const unsigned int  ,
const unsigned int  ,
const dealii::VectorTools::NormType   
)

◆ compute_norm() [6/8]

template double MeltPoolDG::VectorTools::compute_norm ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const ScratchData< 3, 3, double > &  ,
const unsigned int  ,
const unsigned int  ,
const dealii::VectorTools::NormType   
)

◆ compute_norm() [7/8]

template<int dim, typename number , typename VectorType >
number MeltPoolDG::VectorTools::compute_norm ( const VectorType &  solution,
const dealii::Triangulation< dim > &  triangulation,
const dealii::Mapping< dim > &  mapping,
const dealii::DoFHandler< dim > &  dof_handler,
const dealii::Quadrature< dim > &  quadrature,
const dealii::VectorTools::NormType  norm_type 
)

◆ compute_norm() [8/8]

template<int dim, typename number , typename VectorType >
number MeltPoolDG::VectorTools::compute_norm ( const VectorType &  solution,
const ScratchData< dim, dim, number > &  scratch_data,
const unsigned int  dof_idx,
const unsigned int  quad_idx,
const dealii::VectorTools::NormType  norm_type = dealii::VectorTools::L2_norm 
)

◆ convert_block_vector_to_fe_system_vector() [1/4]

template void MeltPoolDG::VectorTools::convert_block_vector_to_fe_system_vector ( const dealii::LinearAlgebra::distributed::BlockVector< double > &  ,
const dealii::DoFHandler< 1, 1 > &  ,
dealii::LinearAlgebra::distributed::Vector< double > &  ,
const dealii::DoFHandler< 1, 1 > &   
)

◆ convert_block_vector_to_fe_system_vector() [2/4]

template void MeltPoolDG::VectorTools::convert_block_vector_to_fe_system_vector ( const dealii::LinearAlgebra::distributed::BlockVector< double > &  ,
const dealii::DoFHandler< 2, 2 > &  ,
dealii::LinearAlgebra::distributed::Vector< double > &  ,
const dealii::DoFHandler< 2, 2 > &   
)

◆ convert_block_vector_to_fe_system_vector() [3/4]

template void MeltPoolDG::VectorTools::convert_block_vector_to_fe_system_vector ( const dealii::LinearAlgebra::distributed::BlockVector< double > &  ,
const dealii::DoFHandler< 3, 3 > &  ,
dealii::LinearAlgebra::distributed::Vector< double > &  ,
const dealii::DoFHandler< 3, 3 > &   
)

◆ convert_block_vector_to_fe_system_vector() [4/4]

template<int dim, int spacedim, typename number >
void MeltPoolDG::VectorTools::convert_block_vector_to_fe_system_vector ( const dealii::LinearAlgebra::distributed::BlockVector< number > &  in,
const dealii::DoFHandler< dim, spacedim > &  dof_handler,
dealii::LinearAlgebra::distributed::Vector< number > &  out,
const dealii::DoFHandler< dim, spacedim > &  dof_handler_fe_system 
)

◆ convert_fe_system_vector_to_block_vector() [1/4]

template void MeltPoolDG::VectorTools::convert_fe_system_vector_to_block_vector ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const dealii::DoFHandler< 1, 1 > &  ,
dealii::LinearAlgebra::distributed::BlockVector< double > &  ,
const dealii::DoFHandler< 1, 1 > &   
)

◆ convert_fe_system_vector_to_block_vector() [2/4]

template void MeltPoolDG::VectorTools::convert_fe_system_vector_to_block_vector ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const dealii::DoFHandler< 2, 2 > &  ,
dealii::LinearAlgebra::distributed::BlockVector< double > &  ,
const dealii::DoFHandler< 2, 2 > &   
)

◆ convert_fe_system_vector_to_block_vector() [3/4]

template void MeltPoolDG::VectorTools::convert_fe_system_vector_to_block_vector ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const dealii::DoFHandler< 3, 3 > &  ,
dealii::LinearAlgebra::distributed::BlockVector< double > &  ,
const dealii::DoFHandler< 3, 3 > &   
)

◆ convert_fe_system_vector_to_block_vector() [4/4]

template<int dim, int spacedim, typename number >
void MeltPoolDG::VectorTools::convert_fe_system_vector_to_block_vector ( const dealii::LinearAlgebra::distributed::Vector< number > &  in,
const dealii::DoFHandler< dim, spacedim > &  dof_handler_fe_system,
dealii::LinearAlgebra::distributed::BlockVector< number > &  out,
const dealii::DoFHandler< dim, spacedim > &  dof_handler 
)

◆ convert_matrix_free_cell_aligned_vector_to_vector()

template<int dim, typename number , int n_components = dim>
dealii::Vector< number > MeltPoolDG::VectorTools::convert_matrix_free_cell_aligned_vector_to_vector ( const MatrixFreeContext< dim, number > &  mf_context,
const dealii::AlignedVector< dealii::VectorizedArray< number > > &  cell_aligned_vector,
const dealii::Triangulation< dim > &  tria 
)

Converts a dealii::AlignedVector<dealii::VectorizedArray>—where each entry of a SIMD vector represents a value for a specific cell in the mesh—into a dealii::Vector<number>.

In the resulting vector, each value corresponds to one (local) active cell on the triangulation. The index of a value in the output vector matches the index of the corresponding active cell.

In a nutshell, this function effectively de-vectorizes cell-wise SIMD data into a standard cell-indexed vector representation.

Parameters
mfMatrix-free object used to compute the aligned vector.
cell_aligned_vectorInput vector containing SIMD-packed values per cell.
triaTriangulation associated with the mesh cells.
dof_idxDof index relevant to the matrix-free object.
quad_idxQuadrature index relevant to the matrix-free object.

◆ evaluate_function_at_vectorized_points() [1/2]

template<int dim, typename number , int n_components = dim>
dealii::Tensor< 1, n_components, dealii::VectorizedArray< number > > MeltPoolDG::VectorTools::evaluate_function_at_vectorized_points ( const dealii::Function< dim > &  func,
const dealii::Point< dim, dealii::VectorizedArray< number > > &  points 
)

◆ evaluate_function_at_vectorized_points() [2/2]

template<int dim, typename number >
dealii::VectorizedArray< number > MeltPoolDG::VectorTools::evaluate_function_at_vectorized_points ( const dealii::Function< dim > &  function,
const dealii::Point< dim, dealii::VectorizedArray< number > > &  p_vectorized,
const unsigned int  component 
)

◆ fill_dof_vector_from_cell_operation()

template<int dim, int n_components, typename T , typename VectorType , typename number >
void MeltPoolDG::VectorTools::fill_dof_vector_from_cell_operation ( VectorType &  vec,
const dealii::MatrixFree< dim, number, dealii::VectorizedArray< number > > &  matrix_free,
unsigned int  dof_idx,
unsigned int  quad_idx,
const T &  cell_operation 
)

For a given matrix_free object, execute scalar- or vector-valued cell_operation on each quadrature point defined by quad_idx and fill them into a DoF-vector vec defined by dof_idx.

◆ max_element() [1/2]

template double MeltPoolDG::VectorTools::max_element ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const MPI_Comm &   
)

◆ max_element() [2/2]

template<typename number >
number MeltPoolDG::VectorTools::max_element ( const dealii::LinearAlgebra::distributed::Vector< number > &  vec,
const MPI_Comm &  mpi_comm 
)

Calculate the overall maximum element of a distributed vector vec.

◆ min_element() [1/2]

template double MeltPoolDG::VectorTools::min_element ( const dealii::LinearAlgebra::distributed::Vector< double > &  ,
const MPI_Comm &   
)

◆ min_element() [2/2]

template<typename number >
number MeltPoolDG::VectorTools::min_element ( const dealii::LinearAlgebra::distributed::Vector< number > &  vec,
const MPI_Comm &  mpi_comm 
)

Calculate the overall minimum element of a distributed vector vec.

◆ project_function_to_grid_points()

template<int dim, int n_components, typename number >
void MeltPoolDG::VectorTools::project_function_to_grid_points ( dealii::LinearAlgebra::distributed::Vector< number > &  out,
const dealii::Function< dim > &  function,
const dealii::MatrixFree< dim, number > &  matrix_free,
const unsigned int  dof_idx = 0,
const unsigned int  quad_idx = 0 
)

◆ project_function_to_grid_points< 2, 2, double >()

template void MeltPoolDG::VectorTools::project_function_to_grid_points< 2, 2, double > ( dealii::LinearAlgebra::distributed::Vector< double > &  ,
const dealii::Function< 2 > &  ,
const dealii::MatrixFree< 2, double > &  ,
const unsigned int  ,
const unsigned int   
)

◆ project_vector()

template<int n_components, int dim, typename VectorType >
void MeltPoolDG::VectorTools::project_vector ( const dealii::Mapping< dim > &  mapping,
const dealii::DoFHandler< dim > &  dof,
const dealii::AffineConstraints< typename VectorType::value_type > &  constraints,
const dealii::Quadrature< dim > &  quadrature,
const VectorType &  vec_in,
VectorType &  vec_out 
)

◆ to_vector() [1/2]

template<int dim, typename number >
dealii::Tensor< 1, dim, number > MeltPoolDG::VectorTools::to_vector ( const dealii::Tensor< 1, dim, number > &  in)

◆ to_vector() [2/2]

template<int dim, typename number >
dealii::Tensor< 1, dim, number > MeltPoolDG::VectorTools::to_vector ( const number &  in)

◆ update_ghost_values()

template<typename... T>
void MeltPoolDG::VectorTools::update_ghost_values ( const T &...  args)

◆ zero_out_ghost_values()

template<typename... T>
void MeltPoolDG::VectorTools::zero_out_ghost_values ( const T &...  args)