/* *********************************************************************** // // Copyright (C) 2025 -- The 4D-STAR Collaboration // File Author: Emily Boudreaux // Last Modified: March 18, 2025 // // 4DSSE is free software; you can use it and/or modify // it under the terms and restrictions the GNU General Library Public // License version 3 (GPLv3) as published by the Free Software Foundation. // // 4DSSE is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU Library General Public License for more details. // // You should have received a copy of the GNU Library General Public License // along with this software; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // *********************************************************************** */ #include "mfem.hpp" #include "polyCoeff.h" namespace polycoeff{ double nonlinearSourceCoeff(const mfem::Vector &x) { double r = x.Norml2(); return std::pow(r, 2); } void diffusionCoeff(const mfem::Vector &x, mfem::Vector &v) { v.SetSize(3); double r = x.Norml2(); for (int i = 0; i < 3; i++) { v(i) = -std::pow(r, 2); } } double x1(const double n) { double r = 0; for (int i = 0; i < x1InterpCoeff::numTerms; i++) { r += x1InterpCoeff::coeff[i] * std::pow(n, x1InterpCoeff::power[i]); } return r; } }