libMesh
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
libMesh::OldSolutionCoefs< Output, point_output > Class Template Reference

The OldSolutionCoefs input functor class can be used with GenericProjector to read solution transfer coefficients on a just-refined-and-coarsened mesh. More...

Inheritance diagram for libMesh::OldSolutionCoefs< Output, point_output >:
[legend]

Public Types

typedef DSNAOutput< Output >::type DSNA
 

Public Member Functions

 OldSolutionCoefs (const libMesh::System &sys_in)
 
 OldSolutionCoefs (const OldSolutionCoefs &in)
 
DSNA eval_at_node (const FEMContext &c, unsigned int i, unsigned int elem_dim, const Node &n, bool extra_hanging_dofs, Real=0.)
 
DSNA 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< DSNA > &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< DSNA > &values)
 
template<>
DynamicSparseNumberArray< Real, dof_id_typeeval_at_point (const FEMContext &c, unsigned int i, const Point &p, Real)
 
template<>
VectorValue< DynamicSparseNumberArray< Real, dof_id_type > > eval_at_point (const FEMContext &c, unsigned int i, const Point &p, Real)
 
template<>
DynamicSparseNumberArray< Real, dof_id_typeeval_at_node (const FEMContext &c, unsigned int i, unsigned int, const Node &n, bool extra_hanging_dofs, Real)
 
template<>
VectorValue< DynamicSparseNumberArray< Real, dof_id_type > > 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 ()
 

Static Public Member Functions

static void get_shape_outputs (FEBase &fe)
 

Protected Member Functions

template<>
const Real out_of_elem_tol
 
template<>
const Real out_of_elem_tol
 
template<>
const Real out_of_elem_tol
 
template<>
const Real out_of_elem_tol
 
void check_old_context (const FEMContext &c)
 
bool check_old_context (const FEMContext &c, const Point &p)
 

Protected Attributes

const Elemlast_elem
 
const Systemsys
 
FEMContext old_context
 
std::vector< unsigned intcomponent_to_var
 

Static Protected Attributes

static const Real out_of_elem_tol
 

Detailed Description

template<typename Output, void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
class libMesh::OldSolutionCoefs< Output, point_output >

The OldSolutionCoefs input functor class can be used with GenericProjector to read solution transfer coefficients on a just-refined-and-coarsened mesh.

Author
Roy H. Stogner
Date
2017

Definition at line 485 of file system_projection.C.

Member Typedef Documentation

◆ DSNA

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
typedef DSNAOutput<Output>::type libMesh::OldSolutionCoefs< Output, point_output >::DSNA

Definition at line 488 of file system_projection.C.

Constructor & Destructor Documentation

◆ OldSolutionCoefs() [1/2]

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
libMesh::OldSolutionCoefs< Output, point_output >::OldSolutionCoefs ( const libMesh::System sys_in)
inline

Definition at line 490 of file system_projection.C.

490  :
491  OldSolutionBase<Output, point_output>(sys_in)
492  {
494  }

◆ OldSolutionCoefs() [2/2]

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
libMesh::OldSolutionCoefs< Output, point_output >::OldSolutionCoefs ( const OldSolutionCoefs< Output, point_output > &  in)
inline

Definition at line 496 of file system_projection.C.

496  :
497  OldSolutionBase<Output, point_output>(in.sys)
498  {
500  }

Member Function Documentation

◆ check_old_context() [1/2]

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
void libMesh::OldSolutionBase< Output, point_output >::check_old_context ( const FEMContext c)
inlineprotectedinherited

Definition at line 532 of file generic_projector.h.

533  {
534  LOG_SCOPE ("check_old_context(c)", "OldSolutionBase");
535  const Elem & elem = c.get_elem();
536  if (last_elem != &elem)
537  {
538  if (elem.refinement_flag() == Elem::JUST_REFINED)
539  {
540  old_context.pre_fe_reinit(sys, elem.parent());
541  }
542  else if (elem.refinement_flag() == Elem::JUST_COARSENED)
543  {
544  libmesh_error();
545  }
546  else
547  {
548  if (!elem.old_dof_object)
549  {
550  libmesh_error();
551  }
552 
553  old_context.pre_fe_reinit(sys, &elem);
554  }
555 
556  last_elem = &elem;
557  }
558  else
559  {
561  }
562  }

References libMesh::FEMContext::get_elem(), libMesh::Elem::JUST_COARSENED, libMesh::Elem::JUST_REFINED, libMesh::libmesh_assert(), libMesh::DofObject::old_dof_object, libMesh::Elem::parent(), and libMesh::Elem::refinement_flag().

◆ check_old_context() [2/2]

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
bool libMesh::OldSolutionBase< Output, point_output >::check_old_context ( const FEMContext c,
const Point p 
)
inlineprotectedinherited

Definition at line 565 of file generic_projector.h.

566  {
567  LOG_SCOPE ("check_old_context(c,p)", "OldSolutionBase");
568  const Elem & elem = c.get_elem();
569  if (last_elem != &elem)
570  {
571  if (elem.refinement_flag() == Elem::JUST_REFINED)
572  {
573  old_context.pre_fe_reinit(sys, elem.parent());
574  }
575  else if (elem.refinement_flag() == Elem::JUST_COARSENED)
576  {
577  // Find the child with this point. Use out_of_elem_tol
578  // (in physical space, which may correspond to a large
579  // tolerance in master space!) to allow for out-of-element
580  // finite differencing of mixed gradient terms. Pray we
581  // have no quadrature locations which are within 1e-5 of
582  // the element subdivision boundary but are not exactly on
583  // that boundary.
584  const Real master_tol = out_of_elem_tol / elem.hmax() * 2;
585 
586  for (auto & child : elem.child_ref_range())
587  if (child.close_to_point(p, master_tol))
588  {
589  old_context.pre_fe_reinit(sys, &child);
590  break;
591  }
592 
594  (old_context.get_elem().close_to_point(p, master_tol));
595  }
596  else
597  {
598  if (!elem.old_dof_object)
599  return false;
600 
601  old_context.pre_fe_reinit(sys, &elem);
602  }
603 
604  last_elem = &elem;
605  }
606  else
607  {
609 
610  const Real master_tol = out_of_elem_tol / elem.hmax() * 2;
611 
612  if (!old_context.get_elem().close_to_point(p, master_tol))
613  {
614  libmesh_assert_equal_to
615  (elem.refinement_flag(), Elem::JUST_COARSENED);
616 
617  for (auto & child : elem.child_ref_range())
618  if (child.close_to_point(p, master_tol))
619  {
620  old_context.pre_fe_reinit(sys, &child);
621  break;
622  }
623 
625  (old_context.get_elem().close_to_point(p, master_tol));
626  }
627  }
628 
629  return true;
630  }

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]

template<>
VectorValue< DynamicSparseNumberArray< Real, dof_id_type > > libMesh::OldSolutionCoefs< RealGradient, &FEMContext::point_gradient >::eval_at_node ( const FEMContext c,
unsigned int  i,
unsigned int  elem_dim,
const Node n,
bool  extra_hanging_dofs,
Real   
)
inline

Definition at line 749 of file system_projection.C.

755 {
756  LOG_SCOPE ("RealGradient eval_at_node()", "OldSolutionCoefs");
757 
758  // Optimize for the common case, where this node was part of the
759  // old solution.
760  //
761  // Be sure to handle cases where the variable wasn't defined on
762  // this node (due to changing subdomain support) or where the
763  // variable has no components on this node (due to Elem order
764  // exceeding FE order) or where the old_dof_object dofs might
765  // correspond to non-vertex dofs (due to extra_hanging_dofs and
766  // refinement)
767 
768  const Elem::RefinementState flag = c.get_elem().refinement_flag();
769 
770  if (n.old_dof_object &&
771  (!extra_hanging_dofs ||
772  flag == Elem::JUST_COARSENED ||
773  flag == Elem::DO_NOTHING) &&
774  n.old_dof_object->n_vars(sys.number()) &&
775  n.old_dof_object->n_comp(sys.number(), i))
776  {
777  VectorValue<DynamicSparseNumberArray<Real, dof_id_type> > g;
778  for (unsigned int d = 0; d != elem_dim; ++d)
779  {
780  const dof_id_type old_id =
781  n.old_dof_object->dof_number(sys.number(), i, d+1);
782  g(d).resize(1);
783  g(d).raw_at(0) = 1;
784  g(d).raw_index(0) = old_id;
785  }
786  return g;
787  }
788 
789  return this->eval_at_point(c, i, n, 0);
790 }

References libMesh::DofObject::dof_number(), libMesh::FEMContext::get_elem(), libMesh::DofObject::n_comp(), libMesh::DofObject::n_vars(), 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>
DSNA libMesh::OldSolutionCoefs< Output, point_output >::eval_at_node ( const FEMContext c,
unsigned int  i,
unsigned int  elem_dim,
const Node n,
bool  extra_hanging_dofs,
Real  = 0. 
)

◆ eval_at_node() [3/3]

template<>
DynamicSparseNumberArray< Real, dof_id_type > libMesh::OldSolutionCoefs< Real, &FEMContext::point_value >::eval_at_node ( const FEMContext c,
unsigned int  i,
unsigned int  ,
const Node n,
bool  extra_hanging_dofs,
Real   
)
inline

Definition at line 703 of file system_projection.C.

709 {
710  LOG_SCOPE ("Real eval_at_node()", "OldSolutionCoefs");
711 
712  // Optimize for the common case, where this node was part of the
713  // old solution.
714  //
715  // Be sure to handle cases where the variable wasn't defined on
716  // this node (due to changing subdomain support) or where the
717  // variable has no components on this node (due to Elem order
718  // exceeding FE order) or where the old_dof_object dofs might
719  // correspond to non-vertex dofs (due to extra_hanging_dofs and
720  // refinement)
721 
722  const Elem::RefinementState flag = c.get_elem().refinement_flag();
723 
724  if (n.old_dof_object &&
725  (!extra_hanging_dofs ||
726  flag == Elem::JUST_COARSENED ||
727  flag == Elem::DO_NOTHING) &&
728  n.old_dof_object->n_vars(sys.number()) &&
729  n.old_dof_object->n_comp(sys.number(), i))
730  {
731  DynamicSparseNumberArray<Real, dof_id_type> returnval;
732  const dof_id_type old_id =
733  n.old_dof_object->dof_number(sys.number(), i, 0);
734  returnval.resize(1);
735  returnval.raw_at(0) = 1;
736  returnval.raw_index(0) = old_id;
737  return returnval;
738  }
739 
740  return this->eval_at_point(c, i, n, 0);
741 }

References libMesh::DofObject::dof_number(), libMesh::FEMContext::get_elem(), libMesh::DofObject::n_comp(), libMesh::DofObject::n_vars(), libMesh::DofObject::old_dof_object, and libMesh::Elem::refinement_flag().

◆ eval_at_point() [1/3]

template<>
DynamicSparseNumberArray< Real, dof_id_type > libMesh::OldSolutionCoefs< Real, &FEMContext::point_value >::eval_at_point ( const FEMContext c,
unsigned int  i,
const Point p,
Real   
)
inline

Definition at line 611 of file system_projection.C.

615 {
616  LOG_SCOPE ("eval_at_point()", "OldSolutionCoefs");
617 
618  if (!this->check_old_context(c, p))
619  return 0;
620 
621  // Get finite element object
622  FEGenericBase<Real> * fe = nullptr;
624  (i, fe, this->old_context.get_elem_dim());
625 
626  // Build a FE for calculating phi(p)
627  FEGenericBase<Real> * fe_new =
628  this->old_context.build_new_fe(fe, p);
629 
630  // Get the values and global indices of the shape functions
631  const std::vector<std::vector<Real> > & phi = fe_new->get_phi();
632  const std::vector<dof_id_type> & dof_indices =
633  this->old_context.get_dof_indices(i);
634 
635  const std::size_t n_dofs = phi.size();
636  libmesh_assert_equal_to(n_dofs, dof_indices.size());
637 
638  DynamicSparseNumberArray<Real, dof_id_type> returnval;
639  returnval.resize(n_dofs);
640 
641  for (auto j : index_range(phi))
642  {
643  returnval.raw_at(j) = phi[j][0];
644  returnval.raw_index(j) = dof_indices[j];
645  }
646 
647  return returnval;
648 }

References libMesh::FEGenericBase< OutputType >::get_phi(), libMesh::index_range(), and libMesh::Real.

◆ eval_at_point() [2/3]

template<>
VectorValue< DynamicSparseNumberArray< Real, dof_id_type > > libMesh::OldSolutionCoefs< RealGradient, &FEMContext::point_gradient >::eval_at_point ( const FEMContext c,
unsigned int  i,
const Point p,
Real   
)
inline

Definition at line 656 of file system_projection.C.

660 {
661  LOG_SCOPE ("eval_at_point()", "OldSolutionCoefs");
662 
663  if (!this->check_old_context(c, p))
664  return 0;
665 
666  // Get finite element object
667  FEGenericBase<Real> * fe = nullptr;
669  (i, fe, this->old_context.get_elem_dim());
670 
671  // Build a FE for calculating phi(p)
672  FEGenericBase<Real> * fe_new =
673  this->old_context.build_new_fe(fe, p);
674 
675  // Get the values and global indices of the shape functions
676  const std::vector<std::vector<RealGradient> > & dphi = fe_new->get_dphi();
677  const std::vector<dof_id_type> & dof_indices =
678  this->old_context.get_dof_indices(i);
679 
680  const std::size_t n_dofs = dphi.size();
681  libmesh_assert_equal_to(n_dofs, dof_indices.size());
682 
683  VectorValue<DynamicSparseNumberArray<Real, dof_id_type> > returnval;
684 
685  for (unsigned int d = 0; d != LIBMESH_DIM; ++d)
686  returnval(d).resize(n_dofs);
687 
688  for (auto j : index_range(dphi))
689  for (int d = 0; d != LIBMESH_DIM; ++d)
690  {
691  returnval(d).raw_at(j) = dphi[j][0](d);
692  returnval(d).raw_index(j) = dof_indices[j];
693  }
694 
695  return returnval;
696 }

References libMesh::FEGenericBase< OutputType >::get_dphi(), libMesh::index_range(), and libMesh::Real.

◆ eval_at_point() [3/3]

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
DSNA libMesh::OldSolutionCoefs< Output, point_output >::eval_at_point ( const FEMContext c,
unsigned int  i,
const Point p,
Real  = 0. 
)

◆ eval_old_dofs() [1/2]

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
void libMesh::OldSolutionCoefs< Output, point_output >::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< DSNA > &  values 
)
inline

Definition at line 541 of file system_projection.C.

547  {
548  LOG_SCOPE ("eval_old_dofs(elem)", "OldSolutionCoefs");
549 
550  // We're only to be asked for old dofs on elements that can copy
551  // them through DO_NOTHING or through refinement.
552  const Elem & old_elem =
553  (elem.refinement_flag() == Elem::JUST_REFINED) ?
554  *elem.parent() : elem;
555 
556  // If there are any element-based DOF numbers, get them
557  const unsigned int nc = FEInterface::n_dofs_per_elem(elem.dim(),
558  fe_type,
559  elem.type());
560 
561  std::vector<dof_id_type> old_dof_indices(nc);
562  indices.resize(nc);
563 
564  // We should never have fewer dofs than necessary on an
565  // element unless we're getting indices on a parent element,
566  // and we should never need those indices
567  if (nc != 0)
568  {
569  libmesh_assert(old_elem.old_dof_object);
570 
571  const std::pair<unsigned int, unsigned int>
572  vg_and_offset = elem.var_to_vg_and_offset(sys_num,var_num);
573  const unsigned int vg = vg_and_offset.first;
574  const unsigned int vig = vg_and_offset.second;
575 
576  const unsigned int n_comp = elem.n_comp_group(sys_num,vg);
577  libmesh_assert_greater(elem.n_systems(), sys_num);
578  libmesh_assert_greater_equal(n_comp, nc);
579 
580  for (unsigned int i=0; i<nc; i++)
581  {
582  const dof_id_type d_old =
583  old_elem.old_dof_object->dof_number(sys_num, vg, vig, i, n_comp);
584  const dof_id_type d_new =
585  elem.dof_number(sys_num, vg, vig, i, n_comp);
586  libmesh_assert_not_equal_to (d_old, DofObject::invalid_id);
587  libmesh_assert_not_equal_to (d_new, DofObject::invalid_id);
588 
589  old_dof_indices[i] = d_old;
590  indices[i] = d_new;
591  }
592  }
593 
594  values.resize(old_dof_indices.size());
595 
596  for (auto i : index_range(values))
597  {
598  values[i].resize(1);
599  values[i].raw_at(0) = 1;
600  values[i].raw_index(0) = old_dof_indices[i];
601  }
602  }

References libMesh::Elem::dim(), libMesh::DofObject::dof_number(), libMesh::index_range(), libMesh::libmesh_assert(), libMesh::DofObject::n_comp_group(), 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>
void libMesh::OldSolutionCoefs< Output, point_output >::eval_old_dofs ( const Elem elem,
unsigned int  node_num,
unsigned int  var_num,
std::vector< dof_id_type > &  indices,
std::vector< DSNA > &  values 
)
inline

Definition at line 514 of file system_projection.C.

519  {
520  LOG_SCOPE ("eval_old_dofs(node)", "OldSolutionCoefs");
521 
522  this->sys.get_dof_map().dof_indices(elem, node_num, indices, var_num);
523 
524  std::vector<dof_id_type> old_indices;
525 
526  this->sys.get_dof_map().old_dof_indices(elem, node_num, old_indices, var_num);
527 
528  libmesh_assert_equal_to (old_indices.size(), indices.size());
529 
530  values.resize(old_indices.size());
531 
532  for (auto i : index_range(values))
533  {
534  values[i].resize(1);
535  values[i].raw_at(0) = 1;
536  values[i].raw_index(0) = old_indices[i];
537  }
538  }

References libMesh::index_range().

◆ get_shape_outputs() [1/5]

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
static void libMesh::OldSolutionBase< Output, point_output >::get_shape_outputs ( FEBase fe)
staticinherited

◆ get_shape_outputs() [2/5]

template<>
void libMesh::OldSolutionBase< Number, &FEMContext::point_value >::get_shape_outputs ( FEBase fe)
inlineinherited

Definition at line 789 of file generic_projector.h.

790 {
791  fe.get_phi();
792 }

References libMesh::FEGenericBase< OutputType >::get_phi().

◆ get_shape_outputs() [3/5]

template<>
void libMesh::OldSolutionBase< Gradient, &FEMContext::point_gradient >::get_shape_outputs ( FEBase fe)
inlineinherited

Definition at line 797 of file generic_projector.h.

798 {
799  fe.get_dphi();
800 }

References libMesh::FEGenericBase< OutputType >::get_dphi().

◆ get_shape_outputs() [4/5]

template<>
void libMesh::OldSolutionBase< Real, &FEMContext::point_value >::get_shape_outputs ( FEBase fe)
inlineinherited

Definition at line 806 of file generic_projector.h.

807 {
808  fe.get_phi();
809 }

References libMesh::FEGenericBase< OutputType >::get_phi().

◆ get_shape_outputs() [5/5]

template<>
void libMesh::OldSolutionBase< RealGradient, &FEMContext::point_gradient >::get_shape_outputs ( FEBase fe)
inlineinherited

Definition at line 814 of file generic_projector.h.

815 {
816  fe.get_dphi();
817 }

References libMesh::FEGenericBase< OutputType >::get_dphi().

◆ init_context()

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
void libMesh::OldSolutionBase< Output, point_output >::init_context ( FEMContext c)
inlineinherited

Definition at line 510 of file generic_projector.h.

511  {
512  c.set_algebraic_type(FEMContext::DOFS_ONLY);
513 
514  // Loop over variables, to prerequest
515  for (auto var : IntRange<unsigned int>(0, sys.n_vars()))
516  {
517  FEBase * fe = nullptr;
518  const std::set<unsigned char> & elem_dims =
520 
521  for (const auto & dim : elem_dims)
522  {
523  old_context.get_element_fe(var, fe, dim);
524  get_shape_outputs(*fe);
525  }
526  }
527  }

References dim, libMesh::FEMContext::DOFS_ONLY, and libMesh::FEMContext::set_algebraic_type().

◆ is_grid_projection()

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
bool libMesh::OldSolutionBase< Output, point_output >::is_grid_projection ( )
inlineinherited

Definition at line 529 of file generic_projector.h.

529 { return true; }

◆ out_of_elem_tol() [1/4]

template<>
const Real libMesh::OldSolutionBase< Number, &FEMContext::point_value >::out_of_elem_tol ( )
protectedinherited

Definition at line 929 of file generic_projector.h.

◆ out_of_elem_tol() [2/4]

template<>
const Real libMesh::OldSolutionBase< Gradient, &FEMContext::point_gradient >::out_of_elem_tol ( )
protectedinherited

Definition at line 932 of file generic_projector.h.

◆ out_of_elem_tol() [3/4]

template<>
const Real libMesh::OldSolutionBase< Real, &FEMContext::point_value >::out_of_elem_tol ( )
protectedinherited

Definition at line 936 of file generic_projector.h.

◆ out_of_elem_tol() [4/4]

template<>
const Real libMesh::OldSolutionBase< RealGradient, &FEMContext::point_gradient >::out_of_elem_tol ( )
protectedinherited

Definition at line 939 of file generic_projector.h.

Member Data Documentation

◆ component_to_var

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
std::vector<unsigned int> libMesh::OldSolutionBase< Output, point_output >::component_to_var
protectedinherited

Definition at line 636 of file generic_projector.h.

◆ last_elem

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
const Elem* libMesh::OldSolutionBase< Output, point_output >::last_elem
protectedinherited

Definition at line 633 of file generic_projector.h.

◆ old_context

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
FEMContext libMesh::OldSolutionBase< Output, point_output >::old_context
protectedinherited

Definition at line 635 of file generic_projector.h.

◆ out_of_elem_tol

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
const Real libMesh::OldSolutionBase< Output, point_output >::out_of_elem_tol
staticprotectedinherited

Definition at line 638 of file generic_projector.h.

◆ sys

template<typename Output , void(FEMContext::*)(unsigned int, const Point &, Output &, const Real) const point_output>
const System& libMesh::OldSolutionBase< Output, point_output >::sys
protectedinherited

Definition at line 634 of file generic_projector.h.


The documentation for this class was generated from the following file:
libMesh::dof_id_type
uint8_t dof_id_type
Definition: id_types.h:67
libMesh::System::n_vars
unsigned int n_vars() const
Definition: system.h:2155
libMesh::Elem::JUST_REFINED
Definition: elem.h:1172
libMesh::Elem::close_to_point
virtual bool close_to_point(const Point &p, Real tol) const
Definition: elem.C:2119
libMesh::DofMap::dof_indices
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.
Definition: dof_map.C:1967
libMesh::DiffContext::get_dof_indices
const std::vector< dof_id_type > & get_dof_indices() const
Accessor for element dof indices.
Definition: diff_context.h:367
libMesh::FEMContext::build_new_fe
FEGenericBase< OutputShape > * build_new_fe(const FEGenericBase< OutputShape > *fe, const Point &p, const Real tolerance=TOLERANCE) const
Helper function to reduce some code duplication in the *_point_* methods.
Definition: fem_context.C:1952
libMesh::index_range
IntRange< std::size_t > index_range(const std::vector< T > &vec)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:106
libMesh::FEMContext::pre_fe_reinit
virtual void pre_fe_reinit(const System &, const Elem *e)
Reinitializes local data vectors/matrices on the current geometric element.
Definition: fem_context.C:1642
libMesh::FEMContext::get_elem_dim
unsigned char get_elem_dim() const
Definition: fem_context.h:931
libMesh::FEMContext::get_elem
const Elem & get_elem() const
Accessor for current Elem object.
Definition: fem_context.h:896
libMesh::FEMContext::OLD_DOFS_ONLY
Definition: fem_context.h:963
libMesh::System::number
unsigned int number() const
Definition: system.h:2075
libMesh::Elem::RefinementState
RefinementState
Enumeration of possible element refinement states.
Definition: elem.h:1169
dim
unsigned int dim
Definition: adaptivity_ex3.C:113
libMesh::DofMap::old_dof_indices
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),...
Definition: dof_map.C:2258
libMesh::libmesh_assert
libmesh_assert(ctx)
libMesh::FEInterface::n_dofs_per_elem
static unsigned int n_dofs_per_elem(const unsigned int dim, const FEType &fe_t, const ElemType t)
Definition: fe_interface.C:534
libMesh::FEMContext::has_elem
bool has_elem() const
Test for current Elem object.
Definition: fem_context.h:890
libMesh::FEBase
FEGenericBase< Real > FEBase
Definition: exact_error_estimator.h:39
libMesh::OldSolutionBase::check_old_context
void check_old_context(const FEMContext &c)
Definition: generic_projector.h:532
libMesh::DofObject::invalid_id
static const dof_id_type invalid_id
An invalid id to distinguish an uninitialized DofObject.
Definition: dof_object.h:421
libMesh::Elem::DO_NOTHING
Definition: elem.h:1170
libMesh::Elem::JUST_COARSENED
Definition: elem.h:1173
libMesh::OldSolutionCoefs::eval_at_point
DSNA eval_at_point(const FEMContext &c, unsigned int i, const Point &p, Real=0.)
libMesh::OldSolutionBase::sys
const System & sys
Definition: generic_projector.h:634
libMesh::FEMContext::get_element_fe
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.
Definition: fem_context.h:275
libMesh::OldSolutionBase::out_of_elem_tol
const Real out_of_elem_tol
Definition: generic_projector.h:929
libMesh::FEMContext::DOFS_ONLY
Definition: fem_context.h:959
libMesh::FEMContext::set_algebraic_type
void set_algebraic_type(const AlgebraicType atype)
Setting which determines whether to initialize algebraic structures (elem_*) on each element and set ...
Definition: fem_context.h:973
libMesh::OldSolutionBase::last_elem
const Elem * last_elem
Definition: generic_projector.h:633
libMesh::System::get_dof_map
const DofMap & get_dof_map() const
Definition: system.h:2099
libMesh::FEMContext::elem_dimensions
const std::set< unsigned char > & elem_dimensions() const
Definition: fem_context.h:938
libMesh::OldSolutionBase::old_context
FEMContext old_context
Definition: generic_projector.h:635
libMesh::Real
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Definition: libmesh_common.h:121
libMesh::OldSolutionBase::get_shape_outputs
static void get_shape_outputs(FEBase &fe)