feat(polyInitialGuess): use numeric derivitive for phi initial guess
This commit is contained in:
@@ -270,16 +270,8 @@ void PolySolver::setInitialGuess() const {
|
|||||||
return -std::pow((u*r), 2)+1.0;
|
return -std::pow((u*r), 2)+1.0;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
mfem::VectorFunctionCoefficient phiInitGuess (m_mesh->SpaceDimension(),
|
|
||||||
[this](const mfem::Vector &x, mfem::Vector &v) {
|
|
||||||
double radius = Probe::getMeshRadius(*m_mesh);
|
|
||||||
double u = -1/std::pow(radius,2);
|
|
||||||
v(0) = 2*x(0)*u;
|
|
||||||
v(1) = 2*x(1)*u;
|
|
||||||
v(2) = 2*x(2)*u;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
m_theta->ProjectCoefficient(thetaInitGuess);
|
m_theta->ProjectCoefficient(thetaInitGuess);
|
||||||
|
mfem::GradientGridFunctionCoefficient phiInitGuess (m_theta.get());
|
||||||
m_phi->ProjectCoefficient(phiInitGuess);
|
m_phi->ProjectCoefficient(phiInitGuess);
|
||||||
if (m_config.get<bool>("Poly:Solver:ViewInitialGuess", false)) {
|
if (m_config.get<bool>("Poly:Solver:ViewInitialGuess", false)) {
|
||||||
Probe::glVisView(*m_theta, *m_mesh, "θ init");
|
Probe::glVisView(*m_theta, *m_mesh, "θ init");
|
||||||
|
|||||||
Reference in New Issue
Block a user