refactor(poly): renamed core2 to core_hires and updated docs for polysolver

This commit is contained in:
2025-04-23 11:00:32 -04:00
parent c4709cc48e
commit 58840d82cd
2 changed files with 8 additions and 11 deletions

View File

@@ -45,10 +45,10 @@ struct solverBundle {
}; };
struct formBundle { struct formBundle {
std::unique_ptr<mfem::MixedBilinearForm> M; std::unique_ptr<mfem::MixedBilinearForm> M; //<-- M ∫∇ψ^θ·N^φ dV
std::unique_ptr<mfem::MixedBilinearForm> Q; std::unique_ptr<mfem::MixedBilinearForm> Q; //<-- Q ∫ψ^φ·∇N^θ dV
std::unique_ptr<mfem::BilinearForm> D; std::unique_ptr<mfem::BilinearForm> D; //<-- D ∫ψ^φ·N^φ dV
std::unique_ptr<mfem::NonlinearForm> f; std::unique_ptr<mfem::NonlinearForm> f; //<-- f(θ) ∫ψ^θ·θ^n dV
}; };
class PolySolver final{ class PolySolver final{
@@ -96,7 +96,7 @@ private: // Private methods
* *
* Create the block offsets. These define the start of each block in the combined vector. * Create the block offsets. These define the start of each block in the combined vector.
* Block offsets will be [0, thetaDofs, thetaDofs + phiDofs]. * Block offsets will be [0, thetaDofs, thetaDofs + phiDofs].
* The interpretation of this is that each block tells the operator where in the flattned (1D) vector * The interpretation of this is that each block tells the operator where in the flattened (1D) vector
* the degrees of freedom or coefficients for that free parameter start and end. I.e. * the degrees of freedom or coefficients for that free parameter start and end. I.e.
* we know that in any flattened vector will have a size thetaDofs + phiDofs. The theta dofs will span * we know that in any flattened vector will have a size thetaDofs + phiDofs. The theta dofs will span
* from blockOffsets[0] -> blockOffsets[1] and the phiDofs will span from blockOffsets[1] -> blockOffsets[2]. * from blockOffsets[0] -> blockOffsets[1] and the phiDofs will span from blockOffsets[1] -> blockOffsets[2].
@@ -118,10 +118,7 @@ private: // Private methods
* @breif Build the individual forms for the block operator (M, Q, D, and f) * @breif Build the individual forms for the block operator (M, Q, D, and f)
* *
* @param blockOffsets The offsets for the blocks in the operator * @param blockOffsets The offsets for the blocks in the operator
* @param Mform The mixed bilinear form for the mass matrix * @return forms The forms for the block operator
* @param Qform The mixed bilinear form for the gradient matrix
* @param Dform The bilinear form for the divergence matrix
* @param fform The nonlinear form for the source term
* *
* @note These forms are build exactly how they are defined in the derivation. This means that Mform -> M not -M and Qform -> Q not -Q. * @note These forms are build exactly how they are defined in the derivation. This means that Mform -> M not -M and Qform -> Q not -Q.
* *
@@ -152,7 +149,7 @@ private: // Private methods
* \f] * \f]
* *
* @note MFEMs MixedVectorWeakDivergenceIntegrator implements * @note MFEMs MixedVectorWeakDivergenceIntegrator implements
* \f$ -\nabla\!\cdot \f$, so we supply a 1 coefficient to make * \f$ -\nabla\!\cdot \f$ so we supply a 1 coefficient to make
* `Mform` represent the +M from the derivation. The single negation * `Mform` represent the +M from the derivation. The single negation
* in `PolytropeOperator` then restores the final block sign. * in `PolytropeOperator` then restores the final block sign.
* *
@@ -183,6 +180,6 @@ private: // Private methods
void LoadSolverUserParams(double &newtonRelTol, double &newtonAbsTol, int &newtonMaxIter, int &newtonPrintLevel, void LoadSolverUserParams(double &newtonRelTol, double &newtonAbsTol, int &newtonMaxIter, int &newtonPrintLevel,
double &gmresRelTol, double &gmresAbsTol, int &gmresMaxIter, int &gmresPrintLevel) const; double &gmresRelTol, double &gmresAbsTol, int &gmresMaxIter, int &gmresPrintLevel) const;
void GetDofCoordinates(mfem::FiniteElementSpace &fes, const std::string& filename) const; static void GetDofCoordinates(const mfem::FiniteElementSpace &fes, const std::string& filename);
}; };