libMesh
|
The GenericProjector class implements the core of other projection operations, using two input functors to read values to be projected and an output functor to set degrees of freedom in the result. More...
#include <generic_projector.h>
Classes | |
struct | ProjectEdges |
struct | ProjectInteriors |
struct | ProjectSides |
struct | ProjectVertices |
struct | SortAndCopy |
struct | SubFunctor |
struct | SubProjector |
Public Types | |
typedef std::set< unsigned int > | var_set |
typedef std::pair< const Node *, std::tuple< const Elem *, unsigned short, var_set > > | node_projection |
typedef StoredRange< std::vector< node_projection >::const_iterator, node_projection > | node_range |
typedef StoredRange< std::vector< const Elem * >::const_iterator, const Elem * > | interior_range |
Public Member Functions | |
GenericProjector (const System &system_in, FFunctor &f_in, GFunctor *g_in, ProjectionAction &act_in, const std::vector< unsigned int > &variables_in, std::unordered_map< dof_id_type, std::vector< dof_id_type >> *nodes_to_elem_in=nullptr) | |
GenericProjector (const GenericProjector &in) | |
~GenericProjector () | |
void | project (const ConstElemRange &range) |
Function definitions. More... | |
template<typename Value > | |
void | send_and_insert_dof_values (std::unordered_map< dof_id_type, std::pair< Value, processor_id_type >> &ids_to_push, ProjectionAction &action) const |
Public Attributes | |
std::unordered_map< dof_id_type, typename FFunctor::ValuePushType > | ids_to_save |
Private Attributes | |
const System & | system |
FFunctor & | master_f |
GFunctor * | master_g |
bool | g_was_copied |
bool | map_was_created |
ProjectionAction & | master_action |
const std::vector< unsigned int > & | variables |
std::unordered_map< dof_id_type, std::vector< dof_id_type > > * | nodes_to_elem |
bool | done_saving_ids |
The GenericProjector class implements the core of other projection operations, using two input functors to read values to be projected and an output functor to set degrees of freedom in the result.
This may be executed in parallel on multiple threads.
Definition at line 83 of file generic_projector.h.
typedef StoredRange<std::vector<const Elem *>::const_iterator, const Elem *> libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::interior_range |
Definition at line 354 of file generic_projector.h.
typedef std::pair<const Node *, std::tuple<const Elem *, unsigned short, var_set> > libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::node_projection |
Definition at line 234 of file generic_projector.h.
typedef StoredRange<std::vector<node_projection>::const_iterator, node_projection> libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::node_range |
Definition at line 237 of file generic_projector.h.
typedef std::set<unsigned int> libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::var_set |
Definition at line 152 of file generic_projector.h.
|
inline |
Definition at line 99 of file generic_projector.h.
References libMesh::MeshTools::build_nodes_to_elem_map(), libMesh::System::get_mesh(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::map_was_created, libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::nodes_to_elem, and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::system.
|
inline |
Definition at line 123 of file generic_projector.h.
|
inline |
Definition at line 133 of file generic_projector.h.
References libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::g_was_copied, libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::map_was_created, libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::master_g, and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::nodes_to_elem.
void libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::project | ( | const ConstElemRange & | range | ) |
Function definitions.
Definition at line 1201 of file generic_projector.h.
References libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::edges, libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::interiors, libMesh::libmesh_merge_move(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::new_ids_to_push, libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::new_ids_to_save, libMesh::Threads::parallel_reduce(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::sides, and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::vertices.
void libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values | ( | std::unordered_map< dof_id_type, std::pair< Value, processor_id_type >> & | ids_to_push, |
ProjectionAction & | action | ||
) | const |
Definition at line 2890 of file generic_projector.h.
References libMesh::ParallelObject::comm(), libMesh::convert_from_receive(), libMesh::convert_to_send(), libMesh::DofObject::invalid_processor_id, libMesh::libmesh_assert(), and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::system.
|
private |
Definition at line 96 of file generic_projector.h.
|
private |
Definition at line 92 of file generic_projector.h.
Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::~GenericProjector().
std::unordered_map<dof_id_type, typename FFunctor::ValuePushType> libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ids_to_save |
Definition at line 148 of file generic_projector.h.
Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubProjector::construct_projection().
|
private |
|
private |
Definition at line 93 of file generic_projector.h.
|
private |
Definition at line 90 of file generic_projector.h.
|
private |
|
private |
|
private |
Definition at line 86 of file generic_projector.h.
Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubProjector::construct_projection(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::GenericProjector(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectEdges::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectInteriors::operator()(), and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values().
|
private |
Definition at line 94 of file generic_projector.h.