refactor(poly): renamed core2 to core_hires and updated docs for polysolver
This commit is contained in:
@@ -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 MFEM’s MixedVectorWeakDivergenceIntegrator implements
|
* @note MFEM’s 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);
|
||||||
|
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user