Public Member Functions | |
virtual | ~CellIteratorBase () |
virtual | operator const typename Triangulation< dim, spacedim >::cell_iterator () const =0 |
virtual unsigned int | n_dofs_for_dof_handler () const =0 |
virtual void | get_interpolated_dof_values (const Vector< double > &in, Vector< double > &out) const =0 |
virtual void | get_interpolated_dof_values (const Vector< float > &in, Vector< float > &out) const =0 |
virtual void | get_interpolated_dof_values (const Vector< long double > &in, Vector< long double > &out) const =0 |
virtual void | get_interpolated_dof_values (const BlockVector< double > &in, Vector< double > &out) const =0 |
virtual void | get_interpolated_dof_values (const BlockVector< float > &in, Vector< float > &out) const =0 |
virtual void | get_interpolated_dof_values (const BlockVector< long double > &in, Vector< long double > &out) const =0 |
virtual void | get_interpolated_dof_values (const PETScWrappers::Vector &in, Vector< PetscScalar > &out) const =0 |
virtual void | get_interpolated_dof_values (const PETScWrappers::BlockVector &in, Vector< PetscScalar > &out) const =0 |
virtual void | get_interpolated_dof_values (const TrilinosWrappers::Vector &in, Vector< TrilinosScalar > &out) const =0 |
virtual void | get_interpolated_dof_values (const TrilinosWrappers::BlockVector &in, Vector< TrilinosScalar > &out) const =0 |
virtual void | get_interpolated_dof_values (const TrilinosWrappers::MPI::Vector &in, Vector< TrilinosScalar > &out) const =0 |
virtual void | get_interpolated_dof_values (const TrilinosWrappers::MPI::BlockVector &in, Vector< TrilinosScalar > &out) const =0 |
get_interpolated_dof_values
function).
This calls for a common base class of iterator classes, and making the functions we need here virtual
. On the other hand, this is the only place in the library where we need this, and introducing a base class of iterators and making a function virtual penalizes all users of the iterators, which are basically intended as very fast accessor functions. So we do not want to do this. Rather, what we do here is making the functions we need virtual only for use with this class. The idea is the following: have a common base class which declares some pure virtual functions, and for each possible iterator type, we have a derived class which stores the iterator to the cell and implements these functions. Since the iterator classes have the same interface, we can make the derived classes a template, templatized on the iterator type.
This way, the use of virtual functions is restricted to only this class, and other users of iterators do not have to bear the negative effects.
virtual FEValuesBase< dim, spacedim >::CellIteratorBase::~CellIteratorBase | ( | ) | [virtual] |
Destructor. Made virtual since we store only pointers to the base class.
virtual FEValuesBase< dim, spacedim >::CellIteratorBase::operator const typename Triangulation< dim, spacedim >::cell_iterator | ( | ) | const [pure virtual] |
Conversion operator to an iterator for triangulations. This conversion is implicit for the original iterators, since they are derived classes. However, since here we have kind of a parallel class hierarchy, we have to have a conversion operator.
virtual unsigned int FEValuesBase< dim, spacedim >::CellIteratorBase::n_dofs_for_dof_handler | ( | ) | const [pure virtual] |
Return the number of degrees of freedom the DoF handler object has to which the iterator belongs to.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const Vector< double > & | in, | |
Vector< double > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const Vector< float > & | in, | |
Vector< float > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const Vector< long double > & | in, | |
Vector< long double > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const BlockVector< double > & | in, | |
Vector< double > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const BlockVector< float > & | in, | |
Vector< float > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const BlockVector< long double > & | in, | |
Vector< long double > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const PETScWrappers::Vector & | in, | |
Vector< PetscScalar > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const PETScWrappers::BlockVector & | in, | |
Vector< PetscScalar > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const TrilinosWrappers::Vector & | in, | |
Vector< TrilinosScalar > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const TrilinosWrappers::BlockVector & | in, | |
Vector< TrilinosScalar > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const TrilinosWrappers::MPI::Vector & | in, | |
Vector< TrilinosScalar > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.
virtual void FEValuesBase< dim, spacedim >::CellIteratorBase::get_interpolated_dof_values | ( | const TrilinosWrappers::MPI::BlockVector & | in, | |
Vector< TrilinosScalar > & | out | |||
) | const [pure virtual] |
Call get_interpolated_dof_values
of the iterator with the given arguments.