};
- // @sect4{The PointValueEvaluation class}
+ // @sect4{The dual functional PointValueEvaluation class}
// As a first application, we consider the functional corresponding to the
// evaluation of the solution's value at a given point which again we
}
- // @sect4{The PointXDerivativeEvaluation class}
+ // @sect4{The dual functional PointXDerivativeEvaluation class}
// As second application, we again consider the evaluation of the
// x-derivative of the solution at one point. Again, the declaration of
}
- // @sect3{Linear solvers and preconditioners}
+ // @sect3{Implementation of linear solvers and preconditioners}
// The linear solvers and preconditioners we use in this example have
// been discussed in significant detail already in the introduction. We
// @sect3{Implementation of the main class}
- // @sect4{LaplaceProblem::LaplaceProblem}
+ // @sect4{LaplaceProblem::LaplaceProblem constructor}
// The constructor of this class is fairly straightforward. It associates
// the hp::DoFHandler object with the triangulation, and then sets the
}
- // @sect4{LaplaceProblem::~LaplaceProblem}
+ // @sect4{LaplaceProblem::~LaplaceProblem destructor}
// The destructor is unchanged from what we already did in step-6:
template <int dim>
class EnergyGroup
{
public:
- // @sect5{Public member functions}
+ // @sect5{<code>EnergyGroup</code> public member functions}
//
// The class has a good number of public member functions, since its the
// way it operates is controlled from the outside, and therefore all
const double refine_threshold,
const double coarsen_threshold);
- // @sect5{Public data members}
+ // @sect5{<code>EnergyGroup</code> public data members}
//
// As is good practice in object oriented programming, we hide most data
// members by making them private. However, we have to grant the class
Vector<double> solution_old;
- // @sect5{Private data members}
+ // @sect5{<code>EnergyGroup</code> private data members}
//
// The rest of the data members are private. Compared to all the previous
// tutorial programs, the only new data members are an integer storing
AffineConstraints<double> hanging_node_constraints;
- // @sect5{Private member functions}
+ // @sect5{<code>EnergyGroup</code> private member functions}
//
// There is one private member function in this class. It recursively
// walks over cells of two meshes to compute the cross-group right hand
void run();
private:
- // @sect5{Private member functions}
+ // @sect5{<code>NeutronDiffusionProblem</code> private member functions}
// There are not that many member functions in this class since most of
// the functionality has been moved into the <code>EnergyGroup</code>
double get_total_fission_source() const;
- // @sect5{Private member variables}
+ // @sect5{<code>NeutronDiffusionProblem</code> private member variables}
// Next, we have a few member variables. In particular, these are (i) a
// reference to the parameter object (owned by the main function of this
// @sect3{Implementation of the auxiliary classes}
- // @sect4{The `RightHandSide` class}
+ // @sect4{The `RightHandSide` class implementation}
// The constructor reads all the parameters from the HDF5::Group `data` using
// the HDF5::Group::get_attribute() function.
- // @sect4{The `PML` class}
+ // @sect4{The `PML` class implementation}
// As before, the constructor reads all the parameters from the HDF5::Group
// `data` using the HDF5::Group::get_attribute() function. As we have
- // @sect4{The `Rho` class}
+ // @sect4{The `Rho` class implementation}
// This class is used to define the mass density. As we have explaine before,
// a phononic superlattice cavity is formed by two
- // @sect4{The `Parameters` class}
+ // @sect4{The `Parameters` class implementation}
// The constructor reads all the parameters from the HDF5::Group `data` using
// the HDF5::Group::get_attribute() function.
- // @sect4{The `QuadratureCache` class}
+ // @sect4{The `QuadratureCache` class implementation}
// We need to reserve enough space for the mass and stiffness matrices and the
// right hand side vector.
- // @sect3{Streamline diffusion}
+ // @sect3{Streamline diffusion implementation}
// The streamline diffusion method has a stabilization constant that
// we need to be able to compute. The choice of how this parameter
// @sect3{The HelmholtzProblem class implementation}
- // @sect4{HelmholtzProblem::HelmholtzProblem}
+ // @sect4{HelmholtzProblem::HelmholtzProblem constructor}
// In the constructor of this class, we only set the variables passed as
// arguments, and associate the DoF handler object with the triangulation
{}
- // @sect4{HelmholtzProblem::~HelmholtzProblem}
+ // @sect4{HelmholtzProblem::~HelmholtzProblem destructor}
// This is no different than before:
template <int dim>
// @sect3{The <code>ElasticProblem</code> class implementation}
- // @sect4{ElasticProblem::ElasticProblem}
+ // @sect4{ElasticProblem::ElasticProblem constructor}
// Following is the constructor of the main class. As said before, we would
// like to construct a vector-valued finite element that is composed of
- // @sect4{ElasticProblem::~ElasticProblem}
+ // @sect4{ElasticProblem::~ElasticProblem destructor}
// The destructor, on the other hand, is exactly as in step-6:
template <int dim>