Commit 78780d16 authored by GILLES Sebastien's avatar GILLES Sebastien

#1484 Clean up Doxygen warnings for basic and advanced Doxyfiles.

parent 450551d3
......@@ -335,7 +335,7 @@ MARKDOWN_SUPPORT = YES
# Minimum value: 0, maximum value: 99, default value: 5.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
TOC_INCLUDE_HEADINGS = 5
TOC_INCLUDE_HEADINGS = 0
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
......@@ -546,7 +546,7 @@ HIDE_IN_BODY_DOCS = NO
# will be excluded. Set it to YES to include the internal documentation.
# The default value is: NO.
INTERNAL_DOCS = NO
INTERNAL_DOCS = YES
# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
# names in lower-case letters. If set to YES, upper-case letters are also
......@@ -1546,7 +1546,7 @@ FORMULA_TRANSPARENT = YES
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
USE_MATHJAX = NO
USE_MATHJAX = YES
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
......@@ -1569,7 +1569,7 @@ MATHJAX_FORMAT = HTML-CSS
# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_RELPATH =
# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
# extension names that should be enabled during MathJax rendering. For example
......@@ -1679,7 +1679,7 @@ EXTRA_SEARCH_MAPPINGS =
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
# The default value is: YES.
GENERATE_LATEX = YES
GENERATE_LATEX = NO
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
......@@ -1719,7 +1719,7 @@ MAKEINDEX_CMD_NAME = makeindex
# The default value is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_MAKEINDEX_CMD = makeindex
LATEX_MAKEINDEX_CMD = \makeindex
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
# documents. This may be useful for small projects and may help to save some
......@@ -2468,7 +2468,7 @@ PLANTUML_INCLUDE_PATH =
# Minimum value: 0, maximum value: 10000, default value: 50.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_GRAPH_MAX_NODES = 50
DOT_GRAPH_MAX_NODES = 100
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
# generated by dot. A depth value of 3 means that only nodes reachable from the
......
......@@ -335,7 +335,7 @@ MARKDOWN_SUPPORT = YES
# Minimum value: 0, maximum value: 99, default value: 5.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
TOC_INCLUDE_HEADINGS = 5
TOC_INCLUDE_HEADINGS = 0
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
......@@ -1547,7 +1547,7 @@ FORMULA_TRANSPARENT = YES
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
USE_MATHJAX = NO
USE_MATHJAX = YES
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
......@@ -1570,7 +1570,7 @@ MATHJAX_FORMAT = HTML-CSS
# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_RELPATH =
# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
# extension names that should be enabled during MathJax rendering. For example
......@@ -1680,7 +1680,7 @@ EXTRA_SEARCH_MAPPINGS =
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
# The default value is: YES.
GENERATE_LATEX = YES
GENERATE_LATEX = NO
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
......@@ -1720,7 +1720,7 @@ MAKEINDEX_CMD_NAME = makeindex
# The default value is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_MAKEINDEX_CMD = makeindex
LATEX_MAKEINDEX_CMD = \makeindex
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
# documents. This may be useful for small projects and may help to save some
......@@ -2469,7 +2469,7 @@ PLANTUML_INCLUDE_PATH =
# Minimum value: 0, maximum value: 10000, default value: 50.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_GRAPH_MAX_NODES = 50
DOT_GRAPH_MAX_NODES = 100
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
# generated by dot. A depth value of 3 means that only nodes reachable from the
......
......@@ -18,19 +18,6 @@ namespace MoReFEM::Internal::InputDataNS::ParallelismNS
{
/*!
* \class doxygen_hide_parallelism_input_data_cases
*
* There are four cases:
* - "Precompute": Precompute the data for a later parallel run and stop once it's done.
* - "ParallelNoWrite", Run the code in parallel without using any pre-processed data and do not write down the processed data.
* - "Parallel", Run the code in parallel without using any pre-processed data and write down the processed data.
* - "RunFromPreprocessed": Run the code in parallel using pre-processed data.
*/
/*!
* \brief Choice of the parallel behaviour.
*
......
/*!
* \class doxygen_hide_parallelism_input_data_cases
*
* There are four cases:
* - "Precompute": Precompute the data for a later parallel run and stop once it's done.
* - "ParallelNoWrite", Run the code in parallel without using any pre-processed data and do not write down the processed data.
* - "Parallel", Run the code in parallel without using any pre-processed data and write down the processed data.
* - "RunFromPreprocessed": Run the code in parallel using pre-processed data.
*/
......@@ -29,9 +29,10 @@ namespace MoReFEM
/*!
* \brief Specific case of GlobalMatrix which is square and diagonal.
*
* \internal <b><tt>[internal]</tt></b> Actually there is not much here that signes the diagonal structure of the matrix, save the fact only one
* numbering subset is used for both rows and columns. However, AllocateGlobalMatrix() provides an overload for
* this type that allocates only values on the diagonal.
* \internal <b><tt>[internal]</tt></b> Actually there is not much here that signes the diagonal structure of the
* matrix, save the fact only one numbering subset is used for both rows and columns. However, AllocateGlobalMatrix()
* provides an overload for this type that allocates only values on the diagonal.
* \endinternal
*/
class GlobalDiagonalMatrix final : public GlobalMatrix
{
......
......@@ -39,6 +39,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> Contrary to other managers, this one is really meant to be
* hidden to users and developers: NumberingSubset should be queried against \a GodOfDof objects.
* \endinternal
*/
class NumberingSubsetManager : public Utilities::Singleton<NumberingSubsetManager>
{
......@@ -112,6 +113,7 @@ namespace MoReFEM
*
* \internal This method is public solely because of its occasional usefulness in debug; you shouldn't
* have to use it while writing a \a Model.
* \endinternal
*
* \return List of pointers to the \a NumberingSubset avaliable throughout the program.
*/
......
......@@ -52,7 +52,9 @@ namespace MoReFEM
*
* \attention This is an abstract class; in your model you are probably seeking a TimeManagerInstance.
*
* \internal <b><tt>[internal]</tt></b> Must not be confused with TimeKeep() which is a chronometer to evaluate efficiency of the code.
* \internal <b><tt>[internal]</tt></b> Must not be confused with TimeKeep() which is a chronometer to evaluate
* efficiency of the code.
* \endinternal
*/
class TimeManager
{
......@@ -123,6 +125,7 @@ namespace MoReFEM
* \brief Set whether the system is static or dynamic.
*
* \internal <b><tt>[internal]</tt></b> Only a Model should be able to call this method.
* \endinternal
*
* \param[in] value Value to assign.
*/
......
......@@ -307,8 +307,9 @@ namespace MoReFEM
/*!
* \brief Initial values associated to each dof.
*
* \internal <b><tt>[internal]</tt></b> When this data is created, dofs aren't yet given their program-wise index, so both std::map and
* std::unordered_map would be very unreliable here.
* \internal <b><tt>[internal]</tt></b> When this data is created, dofs aren't yet given their program-wise
* index, so both std::map and std::unordered_map would be very unreliable here.
* \endinternal
*
* All dofs are considered here, regardless of their numbering subset.
* \todo #619 This container should disappear: if dofs are generated after the reduction to processor-wise
......
......@@ -56,8 +56,10 @@ namespace MoReFEM
/*!
* \brief Alias for call back.
*
* \internal <b><tt>[internal]</tt></b> As very few variables are expected, a std::map is used rather than a std::unordered_map.
* This choice might be questioned: I read once that for more than 3 keys the has map is alreadyy more efficient...
* \internal <b><tt>[internal]</tt></b> As very few variables are expected, a std::map is used rather
* than a std::unordered_map. This choice might be questioned: I read once that for more than 3 keys
* the has map is alreadyy more efficient...
* \endinternal
*/
using CallBack = std::map<std::string, FunctionPrototype>;
......
......@@ -43,6 +43,7 @@ namespace MoReFEM
* \internal <b><tt>[internal]</tt></b> Management of components should probably be overhauled completely
* at some point; current class is still heavily inspired by Felisce interface. However so far it worked
* for all the cases we considered and so it's quite low in our current todo list.
* \endinternal
*/
class ComponentManager
{
......
......@@ -174,6 +174,7 @@ namespace MoReFEM
* the reason for such a choice is that it would have require to remove constness to GodOfDof and FEltSpace
* within a Model or a VariationalFormulation solely for the purpose of populating the local2global during
* the initialisation of the program.
* \endinternal
*
*/
void ComputeLocal2Global(const ExtendedUnknown::vector_const_shared_ptr& unknown_list) const;
......@@ -220,7 +221,9 @@ namespace MoReFEM
*
* This list is given in the same order as the one used to build the \a local_2_global_.
*
* \internal <b><tt>[internal]</tt></b> As we are in a low-level class, indexes are used rather than shared_ptr.
* \internal <b><tt>[internal]</tt></b> As we are in a low-level class, indexes are used rather than
* shared_ptr.
* \endinternal
*/
std::vector<unsigned int> unknown_id_list_;
......@@ -234,6 +237,7 @@ namespace MoReFEM
* requires to modify the FEltSpace. So the lesser evil is to make a low level attribute mutable rather
* than removing at several places const that are actually relevant for all operations save the computation
* of local2global.
* \endinternal
*
*/
mutable std::vector<std::pair<std::vector<unsigned int>, std::vector<PetscInt>>> local_2global_per_unknown_id_list_;
......
......@@ -189,6 +189,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> Processor- and program-wise local2global arrays are actually stored in
* two different containers.
* \endinternal
*/
void InitLocal2Global(const NumberingSubset::vector_const_shared_ptr& numbering_subset_list,
DoConsiderProcessorWiseLocal2Global do_consider_processor_wise_local_2_global);
......@@ -250,6 +251,7 @@ namespace MoReFEM
* \brief Add a new finite element and returns a non-constant reference to it.
*
* \internal <b><tt>[internal]</tt></b> This method should only be called within friend CreateNodeListHelper.
* \endinternal
*
* \param[in] ref_felt Description of a reference finite element associated to an \a Unknown, a \a NumberingSubset
* and a \a RefGeomElt.
......@@ -339,7 +341,8 @@ namespace MoReFEM
* \brief Returns whether the \a local_felt_space is in \a domain or not.
*
* \internal <b><tt>[internal]</tt></b> felt object here just returns its underlying geometric_element;
* it's upon this one the test is really performed (domain is a purely geometruc concept).
* it's upon this one the test is really performed (domain is a purely geometric concept).
* \endinternal
*
* \param[in] local_felt_space \a LocalFEltSpace being considered (here the only relevant information
* about it is the \a GeometricElement to which it is related).
......
......@@ -307,6 +307,7 @@ namespace MoReFEM
* mutable. The reason for this is that I would have to renounce to the constness of FEltSpace elsewhere
* otherwise only for an operation that happens in the very beginning of the program, in the initialization
* phase.
* \endinternal
*/
......@@ -352,6 +353,7 @@ namespace MoReFEM
* partitioning occurs. All those still present will be put into \a dof_list_ container.
*
* \internal <b><tt>[internal]</tt></b> Should only be called in GodOfDof::Init().
* \endinternal
*/
void ComputeDofList(const std::vector<unsigned int>& dof_unique_id_list);
......@@ -488,6 +490,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> This method assumes there is one; it is checked by an assert in
* debug mode.
* \endinternal
*
* \param[in] ref_geom_elt Reference geometric element.
*
......@@ -500,7 +503,9 @@ namespace MoReFEM
/*!
* \brief Prepare the finite element list from the mesh and the domain.
*
* \internal <b><tt>[internal]</tt></b> This method is called in the constructor and should not be called again afterwards.
* \internal <b><tt>[internal]</tt></b> This method is called in the constructor and should not be called again
* afterwards.
* \endinternal
*
* \param[in] mesh Mesh upon which the GodOfDof in which the finite element space
* is defined is built.
......@@ -581,6 +586,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> Could have been computed from \a unknown_storage_, but it is convenient
* to get it stored independently.
* \endinternal
*
*/
const NumberingSubset::vector_const_shared_ptr numbering_subset_list_;
......
......@@ -111,6 +111,7 @@ namespace MoReFEM
* \brief Constructor.
*
* \internal <b><tt>[internal]</tt></b> It is private as construction should be driven by friend GodOfDofManager.
* \endinternal
*
* \copydetails doxygen_hide_mpi_param
* \param[in] mesh Mesh upon which the GodOfDof is built.
......@@ -459,9 +460,10 @@ namespace MoReFEM
/*!
* \brief Set for each concerned dof the associated value from a Dirichlet boundary condition.
*
* \internal <b><tt>[internal]</tt></b> Boundary conditions have not been discussed deeply yet and so essential ones are still
* handled à la Felisce (which is not necessarily a bad thing here).
* \internal <b><tt>[internal]</tt></b> Boundary conditions have not been discussed deeply yet and so
* essential ones are still handled à la Felisce (which is not necessarily a bad thing here).
* However, we depart much for the handling of natural ones.
* \endinternal
*/
void SetBoundaryCondition();
......@@ -532,6 +534,7 @@ namespace MoReFEM
* \brief Third part of the Init() method, which mostly settles the data reduction to processor-size.
*
* \internal <b><tt>[internal]</tt></b> This part is compiled.
* \endinternal
*
* \copydetails doxygen_hide_do_consider_processor_wise_local_2_global
* \param[in] \copydetails doxygen_hide_dof_list_per_felt_space_arg
......@@ -586,6 +589,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> This information is redundant with the one from node_per_felt_,
* but it allows to use a slicker interface (direct loop instead of three imbricated ones). // \todo #258
* \endinternal
*/
Dof::vector_shared_ptr processor_wise_dof_list_;
......@@ -594,6 +598,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> This information is redundant with the one from node_per_felt_,
* but it allows to use a slicker interface (direct loop instead of three imbricated ones).
* \endinternal
*/
Dof::vector_shared_ptr ghosted_dof_list_;
......
......@@ -79,6 +79,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> This is actually a struct to ease the syntax of
* friendship declaration in NodeBearer class.
* \endinternal
*
*/
struct ComputeMatrixPattern
......
......@@ -40,7 +40,9 @@ namespace MoReFEM
/*!
* \brief Convenient alias.
*
* \internal <b><tt>[internal]</tt></b> Unordered map use the address and not the NodeBearer object in its hash table.
* \internal <b><tt>[internal]</tt></b> Unordered map use the address and not the NodeBearer object in its
* hash table.
* \endinternal
*/
using connectivity_type = std::unordered_map<NodeBearer::shared_ptr, NodeBearer::vector_shared_ptr>;
......
......@@ -218,6 +218,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> It should be noticed that when the object is created the number of processor-wise dofs
* is not known.
* \endinternal
*/
unsigned int Nprogram_wise_dof_ = 0u;
......
......@@ -42,8 +42,9 @@ namespace MoReFEM
/*!
* \brief Return the domain that is associated to a given finite element space.
*
* \internal <b><tt>[internal]</tt></b> A factory function is used here due to the \a UniqueIdT template parameter: C++ grammar doesn't
* allow an explicit template parameter in a non-template class constructor.
* \internal <b><tt>[internal]</tt></b> A factory function is used here due to the \a UniqueIdT template
* parameter: C++ grammar doesn't allow an explicit template parameter in a non-template class constructor.
* \endinternal
*
* \copydoc doxygen_hide_input_data_arg
*
......
......@@ -149,6 +149,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> This method is nonetheless marked const as the quantity
* accessed is mutable.
* \endinternal
*
* \return Reference to the finite element storage per domain.
*/
......@@ -166,8 +167,10 @@ namespace MoReFEM
*
* The key is the UniqueId of a Domain, which is given by the method Domain::GetUniqueId().
*
* \internal <b><tt>[internal]</tt></b> The mutable keyword is there because GetLocalFEltSpacePerRefLocalFEltSpace(const Domain&) may have
* \internal <b><tt>[internal]</tt></b> The mutable keyword is there because
* GetLocalFEltSpacePerRefLocalFEltSpace(const Domain&) may have
* to compute its content on the fly. No other method should be allowed to modify it!
* \endinternal
*/
mutable std::unordered_map<unsigned int, Impl::InternalStorage> felt_storage_per_domain_;
};
......
......@@ -36,6 +36,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> This container behaves almost like a map, except that there
* is no ordering relation on the keys (that's why a std::map was not used in the first place).
* \endinternal
*/
using LocalFEltSpacePerRefLocalFEltSpace =
std::vector<std::pair<Internal::RefFEltNS::RefLocalFEltSpace::const_unique_ptr, LocalFEltSpace::per_geom_elt_index>>;
......
......@@ -219,6 +219,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> Not that relevant in release as in FEltSpace current object
* is stored in a container which key is numbering subset index.
* \endinternal
*/
const NumberingSubset& numbering_subset_;
# endif // NDEBUG
......
......@@ -73,6 +73,7 @@ namespace MoReFEM
* \internal <b><tt>[internal]</tt></b> NodeBearer objects aren't destroyed at this stage: they are still
* needed. The ones not useful on current processor will be destroyed shortly after this call, before the
* end of GodOfDof::Init().
* \endinternal
*
* \param[in] mpi_rank Rank of the current processor.
* \param[in,out] node_bearer_list In input, the full list of node bearers. In output, the processor-wise
......
......@@ -76,7 +76,8 @@ namespace MoReFEM
* \brief Reduce the mesh object to its components on the local processor.
*
* \internal This is a struct solely to help friendship declaration in Mesh.
* \internal This frienship is also the reason it is not in the anonymous namespace!
* This frienship is also the reason it is not in the anonymous namespace!
* \endinternal
*/
struct ReduceMesh
{
......
......@@ -63,9 +63,11 @@ namespace MoReFEM
* \attention the list of processor-wise node bearers is not computed here because it already was
* when the pattern of the global matrix was computed.
*
* \internal <b><tt>[internal]</tt></b> The only reason there is a class that encompass the two static methods is privilege access:
* I wanted to forbid the public call of FEltStorage::GetNonCstLocalFEltSpacePerRefLocalFEltSpace(). However
* \internal <b><tt>[internal]</tt></b> The only reason there is a class that encompass the two static
* methods is privilege access: I wanted to forbid the public call of
* FEltStorage::GetNonCstLocalFEltSpacePerRefLocalFEltSpace(). However
* such a data was required; so FEltStorage holds a friendship to present class to circumvent that.
* \endinternal
*/
struct ReduceToProcessorWise
{
......
......@@ -161,8 +161,10 @@ namespace MoReFEM
/*!
* \brief Whether the current dof is present in \a numbering_subset.
*
* \internal <b><tt>[internal]</tt></b> Such a check is made by looking into program_wise_index_per_numbering_subset_: the processor-wise
* counterpart might have been left empty if not required by the model.
* \internal <b><tt>[internal]</tt></b> Such a check is made by looking into
* program_wise_index_per_numbering_subset_: the processor-wise counterpart might have been left empty if not
* required by the model.
* \endinternal
*
* \param[in] numbering_subset Numbering subset considered.
* \return True if the dof belong to \a numbering_subset.
......@@ -172,8 +174,9 @@ namespace MoReFEM
/*!
* \brief Return a pointer to the node bearer to which the current dof belongs to.
*
* \internal <b><tt>[internal]</tt></b> No reference on purpose here: node_bearer_ is stored as a weak_ptr not to introduce circular
* dependancy.
* \internal <b><tt>[internal]</tt></b> No reference on purpose here: node_bearer_ is stored as a weak_ptr not
* to introduce circular dependancy.
* \endinternal
*
* \return Shared pointer to the enclosing \a NodeBearer.
*/
......@@ -254,7 +257,9 @@ namespace MoReFEM
/*!
* \brief List of the unique ids of all numbering subsets that cover this dof.
*
* \internal <b><tt>[internal]</tt></b> It is only intended for dev/debug purposes, hence the NDEBUG and the very unusual public status.
* \internal <b><tt>[internal]</tt></b> It is only intended for dev/debug purposes, hence the NDEBUG and the
* very unusual public status.
* \endinternal
*/
std::vector<unsigned int> numbering_subset_index_list_;
# endif // NDEBUG
......
......@@ -53,6 +53,7 @@ namespace MoReFEM
*
* \internal A node doesn't store directly an \a ExtendedUnknown: if the \a Unknown and the \a ShapeFunctionLabel
* are obvious, a same \a Node might be registered in several \a FEltSpace for different \a NumberingSubset.
* \endinternal
*/
class Node final
{
......
......@@ -144,11 +144,12 @@ namespace MoReFEM
*
* \param[in] interface Interface onto which the node is built.
*
* \internal <b><tt>[internal]</tt></b> index is given as a std::size_t as in practice it will be the size of the list
* that will be passed to this constructor:
* \internal <b><tt>[internal]</tt></b> index is given as a std::size_t as in practice it will be the size of
* the list that will be passed to this constructor:
* \code
* node_list_.push_back(std::make_shared<Node>(interface, node_list_.size()));
* \endcode
* \endinternal
*
*/
explicit NodeBearer(const Interface::shared_ptr& interface);
......@@ -178,8 +179,9 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> This method is expected to be used only in init phase, hence the brutal
* return by value of a vector.
* \internal No restriction upon \a NumberingSubset in purpose; that's the reason \a ExtendedUnknown is not used.
* No restriction upon \a NumberingSubset in purpose; that's the reason \a ExtendedUnknown is not used.
* A same \a Node might be defined upon several \a NumberingSubset.
* \endinternal
*
* \param[in] unknown \a Unknown for which the list of \a Node is sought.
* \param[in] shape_function_label Shape function label for which the list of \a Node is sought.
......@@ -188,6 +190,7 @@ namespace MoReFEM
*
* \internal This method is only called in the initialization phase, and it should remain that way: it involves
* allocating and fillind a std::vector on the fly.
* \endinternal
*/
Node::vector_shared_ptr GetNodeList(const Unknown& unknown,
const std::string& shape_function_label) const;
......@@ -239,6 +242,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> It is assumed here the node does not exist yet; such liabilities are
* handled by the class in charge of actually calling such methods (\a CreateNodeListHelper).
* \endinternal
*
* \param[in] extended_unknown Couple \a Unknown / \a Numbering subset for which the node is/are created.
* \param[in] Ndof Number of dofs to create on the node.
......
......@@ -71,11 +71,12 @@ namespace MoReFEM
/*!
* \brief Reference finite element a standard developer should use.
*
* \internal <b><tt>[internal]</tt></b> There are lower-level classes in Internal::RefFEltNS namespace that should not be used directly;
* current class is circumscribed to one operator and should provide all relevant informations a developer might
* need when implementing a new operator. The only exception is if a new type of reference finite element must be
* defined; in this case a child class of Internal::RefEltNS::BasicRefFElt should be created (see this class for much more
* details about how to do it).
* \internal <b><tt>[internal]</tt></b> There are lower-level classes in Internal::RefFEltNS namespace that
* should not be used directly; current class is circumscribed to one operator and should provide all relevant
* informations a developer might need when implementing a new operator. The only exception is if a new type of
* reference finite element must be defined; in this case a child class of Internal::RefEltNS::BasicRefFElt
* should be created (see this class for much more details about how to do it).
* \endinternal
*
*/
class RefFEltInLocalOperator final
......@@ -112,6 +113,7 @@ namespace MoReFEM
* \internal <b><tt>[internal]</tt></b> Usually I am weary of such low-level constructor arguments, but in
* this case it is fine: the user should never have to call this constructor... All the required instances
* of present class are built in ElementaryDataImpl constructor, which is itself in Internal namespace.
* \endinternal
*/
explicit RefFEltInLocalOperator(const Internal::RefFEltNS::RefFEltInFEltSpace& ref_felt,
unsigned int index_first_node_in_elementary_data,
......@@ -248,6 +250,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> The reference points to a mutable data attribute of
* RefFEltInLocalOperator.
* \endinternal
*
* \param[in] full_matrix The matrix from which a block is extracted.
* \param[in,out] ref_felt Reference finite element considered. The computed matrix is stored
......@@ -263,6 +266,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> The reference points to a mutable data attribute of
* RefFEltInLocalOperator.
* \endinternal
*
* \param[in] full_vector The vector from which a block is extracted.
* \param[in,out] ref_felt Reference finite element considered. The computed vector is stored
......
......@@ -45,6 +45,7 @@ namespace MoReFEM
* for it (the reason for this choice is mostly test purposes: Spectral is hence tested in low-orders
* as well, so any bug not related to orientation might be seen there. Also, it hence keeps a symmetry
* with definitions used for higher orders.).
* \endinternal
*
* \tparam TopologyT Topology considered (one of the class defined within RefGeomEltNS::TopologyNS namespace).
* \tparam ShapeFunctionT Shape function traits class considered (one of the class defined within
......
......@@ -46,6 +46,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> Implementation is directly taken from Ondomatic, with
* just a bit of reformatting.
* \endinternal
*/
......
......@@ -136,6 +136,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> This method should not be used outside of constructor; it is not
* const as it sets some work data attributes.
* \endinternal
*
* \return List of local nodes.
*/
......
......@@ -70,8 +70,9 @@ namespace MoReFEM
* My example calls an existing reference finite element template Spectral, but it would be true with
* a completely new class that the user would define by himself.
*
* \internal <b><tt>[internal]</tt></b> This class is a Singleton: it is important for its current use that there is one and only
* one instance of it.
* \internal <b><tt>[internal]</tt></b> This class is a Singleton: it is important for its current use that
* there is one and only one instance of it.
* \endinternal
*
*/
class BasicRefFEltFactory final : public Utilities::Singleton<BasicRefFEltFactory>
......
......@@ -54,8 +54,9 @@ namespace MoReFEM
* - No duplication of a same BasicRefFElt: if two unknowns or two finite elemen