Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Array<int> to options, additional limiters for grids #2721

Closed
wants to merge 140 commits into from

Conversation

bendudson
Copy link
Contributor

  • Adds Array<int> to the Options type
  • Reads Array<int> from NetCDF files (e.g. mesh input file), and makes them available through Mesh::get

The reason this was added is to be able to include additional limiters in the input file. The format is a short-term solution only, though these have a habit of becoming permanent.

dschwoerer and others added 30 commits February 17, 2023 13:54
* Previously the second cmake invocation failed, e.g. after some source
  changes or after changing a configure time option
* It also generated many files, some of which overwrite git-tracked files from
  autotools, and others where not git-ignored.
Fix some warnings and deprecated headers
Not comprehensive, still fails to run successfully on basic input
file (zero pivot in cyclic reduce)

Fixes:

- unused variables
- wrong variable names (including case)
- creating laplacians from wrong input sections
- some issues with staggering
MPI_DOUBLE is a macro, so this check can break, even if there is no mismatch.
Improve docs + fix boutpp docs (master)
Co-authored-by: Peter Hill <[email protected]>
bendudson and others added 23 commits May 23, 2023 07:57
Get mesh outputs after physics init
No mallocs now needed when setting matrix elements in serial or
parallel for 1D-recycling example.

Hypre preconditioner type can now be set with pc_hypre_type option.
Defaults to pilut, as this seems to give the best performance in
parallel.
cvode_nonlinear_convergence_coef
    Sets parameter through call to CVodeSetNonlinConvCoef
    https://sundials.readthedocs.io/en/latest/cvodes/Usage/SIM.html#c.CVodeSetNonlinConvCoef

cvode_linear_convergence_coef
    Sets parameter through call to CVodeSetEpsLin
    https://sundials.readthedocs.io/en/latest/cvodes/Usage/SIM.html#c.CVodeSetEpsLin
Add some documentation of new cvode and beuler solver options.
If PETSc is not configured with Hypre then PCHYPRESetType is
not defined.
If a step fails, re-calculate the Jacobian and preconditioner.
This can be an expensive operation, so doing this on failure
allows lag_jacobian to be increased.
Enables `petsc:log_view=true` option to set the PETSc `-log_view`
switch correctly.
They are not used anyway
Reverts some of the deling commits and changes _runs to _compiles
Do not try to run SLEPc or PETSc in configure
Update `make dist` invocation

[skip ci]
mesh:paralleltransform is a section

[skip ci]
* next: (96 commits)
  Use petsc version 3.19.1 in examples, on 'Advanced installation options' page of manual. [skip ci]
  Apply clang-format changes
  The additional check is not needed
  provide VectorMetric in vectormetric.hxx
  Update more example code snippets from make to cmake. Include -S and -B flags, so examples are more consistent. Use <build-directory> to indicate the path to the build directory. [skip ci]
  Use petsc version 3.17.5 in examples, on 'Advanced installation options' page of manual. (version 3.19 is not compatible) [skip ci]
  Apply clang-format changes
  Pull out cached variables to function
  Mark some functions as const
  CI: Drop coverage build OS down to ubuntu-20.04
  CI: fix petsc path
  CI: fix slepc path
  CI: Update paths for ubuntu 20.04
  CI: move some runs to ubunutu-latest
  CI: do not run on removed old ubuntu
  Change command example from 'make' to 'cmake --build <build-directory>' in 'Compiling BOUT++' section of 'Advanced installation options' page of manual.
  Clarify example using dnf.
  Added comma, for clarity.
  Add /manual/sphinx/_build to gitignore file.
  Update examples to petsc version 3.19.0 in 'Advanced installation options' page of manual.
  ...
Enable 1D arrays of integers to be read from NetCDF files,
and made available via `Mesh::get()`. Mainly useful for
mesh construction.
When reading 1D vector of ints, check that the input is long enough,
and resize the output vector.
A short-term fix, allowing extra limiters to be added with inputs:

limiter_count : int
limiter_yinds : [int], length limiter_count
limiter_xstarts : [int], length limiter_count
limiter_xends : [int], length limiter_count

The limiter(s) are added between yinds[i] and yinds[i] + 1
@bendudson bendudson changed the base branch from v5.1.0-rc to next June 15, 2023 01:23
@bendudson
Copy link
Contributor Author

This was branched from v5.1.0-rc, but probably should go into next after 5.1.0 is released.

@dschwoerer
Copy link
Contributor

@bendudson Do you mind rebasing to make the diff more clear?

@bendudson
Copy link
Contributor Author

Replaced by #2767

@bendudson bendudson closed this Oct 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants