Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Fix a CMake syntax error that meant the 'SOLVER_LIBS' list wasn't being assembled properly. * Skeleton for the Hermes-3 LAPD solver. * Rename solver source directory for consistency. * First attempt at a mesh for the H3LAPD problem - tries to match H3 resolution. * A much lower res mesh for testing the H3LAPD solver. * Add a convenience script for converting a .geo gmsh config to a Nektar xml. Force uncompressed xml for now. * First version of LAPD (low-res) config. * Add advection terms. * Add pressure gradient terms. * Add E_perp terms. * Reorder H3LAPDSystem variables and functions. * Store perp velocities at class level to allow use in multiple terms. * Add collision terms to momentum equations and polarisation drift term to vorticity equation. * Add some comments and docstrings. * Add explicit values to the low res config file, rather than relying on defaults. * Added a note on initial conditions. * More flexible PrintArrVals * Add density source term. * Label low, high z boundaries in config * Initial guess at ICs. * Comment on the density source term * Removed two places where Bvec=(0,0,B) and |Bvec| = 1 were assumed. * Comments and cosmetic * Fix domain cross section size in low, full res meshes. * Phi solve attempt 1 * Comments in config xml. * Set BCs. * Fix typo in config comment. * Fix error in config - IterativeSolverTolerance can be in GLOBALSYSSOLNINFO or PARAMETERS, but not SOLVERINFO. * Improvements to PrintArrVals debugging func. * Apply non-dimensionalisation factors to input params, BCs, ICs, density source. * ne, w BCs to Dirichlet, since we don't expect Neumann to be supported for discontinous fields (phi isn't discontinous here). * Modified timestep, number of steps for consistency with H3 and to reflect scaling of the ion cyclotron frequency. * Calculate density-dependent Coulomb logarithm and collision frequency for electron-ion interactions. * Rename a config file variable, for consistency, and explicitly include time scaling in the density source. * Changed some variable and function names to clarify collision frequency calculation. * Correction to nu_ei calc (equations doc is wrong). * More readable expression for nu_ei_const. * Correct electric potential scaling factor; rearrange temperature scaling factor expression. * Rename temperature scaling param; avoids clash with time scaling factor just in case param names aren't case sensitive. * Allow build dir to be supplied as a relative path in run_eg.sh * Correct m_u value. * Different scaling approach; set B0 and derive ts, rather than vice versa. * Rename dimensionless density and velocity params to match Hermes 3 docs. * Fix confusion between n_e and nRef in the phi solve. * Minor; xml formatting * Add an H3LAPD example that uses a cuboid mesh, works with PhiSolve(). * Correct function misnomer - AddEPerpTerms => AddEParTerms. * Correct misleading variable names. * Zero outarray. * Correct a number of misnamed variables. * Implement density floor when computing parallel velocity. * Add convenience function to zero outarray. * Implement polarisation drift term via an advection object to properly account for DG flux. * Fix call to AddAdvTerms for polarisation drift term and add some error checking. * Allow Helmsolve coefficients to be set by constant factors (not 'variable coefficients') that are read as parameters from the session file. Defaults to [1,1,1]. * Make array arg of PrintArrSize const. * Provide a virtual function to allow subclasses to define different RHSs for the phi solve. * Density source as separate function. * Added Ed's implementation of the 2D-in-3D Hasegawa-Wakatani equations. * Modified geo to xml script to allow output_basename != input_basename. * Renamed hw config xml to distinguish clearly from full LAPD config. * Strip LAPD-specific parameters from HW example and rename others for clarity. * Modified H3LAPDSystem::CalcEAndAdvVels to avoid referencing momentum fields if the derived system doesn't use them. * Remove unused momentum fields from HW example. * Remove unused class. * Rename all .h extensions to .hpp. * Remove unused array of forcing objects. * Remove superfluous function in HW session file. * Copy neutral_particles header from SimpleSOL and add particle system to H3LAPDSystem. Builds. * First go at adapting NeutralParticleSystem; no particle init yet. * Add particle source to density field. * Add background density via a session param. * Reuse Te_eV param in particle system. * Fix get_point_in_subdomain() for 3D (#211) * added add more generic implementation to get a point in the domain * added missing memory cleanup * added missing api docstrings to get_element functions * Add particle initialisation. * Reduce to 100 steps for debugging * track particle id offset between calls to add_particles * updated NESO-Particles submodule commit to include RNG updates * Fix bug with assumed variable order. * Initialise ne, w, phi to zero. * Tweak params - makes it stable (ne doesn't NaN), but ionisation near zero. * added lower to higher order projection * added drift velocity * tidy up of ionisation kernel * removed ErrorPropagate instance that is dead code * 7 modes => 4 modes * Set a particle_drift_velocity in the session file. * Tweak timestep, other params to get a stable example that demonstrates coupling. * Increase mesh resolution slightly. * Typo. * Less particle output. * Set source width via a param. * Handle peralign args to NekMesh in geo_to_xml script. * Revert mesh extent, particle source width to more stable vals. * Increase particle_number_density to 1e16. * Reduce num_particles_total to 1e4 * Triple sim time limit. * Double sim length to try and see blob movement. * 5 modes * Fix a (non-critical) error in the geo_to_xml script and document the periodic BC options in the usage message. * Make NeutralParticleSystem::integrate() behave when num_particles_total=0. * Bugfix - actually apply the kappa value set in the input file. * num_particles_total back to 1e5, NUMMODES to 6. * Set alpha=0.1, kappa=10. * Restore Ed's example as 'hw_fluid-only'. * Set alpha=0.1, kappa=10 in hw_fluid-only e.g. * Tweak fluid-only e.g to get stable sim that produces turbulence. kappa=3.5, 6x large init ne amplitude, half dt, double sim length. * Make coupled sim's length, output times, and kappa value the same as the fluid-only e.g. * Automatically pick up RelWithDebInfo version of NekMesh in geo_to_xml script. * Various tweaks to make it easier to run fluid-only sims, including removing requirements for ne_src field, num_particles_per_cell param to be defined when not using particles. * Modify NektarSolverTest to allow solver name to be set independently of test fixture name. * Add test for growth rate of energy and enstrophy. * Remove some debugging messages. * Rename 2D HW equation system, tests and examples in anticipation of 3D HW solver. * Refactor equation system classes. * Fix gamma_alpha def in GrowthRatesRecorder. * Tweak E definition in GrowthRatesRecorder. * Modify growth rates test to give non-zero gamma_alpha (initial n != phi). * Tighten up growth rate tolerances. * var rename * Move a header. * Add a mass conservation test for the coupled 2Din3DHW solver (alpha=kappa=0). * Rename particle system source file. * Set a more suitable namespace for all H3LAPD solver components. * Remove superfluous variables from GrowthRatesRecorder. * Consistent variable naming, ordering and doxygen markup. * Remove superfluous variable. * Make non-zero return code a fatal error in HW tests. * Various tweaks to geo_to_xml script. Added description and example usage at the top of the file. * Remove old Nektar licence headers from equation system source files and add class-level doxygen markup. * Add some links to initial markdown for lapd e.g. * Assert that all required fields have the same number of quadrature points. * Changes to address various review comments. * Handle B_xy = 0 correctly. * Update neso-particles to use NESOASSERT fix and modify some calls to allow for namespace change. * Use NESOASSERT for NaN check. * Small increase to mass conservation test tolerance. --------- Co-authored-by: Will Saunders <[email protected]> Co-authored-by: Will Saunders <[email protected]>
- Loading branch information