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, const FFunctor &f_in, const GFunctor *g_in, const 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... | |
void | send_and_insert_dof_values (std::unordered_map< dof_id_type, std::pair< FValue, processor_id_type >> &ids_to_push, ProjectionAction &action) const |
Public Attributes | |
std::unordered_map< dof_id_type, FValue > | ids_to_save |
Private Attributes | |
const System & | system |
const FFunctor & | master_f |
const GFunctor * | master_g |
bool | g_was_copied |
bool | map_was_created |
const 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 80 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 327 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 208 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 211 of file generic_projector.h.
typedef std::set<unsigned int> libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::var_set |
Definition at line 149 of file generic_projector.h.
|
inline |
Definition at line 96 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 120 of file generic_projector.h.
|
inline |
Definition at line 130 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 951 of file generic_projector.h.
References libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::edges, libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::interiors, 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< FValue, processor_id_type >> & | ids_to_push, |
ProjectionAction & | action | ||
) | const |
Definition at line 2405 of file generic_projector.h.
References libMesh::convert_from_receive(), libMesh::convert_to_send(), data, libMesh::DofObject::invalid_processor_id, and libMesh::libmesh_assert().
|
private |
Definition at line 93 of file generic_projector.h.
|
private |
Definition at line 89 of file generic_projector.h.
Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::~GenericProjector().
std::unordered_map<dof_id_type, FValue> libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ids_to_save |
Definition at line 145 of file generic_projector.h.
|
private |
|
private |
Definition at line 90 of file generic_projector.h.
|
private |
Definition at line 87 of file generic_projector.h.
|
private |
|
private |
|
private |
Definition at line 83 of file generic_projector.h.
Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::GenericProjector().
|
private |
Definition at line 91 of file generic_projector.h.