aboutsummaryrefslogtreecommitdiff
path: root/ell_grid_solve.c
Commit message (Collapse)AuthorAge
* residual_calc: accept all diff coefficients in a single arrayAnton Khirnov2024-04-15
| | | | | | | Plus an offset parameter that signals the distance between different coefficients. This allows to avoid passing so many pointers around, which reduces register pressure and simplifies writing SIMD. Seems also to be a little faster.
* Switch from meson to configure+make.Anton Khirnov2024-04-15
| | | | Meson is an extra dependency and generally sucks.
* Switch to external ndarray library.Anton Khirnov2020-06-25
|
* egs: reduce the max number of BiCGSTAB iterations to 4Anton Khirnov2019-06-29
| | | | | Since we typically do many multigrid iterations per step, being more aggressive about a full inverse gives better performance.
* egs: sync the residual maximum across components.Anton Khirnov2019-06-29
|
* implement several relax steps per syncAnton Khirnov2019-06-29
|
* egs: make array allocation more readableAnton Khirnov2019-06-29
|
* egs: allocate mpi sync parameters only after we know the fd stencilAnton Khirnov2019-06-18
| | | | | Also, forbid it to change after first init. That is not ever used and allowing it unnecessarily complicates the logic.
* egs: skip boundary corners for inter-component boundariesAnton Khirnov2019-06-18
|
* egs: simplify reflection boundary handlingAnton Khirnov2019-06-14
|
* rescalc: improve reflection boundary conditionsAnton Khirnov2019-06-14
| | | | | Make parameter names more clear/consistent, document them, implement missing 1U boundary.
* egs: constify a function argumentAnton Khirnov2019-06-14
|
* egs: handle falloff boundaries properly with multiple componentsAnton Khirnov2019-06-02
|
* egs: add support for MPI-based multi-component solvesAnton Khirnov2019-05-23
|
* Make the ghost points explicit in prolongationAnton Khirnov2019-05-21
|
* egs: simplify conditionAnton Khirnov2019-05-16
|
* egs: allow the same context to be used for both relaxation and exact solvesAnton Khirnov2019-05-06
|
* egs: merge residual calc and correct when possibleAnton Khirnov2019-04-24
| | | | | Also, merge the reflect boundary condition into residual calc+add. Improves performance due to better locality.
* egs: parallelize diff_coeffs premult operationAnton Khirnov2019-04-23
|
* egs: premultiply diff_coeffs with the denominator in initAnton Khirnov2019-04-19
| | | | | | Do not do it at every residual calc, which also allows us to get rid of an extra parameter (and reduce the number of registers used in x86 SIMD).
* Add and use a new timer API.Anton Khirnov2019-04-19
|
* egs: drop unused function parametersAnton Khirnov2019-04-19
|
* egs: do not assume the same stride for all arraysAnton Khirnov2019-04-17
| | | | Also, allocate all the diff coeffs together.
* egs: optimize the correction stepAnton Khirnov2019-04-02
|
* egs: optimize applying reflection boundariesAnton Khirnov2019-04-02
|
* mg2d: extend stats loggingAnton Khirnov2019-04-01
|
* egs_exact: do not construct the matrix more often than necessaryAnton Khirnov2019-03-26
| | | | It does not change unless the diff coeffs change.
* egs_exact: avoid explicit matrix transpoeAnton Khirnov2019-03-26
|
* egs_exact: get rid of an unnecessary function parameterAnton Khirnov2019-03-25
|
* egs_exact: parallelize matrix constructionAnton Khirnov2019-03-25
|
* egs: reindentAnton Khirnov2019-03-25
|
* egs: add more timersAnton Khirnov2019-03-25
|
* egs: only apply the fixval condition when it is non-zero and on initAnton Khirnov2019-03-25
| | | | | | | Both u and residual are initialized to zero on alloc and the residual is not computed on the fixval boundaries. The value of u will thus never change there, so we do not need to impose the condition there except at the very beginning.
* egs: apply the boundary conditions in the correct orderAnton Khirnov2019-03-25
| | | | Drop the hack that just ran through the loop twice.
* egs: zero u on allocationAnton Khirnov2019-03-25
| | | | This will be useful in later commits.
* ell_grid_solve: switch to ndarray in its external APIAnton Khirnov2019-03-22
|
* ell_grid_solve: use ndarray API for allocating internal arraysAnton Khirnov2019-03-21
|
* ell_grid_solve: use BiCGSTAB to speed up exact solvesAnton Khirnov2019-03-18
|
* ell_grid_solve: remove unused variableAnton Khirnov2019-03-11
|
* ell_grid_solve: initialize diff_coeffs to 0Anton Khirnov2019-03-04
| | | | Prevents the uninitialized items from affecting interpolation.
* Implement C/r falloff boundary condition.Anton Khirnov2019-03-04
| | | | API bump.
* ell_grid_solve: do not read from outside of allocated boundary valuesAnton Khirnov2019-02-24
|
* ell_grid_solve: do not read from possibly-uninitialized boundary layerAnton Khirnov2019-02-08
|
* Rename fixdiff boundary condition to reflect.Anton Khirnov2019-02-08
| | | | | | | This is what it actually does, we do not support setting arbitrary derivative values. API bump.
* ell_grid_solve: use the new boundary API to simplify codeAnton Khirnov2019-02-06
|
* Change the meaning of boundary location to make more sense.Anton Khirnov2019-02-05
| | | | API bump.
* mg2d: print stats properly for exact solvesAnton Khirnov2019-02-02
|
* ell_grid_solve: split residual computation into its own fileAnton Khirnov2019-01-30
|
* mg2d: account for effect of the ~u term on the relaxation factorAnton Khirnov2019-01-29
| | | | | The maximum allowed time step in the presence of a -K * u term goes like 2 (dx ** 2) / (4 + K (dx ** 2))
* Fix callback type mismatchAnton Khirnov2019-01-29
|