From 95f3ce38cd8daf7dad0757348497281d108f21e1 Mon Sep 17 00:00:00 2001 From: Owen Parry <101191772+oparry-ukaea@users.noreply.github.com> Date: Thu, 11 Apr 2024 11:27:37 +0100 Subject: [PATCH] Clean up the SimpleSOL solver and structure it more like H3LAPD (#227) * Add missing header guard. * Rejig SimpleSOL such that the v_DoSolve override can be removed. * Remove redundant DoDiffusion(). * Remove redundant SimpleSOL test. * Inherit from UnsteadySystem rather than AdvectionSystem and remove some redundant functions. * Remove virtual inheritance for SOLSystem, SolWithParticlesSystem. * Remove commented code. * Remove FluidInterface inheritance. * Rejig SimpleSOL namespaces. * Remove some unused functions. * Remove some nektar-specific licence headers. * Consistent header guards. * Remove some unused functions. * Consistent variable, function names, add some docstrings. * Rejig get_flux_vector() - might address intermittent segfault? * Tidy up SourceTerms class. * Remove some 'using namespace...' directives. * Add missing std:: qualifiers. --- .../Diagnostics/mass_conservation.hpp | 14 +- .../SimpleSOL/EquationSystems/SOLSystem.cpp | 816 +++--------------- .../SimpleSOL/EquationSystems/SOLSystem.hpp | 170 ++-- .../SOLWithParticlesSystem.cpp | 104 +-- .../SOLWithParticlesSystem.hpp | 91 +- solvers/SimpleSOL/Forcing/SourceTerms.cpp | 117 +-- solvers/SimpleSOL/Forcing/SourceTerms.hpp | 91 +- .../ParticleSystems/neutral_particles.hpp | 25 +- solvers/SimpleSOL/SimpleSOL.cpp | 18 +- .../solvers/SimpleSOL/2D/2D_config.xml | 73 -- .../solvers/SimpleSOL/2D/2D_mesh.xml | 812 ----------------- test/integration/solvers/SimpleSOL/2D/ICs.rst | 8 - .../solvers/SimpleSOL/test_SimpleSOL.cpp | 15 +- .../solvers/SimpleSOL/test_SimpleSOL.hpp | 7 +- 14 files changed, 327 insertions(+), 2034 deletions(-) delete mode 100755 test/integration/solvers/SimpleSOL/2D/2D_config.xml delete mode 100755 test/integration/solvers/SimpleSOL/2D/2D_mesh.xml delete mode 100644 test/integration/solvers/SimpleSOL/2D/ICs.rst diff --git a/solvers/SimpleSOL/Diagnostics/mass_conservation.hpp b/solvers/SimpleSOL/Diagnostics/mass_conservation.hpp index f09740d6..f6854cec 100644 --- a/solvers/SimpleSOL/Diagnostics/mass_conservation.hpp +++ b/solvers/SimpleSOL/Diagnostics/mass_conservation.hpp @@ -1,23 +1,21 @@ #ifndef __SIMPLESOL_MASS_CONSERVATION_H_ #define __SIMPLESOL_MASS_CONSERVATION_H_ +#include #include #include #include -using namespace NESO; -using namespace NESO::Particles; - -#include -using namespace Nektar; #include "../ParticleSystems/neutral_particles.hpp" #include #include +namespace LU = Nektar::LibUtilities; + template class MassRecording { protected: - const LibUtilities::SessionReaderSharedPtr session; + const LU::SessionReaderSharedPtr session; std::shared_ptr particle_sys; std::shared_ptr rho; @@ -27,10 +25,10 @@ template class MassRecording { double initial_mass_fluid; int mass_recording_step; int rank; - ofstream fh; + std::ofstream fh; public: - MassRecording(const LibUtilities::SessionReaderSharedPtr session, + MassRecording(const LU::SessionReaderSharedPtr session, std::shared_ptr particle_sys, std::shared_ptr rho) : session(session), particle_sys(particle_sys), rho(rho), diff --git a/solvers/SimpleSOL/EquationSystems/SOLSystem.cpp b/solvers/SimpleSOL/EquationSystems/SOLSystem.cpp index bd153dbf..9f95757a 100644 --- a/solvers/SimpleSOL/EquationSystems/SOLSystem.cpp +++ b/solvers/SimpleSOL/EquationSystems/SOLSystem.cpp @@ -1,61 +1,33 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// File SOLSystem.cpp -// -// For more information, please see: http://www.nektar.info -// -// The MIT License -// -// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA), -// Department of Aeronautics, Imperial College London (UK), and Scientific -// Computing and Imaging Institute, University of Utah (USA). -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// -// Description: Equation system heavily based on CompressibleFlowSystem -// -/////////////////////////////////////////////////////////////////////////////// - #include #include #include "SOLSystem.hpp" -namespace Nektar { -std::string SOLSystem::className = - SolverUtils::GetEquationSystemFactory().RegisterCreatorFunction( +namespace NESO::Solvers { +std::string SOLSystem::class_name = + SU::GetEquationSystemFactory().RegisterCreatorFunction( "SOL", SOLSystem::create, "SOL equations in conservative variables."); -SOLSystem::SOLSystem(const LibUtilities::SessionReaderSharedPtr &pSession, - const SpatialDomains::MeshGraphSharedPtr &pGraph) - : UnsteadySystem(pSession, pGraph), AdvectionSystem(pSession, pGraph), - m_field_to_index(pSession->GetVariables()) { - m_required_flds = {"rho", "rhou", "E"}; - if (m_spacedim == 2) { - m_required_flds.push_back("rhov"); +SOLSystem::SOLSystem(const LU::SessionReaderSharedPtr &session, + const SD::MeshGraphSharedPtr &graph) + : UnsteadySystem(session, graph), + m_field_to_index(session->GetVariables()) { + + // m_spacedim isn't set at this point, for some reason; use mesh dim instead + NESOASSERT(graph->GetSpaceDimension() == 1 || graph->GetSpaceDimension() == 2, + "Unsupported mush dimension for SOLSystem - must be 1 or 2."); + if (graph->GetSpaceDimension() == 2) { + m_required_flds = {"rho", "rhou", "rhov", "E"}; + } else { + m_required_flds = {"rho", "rhou", "E"}; } + m_int_fld_names = std::vector(m_required_flds); } /** * Check all required fields are defined */ -void SOLSystem::ValidateFieldList() { +void SOLSystem::validate_field_list() { for (auto &fld_name : m_required_flds) { ASSERTL0(m_field_to_index.get_idx(fld_name) >= 0, "Required field [" + fld_name + "] is not defined."); @@ -66,39 +38,49 @@ void SOLSystem::ValidateFieldList() { * @brief Initialization object for SOLSystem class. */ void SOLSystem::v_InitObject(bool DeclareField) { - ValidateFieldList(); - AdvectionSystem::v_InitObject(DeclareField); + validate_field_list(); + UnsteadySystem::v_InitObject(DeclareField); + + // Tell UnsteadySystem to only integrate a subset of fields in time + // (Ignore fields that don't have a time derivative) + m_intVariables.resize(m_int_fld_names.size()); + for (auto ii = 0; ii < m_int_fld_names.size(); ii++) { + int var_idx = m_field_to_index.get_idx(m_int_fld_names[ii]); + ASSERTL0(var_idx >= 0, "Setting time integration vars - GetIntFieldNames() " + "returned an invalid field name."); + m_intVariables[ii] = var_idx; + } for (int i = 0; i < m_fields.size(); i++) { // Use BwdTrans to make sure initial condition is in solution space m_fields[i]->BwdTrans(m_fields[i]->GetCoeffs(), m_fields[i]->UpdatePhys()); } - m_varConv = MemoryManager::AllocateSharedPtr(m_session, - m_spacedim); + m_var_converter = MemoryManager::AllocateSharedPtr( + m_session, m_spacedim); ASSERTL0(m_session->DefinesSolverInfo("UPWINDTYPE"), "No UPWINDTYPE defined in session."); - // Set up locations of velocity vector. - m_vecLocs = Array>(1); - m_vecLocs[0] = Array(m_spacedim); + // Store velocity field indices for the Riemann solver. + m_vec_locs = Array>(1); + m_vec_locs[0] = Array(m_spacedim); for (int i = 0; i < m_spacedim; ++i) { - m_vecLocs[0][i] = 1 + i; + m_vec_locs[0][i] = 1 + i; } // Loading parameters from session file m_session->LoadParameter("Gamma", m_gamma, 1.4); // Setting up advection and diffusion operators - InitAdvection(); + init_advection(); - // Set up Forcing objects for source terms. - m_forcing = SolverUtils::Forcing::Load(m_session, shared_from_this(), - m_fields, m_fields.size()); + // Set up forcing/source term objects. + m_forcing = SU::Forcing::Load(m_session, shared_from_this(), m_fields, + m_fields.size()); - m_ode.DefineOdeRhs(&SOLSystem::DoOdeRhs, this); - m_ode.DefineProjection(&SOLSystem::DoOdeProjection, this); + m_ode.DefineOdeRhs(&SOLSystem::explicit_time_int, this); + m_ode.DefineProjection(&SOLSystem::do_ode_projection, this); } /** @@ -107,718 +89,154 @@ void SOLSystem::v_InitObject(bool DeclareField) { SOLSystem::~SOLSystem() {} /** - * @brief Create advection and diffusion objects for CFS + * @brief Initialisation, including creation of advection object. */ -void SOLSystem::InitAdvection() { - // Check if projection type is correct - ASSERTL0(m_projectionType == MultiRegions::eDiscontinuous, +void SOLSystem::init_advection() { + // Only DG is supported + ASSERTL0(m_projectionType == MR::eDiscontinuous, "Unsupported projection type: must be DG."); - std::string advName, riemName; - m_session->LoadSolverInfo("AdvectionType", advName, "WeakDG"); + std::string adv_type, riemann_type; + m_session->LoadSolverInfo("AdvectionType", adv_type, "WeakDG"); - m_advObject = - SolverUtils::GetAdvectionFactory().CreateInstance(advName, advName); + m_adv = SU::GetAdvectionFactory().CreateInstance(adv_type, adv_type); - m_advObject->SetFluxVector(&SOLSystem::GetFluxVector, this); + m_adv->SetFluxVector(&SOLSystem::get_flux_vector, this); // Setting up Riemann solver for advection operator - m_session->LoadSolverInfo("UpwindType", riemName, "Average"); + m_session->LoadSolverInfo("UpwindType", riemann_type, "Average"); - SolverUtils::RiemannSolverSharedPtr riemannSolver; - riemannSolver = SolverUtils::GetRiemannSolverFactory().CreateInstance( - riemName, m_session); + SU::RiemannSolverSharedPtr riemann_solver; + riemann_solver = + SU::GetRiemannSolverFactory().CreateInstance(riemann_type, m_session); // Setting up parameters for advection operator Riemann solver - riemannSolver->SetParam("gamma", &SOLSystem::GetGamma, this); - riemannSolver->SetAuxVec("vecLocs", &SOLSystem::GetVecLocs, this); - riemannSolver->SetVector("N", &SOLSystem::GetNormals, this); + riemann_solver->SetParam("gamma", &SOLSystem::get_gamma, this); + riemann_solver->SetAuxVec("vecLocs", &SOLSystem::get_vec_locs, this); + riemann_solver->SetVector("N", &SOLSystem::get_trace_norms, this); // Concluding initialisation of advection / diffusion operators - m_advObject->SetRiemannSolver(riemannSolver); - m_advObject->InitObject(m_session, m_fields); + m_adv->SetRiemannSolver(riemann_solver); + m_adv->InitObject(m_session, m_fields); } /** * @brief Compute the right-hand side. */ -void SOLSystem::DoOdeRhs( - const Array> &inarray, - Array> &outarray, const NekDouble time) { - int nvariables = inarray.size(); - int npoints = GetNpoints(); - int nTracePts = GetTraceTotPoints(); +void SOLSystem::explicit_time_int( + const Array> &in_arr, + Array> &out_arr, const NekDouble time) { + int num_vars = in_arr.size(); + int num_pts = GetNpoints(); + int num_trace_pts = GetTraceTotPoints(); - // Store forwards/backwards space along trace space - Array> Fwd(nvariables); - Array> Bwd(nvariables); + // Store forwards/backwards values along trace space + Array> fwd(num_vars); + Array> bwd(num_vars); if (m_HomogeneousType == eHomogeneous1D) { - Fwd = NullNekDoubleArrayOfArray; - Bwd = NullNekDoubleArrayOfArray; + fwd = NullNekDoubleArrayOfArray; + bwd = NullNekDoubleArrayOfArray; } else { - for (int i = 0; i < nvariables; ++i) { - Fwd[i] = Array(nTracePts, 0.0); - Bwd[i] = Array(nTracePts, 0.0); - m_fields[i]->GetFwdBwdTracePhys(inarray[i], Fwd[i], Bwd[i]); + for (int i = 0; i < num_vars; ++i) { + fwd[i] = Array(num_trace_pts, 0.0); + bwd[i] = Array(num_trace_pts, 0.0); + m_fields[i]->GetFwdBwdTracePhys(in_arr[i], fwd[i], bwd[i]); } } // Calculate advection - DoAdvection(inarray, outarray, time, Fwd, Bwd); + do_advection(in_arr, out_arr, time, fwd, bwd); - // Negate results - for (int i = 0; i < nvariables; ++i) { - Vmath::Neg(npoints, outarray[i], 1); + // Ensure advection terms have the correct sign + for (int i = 0; i < num_vars; ++i) { + Vmath::Neg(num_pts, out_arr[i], 1); } - // Add diffusion terms - DoDiffusion(inarray, outarray, Fwd, Bwd); - // Add forcing terms for (auto &x : m_forcing) { - x->Apply(m_fields, inarray, outarray, time); + x->Apply(m_fields, in_arr, out_arr, time); } } /** - * Needs to be defined for explicit time integration, but does nothing. + * @brief ODE projection method: needs to be defined for explicit time + * integration. */ -void SOLSystem::DoOdeProjection( - const Array> &inarray, - Array> &outarray, const NekDouble time) { +void SOLSystem::do_ode_projection( + const Array> &in_arr, + Array> &out_arr, const NekDouble time) { // Do nothing } -/** - * @brief Initialises the time integration scheme (as specified in the - * session file), and performs the time integration. - * - * UnsteadySystem::v_DoSolve() is duplicated more-or-less wholesale here; the - * difference is that the field phys vals used to initialise the time - * integrator object are *non-const* refs to those stores in m_fields. - * Without this, changes to m_fields in other member functions will not - * propagate to the time step loop. - */ -void SOLSystem::v_DoSolve() { - ASSERTL0(m_intScheme != 0, "No time integration scheme."); - - int i = 1; - int nvariables = 0; - int nfields = m_fields.size(); - - if (m_intVariables.empty()) { - for (i = 0; i < nfields; ++i) { - m_intVariables.push_back(i); - } - nvariables = nfields; - } else { - nvariables = m_intVariables.size(); - } - - // Integrate in wave-space if using homogeneous1D - if (m_HomogeneousType != eNotHomogeneous && m_homoInitialFwd) { - for (i = 0; i < nfields; ++i) { - m_fields[i]->HomogeneousFwdTrans(m_fields[i]->GetPhys(), - m_fields[i]->UpdatePhys()); - m_fields[i]->SetWaveSpace(true); - m_fields[i]->SetPhysState(false); - } - } - - // Set up wrapper to fields data storage. - Array> fields(nvariables); - - // Order storage to list time-integrated fields first. - for (i = 0; i < nvariables; ++i) { - fields[i] = m_fields[m_intVariables[i]]->UpdatePhys(); - m_fields[m_intVariables[i]]->SetPhysState(false); - } - - // Initialise time integration scheme - m_intScheme->InitializeScheme(m_timestep, fields, m_time, m_ode); - - // Initialise filters - for (auto &x : m_filters) { - x.second->Initialise(m_fields, m_time); - } - - LibUtilities::Timer timer; - bool doCheckTime = false; - int step = m_initialStep; - int stepCounter = 0; - int restartStep = -1; - NekDouble intTime = 0.0; - NekDouble cpuTime = 0.0; - NekDouble cpuPrevious = 0.0; - NekDouble elapsed = 0.0; - NekDouble totFilterTime = 0.0; - - m_lastCheckTime = 0.0; - - m_TotNewtonIts = 0; - m_TotLinIts = 0; - m_TotImpStages = 0; - - Array abortFlags(2, 0); - std::string abortFile = "abort"; - if (m_session->DefinesSolverInfo("CheckAbortFile")) { - abortFile = m_session->GetSolverInfo("CheckAbortFile"); - } - - NekDouble tmp_cflSafetyFactor = m_cflSafetyFactor; - - m_timestepMax = m_timestep; - while ((step < m_steps || m_time < m_fintime - NekConstants::kNekZeroTol) && - abortFlags[1] == 0) { - restartStep++; - - if (m_CFLGrowth > 1.0 && m_cflSafetyFactor < m_CFLEnd) { - tmp_cflSafetyFactor = - std::min(m_CFLEnd, m_CFLGrowth * tmp_cflSafetyFactor); - } - - m_flagUpdatePreconMat = true; - - // Flag to update AV - m_CalcPhysicalAV = true; - // Frozen preconditioner checks - if (UpdateTimeStepCheck()) { - m_cflSafetyFactor = tmp_cflSafetyFactor; - - if (m_cflSafetyFactor) { - m_timestep = GetTimeStep(fields); - } - - // Ensure that the final timestep finishes at the final - // time, or at a prescribed IO_CheckTime. - if (m_time + m_timestep > m_fintime && m_fintime > 0.0) { - m_timestep = m_fintime - m_time; - } else if (m_checktime && - m_time + m_timestep - m_lastCheckTime >= m_checktime) { - m_lastCheckTime += m_checktime; - m_timestep = m_lastCheckTime - m_time; - doCheckTime = true; - } - } - - if (m_TimeIncrementFactor > 1.0) { - NekDouble timeincrementFactor = m_TimeIncrementFactor; - m_timestep *= timeincrementFactor; - - if (m_time + m_timestep > m_fintime && m_fintime > 0.0) { - m_timestep = m_fintime - m_time; - } - } - - // Perform any solver-specific pre-integration steps - timer.Start(); - if (v_PreIntegrate(step)) { - break; - } - - m_StagesPerStep = 0; - m_TotLinItePerStep = 0; - - ASSERTL0(m_timestep > 0, "m_timestep < 0"); - - fields = m_intScheme->TimeIntegrate(stepCounter, m_timestep, m_ode); - timer.Stop(); - - m_time += m_timestep; - elapsed = timer.TimePerTest(1); - intTime += elapsed; - cpuTime += elapsed; - - // Write out status information - if (m_session->GetComm()->GetRank() == 0 && !((step + 1) % m_infosteps)) { - std::cout << "Steps: " << std::setw(8) << std::left << step + 1 << " " - << "Time: " << std::setw(12) << std::left << m_time; - - if (m_cflSafetyFactor) { - std::cout << " Time-step: " << std::setw(12) << std::left << m_timestep; - } - - std::stringstream ss; - ss << cpuTime << "s"; - std::cout << " CPU Time: " << std::setw(8) << std::left << ss.str() - << std::endl; - cpuPrevious = cpuTime; - cpuTime = 0.0; - - if (m_flagImplicitItsStatistics && m_flagImplicitSolver) { - std::cout << " &&" - << " TotImpStages= " << m_TotImpStages - << " TotNewtonIts= " << m_TotNewtonIts - << " TotLinearIts = " << m_TotLinIts << std::endl; - } - } - - // Transform data into coefficient space - for (i = 0; i < nvariables; ++i) { - // copy fields into ExpList::m_phys and assign the new - // array to fields - m_fields[m_intVariables[i]]->SetPhys(fields[i]); - fields[i] = m_fields[m_intVariables[i]]->UpdatePhys(); - if (v_RequireFwdTrans()) { - m_fields[m_intVariables[i]]->FwdTransLocalElmt( - fields[i], m_fields[m_intVariables[i]]->UpdateCoeffs()); - } - m_fields[m_intVariables[i]]->SetPhysState(false); - } - - // Perform any solver-specific post-integration steps - if (v_PostIntegrate(step)) { - break; - } - - // // Check for steady-state - // if (m_steadyStateTol > 0.0 && (!((step + 1) % m_steadyStateSteps))) { - // if (CheckSteadyState(step, intTime)) { - // if (m_comm->GetRank() == 0) { - // cout << "Reached Steady State to tolerance " << m_steadyStateTol - // << endl; - // } - // break; - // } - // } - - // test for abort conditions (nan, or abort file) - if (m_abortSteps && !((step + 1) % m_abortSteps)) { - abortFlags[0] = 0; - for (i = 0; i < nvariables; ++i) { - if (Vmath::Nnan(fields[i].size(), fields[i], 1) > 0) { - abortFlags[0] = 1; - } - } - - // rank zero looks for abort file and deltes it - // if it exists. The communicates the abort - if (m_session->GetComm()->GetRank() == 0) { - if (boost::filesystem::exists(abortFile)) { - boost::filesystem::remove(abortFile); - abortFlags[1] = 1; - } - } - - m_session->GetComm()->AllReduce(abortFlags, LibUtilities::ReduceMax); - - ASSERTL0(!abortFlags[0], "NaN found during time integration."); - } - - // Update filters - for (auto &x : m_filters) { - timer.Start(); - x.second->Update(m_fields, m_time); - timer.Stop(); - elapsed = timer.TimePerTest(1); - totFilterTime += elapsed; - - // Write out individual filter status information - if (m_session->GetComm()->GetRank() == 0 && - !((step + 1) % m_filtersInfosteps) && !m_filters.empty() && - m_session->DefinesCmdLineArgument("verbose")) { - std::stringstream s0; - s0 << x.first << ":"; - std::stringstream s1; - s1 << elapsed << "s"; - std::stringstream s2; - s2 << elapsed / cpuPrevious * 100 << "%"; - std::cout << "CPU time for filter " << std::setw(25) << std::left - << s0.str() << std::setw(12) << std::left << s1.str() - << std::endl - << "\t Percentage of time integration: " << std::setw(10) - << std::left << s2.str() << std::endl; - } - } - - // Write out overall filter status information - if (m_session->GetComm()->GetRank() == 0 && - !((step + 1) % m_filtersInfosteps) && !m_filters.empty()) { - std::stringstream ss; - ss << totFilterTime << "s"; - std::cout << "Total filters CPU Time:\t\t\t " << std::setw(10) - << std::left << ss.str() << std::endl; - } - totFilterTime = 0.0; - - // Write out checkpoint files - if ((m_checksteps && !((step + 1) % m_checksteps)) || doCheckTime) { - if (m_HomogeneousType != eNotHomogeneous) { - std::vector transformed(nfields, false); - for (i = 0; i < nfields; i++) { - if (m_fields[i]->GetWaveSpace()) { - m_fields[i]->SetWaveSpace(false); - m_fields[i]->BwdTrans(m_fields[i]->GetCoeffs(), - m_fields[i]->UpdatePhys()); - m_fields[i]->SetPhysState(true); - transformed[i] = true; - } - } - Checkpoint_Output(m_nchk); - m_nchk++; - for (i = 0; i < nfields; i++) { - if (transformed[i]) { - m_fields[i]->SetWaveSpace(true); - m_fields[i]->HomogeneousFwdTrans(m_fields[i]->GetPhys(), - m_fields[i]->UpdatePhys()); - m_fields[i]->SetPhysState(false); - } - } - } else { - Checkpoint_Output(m_nchk); - m_nchk++; - } - doCheckTime = false; - } - - // Step advance - ++step; - ++stepCounter; - } - - // Print out summary statistics - if (m_session->GetComm()->GetRank() == 0) { - if (m_cflSafetyFactor > 0.0) { - std::cout << "CFL safety factor : " << m_cflSafetyFactor << std::endl - << "CFL time-step : " << m_timestep << std::endl; - } - - if (m_session->GetSolverInfo("Driver") != "SteadyState") { - std::cout << "Time-integration : " << intTime << "s" << std::endl; - } - - if (m_flagImplicitItsStatistics && m_flagImplicitSolver) { - std::cout << "-------------------------------------------" << std::endl - << "Total Implicit Stages: " << m_TotImpStages << std::endl - << "Total Newton Its : " << m_TotNewtonIts << std::endl - << "Total Linear Its : " << m_TotLinIts << std::endl - << "-------------------------------------------" << std::endl; - } - } - - // If homogeneous, transform back into physical space if necessary. - if (m_HomogeneousType != eNotHomogeneous) { - for (i = 0; i < nfields; i++) { - if (m_fields[i]->GetWaveSpace()) { - m_fields[i]->SetWaveSpace(false); - m_fields[i]->BwdTrans(m_fields[i]->GetCoeffs(), - m_fields[i]->UpdatePhys()); - m_fields[i]->SetPhysState(true); - } - } - } else { - for (i = 0; i < nvariables; ++i) { - m_fields[m_intVariables[i]]->SetPhys(fields[i]); - m_fields[m_intVariables[i]]->SetPhysState(true); - } - } - - // Finalise filters - for (auto &x : m_filters) { - x.second->Finalise(m_fields, m_time); - } - - // Print for 1D problems - if (m_spacedim == 1) { - v_AppendOutput1D(fields); - } -} - /** * @brief Compute the advection terms for the right-hand side */ -void SOLSystem::DoAdvection( - const Array> &inarray, - Array> &outarray, const NekDouble time, - const Array> &pFwd, - const Array> &pBwd) { +void SOLSystem::do_advection( + const Array> &in_arr, + Array> &out_arr, const NekDouble time, + const Array> &fwd, + const Array> &bwd) { // Only fields up to and including the energy need to be advected int num_fields_to_advect = m_field_to_index.get_idx("E") + 1; - Array> advVel(m_spacedim); - m_advObject->Advect(num_fields_to_advect, m_fields, advVel, inarray, outarray, - time, pFwd, pBwd); -} - -/** - * @brief Add the diffusions terms to the right-hand side - */ -void SOLSystem::DoDiffusion( - const Array> &inarray, - Array> &outarray, - const Array> &pFwd, - const Array> &pBwd) { - boost::ignore_unused(inarray, outarray, pFwd, pBwd); - // Do nothing for now + Array> adv_vel(m_spacedim); + m_adv->Advect(num_fields_to_advect, m_fields, adv_vel, in_arr, out_arr, time, + fwd, bwd); } /** - * @brief Return the flux vector for the compressible Euler equations. + * @brief Return a flux vector appropriate for the compressible Euler equations. * - * @param physfield Fields. - * @param flux Resulting flux. + * @param fields_vals Physical field values at the quadrature points. + * @param flux Resulting flux tensor. */ -void SOLSystem::GetFluxVector( - const Array> &physfield, +void SOLSystem::get_flux_vector( + const Array> &fields_vals, TensorOfArray3D &flux) { - // Energy is the last field of relevance, regardless of mesh dimension + const auto rho_idx = m_field_to_index.get_idx("rho"); const auto E_idx = m_field_to_index.get_idx("E"); - const auto nVariables = E_idx + 1; - const auto nPts = physfield[0].size(); + // Energy is the last field of relevance, regardless of mesh dimension + const auto num_vars = E_idx + 1; + const auto num_pts = fields_vals[0].size(); - // Temporary space for 2 velocity fields; second one is ignored in 1D - constexpr unsigned short num_all_flds = 4; - constexpr unsigned short num_vel_flds = 2; + // Temporary storage for each point (needed for var converter) + Array field_vals_pt(num_vars); + Array vel_vals_pt(m_spacedim); - for (std::size_t p = 0; p < nPts; ++p) { - // Create local storage - std::array all_phys; - std::array vel_phys; + // Point-wise calculation of flux vector + for (std::size_t pidx = 0; pidx < num_pts; ++pidx) { - // Copy phys vals for this point - for (std::size_t f = 0; f < nVariables; ++f) { - all_phys[f] = physfield[f][p]; + // Extract field vals for this point + for (std::size_t fidx = 0; fidx < num_vars; ++fidx) { + field_vals_pt[fidx] = fields_vals[fidx][pidx]; } // 1 / rho - NekDouble oneOrho = 1.0 / all_phys[0]; + NekDouble oneOrho = 1.0 / field_vals_pt[rho_idx]; for (std::size_t dim = 0; dim < m_spacedim; ++dim) { // Add momentum densities to flux vector - flux[0][dim][p] = all_phys[dim + 1]; + flux[0][dim][pidx] = field_vals_pt[dim + 1]; // Compute velocities from momentum densities - vel_phys[dim] = all_phys[dim + 1] * oneOrho; + vel_vals_pt[dim] = field_vals_pt[dim + 1] * oneOrho; } - NekDouble pressure = m_varConv->GetPressure(all_phys.data()); - NekDouble ePlusP = all_phys[E_idx] + pressure; + NekDouble pressure = m_var_converter->GetPressure(field_vals_pt.data()); + NekDouble e_plus_P = field_vals_pt[E_idx] + pressure; for (auto dim = 0; dim < m_spacedim; ++dim) { // Flux vector for the velocity fields for (auto vdim = 0; vdim < m_spacedim; ++vdim) { - flux[dim + 1][vdim][p] = vel_phys[vdim] * all_phys[dim + 1]; + flux[1 + dim][vdim][pidx] = vel_vals_pt[vdim] * field_vals_pt[dim + 1]; } // Add pressure to appropriate field - flux[dim + 1][dim][p] += pressure; + flux[1 + dim][dim][pidx] += pressure; // Energy flux - flux[m_spacedim + 1][dim][p] = ePlusP * vel_phys[dim]; - } - } -} - -/** - * @brief Calculate the maximum timestep on each element - * subject to CFL restrictions. - */ -void SOLSystem::GetElmtTimeStep( - const Array> &inarray, - Array &tstep) { - boost::ignore_unused(inarray); - - int nElements = m_fields[0]->GetExpSize(); - - // Change value of m_timestep (in case it is set to zero) - NekDouble tmp = m_timestep; - m_timestep = 1.0; - - Array cfl(nElements); - cfl = GetElmtCFLVals(); - - // Factors to compute the time-step limit - NekDouble alpha = MaxTimeStepEstimator(); - - // Loop over elements to compute the time-step limit for each element - for (int n = 0; n < nElements; ++n) { - tstep[n] = m_cflSafetyFactor * alpha / cfl[n]; - } - - // Restore value of m_timestep - m_timestep = tmp; -} - -/** - * @brief Calculate the maximum timestep subject to CFL restrictions. - */ -NekDouble SOLSystem::v_GetTimeStep( - const Array> &inarray) { - int nElements = m_fields[0]->GetExpSize(); - Array tstep(nElements, 0.0); - - GetElmtTimeStep(inarray, tstep); - - // Get the minimum time-step limit and return the time-step - NekDouble TimeStep = Vmath::Vmin(nElements, tstep, 1); - m_comm->AllReduce(TimeStep, LibUtilities::ReduceMin); - - NekDouble tmp = m_timestep; - m_timestep = TimeStep; - - Array cflNonAcoustic(nElements, 0.0); - cflNonAcoustic = GetElmtCFLVals(false); - - // Get the minimum time-step limit and return the time-step - NekDouble MaxcflNonAcoustic = Vmath::Vmax(nElements, cflNonAcoustic, 1); - m_comm->AllReduce(MaxcflNonAcoustic, LibUtilities::ReduceMax); - - m_cflNonAcoustic = MaxcflNonAcoustic; - m_timestep = tmp; - - return TimeStep; -} - -/** - * @brief Compute the advection velocity in the standard space - * for each element of the expansion. - */ -Array -SOLSystem::v_GetMaxStdVelocity(const NekDouble SpeedSoundFactor) { - int nTotQuadPoints = GetTotPoints(); - int n_element = m_fields[0]->GetExpSize(); - int expdim = m_fields[0]->GetGraph()->GetMeshDimension(); - int nfields = m_fields.size(); - int offset; - Array tmp; - - Array> physfields(nfields); - for (int i = 0; i < nfields; ++i) { - physfields[i] = m_fields[i]->GetPhys(); - } - - Array stdV(n_element, 0.0); - - // Getting the velocity vector on the 2D normal space - Array> velocity(m_spacedim); - Array> stdVelocity(m_spacedim); - Array> stdSoundSpeed(m_spacedim); - Array soundspeed(nTotQuadPoints); - LibUtilities::PointsKeyVector ptsKeys; - - for (int i = 0; i < m_spacedim; ++i) { - velocity[i] = Array(nTotQuadPoints); - stdVelocity[i] = Array(nTotQuadPoints, 0.0); - stdSoundSpeed[i] = Array(nTotQuadPoints, 0.0); - } - - m_varConv->GetVelocityVector(physfields, velocity); - m_varConv->GetSoundSpeed(physfields, soundspeed); - - for (int el = 0; el < n_element; ++el) { - ptsKeys = m_fields[0]->GetExp(el)->GetPointsKeys(); - offset = m_fields[0]->GetPhys_Offset(el); - int nq = m_fields[0]->GetExp(el)->GetTotPoints(); - - const SpatialDomains::GeomFactorsSharedPtr metricInfo = - m_fields[0]->GetExp(el)->GetGeom()->GetMetricInfo(); - const Array &gmat = - m_fields[0]->GetExp(el)->GetGeom()->GetMetricInfo()->GetDerivFactors( - ptsKeys); - - // Convert to standard element - // consider soundspeed in all directions - // (this might overestimate the cfl) - if (metricInfo->GetGtype() == SpatialDomains::eDeformed) { - // d xi/ dx = gmat = 1/J * d x/d xi - for (int i = 0; i < expdim; ++i) { - Vmath::Vmul(nq, gmat[i], 1, velocity[0] + offset, 1, - tmp = stdVelocity[i] + offset, 1); - Vmath::Vmul(nq, gmat[i], 1, soundspeed + offset, 1, - tmp = stdSoundSpeed[i] + offset, 1); - for (int j = 1; j < expdim; ++j) { - Vmath::Vvtvp(nq, gmat[expdim * j + i], 1, velocity[j] + offset, 1, - stdVelocity[i] + offset, 1, - tmp = stdVelocity[i] + offset, 1); - Vmath::Vvtvp(nq, gmat[expdim * j + i], 1, soundspeed + offset, 1, - stdSoundSpeed[i] + offset, 1, - tmp = stdSoundSpeed[i] + offset, 1); - } - } - } else { - for (int i = 0; i < expdim; ++i) { - Vmath::Smul(nq, gmat[i][0], velocity[0] + offset, 1, - tmp = stdVelocity[i] + offset, 1); - Vmath::Smul(nq, gmat[i][0], soundspeed + offset, 1, - tmp = stdSoundSpeed[i] + offset, 1); - for (int j = 1; j < expdim; ++j) { - Vmath::Svtvp(nq, gmat[expdim * j + i][0], velocity[j] + offset, 1, - stdVelocity[i] + offset, 1, - tmp = stdVelocity[i] + offset, 1); - Vmath::Svtvp(nq, gmat[expdim * j + i][0], soundspeed + offset, 1, - stdSoundSpeed[i] + offset, 1, - tmp = stdSoundSpeed[i] + offset, 1); - } - } - } - - NekDouble vel; - for (int i = 0; i < nq; ++i) { - NekDouble pntVelocity = 0.0; - for (int j = 0; j < expdim; ++j) { - // Add sound speed - vel = std::abs(stdVelocity[j][offset + i]) + - SpeedSoundFactor * std::abs(stdSoundSpeed[j][offset + i]); - pntVelocity += vel * vel; - } - pntVelocity = sqrt(pntVelocity); - if (pntVelocity > stdV[el]) { - stdV[el] = pntVelocity; - } + flux[m_spacedim + 1][dim][pidx] = e_plus_P * vel_vals_pt[dim]; } } - - return stdV; -} - -/** - * - */ -void SOLSystem::GetPressure( - const Array> &physfield, - Array &pressure) { - m_varConv->GetPressure(physfield, pressure); -} - -/** - * - */ -void SOLSystem::GetDensity( - const Array> &physfield, - Array &density) { - density = physfield[0]; -} - -/** - * - */ -void SOLSystem::GetVelocity( - const Array> &physfield, - Array> &velocity) { - m_varConv->GetVelocityVector(physfield, velocity); -} - -/** - * @brief Compute an estimate of minimum h/p for each element of the expansion. - */ -Array SOLSystem::GetElmtMinHP(void) { - int nElements = m_fields[0]->GetExpSize(); - Array hOverP(nElements, 1.0); - - // Determine h/p scaling - Array pOrderElmt = m_fields[0]->EvalBasisNumModesMaxPerExp(); - for (int e = 0; e < nElements; e++) { - NekDouble h = 1.0e+10; - - LocalRegions::Expansion1DSharedPtr exp1D; - exp1D = m_fields[0]->GetExp(e)->as(); - h = std::min(h, exp1D->GetGeom1D()->GetVertex(0)->dist( - *(exp1D->GetGeom1D()->GetVertex(1)))); - - // Determine h/p scaling - hOverP[e] = h / std::max(pOrderElmt[e] - 1, 1); - } - - return hOverP; } -} // namespace Nektar +} // namespace NESO::Solvers diff --git a/solvers/SimpleSOL/EquationSystems/SOLSystem.hpp b/solvers/SimpleSOL/EquationSystems/SOLSystem.hpp index 52399274..430b7605 100644 --- a/solvers/SimpleSOL/EquationSystems/SOLSystem.hpp +++ b/solvers/SimpleSOL/EquationSystems/SOLSystem.hpp @@ -1,39 +1,5 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// File SOLSystem.hpp -// -// For more information, please see: http://www.nektar.info -// -// The MIT License -// -// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA), -// Department of Aeronautics, Imperial College London (UK), and Scientific -// Computing and Imaging Institute, University of Utah (USA). -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// -// Description: Auxiliary functions for the 1D SOL system -// -/////////////////////////////////////////////////////////////////////////////// - -#ifndef SOLSYSTEM_H -#define SOLSYSTEM_H +#ifndef __SIMPLESOL_SOLSYSTEM_H_ +#define __SIMPLESOL_SOLSYSTEM_H_ #include "nektar_interface/utilities.hpp" @@ -41,122 +7,96 @@ #include #include #include -#include +#include #include #include #include #include #include #include -namespace Nektar { -class SOLSystem : virtual public SolverUtils::AdvectionSystem, - virtual public SolverUtils::FluidInterface { +namespace LU = Nektar::LibUtilities; +namespace MR = Nektar::MultiRegions; +namespace SD = Nektar::SpatialDomains; +namespace SU = Nektar::SolverUtils; + +namespace NESO::Solvers { + +class SOLSystem : public SU::UnsteadySystem { public: friend class MemoryManager; /// Creates an instance of this class. - static SolverUtils::EquationSystemSharedPtr - create(const LibUtilities::SessionReaderSharedPtr &pSession, - const SpatialDomains::MeshGraphSharedPtr &pGraph) { - SolverUtils::EquationSystemSharedPtr p = - MemoryManager::AllocateSharedPtr(pSession, pGraph); - p->InitObject(); - return p; + static SU::EquationSystemSharedPtr + create(const LU::SessionReaderSharedPtr &session, + const SD::MeshGraphSharedPtr &graph) { + SU::EquationSystemSharedPtr equation_sys = + MemoryManager::AllocateSharedPtr(session, graph); + equation_sys->InitObject(); + return equation_sys; } /// Name of class. - static std::string className; + static std::string class_name; virtual ~SOLSystem(); - virtual void - GetDensity(const Array> &physfield, - Array &density) override final; - - /// Function to get estimate of min h/p factor per element - Array GetElmtMinHP(void); - - virtual void - GetPressure(const Array> &physfield, - Array &pressure) override final; - - virtual void - GetVelocity(const Array> &physfield, - Array> &velocity) override final; - - virtual bool HasConstantDensity() override final { return false; } - protected: - SOLSystem(const LibUtilities::SessionReaderSharedPtr &pSession, - const SpatialDomains::MeshGraphSharedPtr &pGraph); + SOLSystem(const LU::SessionReaderSharedPtr &session, + const SD::MeshGraphSharedPtr &graph); - SolverUtils::DiffusionSharedPtr m_diffusion; - NESO::NektarFieldIndexMap m_field_to_index; - // Forcing term - std::vector m_forcing; + SU::AdvectionSharedPtr m_adv; + NektarFieldIndexMap m_field_to_index; + // Forcing terms + std::vector m_forcing; NekDouble m_gamma; - // List of field names required by the solver + /// Names of fields that will be time integrated + std::vector m_int_fld_names; + /// Names of fields required by the solver std::vector m_required_flds; // Auxiliary object to convert variables - VariableConverterSharedPtr m_varConv; - Array> m_vecLocs; - - void DoAdvection(const Array> &inarray, - Array> &outarray, - const NekDouble time, - const Array> &pFwd, - const Array> &pBwd); + VariableConverterSharedPtr m_var_converter; + Array> m_vec_locs; - void DoDiffusion(const Array> &inarray, - Array> &outarray, - const Array> &pFwd, - const Array> &pBwd); + void do_advection(const Array> &in_arr, + Array> &out_arr, + const NekDouble time, + const Array> &fwd, + const Array> &bwd); - void DoOdeProjection(const Array> &inarray, - Array> &outarray, - const NekDouble time); + void + do_ode_projection(const Array> &in_arr, + Array> &out_arr, + const NekDouble time); virtual void - DoOdeRhs(const Array> &inarray, - Array> &outarray, const NekDouble time); - - void GetElmtTimeStep(const Array> &inarray, - Array &tstep); + explicit_time_int(const Array> &in_arr, + Array> &out_arr, + const NekDouble time); - void GetFluxVector(const Array> &physfield, - TensorOfArray3D &flux); + void + get_flux_vector(const Array> &physfield, + TensorOfArray3D &flux); - NekDouble GetGamma() { return m_gamma; } + NekDouble get_gamma() { return m_gamma; } - const Array> &GetNormals() { + const Array> &get_trace_norms() { return m_traceNormals; } - const Array> &GetVecLocs() { - return m_vecLocs; - } - - void InitAdvection(); - - virtual void v_AppendOutput1D( - Array> &solution1D) override final{}; - /** - * Override and substantially reimplement UnsteadySystem::v_DoSolve in order - * to get at (copied) field objects inside the timestep loop + * Tells the Riemann solver the location of any "auxiliary" vectors + * (velocity field indices, in this case) */ - virtual void v_DoSolve() override final; - - virtual Array - v_GetMaxStdVelocity(const NekDouble SpeedSoundFactor) override final; + const Array> &get_vec_locs() { + return m_vec_locs; + } - virtual NekDouble v_GetTimeStep( - const Array> &inarray) override final; + void init_advection(); virtual void v_InitObject(bool DeclareField) override; - void ValidateFieldList(); + void validate_field_list(); }; -} // namespace Nektar +} // namespace NESO::Solvers #endif diff --git a/solvers/SimpleSOL/EquationSystems/SOLWithParticlesSystem.cpp b/solvers/SimpleSOL/EquationSystems/SOLWithParticlesSystem.cpp index c5068ae9..9da36aea 100644 --- a/solvers/SimpleSOL/EquationSystems/SOLWithParticlesSystem.cpp +++ b/solvers/SimpleSOL/EquationSystems/SOLWithParticlesSystem.cpp @@ -1,54 +1,19 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// File SOLWithParticlesSystem.cpp -// -// For more information, please see: http://www.nektar.info -// -// The MIT License -// -// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA), -// Department of Aeronautics, Imperial College London (UK), and Scientific -// Computing and Imaging Institute, University of Utah (USA). -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// -// Description: Adds particles to SOLSystem -// -/////////////////////////////////////////////////////////////////////////////// - #include #include "SOLWithParticlesSystem.hpp" -namespace Nektar { -string SOLWithParticlesSystem::className = - SolverUtils::GetEquationSystemFactory().RegisterCreatorFunction( +namespace NESO::Solvers { +std::string SOLWithParticlesSystem::class_name = + SU::GetEquationSystemFactory().RegisterCreatorFunction( "SOLWithParticles", SOLWithParticlesSystem::create, "SOL equations with particle source terms."); SOLWithParticlesSystem::SOLWithParticlesSystem( - const LibUtilities::SessionReaderSharedPtr &pSession, - const SpatialDomains::MeshGraphSharedPtr &pGraph) - : UnsteadySystem(pSession, pGraph), AdvectionSystem(pSession, pGraph), - SOLSystem(pSession, pGraph), m_field_to_index(pSession->GetVariables()) { + const LU::SessionReaderSharedPtr &session, + const SD::MeshGraphSharedPtr &graph) + : SOLSystem(session, graph), m_field_to_index(session->GetVariables()) { - m_particle_sys = std::make_shared(pSession, pGraph); + m_particle_sys = std::make_shared(session, graph); m_required_flds.push_back("E_src"); m_required_flds.push_back("rho_src"); m_required_flds.push_back("rhou_src"); @@ -57,21 +22,24 @@ SOLWithParticlesSystem::SOLWithParticlesSystem( // mass recording diagnostic creation m_diag_mass_recording_enabled = - pSession->DefinesParameter("mass_recording_step"); + session->DefinesParameter("mass_recording_step"); } -void SOLWithParticlesSystem::UpdateTemperature() { - // Compute initial T vals - // N.B. GetTemperature requires field order rho,rhou,[rhov],[rhow],E - int nFields_for_Tcalc = m_field_to_index.get_idx("E") + 1; - Array> physvals(nFields_for_Tcalc); - for (int i = 0; i < nFields_for_Tcalc; ++i) { - physvals[i] = m_fields[i]->GetPhys(); +/** + * @brief Compute temperature from energy in advance of projection onto + * particles + */ +void SOLWithParticlesSystem::update_temperature() { + // Need values of rho,rhou,[rhov],[rhow],E + int num_fields_for_T_calc = m_field_to_index.get_idx("E") + 1; + Array> phys_vals(num_fields_for_T_calc); + for (int i = 0; i < num_fields_for_T_calc; ++i) { + phys_vals[i] = m_fields[i]->GetPhys(); } - auto Tfield = m_fields[m_field_to_index.get_idx("T")]; - m_varConv->GetTemperature(physvals, Tfield->UpdatePhys()); - Tfield->FwdTrans(Tfield->GetPhys(), - Tfield->UpdateCoeffs()); // May not be needed + auto temperature = m_fields[m_field_to_index.get_idx("T")]; + m_var_converter->GetTemperature(phys_vals, temperature->UpdatePhys()); + // Update coeffs - may not be needed? + temperature->FwdTrans(temperature->GetPhys(), temperature->UpdateCoeffs()); } void SOLWithParticlesSystem::v_InitObject(bool DeclareField) { @@ -89,7 +57,7 @@ void SOLWithParticlesSystem::v_InitObject(bool DeclareField) { int idx = 0; for (auto &field_name : m_session->GetVariables()) { m_discont_fields[field_name] = - std::dynamic_pointer_cast(m_fields[idx]); + std::dynamic_pointer_cast(m_fields[idx]); idx++; } @@ -100,9 +68,8 @@ void SOLWithParticlesSystem::v_InitObject(bool DeclareField) { m_particle_sys->setup_evaluate_n(m_discont_fields["rho"]); m_particle_sys->setup_evaluate_T(m_discont_fields["T"]); - m_diag_mass_recording = - std::make_shared>( - m_session, m_particle_sys, m_discont_fields["rho"]); + m_diag_mass_recording = std::make_shared>( + m_session, m_particle_sys, m_discont_fields["rho"]); } /** @@ -133,8 +100,8 @@ bool SOLWithParticlesSystem::v_PreIntegrate(int step) { if (m_diag_mass_recording_enabled) { m_diag_mass_recording->compute_initial_fluid_mass(); } - // Update Temperature field - UpdateTemperature(); + // Update Temperature field + update_temperature(); // Integrate the particle system to the requested time. m_particle_sys->integrate(m_time + m_timestep, m_part_timestep); // Project onto the source fields @@ -143,19 +110,4 @@ bool SOLWithParticlesSystem::v_PreIntegrate(int step) { return SOLSystem::v_PreIntegrate(step); } -ExpListSharedPtr -SOLWithParticlesSystem::GetField(const std::string field_name) { - ExpListSharedPtr ptr(nullptr); - int idx = m_field_to_index.get_idx(field_name); - if (idx > -1) { - ptr = m_fields[idx]; - } - return ptr; -} - -std::shared_ptr -SOLWithParticlesSystem::GetNeutralParticleSystem() { - return m_particle_sys; -} - -} // namespace Nektar +} // namespace NESO::Solvers diff --git a/solvers/SimpleSOL/EquationSystems/SOLWithParticlesSystem.hpp b/solvers/SimpleSOL/EquationSystems/SOLWithParticlesSystem.hpp index e5169091..054481ad 100644 --- a/solvers/SimpleSOL/EquationSystems/SOLWithParticlesSystem.hpp +++ b/solvers/SimpleSOL/EquationSystems/SOLWithParticlesSystem.hpp @@ -1,39 +1,5 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// File SOLWithParticlesSystem.hpp -// -// For more information, please see: http://www.nektar.info -// -// The MIT License -// -// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA), -// Department of Aeronautics, Imperial College London (UK), and Scientific -// Computing and Imaging Institute, University of Utah (USA). -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// -// Description: Adds particles to SOLSystem -// -/////////////////////////////////////////////////////////////////////////////// - -#ifndef SOLWITHPARTICLESSYSTEM_H -#define SOLWITHPARTICLESSYSTEM_H +#ifndef __SIMPLESOL_SOLWITHPARTICLESSYSTEM_H_ +#define __SIMPLESOL_SOLWITHPARTICLESSYSTEM_H_ #include "../Diagnostics/mass_conservation.hpp" #include "../ParticleSystems/neutral_particles.hpp" @@ -41,57 +7,39 @@ #include #include -namespace Nektar { +namespace NESO::Solvers { /** * */ -class SOLWithParticlesSystem : public SOLSystem, - virtual public SolverUtils::AdvectionSystem, - virtual public SolverUtils::FluidInterface { +class SOLWithParticlesSystem : public SOLSystem { public: friend class MemoryManager; /// Name of class. - static std::string className; + static std::string class_name; /// Callback handler to call user defined callbacks. SolverCallbackHandler m_solver_callback_handler; // Object that allows optional recording of stats related to mass conservation - std::shared_ptr> - m_diag_mass_recording; + std::shared_ptr> m_diag_mass_recording; /// Creates an instance of this class. - static SolverUtils::EquationSystemSharedPtr - create(const LibUtilities::SessionReaderSharedPtr &pSession, - const SpatialDomains::MeshGraphSharedPtr &pGraph) { - SolverUtils::EquationSystemSharedPtr p = - MemoryManager::AllocateSharedPtr(pSession, - pGraph); - p->InitObject(); - return p; + static SU::EquationSystemSharedPtr + create(const LU::SessionReaderSharedPtr &session, + const SD::MeshGraphSharedPtr &graph) { + SU::EquationSystemSharedPtr equation_sys = + MemoryManager::AllocateSharedPtr(session, + graph); + equation_sys->InitObject(); + return equation_sys; } - SOLWithParticlesSystem(const LibUtilities::SessionReaderSharedPtr &pSession, - const SpatialDomains::MeshGraphSharedPtr &pGraph); + SOLWithParticlesSystem(const LU::SessionReaderSharedPtr &session, + const SD::MeshGraphSharedPtr &graph); virtual ~SOLWithParticlesSystem(); - /** - * Get a field in the equation system by specifiying the field name. - * - * @param field_name Name of field to extract. - * @returns Requested field if it exists otherwise nullptr - */ - ExpListSharedPtr GetField(const std::string field_name); - - /** - * Get a shared pointer to the neutral particle system. - * - * @returns Pointer to neutral particle system. - */ - std::shared_ptr GetNeutralParticleSystem(); - protected: // Flag to toggle mass conservation checking bool m_diag_mass_recording_enabled; @@ -110,13 +58,14 @@ class SOLWithParticlesSystem : public SOLSystem, Source fields cast to DisContFieldSharedPtr, indexed by name, for use in particle evaluation/projection methods */ - std::map m_discont_fields; + std::map m_discont_fields; + + void update_temperature(); - void UpdateTemperature(); virtual void v_InitObject(bool DeclareField) override; virtual bool v_PostIntegrate(int step) override; virtual bool v_PreIntegrate(int step) override; }; -} // namespace Nektar +} // namespace NESO::Solvers #endif // SOLWITHPARTICLESSYSTEM_H diff --git a/solvers/SimpleSOL/Forcing/SourceTerms.cpp b/solvers/SimpleSOL/Forcing/SourceTerms.cpp index 1f51f946..11507e9c 100644 --- a/solvers/SimpleSOL/Forcing/SourceTerms.cpp +++ b/solvers/SimpleSOL/Forcing/SourceTerms.cpp @@ -1,57 +1,20 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// File: SourceTerms.cpp -// -// For more information, please see: http://www.nektar.info -// -// The MIT License -// -// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA), -// Department of Aeronautics, Imperial College London (UK), and Scientific -// Computing and Imaging Institute, University of Utah (USA). -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// -// Description: Forcing for axi-symmetric flow. -// -/////////////////////////////////////////////////////////////////////////////// - #include #include "SourceTerms.hpp" -using namespace std; - -namespace Nektar { -std::string SourceTerms::className = - SolverUtils::GetForcingFactory().RegisterCreatorFunction( +namespace NESO::Solvers { +std::string SourceTerms::class_name = + SU::GetForcingFactory().RegisterCreatorFunction( "SourceTerms", SourceTerms::create, "Source terms for 1D SOL code"); -SourceTerms::SourceTerms( - const LibUtilities::SessionReaderSharedPtr &pSession, - const std::weak_ptr &pEquation) - : Forcing(pSession, pEquation), field_to_index(pSession->GetVariables()) {} +SourceTerms::SourceTerms(const LU::SessionReaderSharedPtr &session, + const std::weak_ptr &equation_sys) + : Forcing(session, equation_sys), field_to_index(session->GetVariables()) {} -void SourceTerms::v_InitObject( - const Array &pFields, - const unsigned int &pNumForcingFields, const TiXmlElement *pForce) { - boost::ignore_unused(pForce); +void SourceTerms::v_InitObject(const Array &fields, + const unsigned int &num_src_fields, + const TiXmlElement *force_xml_node) { + boost::ignore_unused(force_xml_node); // smax should be determined from max(m_s) for all tasks... just set it via a // parameter for now. @@ -66,17 +29,17 @@ void SourceTerms::v_InitObject( double source_mask; m_session->LoadParameter("srcs_mask", source_mask, 1.0); - int spacedim = pFields[0]->GetGraph()->GetSpaceDimension(); - int nPoints = pFields[0]->GetTotPoints(); + int spacedim = fields[0]->GetGraph()->GetSpaceDimension(); + int num_pts = fields[0]->GetTotPoints(); - m_NumVariable = pNumForcingFields; + m_NumVariable = num_src_fields; // Compute s - coord parallel to source term orientation - Array tmp_x = Array(nPoints); - Array tmp_y = Array(nPoints); - m_s = Array(nPoints); - pFields[0]->GetCoords(tmp_x, tmp_y); - for (auto ii = 0; ii < nPoints; ii++) { + Array tmp_x = Array(num_pts); + Array tmp_y = Array(num_pts); + m_s = Array(num_pts); + fields[0]->GetCoords(tmp_x, tmp_y); + for (auto ii = 0; ii < num_pts; ii++) { m_s[ii] = tmp_x[ii] * cos(m_theta) + tmp_y[ii] * sin(m_theta); } @@ -93,17 +56,17 @@ void SourceTerms::v_InitObject( m_E_prefac = source_mask * 7.978845608e-5 * 30000.0 * sigma0 / m_sigma; } -NekDouble CalcGaussian(NekDouble prefac, NekDouble mu, NekDouble sigma, - NekDouble s) { +NekDouble calc_gaussian(NekDouble prefac, NekDouble mu, NekDouble sigma, + NekDouble s) { return prefac * exp(-(mu - s) * (mu - s) / 2 / sigma / sigma); } -void SourceTerms::v_Apply( - const Array &pFields, - const Array> &inarray, - Array> &outarray, const NekDouble &time) { +void SourceTerms::v_Apply(const Array &fields, + const Array> &in_arr, + Array> &out_arr, + const NekDouble &time) { boost::ignore_unused(time); - unsigned short ndims = pFields[0]->GetGraph()->GetSpaceDimension(); + unsigned short ndims = fields[0]->GetGraph()->GetSpaceDimension(); int rho_idx = this->field_to_index.get_idx("rho"); int rhou_idx = this->field_to_index.get_idx("rhou"); @@ -111,26 +74,26 @@ void SourceTerms::v_Apply( int E_idx = this->field_to_index.get_idx("E"); // Density source term - for (int i = 0; i < outarray[rho_idx].size(); ++i) { - outarray[rho_idx][i] += CalcGaussian(m_rho_prefac, m_mu, m_sigma, m_s[i]); + for (int i = 0; i < out_arr[rho_idx].size(); ++i) { + out_arr[rho_idx][i] += calc_gaussian(m_rho_prefac, m_mu, m_sigma, m_s[i]); } // rho*u source term - for (int i = 0; i < outarray[rhou_idx].size(); ++i) { - outarray[rhou_idx][i] += std::cos(m_theta) * (m_s[i] / m_mu - 1.) * - CalcGaussian(m_u_prefac, m_mu, m_sigma, m_s[i]); + for (int i = 0; i < out_arr[rhou_idx].size(); ++i) { + out_arr[rhou_idx][i] += std::cos(m_theta) * (m_s[i] / m_mu - 1.) * + calc_gaussian(m_u_prefac, m_mu, m_sigma, m_s[i]); } if (ndims == 2) { // rho*v source term - for (int i = 0; i < outarray[rhov_idx].size(); ++i) { - outarray[rhov_idx][i] += std::sin(m_theta) * (m_s[i] / m_mu - 1.) * - CalcGaussian(m_u_prefac, m_mu, m_sigma, m_s[i]); + for (int i = 0; i < out_arr[rhov_idx].size(); ++i) { + out_arr[rhov_idx][i] += std::sin(m_theta) * (m_s[i] / m_mu - 1.) * + calc_gaussian(m_u_prefac, m_mu, m_sigma, m_s[i]); } } // E source term - divided by 2 since the LHS of the energy equation has - // been doubled (see README for details) - for (int i = 0; i < outarray[E_idx].size(); ++i) { - outarray[E_idx][i] += CalcGaussian(m_E_prefac, m_mu, m_sigma, m_s[i]) / 2.0; + // been doubled + for (int i = 0; i < out_arr[E_idx].size(); ++i) { + out_arr[E_idx][i] += calc_gaussian(m_E_prefac, m_mu, m_sigma, m_s[i]) / 2.0; } // Add sources stored as separate fields, if they exist @@ -140,13 +103,13 @@ void SourceTerms::v_Apply( if (src_field_idx >= 0) { int dst_field_idx = this->field_to_index.get_idx(target_field); if (dst_field_idx >= 0) { - auto phys_vals = pFields[src_field_idx]->GetPhys(); - for (int i = 0; i < outarray[dst_field_idx].size(); ++i) { - outarray[dst_field_idx][i] += phys_vals[i]; + auto phys_vals = fields[src_field_idx]->GetPhys(); + for (int i = 0; i < out_arr[dst_field_idx].size(); ++i) { + out_arr[dst_field_idx][i] += phys_vals[i]; } } } } } -} // namespace Nektar +} // namespace NESO::Solvers diff --git a/solvers/SimpleSOL/Forcing/SourceTerms.hpp b/solvers/SimpleSOL/Forcing/SourceTerms.hpp index dbaf5114..7ee29015 100644 --- a/solvers/SimpleSOL/Forcing/SourceTerms.hpp +++ b/solvers/SimpleSOL/Forcing/SourceTerms.hpp @@ -1,85 +1,56 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// File: SourceTerms.hpp -// -// For more information, please see: http://www.nektar.info -// -// The MIT License -// -// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA), -// Department of Aeronautics, Imperial College London (UK), and Scientific -// Computing and Imaging Institute, University of Utah (USA). -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// -// Description: Forcing for axi-symmetric flow. -// -/////////////////////////////////////////////////////////////////////////////// - -#ifndef NEKTAR_SOLVERUTILS_FORCINGAXISYM -#define NEKTAR_SOLVERUTILS_FORCINGAXISYM +#ifndef __SIMPLESOL_SOURCETERMS_H_ +#define __SIMPLESOL_SOURCETERMS_H_ #include "nektar_interface/utilities.hpp" #include -namespace Nektar { +namespace LU = Nektar::LibUtilities; +namespace MR = Nektar::MultiRegions; +namespace SD = Nektar::SpatialDomains; +namespace SU = Nektar::SolverUtils; + +namespace NESO::Solvers { -class SourceTerms : public SolverUtils::Forcing { +class SourceTerms : public SU::Forcing { public: friend class MemoryManager; /// Creates an instance of this class - static SolverUtils::ForcingSharedPtr - create(const LibUtilities::SessionReaderSharedPtr &pSession, - const std::weak_ptr &pEquation, - const Array &pFields, - const unsigned int &pNumForcingFields, const TiXmlElement *pForce) { - SolverUtils::ForcingSharedPtr p = - MemoryManager::AllocateSharedPtr(pSession, pEquation); - p->InitObject(pFields, pNumForcingFields, pForce); - return p; + static SU::ForcingSharedPtr + create(const LU::SessionReaderSharedPtr &session, + const std::weak_ptr &equation_sys, + const Array &fields, + const unsigned int &num_src_fields, + const TiXmlElement *force_xml_node) { + SU::ForcingSharedPtr forcing_obj = + MemoryManager::AllocateSharedPtr(session, equation_sys); + forcing_obj->InitObject(fields, num_src_fields, force_xml_node); + return forcing_obj; } /// Name of the class - static std::string className; + static std::string class_name; protected: - virtual void - v_InitObject(const Array &pFields, - const unsigned int &pNumForcingFields, - const TiXmlElement *pForce); + virtual void v_InitObject(const Array &fields, + const unsigned int &num_src_fields, + const TiXmlElement *force_xml_node) override; - virtual void - v_Apply(const Array &fields, - const Array> &inarray, - Array> &outarray, const NekDouble &time); + virtual void v_Apply(const Array &fields, + const Array> &in_arr, + Array> &out_arr, + const NekDouble &time) override; private: - SourceTerms(const LibUtilities::SessionReaderSharedPtr &pSession, - const std::weak_ptr &pEquation); + SourceTerms(const LU::SessionReaderSharedPtr &session, + const std::weak_ptr &equation_sys); // Angle between source orientation and x-axis NekDouble m_theta; // Pre-computed coords along source-oriented axis Array m_s; - NESO::NektarFieldIndexMap field_to_index; + NektarFieldIndexMap field_to_index; // Source parameters NekDouble m_smax; @@ -90,6 +61,6 @@ class SourceTerms : public SolverUtils::Forcing { NekDouble m_E_prefac; }; -} // namespace Nektar +} // namespace NESO::Solvers #endif diff --git a/solvers/SimpleSOL/ParticleSystems/neutral_particles.hpp b/solvers/SimpleSOL/ParticleSystems/neutral_particles.hpp index be587f4d..21f3af76 100644 --- a/solvers/SimpleSOL/ParticleSystems/neutral_particles.hpp +++ b/solvers/SimpleSOL/ParticleSystems/neutral_particles.hpp @@ -1,5 +1,5 @@ -#ifndef __CHARGED_PARTICLES_H_ -#define __CHARGED_PARTICLES_H_ +#ifndef __SIMPLESOL_NEUTRAL_PARTICLES_H_ +#define __SIMPLESOL_NEUTRAL_PARTICLES_H_ #include #include @@ -22,10 +22,9 @@ #include #include -using namespace Nektar; -using namespace NESO; -using namespace NESO::Particles; -using namespace Nektar::SpatialDomains; +namespace LU = Nektar::LibUtilities; +namespace MR = Nektar::MultiRegions; +namespace SD = Nektar::SpatialDomains; // TODO move this to the correct place /** @@ -47,8 +46,8 @@ inline double expint_barry_approx(const double x) { class NeutralParticleSystem { protected: - LibUtilities::SessionReaderSharedPtr session; - SpatialDomains::MeshGraphSharedPtr graph; + LU::SessionReaderSharedPtr session; + SD::MeshGraphSharedPtr graph; MPI_Comm comm; const double tol; const int ndim = 2; @@ -79,7 +78,7 @@ class NeutralParticleSystem { * @param default Default value if name not found in the session file. */ template - inline void get_from_session(LibUtilities::SessionReaderSharedPtr session, + inline void get_from_session(LU::SessionReaderSharedPtr session, std::string name, T &output, T default_value) { if (session->DefinesParameter(name)) { session->LoadParameter(name, output); @@ -121,6 +120,9 @@ class NeutralParticleSystem { /// Disable (implicit) copies. NeutralParticleSystem &operator=(NeutralParticleSystem const &a) = delete; + ~NeutralParticleSystem() { + std::cout << "NeutralParticleSystem dtor @" << this << std::endl; + } /// Global number of particles in the simulation. int64_t num_particles; /// Average number of particles per cell (element) in the simulation. @@ -166,12 +168,11 @@ class NeutralParticleSystem { * @param comm (optional) MPI communicator to use - default MPI_COMM_WORLD. * */ - NeutralParticleSystem(LibUtilities::SessionReaderSharedPtr session, - SpatialDomains::MeshGraphSharedPtr graph, + NeutralParticleSystem(LU::SessionReaderSharedPtr session, + SD::MeshGraphSharedPtr graph, MPI_Comm comm = MPI_COMM_WORLD) : session(session), graph(graph), comm(comm), tol(1.0e-8), h5part_exists(false), simulation_time(0.0) { - this->total_num_particles_added = 0; this->debug_write_fields_count = 0; diff --git a/solvers/SimpleSOL/SimpleSOL.cpp b/solvers/SimpleSOL/SimpleSOL.cpp index 5b1624c5..c764bc6e 100644 --- a/solvers/SimpleSOL/SimpleSOL.cpp +++ b/solvers/SimpleSOL/SimpleSOL.cpp @@ -12,23 +12,24 @@ #include "SimpleSOL.hpp" -using namespace Nektar; -using namespace Nektar::SolverUtils; +namespace LU = Nektar::LibUtilities; +namespace SD = Nektar::SpatialDomains; +namespace SU = Nektar::SolverUtils; -namespace NESO { -namespace Solvers { +namespace NESO::Solvers { int run_SimpleSOL(int argc, char *argv[]) { try { // Create session reader. - auto session = LibUtilities::SessionReader::CreateInstance(argc, argv); + auto session = LU::SessionReader::CreateInstance(argc, argv); // Read the mesh and create a MeshGraph object. - auto graph = SpatialDomains::MeshGraph::Read(session); + auto graph = SD::MeshGraph::Read(session); // Create driver. std::string driverName; session->LoadSolverInfo("Driver", driverName, "Standard"); - auto drv = GetDriverFactory().CreateInstance(driverName, session, graph); + auto drv = + SU::GetDriverFactory().CreateInstance(driverName, session, graph); // Execute driver drv->Execute(); @@ -46,5 +47,4 @@ int run_SimpleSOL(int argc, char *argv[]) { return 0; } -} // namespace Solvers -} // namespace NESO +} // namespace NESO::Solvers diff --git a/test/integration/solvers/SimpleSOL/2D/2D_config.xml b/test/integration/solvers/SimpleSOL/2D/2D_config.xml deleted file mode 100755 index 0967ce45..00000000 --- a/test/integration/solvers/SimpleSOL/2D/2D_config.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - -

TimeStep = 5e-3

-

NumSteps = 12500

-

IO_CheckSteps = NumSteps/25

-

IO_InfoSteps = NumSteps+1

-

Gamma = 5.0/3.0

-

GasConstant = 1.0

-

pInf = 1.0

-

rhoInf = 1.0

-

uInf = 1.0

-
- - - - - - - - - rho - rhou - rhov - E - - - - C[1] - - C[2] - - C[3] - - C[4] - - - - - - - - - - - - - - - -

-

-

-

- - -

-

-

-

- - - - - - - - diff --git a/test/integration/solvers/SimpleSOL/2D/2D_mesh.xml b/test/integration/solvers/SimpleSOL/2D/2D_mesh.xml deleted file mode 100755 index d8380aa7..00000000 --- a/test/integration/solvers/SimpleSOL/2D/2D_mesh.xml +++ /dev/null @@ -1,812 +0,0 @@ - - - - - 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 2.00000000e+00 0.00000000e+00 0.00000000e+00 - 2.00000000e+00 3.33333333e-01 0.00000000e+00 - 0.00000000e+00 3.33333333e-01 0.00000000e+00 - 2.00000000e+00 6.66666667e-01 0.00000000e+00 - 0.00000000e+00 6.66666667e-01 0.00000000e+00 - 2.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 4.00000000e+00 0.00000000e+00 0.00000000e+00 - 4.00000000e+00 3.33333333e-01 0.00000000e+00 - 4.00000000e+00 6.66666667e-01 0.00000000e+00 - 4.00000000e+00 1.00000000e+00 0.00000000e+00 - 6.00000000e+00 0.00000000e+00 0.00000000e+00 - 6.00000000e+00 3.33333333e-01 0.00000000e+00 - 6.00000000e+00 6.66666667e-01 0.00000000e+00 - 6.00000000e+00 1.00000000e+00 0.00000000e+00 - 8.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.00000000e+00 3.33333333e-01 0.00000000e+00 - 8.00000000e+00 6.66666667e-01 0.00000000e+00 - 8.00000000e+00 1.00000000e+00 0.00000000e+00 - 1.00000000e+01 0.00000000e+00 0.00000000e+00 - 1.00000000e+01 3.33333333e-01 0.00000000e+00 - 1.00000000e+01 6.66666667e-01 0.00000000e+00 - 1.00000000e+01 1.00000000e+00 0.00000000e+00 - 1.20000000e+01 0.00000000e+00 0.00000000e+00 - 1.20000000e+01 3.33333333e-01 0.00000000e+00 - 1.20000000e+01 6.66666667e-01 0.00000000e+00 - 1.20000000e+01 1.00000000e+00 0.00000000e+00 - 1.40000000e+01 0.00000000e+00 0.00000000e+00 - 1.40000000e+01 3.33333333e-01 0.00000000e+00 - 1.40000000e+01 6.66666667e-01 0.00000000e+00 - 1.40000000e+01 1.00000000e+00 0.00000000e+00 - 1.60000000e+01 0.00000000e+00 0.00000000e+00 - 1.60000000e+01 3.33333333e-01 0.00000000e+00 - 1.60000000e+01 6.66666667e-01 0.00000000e+00 - 1.60000000e+01 1.00000000e+00 0.00000000e+00 - 1.80000000e+01 0.00000000e+00 0.00000000e+00 - 1.80000000e+01 3.33333333e-01 0.00000000e+00 - 1.80000000e+01 6.66666667e-01 0.00000000e+00 - 1.80000000e+01 1.00000000e+00 0.00000000e+00 - 2.00000000e+01 0.00000000e+00 0.00000000e+00 - 2.00000000e+01 3.33333333e-01 0.00000000e+00 - 2.00000000e+01 6.66666667e-01 0.00000000e+00 - 2.00000000e+01 1.00000000e+00 0.00000000e+00 - 2.20000000e+01 0.00000000e+00 0.00000000e+00 - 2.20000000e+01 3.33333333e-01 0.00000000e+00 - 2.20000000e+01 6.66666667e-01 0.00000000e+00 - 2.20000000e+01 1.00000000e+00 0.00000000e+00 - 2.40000000e+01 0.00000000e+00 0.00000000e+00 - 2.40000000e+01 3.33333333e-01 0.00000000e+00 - 2.40000000e+01 6.66666667e-01 0.00000000e+00 - 2.40000000e+01 1.00000000e+00 0.00000000e+00 - 2.60000000e+01 0.00000000e+00 0.00000000e+00 - 2.60000000e+01 3.33333333e-01 0.00000000e+00 - 2.60000000e+01 6.66666667e-01 0.00000000e+00 - 2.60000000e+01 1.00000000e+00 0.00000000e+00 - 2.80000000e+01 0.00000000e+00 0.00000000e+00 - 2.80000000e+01 3.33333333e-01 0.00000000e+00 - 2.80000000e+01 6.66666667e-01 0.00000000e+00 - 2.80000000e+01 1.00000000e+00 0.00000000e+00 - 3.00000000e+01 0.00000000e+00 0.00000000e+00 - 3.00000000e+01 3.33333333e-01 0.00000000e+00 - 3.00000000e+01 6.66666667e-01 0.00000000e+00 - 3.00000000e+01 1.00000000e+00 0.00000000e+00 - 3.20000000e+01 0.00000000e+00 0.00000000e+00 - 3.20000000e+01 3.33333333e-01 0.00000000e+00 - 3.20000000e+01 6.66666667e-01 0.00000000e+00 - 3.20000000e+01 1.00000000e+00 0.00000000e+00 - 3.40000000e+01 0.00000000e+00 0.00000000e+00 - 3.40000000e+01 3.33333333e-01 0.00000000e+00 - 3.40000000e+01 6.66666667e-01 0.00000000e+00 - 3.40000000e+01 1.00000000e+00 0.00000000e+00 - 3.60000000e+01 0.00000000e+00 0.00000000e+00 - 3.60000000e+01 3.33333333e-01 0.00000000e+00 - 3.60000000e+01 6.66666667e-01 0.00000000e+00 - 3.60000000e+01 1.00000000e+00 0.00000000e+00 - 3.80000000e+01 0.00000000e+00 0.00000000e+00 - 3.80000000e+01 3.33333333e-01 0.00000000e+00 - 3.80000000e+01 6.66666667e-01 0.00000000e+00 - 3.80000000e+01 1.00000000e+00 0.00000000e+00 - 4.00000000e+01 0.00000000e+00 0.00000000e+00 - 4.00000000e+01 3.33333333e-01 0.00000000e+00 - 4.00000000e+01 6.66666667e-01 0.00000000e+00 - 4.00000000e+01 1.00000000e+00 0.00000000e+00 - 4.20000000e+01 0.00000000e+00 0.00000000e+00 - 4.20000000e+01 3.33333333e-01 0.00000000e+00 - 4.20000000e+01 6.66666667e-01 0.00000000e+00 - 4.20000000e+01 1.00000000e+00 0.00000000e+00 - 4.40000000e+01 0.00000000e+00 0.00000000e+00 - 4.40000000e+01 3.33333333e-01 0.00000000e+00 - 4.40000000e+01 6.66666667e-01 0.00000000e+00 - 4.40000000e+01 1.00000000e+00 0.00000000e+00 - 4.60000000e+01 0.00000000e+00 0.00000000e+00 - 4.60000000e+01 3.33333333e-01 0.00000000e+00 - 4.60000000e+01 6.66666667e-01 0.00000000e+00 - 4.60000000e+01 1.00000000e+00 0.00000000e+00 - 4.80000000e+01 0.00000000e+00 0.00000000e+00 - 4.80000000e+01 3.33333333e-01 0.00000000e+00 - 4.80000000e+01 6.66666667e-01 0.00000000e+00 - 4.80000000e+01 1.00000000e+00 0.00000000e+00 - 5.00000000e+01 0.00000000e+00 0.00000000e+00 - 5.00000000e+01 3.33333333e-01 0.00000000e+00 - 5.00000000e+01 6.66666667e-01 0.00000000e+00 - 5.00000000e+01 1.00000000e+00 0.00000000e+00 - 5.20000000e+01 0.00000000e+00 0.00000000e+00 - 5.20000000e+01 3.33333333e-01 0.00000000e+00 - 5.20000000e+01 6.66666667e-01 0.00000000e+00 - 5.20000000e+01 1.00000000e+00 0.00000000e+00 - 5.40000000e+01 0.00000000e+00 0.00000000e+00 - 5.40000000e+01 3.33333333e-01 0.00000000e+00 - 5.40000000e+01 6.66666667e-01 0.00000000e+00 - 5.40000000e+01 1.00000000e+00 0.00000000e+00 - 5.60000000e+01 0.00000000e+00 0.00000000e+00 - 5.60000000e+01 3.33333333e-01 0.00000000e+00 - 5.60000000e+01 6.66666667e-01 0.00000000e+00 - 5.60000000e+01 1.00000000e+00 0.00000000e+00 - 5.80000000e+01 0.00000000e+00 0.00000000e+00 - 5.80000000e+01 3.33333333e-01 0.00000000e+00 - 5.80000000e+01 6.66666667e-01 0.00000000e+00 - 5.80000000e+01 1.00000000e+00 0.00000000e+00 - 6.00000000e+01 0.00000000e+00 0.00000000e+00 - 6.00000000e+01 3.33333333e-01 0.00000000e+00 - 6.00000000e+01 6.66666667e-01 0.00000000e+00 - 6.00000000e+01 1.00000000e+00 0.00000000e+00 - 6.20000000e+01 0.00000000e+00 0.00000000e+00 - 6.20000000e+01 3.33333333e-01 0.00000000e+00 - 6.20000000e+01 6.66666667e-01 0.00000000e+00 - 6.20000000e+01 1.00000000e+00 0.00000000e+00 - 6.40000000e+01 0.00000000e+00 0.00000000e+00 - 6.40000000e+01 3.33333333e-01 0.00000000e+00 - 6.40000000e+01 6.66666667e-01 0.00000000e+00 - 6.40000000e+01 1.00000000e+00 0.00000000e+00 - 6.60000000e+01 0.00000000e+00 0.00000000e+00 - 6.60000000e+01 3.33333333e-01 0.00000000e+00 - 6.60000000e+01 6.66666667e-01 0.00000000e+00 - 6.60000000e+01 1.00000000e+00 0.00000000e+00 - 6.80000000e+01 0.00000000e+00 0.00000000e+00 - 6.80000000e+01 3.33333333e-01 0.00000000e+00 - 6.80000000e+01 6.66666667e-01 0.00000000e+00 - 6.80000000e+01 1.00000000e+00 0.00000000e+00 - 7.00000000e+01 0.00000000e+00 0.00000000e+00 - 7.00000000e+01 3.33333333e-01 0.00000000e+00 - 7.00000000e+01 6.66666667e-01 0.00000000e+00 - 7.00000000e+01 1.00000000e+00 0.00000000e+00 - 7.20000000e+01 0.00000000e+00 0.00000000e+00 - 7.20000000e+01 3.33333333e-01 0.00000000e+00 - 7.20000000e+01 6.66666667e-01 0.00000000e+00 - 7.20000000e+01 1.00000000e+00 0.00000000e+00 - 7.40000000e+01 0.00000000e+00 0.00000000e+00 - 7.40000000e+01 3.33333333e-01 0.00000000e+00 - 7.40000000e+01 6.66666667e-01 0.00000000e+00 - 7.40000000e+01 1.00000000e+00 0.00000000e+00 - 7.60000000e+01 0.00000000e+00 0.00000000e+00 - 7.60000000e+01 3.33333333e-01 0.00000000e+00 - 7.60000000e+01 6.66666667e-01 0.00000000e+00 - 7.60000000e+01 1.00000000e+00 0.00000000e+00 - 7.80000000e+01 0.00000000e+00 0.00000000e+00 - 7.80000000e+01 3.33333333e-01 0.00000000e+00 - 7.80000000e+01 6.66666667e-01 0.00000000e+00 - 7.80000000e+01 1.00000000e+00 0.00000000e+00 - 8.00000000e+01 0.00000000e+00 0.00000000e+00 - 8.00000000e+01 3.33333333e-01 0.00000000e+00 - 8.00000000e+01 6.66666667e-01 0.00000000e+00 - 8.00000000e+01 1.00000000e+00 0.00000000e+00 - 8.20000000e+01 0.00000000e+00 0.00000000e+00 - 8.20000000e+01 3.33333333e-01 0.00000000e+00 - 8.20000000e+01 6.66666667e-01 0.00000000e+00 - 8.20000000e+01 1.00000000e+00 0.00000000e+00 - 8.40000000e+01 0.00000000e+00 0.00000000e+00 - 8.40000000e+01 3.33333333e-01 0.00000000e+00 - 8.40000000e+01 6.66666667e-01 0.00000000e+00 - 8.40000000e+01 1.00000000e+00 0.00000000e+00 - 8.60000000e+01 0.00000000e+00 0.00000000e+00 - 8.60000000e+01 3.33333333e-01 0.00000000e+00 - 8.60000000e+01 6.66666667e-01 0.00000000e+00 - 8.60000000e+01 1.00000000e+00 0.00000000e+00 - 8.80000000e+01 0.00000000e+00 0.00000000e+00 - 8.80000000e+01 3.33333333e-01 0.00000000e+00 - 8.80000000e+01 6.66666667e-01 0.00000000e+00 - 8.80000000e+01 1.00000000e+00 0.00000000e+00 - 9.00000000e+01 0.00000000e+00 0.00000000e+00 - 9.00000000e+01 3.33333333e-01 0.00000000e+00 - 9.00000000e+01 6.66666667e-01 0.00000000e+00 - 9.00000000e+01 1.00000000e+00 0.00000000e+00 - 9.20000000e+01 0.00000000e+00 0.00000000e+00 - 9.20000000e+01 3.33333333e-01 0.00000000e+00 - 9.20000000e+01 6.66666667e-01 0.00000000e+00 - 9.20000000e+01 1.00000000e+00 0.00000000e+00 - 9.40000000e+01 0.00000000e+00 0.00000000e+00 - 9.40000000e+01 3.33333333e-01 0.00000000e+00 - 9.40000000e+01 6.66666667e-01 0.00000000e+00 - 9.40000000e+01 1.00000000e+00 0.00000000e+00 - 9.60000000e+01 0.00000000e+00 0.00000000e+00 - 9.60000000e+01 3.33333333e-01 0.00000000e+00 - 9.60000000e+01 6.66666667e-01 0.00000000e+00 - 9.60000000e+01 1.00000000e+00 0.00000000e+00 - 9.80000000e+01 0.00000000e+00 0.00000000e+00 - 9.80000000e+01 3.33333333e-01 0.00000000e+00 - 9.80000000e+01 6.66666667e-01 0.00000000e+00 - 9.80000000e+01 1.00000000e+00 0.00000000e+00 - 1.00000000e+02 0.00000000e+00 0.00000000e+00 - 1.00000000e+02 3.33333333e-01 0.00000000e+00 - 1.00000000e+02 6.66666667e-01 0.00000000e+00 - 1.00000000e+02 1.00000000e+00 0.00000000e+00 - 1.02000000e+02 0.00000000e+00 0.00000000e+00 - 1.02000000e+02 3.33333333e-01 0.00000000e+00 - 1.02000000e+02 6.66666667e-01 0.00000000e+00 - 1.02000000e+02 1.00000000e+00 0.00000000e+00 - 1.04000000e+02 0.00000000e+00 0.00000000e+00 - 1.04000000e+02 3.33333333e-01 0.00000000e+00 - 1.04000000e+02 6.66666667e-01 0.00000000e+00 - 1.04000000e+02 1.00000000e+00 0.00000000e+00 - 1.06000000e+02 0.00000000e+00 0.00000000e+00 - 1.06000000e+02 3.33333333e-01 0.00000000e+00 - 1.06000000e+02 6.66666667e-01 0.00000000e+00 - 1.06000000e+02 1.00000000e+00 0.00000000e+00 - 1.08000000e+02 0.00000000e+00 0.00000000e+00 - 1.08000000e+02 3.33333333e-01 0.00000000e+00 - 1.08000000e+02 6.66666667e-01 0.00000000e+00 - 1.08000000e+02 1.00000000e+00 0.00000000e+00 - 1.10000000e+02 0.00000000e+00 0.00000000e+00 - 1.10000000e+02 3.33333333e-01 0.00000000e+00 - 1.10000000e+02 6.66666667e-01 0.00000000e+00 - 1.10000000e+02 1.00000000e+00 0.00000000e+00 - - - 0 1 - 1 2 - 2 3 - 3 0 - 2 4 - 4 5 - 5 3 - 4 6 - 6 7 - 7 5 - 1 8 - 8 9 - 9 2 - 9 10 - 10 4 - 10 11 - 11 6 - 8 12 - 12 13 - 13 9 - 13 14 - 14 10 - 14 15 - 15 11 - 12 16 - 16 17 - 17 13 - 17 18 - 18 14 - 18 19 - 19 15 - 16 20 - 20 21 - 21 17 - 21 22 - 22 18 - 22 23 - 23 19 - 20 24 - 24 25 - 25 21 - 25 26 - 26 22 - 26 27 - 27 23 - 24 28 - 28 29 - 29 25 - 29 30 - 30 26 - 30 31 - 31 27 - 28 32 - 32 33 - 33 29 - 33 34 - 34 30 - 34 35 - 35 31 - 32 36 - 36 37 - 37 33 - 37 38 - 38 34 - 38 39 - 39 35 - 36 40 - 40 41 - 41 37 - 41 42 - 42 38 - 42 43 - 43 39 - 40 44 - 44 45 - 45 41 - 45 46 - 46 42 - 46 47 - 47 43 - 44 48 - 48 49 - 49 45 - 49 50 - 50 46 - 50 51 - 51 47 - 48 52 - 52 53 - 53 49 - 53 54 - 54 50 - 54 55 - 55 51 - 52 56 - 56 57 - 57 53 - 57 58 - 58 54 - 58 59 - 59 55 - 56 60 - 60 61 - 61 57 - 61 62 - 62 58 - 62 63 - 63 59 - 60 64 - 64 65 - 65 61 - 65 66 - 66 62 - 66 67 - 67 63 - 64 68 - 68 69 - 69 65 - 69 70 - 70 66 - 70 71 - 71 67 - 68 72 - 72 73 - 73 69 - 73 74 - 74 70 - 74 75 - 75 71 - 72 76 - 76 77 - 77 73 - 77 78 - 78 74 - 78 79 - 79 75 - 76 80 - 80 81 - 81 77 - 81 82 - 82 78 - 82 83 - 83 79 - 80 84 - 84 85 - 85 81 - 85 86 - 86 82 - 86 87 - 87 83 - 84 88 - 88 89 - 89 85 - 89 90 - 90 86 - 90 91 - 91 87 - 88 92 - 92 93 - 93 89 - 93 94 - 94 90 - 94 95 - 95 91 - 92 96 - 96 97 - 97 93 - 97 98 - 98 94 - 98 99 - 99 95 - 96 100 - 100 101 - 101 97 - 101 102 - 102 98 - 102 103 - 103 99 - 100 104 - 104 105 - 105 101 - 105 106 - 106 102 - 106 107 - 107 103 - 104 108 - 108 109 - 109 105 - 109 110 - 110 106 - 110 111 - 111 107 - 108 112 - 112 113 - 113 109 - 113 114 - 114 110 - 114 115 - 115 111 - 112 116 - 116 117 - 117 113 - 117 118 - 118 114 - 118 119 - 119 115 - 116 120 - 120 121 - 121 117 - 121 122 - 122 118 - 122 123 - 123 119 - 120 124 - 124 125 - 125 121 - 125 126 - 126 122 - 126 127 - 127 123 - 124 128 - 128 129 - 129 125 - 129 130 - 130 126 - 130 131 - 131 127 - 128 132 - 132 133 - 133 129 - 133 134 - 134 130 - 134 135 - 135 131 - 132 136 - 136 137 - 137 133 - 137 138 - 138 134 - 138 139 - 139 135 - 136 140 - 140 141 - 141 137 - 141 142 - 142 138 - 142 143 - 143 139 - 140 144 - 144 145 - 145 141 - 145 146 - 146 142 - 146 147 - 147 143 - 144 148 - 148 149 - 149 145 - 149 150 - 150 146 - 150 151 - 151 147 - 148 152 - 152 153 - 153 149 - 153 154 - 154 150 - 154 155 - 155 151 - 152 156 - 156 157 - 157 153 - 157 158 - 158 154 - 158 159 - 159 155 - 156 160 - 160 161 - 161 157 - 161 162 - 162 158 - 162 163 - 163 159 - 160 164 - 164 165 - 165 161 - 165 166 - 166 162 - 166 167 - 167 163 - 164 168 - 168 169 - 169 165 - 169 170 - 170 166 - 170 171 - 171 167 - 168 172 - 172 173 - 173 169 - 173 174 - 174 170 - 174 175 - 175 171 - 172 176 - 176 177 - 177 173 - 177 178 - 178 174 - 178 179 - 179 175 - 176 180 - 180 181 - 181 177 - 181 182 - 182 178 - 182 183 - 183 179 - 180 184 - 184 185 - 185 181 - 185 186 - 186 182 - 186 187 - 187 183 - 184 188 - 188 189 - 189 185 - 189 190 - 190 186 - 190 191 - 191 187 - 188 192 - 192 193 - 193 189 - 193 194 - 194 190 - 194 195 - 195 191 - 192 196 - 196 197 - 197 193 - 197 198 - 198 194 - 198 199 - 199 195 - 196 200 - 200 201 - 201 197 - 201 202 - 202 198 - 202 203 - 203 199 - 200 204 - 204 205 - 205 201 - 205 206 - 206 202 - 206 207 - 207 203 - 204 208 - 208 209 - 209 205 - 209 210 - 210 206 - 210 211 - 211 207 - 208 212 - 212 213 - 213 209 - 213 214 - 214 210 - 214 215 - 215 211 - 212 216 - 216 217 - 217 213 - 217 218 - 218 214 - 218 219 - 219 215 - 216 220 - 220 221 - 221 217 - 221 222 - 222 218 - 222 223 - 223 219 - - - 0 1 2 3 - 2 4 5 6 - 5 7 8 9 - 10 11 12 1 - 12 13 14 4 - 14 15 16 7 - 17 18 19 11 - 19 20 21 13 - 21 22 23 15 - 24 25 26 18 - 26 27 28 20 - 28 29 30 22 - 31 32 33 25 - 33 34 35 27 - 35 36 37 29 - 38 39 40 32 - 40 41 42 34 - 42 43 44 36 - 45 46 47 39 - 47 48 49 41 - 49 50 51 43 - 52 53 54 46 - 54 55 56 48 - 56 57 58 50 - 59 60 61 53 - 61 62 63 55 - 63 64 65 57 - 66 67 68 60 - 68 69 70 62 - 70 71 72 64 - 73 74 75 67 - 75 76 77 69 - 77 78 79 71 - 80 81 82 74 - 82 83 84 76 - 84 85 86 78 - 87 88 89 81 - 89 90 91 83 - 91 92 93 85 - 94 95 96 88 - 96 97 98 90 - 98 99 100 92 - 101 102 103 95 - 103 104 105 97 - 105 106 107 99 - 108 109 110 102 - 110 111 112 104 - 112 113 114 106 - 115 116 117 109 - 117 118 119 111 - 119 120 121 113 - 122 123 124 116 - 124 125 126 118 - 126 127 128 120 - 129 130 131 123 - 131 132 133 125 - 133 134 135 127 - 136 137 138 130 - 138 139 140 132 - 140 141 142 134 - 143 144 145 137 - 145 146 147 139 - 147 148 149 141 - 150 151 152 144 - 152 153 154 146 - 154 155 156 148 - 157 158 159 151 - 159 160 161 153 - 161 162 163 155 - 164 165 166 158 - 166 167 168 160 - 168 169 170 162 - 171 172 173 165 - 173 174 175 167 - 175 176 177 169 - 178 179 180 172 - 180 181 182 174 - 182 183 184 176 - 185 186 187 179 - 187 188 189 181 - 189 190 191 183 - 192 193 194 186 - 194 195 196 188 - 196 197 198 190 - 199 200 201 193 - 201 202 203 195 - 203 204 205 197 - 206 207 208 200 - 208 209 210 202 - 210 211 212 204 - 213 214 215 207 - 215 216 217 209 - 217 218 219 211 - 220 221 222 214 - 222 223 224 216 - 224 225 226 218 - 227 228 229 221 - 229 230 231 223 - 231 232 233 225 - 234 235 236 228 - 236 237 238 230 - 238 239 240 232 - 241 242 243 235 - 243 244 245 237 - 245 246 247 239 - 248 249 250 242 - 250 251 252 244 - 252 253 254 246 - 255 256 257 249 - 257 258 259 251 - 259 260 261 253 - 262 263 264 256 - 264 265 266 258 - 266 267 268 260 - 269 270 271 263 - 271 272 273 265 - 273 274 275 267 - 276 277 278 270 - 278 279 280 272 - 280 281 282 274 - 283 284 285 277 - 285 286 287 279 - 287 288 289 281 - 290 291 292 284 - 292 293 294 286 - 294 295 296 288 - 297 298 299 291 - 299 300 301 293 - 301 302 303 295 - 304 305 306 298 - 306 307 308 300 - 308 309 310 302 - 311 312 313 305 - 313 314 315 307 - 315 316 317 309 - 318 319 320 312 - 320 321 322 314 - 322 323 324 316 - 325 326 327 319 - 327 328 329 321 - 329 330 331 323 - 332 333 334 326 - 334 335 336 328 - 336 337 338 330 - 339 340 341 333 - 341 342 343 335 - 343 344 345 337 - 346 347 348 340 - 348 349 350 342 - 350 351 352 344 - 353 354 355 347 - 355 356 357 349 - 357 358 359 351 - 360 361 362 354 - 362 363 364 356 - 364 365 366 358 - 367 368 369 361 - 369 370 371 363 - 371 372 373 365 - 374 375 376 368 - 376 377 378 370 - 378 379 380 372 - 381 382 383 375 - 383 384 385 377 - 385 386 387 379 - - - - Q[0-164] - E[9,6,3] - E[382,384,386] - E[387,380,373,366,359,352,345,338,331,324,317,310,303,296,289,282,275,268,261,254,247,240,233,226,219,212,205,198,191,184,177,170,163,156,149,142,135,128,121,114,107,100,93,86,79,72,65,58,51,44,37,30,23,16,8] - E[381,374,367,360,353,346,339,332,325,318,311,304,297,290,283,276,269,262,255,248,241,234,227,220,213,206,199,192,185,178,171,164,157,150,143,136,129,122,115,108,101,94,87,80,73,66,59,52,45,38,31,24,17,10,0] - - - C[0] - - - - - refs/heads/feature/session-without-xml - 04fa88f52aced04b4ad9675c934fe562629f5583 - M0191 - 5.3.0 - 25-Jan-2023 10:54:59 - - -m peralign:surf1=3:surf2=4:dir=y ./xmls/2D_mesh.xml ./xmls/2D_mesh_peraligned.xml:xml:uncompress - - - - - diff --git a/test/integration/solvers/SimpleSOL/2D/ICs.rst b/test/integration/solvers/SimpleSOL/2D/ICs.rst deleted file mode 100644 index 39b03866..00000000 --- a/test/integration/solvers/SimpleSOL/2D/ICs.rst +++ /dev/null @@ -1,8 +0,0 @@ - - - - 85 - - - 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 - diff --git a/test/integration/solvers/SimpleSOL/test_SimpleSOL.cpp b/test/integration/solvers/SimpleSOL/test_SimpleSOL.cpp index 14a8c0ae..2ff84ab8 100644 --- a/test/integration/solvers/SimpleSOL/test_SimpleSOL.cpp +++ b/test/integration/solvers/SimpleSOL/test_SimpleSOL.cpp @@ -3,6 +3,7 @@ #include "SimpleSOL.hpp" #include "test_SimpleSOL.hpp" +namespace NESO::Solvers { /** * Tests for SimpleSOL solver. Note that the test name itself is used to * determine the locations of the config file, mesh and initial conditions in @@ -15,16 +16,7 @@ const double prof_tolerance = 5e-3; const double mass_cons_tolerance = 1e-14; TEST_F(SimpleSOLTest, 1D) { - int ret_code = run({NESO::Solvers::run_SimpleSOL}); - EXPECT_EQ(ret_code, 0); - - // Compare rho, u and T profiles to analytic data - compare_rho_u_T_profs(prof_tolerance); -} - -TEST_F(SimpleSOLTest, 2D) { - GTEST_SKIP() << "Disabled in favour of SimpleSOLTest.2Drot45"; - int ret_code = run({NESO::Solvers::run_SimpleSOL}); + int ret_code = run({run_SimpleSOL}); EXPECT_EQ(ret_code, 0); // Compare rho, u and T profiles to analytic data @@ -32,7 +24,7 @@ TEST_F(SimpleSOLTest, 2D) { } TEST_F(SimpleSOLTest, 2Drot45) { - int ret_code = run({NESO::Solvers::run_SimpleSOL}); + int ret_code = run({run_SimpleSOL}); EXPECT_EQ(ret_code, 0); // Compare rho, u and T profiles to analytic data @@ -64,3 +56,4 @@ TEST_F(SimpleSOLTest, 2DWithParticles) { ASSERT_THAT(callback_post.mass_error, testing::Each(testing::Le(mass_cons_tolerance))); } +} // namespace NESO::Solvers \ No newline at end of file diff --git a/test/integration/solvers/SimpleSOL/test_SimpleSOL.hpp b/test/integration/solvers/SimpleSOL/test_SimpleSOL.hpp index f8a423c5..a62e4be0 100644 --- a/test/integration/solvers/SimpleSOL/test_SimpleSOL.hpp +++ b/test/integration/solvers/SimpleSOL/test_SimpleSOL.hpp @@ -1,6 +1,5 @@ -#ifndef SIMPLESOL_TESTS_COMMON -#define SIMPLESOL_TESTS_COMMON - +#ifndef __SIMPLESOL_TESTS_COMMON_H_ +#define __SIMPLESOL_TESTS_COMMON_H_ #include #include #include @@ -22,6 +21,7 @@ namespace LU = Nektar::LibUtilities; namespace FU = Nektar::FieldUtils; namespace PO = boost::program_options; +namespace NESO::Solvers { const int x_idx = 0, rho_idx = 1, vel_idx = 2, T_idx = 3; class SimpleSOLTest : public NektarSolverTest { @@ -207,5 +207,6 @@ struct SOLWithParticlesMassConservationPost std::fabs(correct_total)); } }; +} // namespace NESO::Solvers #endif // SIMPLESOL_TESTS_COMMON