The OldSolutionValue input functor class can be used with GenericProjector to read values from a solution on a just-refined-and-coarsened mesh.  
 More...
#include <generic_projector.h>
 | 
|   | OldSolutionValue (const libMesh::System &sys_in, const NumericVector< Number > &old_sol) | 
|   | 
|   | OldSolutionValue (const OldSolutionValue &in) | 
|   | 
| Output  | eval_at_node (const FEMContext &c, unsigned int i, unsigned int elem_dim, const Node &n, bool, Real=0.) | 
|   | 
| Output  | eval_at_point (const FEMContext &c, unsigned int i, const Point &p, Real=0.) | 
|   | 
| void  | eval_old_dofs (const Elem &elem, unsigned int node_num, unsigned int var_num, std::vector< dof_id_type > &indices, std::vector< Output > &values) | 
|   | 
| void  | eval_old_dofs (const Elem &elem, const FEType &fe_type, unsigned int sys_num, unsigned int var_num, std::vector< dof_id_type > &indices, std::vector< Output > &values) | 
|   | 
| template<>  | 
| Number  | eval_at_node (const FEMContext &c, unsigned int i, unsigned int, const Node &n, bool extra_hanging_dofs, Real) | 
|   | 
| template<>  | 
| Gradient  | eval_at_node (const FEMContext &c, unsigned int i, unsigned int elem_dim, const Node &n, bool extra_hanging_dofs, Real) | 
|   | 
| template<>  | 
| void  | get_shape_outputs (FEBase &fe) | 
|   | 
| template<>  | 
| void  | get_shape_outputs (FEBase &fe) | 
|   | 
| template<>  | 
| void  | get_shape_outputs (FEBase &fe) | 
|   | 
| template<>  | 
| void  | get_shape_outputs (FEBase &fe) | 
|   | 
| void  | init_context (FEMContext &c) | 
|   | 
| bool  | is_grid_projection () | 
|   | 
template<typename Output, void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
class libMesh::OldSolutionValue< Output, point_output >
The OldSolutionValue input functor class can be used with GenericProjector to read values from a solution on a just-refined-and-coarsened mesh. 
- Author
 - Roy H. Stogner 
 
- Date
 - 2016 
 
Definition at line 655 of file generic_projector.h.
 
◆ OldSolutionValue() [1/2]
template<typename Output, void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ OldSolutionValue() [2/2]
template<typename Output, void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ check_old_context() [1/2]
template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ check_old_context() [2/2]
template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
Definition at line 565 of file generic_projector.h.
  567     LOG_SCOPE (
"check_old_context(c,p)", 
"OldSolutionBase");
 
  568     const Elem & elem = c.get_elem();
 
  586             for (
auto & child : elem.child_ref_range())
 
  587               if (child.close_to_point(p, master_tol))
 
  598             if (!elem.old_dof_object)
 
  614             libmesh_assert_equal_to
 
  617             for (
auto & child : elem.child_ref_range())
 
  618               if (child.close_to_point(p, master_tol))
 
 
References libMesh::Elem::child_ref_range(), libMesh::FEMContext::get_elem(), libMesh::Elem::hmax(), libMesh::Elem::JUST_COARSENED, libMesh::Elem::JUST_REFINED, libMesh::libmesh_assert(), libMesh::DofObject::old_dof_object, libMesh::Elem::parent(), libMesh::Real, and libMesh::Elem::refinement_flag().
 
 
◆ eval_at_node() [1/3]
Definition at line 875 of file generic_projector.h.
  882   LOG_SCOPE (
"Gradient eval_at_node()", 
"OldSolutionValue");
 
  885   libmesh_assert_less(c.get_elem().get_node_index(&n),
 
  886                       c.get_elem().n_vertices());
 
  904   if (n.old_dof_object &&
 
  905       (!extra_hanging_dofs ||
 
  908       n.old_dof_object->n_vars(
sys.
number()) &&
 
  909       n.old_dof_object->n_comp(
sys.
number(), var))
 
  912       for (
unsigned int d = 0; d != elem_dim; ++d)
 
  915             n.old_dof_object->dof_number(
sys.
number(), var, d+1);
 
 
References libMesh::Elem::DO_NOTHING, libMesh::DofObject::dof_number(), libMesh::FEMContext::get_elem(), libMesh::Elem::get_node_index(), libMesh::Elem::JUST_COARSENED, libMesh::DofObject::n_comp(), libMesh::DofObject::n_vars(), libMesh::Elem::n_vertices(), libMesh::DofObject::old_dof_object, and libMesh::Elem::refinement_flag().
 
 
◆ eval_at_node() [2/3]
template<typename Output, void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
      
 
 
◆ eval_at_node() [3/3]
Definition at line 825 of file generic_projector.h.
  832   LOG_SCOPE (
"Number eval_at_node()", 
"OldSolutionValue");
 
  835   libmesh_assert_less(c.get_elem().get_node_index(&n),
 
  836                       c.get_elem().n_vertices());
 
  854   if (n.old_dof_object &&
 
  855       (!extra_hanging_dofs ||
 
  858       n.old_dof_object->n_vars(
sys.
number()) &&
 
  859       n.old_dof_object->n_comp(
sys.
number(), var))
 
  862         n.old_dof_object->dof_number(
sys.
number(), var, 0);
 
 
References libMesh::Elem::DO_NOTHING, libMesh::DofObject::dof_number(), libMesh::FEMContext::get_elem(), libMesh::Elem::get_node_index(), libMesh::Elem::JUST_COARSENED, libMesh::DofObject::n_comp(), libMesh::DofObject::n_vars(), libMesh::Elem::n_vertices(), libMesh::DofObject::old_dof_object, and libMesh::Elem::refinement_flag().
 
 
◆ eval_at_point()
template<typename Output, void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ eval_old_dofs() [1/2]
template<typename Output, void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
Definition at line 724 of file generic_projector.h.
  731     LOG_SCOPE (
"eval_old_dofs(elem)", 
"OldSolutionValue");
 
  735     const Elem & old_elem =
 
  737       *elem.parent() : elem;
 
  744     std::vector<dof_id_type> old_dof_indices(nc);
 
  754         const std::pair<unsigned int, unsigned int>
 
  755           vg_and_offset = elem.var_to_vg_and_offset(sys_num,var_num);
 
  756         const unsigned int vg = vg_and_offset.first;
 
  757         const unsigned int vig = vg_and_offset.second;
 
  759         const unsigned int n_comp = elem.n_comp_group(sys_num,vg);
 
  760         libmesh_assert_greater(elem.n_systems(), sys_num);
 
  761         libmesh_assert_greater_equal(n_comp, nc);
 
  763         for (
unsigned int i=0; i<nc; i++)
 
  766               old_elem.old_dof_object->dof_number(sys_num, vg, vig, i, n_comp);
 
  768               elem.dof_number(sys_num, vg, vig, i, n_comp);
 
  772             old_dof_indices[i] = d_old;
 
 
References libMesh::Elem::dim(), libMesh::DofObject::dof_number(), libMesh::DofObject::invalid_id, libMesh::Elem::JUST_REFINED, libMesh::libmesh_assert(), libMesh::DofObject::n_comp_group(), libMesh::FEInterface::n_dofs_per_elem(), libMesh::DofObject::n_systems(), libMesh::DofObject::old_dof_object, libMesh::Elem::parent(), libMesh::Elem::refinement_flag(), libMesh::Elem::type(), and libMesh::DofObject::var_to_vg_and_offset().
 
 
◆ eval_old_dofs() [2/2]
template<typename Output, void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
Definition at line 702 of file generic_projector.h.
  708     LOG_SCOPE (
"eval_old_dofs(node)", 
"OldSolutionValue");
 
  712     std::vector<dof_id_type> old_indices;
 
  716     libmesh_assert_equal_to (old_indices.size(), indices.size());
 
  718     values.resize(old_indices.size());
 
 
 
 
◆ get_shape_outputs() [1/5]
template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ get_shape_outputs() [2/5]
◆ get_shape_outputs() [3/5]
◆ get_shape_outputs() [4/5]
◆ get_shape_outputs() [5/5]
◆ init_context()
template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ is_grid_projection()
template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ out_of_elem_tol() [1/4]
◆ out_of_elem_tol() [2/4]
◆ out_of_elem_tol() [3/4]
◆ out_of_elem_tol() [4/4]
◆ component_to_var
template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ last_elem
template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ old_context
template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ old_solution
template<typename Output, void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ out_of_elem_tol
template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
◆ sys
template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output> 
 
 
The documentation for this class was generated from the following file:
 
const NumericVector< Number > & old_solution
 
unsigned int n_vars() const
 
Output eval_at_point(const FEMContext &c, unsigned int i, const Point &p, Real=0.)
 
virtual bool close_to_point(const Point &p, Real tol) const
 
void dof_indices(const Elem *const elem, std::vector< dof_id_type > &di) const
Fills the vector di with the global degree of freedom indices for the element.
 
virtual void pre_fe_reinit(const System &, const Elem *e)
Reinitializes local data vectors/matrices on the current geometric element.
 
const Elem & get_elem() const
Accessor for current Elem object.
 
unsigned int number() const
 
RefinementState
Enumeration of possible element refinement states.
 
void set_custom_solution(const NumericVector< Number > *custom_sol)
Set a NumericVector to be used in place of current_local_solution for calculating elem_solution.
 
std::vector< unsigned int > component_to_var
 
void old_dof_indices(const Elem &elem, unsigned int n, std::vector< dof_id_type > &di, const unsigned int vn) const
Appends to the vector di the old global degree of freedom indices for elem.node_ref(n),...
 
static unsigned int n_dofs_per_elem(const unsigned int dim, const FEType &fe_t, const ElemType t)
 
bool has_elem() const
Test for current Elem object.
 
FEGenericBase< Real > FEBase
 
void check_old_context(const FEMContext &c)
 
static const dof_id_type invalid_id
An invalid id to distinguish an uninitialized DofObject.
 
NumberVectorValue Gradient
 
void get_element_fe(unsigned int var, FEGenericBase< OutputShape > *&fe) const
Accessor for interior finite element object for variable var for the largest dimension in the mesh.
 
const Real out_of_elem_tol
 
void set_algebraic_type(const AlgebraicType atype)
Setting which determines whether to initialize algebraic structures (elem_*) on each element and set ...
 
virtual void get(const std::vector< numeric_index_type > &index, T *values) const
Access multiple components at once.
 
const DofMap & get_dof_map() const
 
const std::set< unsigned char > & elem_dimensions() const
 
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
 
static void get_shape_outputs(FEBase &fe)