ASPECT
Classes | Functions
dealii::VectorTools::internal Namespace Reference

Classes

struct  VectorDoFTuple
 

Functions

template<int dim>
std::ostream & operator<< (std::ostream &out, const VectorDoFTuple< dim > &vdt)
 
template<int dim>
void add_constraint (const VectorDoFTuple< dim > &dof_indices, const Tensor< 1, dim > &constraining_vector, AffineConstraints< double > &constraints, const double inhomogeneity=0)
 
template<int dim>
void add_tangentiality_constraints (const VectorDoFTuple< dim > &dof_indices, const Tensor< 1, dim > &tangent_vector, AffineConstraints< double > &constraints, const Vector< double > &b_values=Vector< double >(dim))
 
template<int dim, int spacedim>
void map_dofs_to_normal_vectors_and_normal_fluxes (const typename DoFHandler< dim, spacedim >::cell_iterator &cell, const unsigned int first_vector_component, const std::set< types::boundary_id > &boundary_ids, const std::map< types::boundary_id, const Function< spacedim > *> &function_map, hp::FEFaceValues< dim, spacedim > &x_fe_face_values, const unsigned int n_dofs, const IndexSet &refinement_edge_indices, const unsigned int level, std::multimap< internal::VectorDoFTuple< dim >, std::pair< Tensor< 1, dim >, typename DoFHandler< dim, spacedim >::cell_iterator >> &dof_to_normals_map, std::map< internal::VectorDoFTuple< dim >, Vector< double >> &dof_vector_to_b_values)
 
template<int dim, int spacedim>
void compute_nonzero_normal_flux_constraints_active_or_level (const DoFHandler< dim, spacedim > &dof_handler, const unsigned int first_vector_component, const std::set< types::boundary_id > &boundary_ids, const std::map< types::boundary_id, const Function< spacedim > *> &function_map, AffineConstraints< double > &constraints, const Mapping< dim, spacedim > &mapping, const IndexSet &refinement_edge_indices=IndexSet(), const unsigned int level=numbers::invalid_unsigned_int)
 

Function Documentation

§ operator<<()

template<int dim>
std::ostream& dealii::VectorTools::internal::operator<< ( std::ostream &  out,
const VectorDoFTuple< dim > &  vdt 
)

Definition at line 141 of file compat.h.

§ add_constraint()

template<int dim>
void dealii::VectorTools::internal::add_constraint ( const VectorDoFTuple< dim > &  dof_indices,
const Tensor< 1, dim > &  constraining_vector,
AffineConstraints< double > &  constraints,
const double  inhomogeneity = 0 
)

Add the constraint \(\vec n \cdot \vec u = inhom\) to the list of constraints.

Here, \(\vec u\) is represented by the set of given DoF indices, and \(\vec n\) by the vector specified as the second argument.

The function does not add constraints if a degree of freedom is already constrained in the constraints object.

Definition at line 162 of file compat.h.

References dealii::VectorTools::internal::VectorDoFTuple< dim >::dof_indices.

Referenced by compute_nonzero_normal_flux_constraints_active_or_level().

§ add_tangentiality_constraints()

template<int dim>
void dealii::VectorTools::internal::add_tangentiality_constraints ( const VectorDoFTuple< dim > &  dof_indices,
const Tensor< 1, dim > &  tangent_vector,
AffineConstraints< double > &  constraints,
const Vector< double > &  b_values = Vector<double>(dim) 
)

Add the constraint \((\vec u-\vec u_\Gamma) \| \vec t\) to the list of constraints. In 2d, this is a single constraint, in 3d these are two constraints.

Here, \(\vec u\) is represented by the set of given DoF indices, and \(\vec t\) by the vector specified as the second argument.

The function does not add constraints if a degree of freedom is already constrained in the constraints object.

Definition at line 375 of file compat.h.

References dealii::VectorTools::internal::VectorDoFTuple< dim >::dof_indices.

Referenced by compute_nonzero_normal_flux_constraints_active_or_level().

§ map_dofs_to_normal_vectors_and_normal_fluxes()

template<int dim, int spacedim>
void dealii::VectorTools::internal::map_dofs_to_normal_vectors_and_normal_fluxes ( const typename DoFHandler< dim, spacedim >::cell_iterator &  cell,
const unsigned int  first_vector_component,
const std::set< types::boundary_id > &  boundary_ids,
const std::map< types::boundary_id, const Function< spacedim > *> &  function_map,
hp::FEFaceValues< dim, spacedim > &  x_fe_face_values,
const unsigned int  n_dofs,
const IndexSet &  refinement_edge_indices,
const unsigned int  level,
std::multimap< internal::VectorDoFTuple< dim >, std::pair< Tensor< 1, dim >, typename DoFHandler< dim, spacedim >::cell_iterator >> &  dof_to_normals_map,
std::map< internal::VectorDoFTuple< dim >, Vector< double >> &  dof_vector_to_b_values 
)

Compute the mappings from vector degrees of freedom to normal vectors dof_to_normals_map and vector degrees of freedom to prescribed normal fluxes dof_vector_to_b_values.

Definition at line 435 of file compat.h.

References dealii::VectorTools::internal::VectorDoFTuple< dim >::dof_indices.

Referenced by compute_nonzero_normal_flux_constraints_active_or_level().

§ compute_nonzero_normal_flux_constraints_active_or_level()

template<int dim, int spacedim>
void dealii::VectorTools::internal::compute_nonzero_normal_flux_constraints_active_or_level ( const DoFHandler< dim, spacedim > &  dof_handler,
const unsigned int  first_vector_component,
const std::set< types::boundary_id > &  boundary_ids,
const std::map< types::boundary_id, const Function< spacedim > *> &  function_map,
AffineConstraints< double > &  constraints,
const Mapping< dim, spacedim > &  mapping,
const IndexSet &  refinement_edge_indices = IndexSet(),
const unsigned int  level = numbers::invalid_unsigned_int 
)

This is the internal function that computes the nonzero normal flux constraints on active cells if level is an invalid unsigned integer or level cells if the cell level is provided. It's called by compute_nonzero_normal_flux_constraints() and compute_nonzero_normal_flux_constraints_on_level() so as to have separate interfaces for the active and level cells.

Definition at line 616 of file compat.h.

References add_constraint(), add_tangentiality_constraints(), dealii::VectorTools::internal::VectorDoFTuple< dim >::dof_indices, and map_dofs_to_normal_vectors_and_normal_fluxes().

Referenced by dealii::VectorTools::compute_no_normal_flux_constraints_on_level().