message: Batched LOR: Doxygen for AMS
diff: @@ -28,36 +28,66 @@ namespace mfem
  class BatchedLOR_AMS
  {
  protected:
  - ParFiniteElementSpace &edge_fes;
  - const int dim;
  - const int order;
  - H1_FECollection vert_fec;
  - ParFiniteElementSpace vert_fes;
  - OperatorHandle A;
  - Vector *xyz_tvec;
  - HypreParMatrix *G;
  + ParFiniteElementSpace &edge_fes; ///< The Nedelec space.
  + const int dim; ///< Spatial dimension.
  + const int order; ///< Polynomial degree.
  + H1_FECollection vert_fec; ///< The corresponding H1 collection.
  + ParFiniteElementSpace vert_fes; ///< The corresponding H1 space.
  + Vector *xyz_tvec; ///< Mesh vertex coordinates in true-vector format.
  + HypreParMatrix *G; ///< Discrete gradient matrix.
  +
  + /// @name Mesh coordinate vectors in HypreParVector format
  + ///@{
  HypreParVector *x, *y, *z;
  + ///@}
  + /// @name Construct the local (elementwise) discrete gradient
  + ///@{
  void Form2DEdgeToVertex(Array<int> &edge2vert);
  void Form2DEdgeToVertex_ND(Array<int> &edge2vert);
  void Form2DEdgeToVertex_RT(Array<int> &edge2vert);
  void Form3DEdgeToVertex(Array<int> &edge2vert);
  + ///@}
  public:
  + /// @brief Construct the BatchedLOR_AMS object associated with the Nedelec
  + /// space (or RT in 2D) @a pfes_ho_.
  + ///
  + /// The vector @a X_vert represents the LOR mesh coordinates in E-vector
  + /// format, see BatchedLORAssembly::GetLORVertexCoordinates.
  BatchedLOR_AMS(ParFiniteElementSpace &pfes_ho_,
  const Vector &X_vert);
  +
  + /// @name These functions steal the discrete gradient and coordinate vectors.
  + ///@{
  + /// The caller assumes ownership and @b must delete the returned objects.
  + /// Subsequent calls will return nullptr.
  +
  HypreParMatrix *StealGradientMatrix();
  Vector *StealCoordinateVector();
  HypreParVector *StealXCoordinate();
  HypreParVector *StealYCoordinate();
  HypreParVector *StealZCoordinate();
  + ///@}
  +
  + /// @name These functions return the discrete gradient and coordinate vectors.
  + ///@{
  + /// The caller does not assume ownership, and must not delete the returned
  + /// objects.
  +
  HypreParMatrix *GetGradientMatrix() const { return G; };
  HypreParVector *GetXCoordinate() const { return x; };
  HypreParVector *GetYCoordinate() const { return y; };
  HypreParVector *GetZCoordinate() const { return z; };
  + ///@}
  +
  // The following should be protected, but contain MFEM_FORALL kernels
  +
  + /// Construct the mesh coordinate vectors (not part of the public API).
  void FormCoordinateVectors(const Vector &X_vert);
  +
  + /// Construct the discrete gradient matrix (not part of the public API).
  void FormGradientMatrix();
  ~BatchedLOR_AMS();
  };
  