Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | residual_calc: accept all diff coefficients in a single array | Anton Khirnov | 2024-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 Khirnov | 2024-04-15 |
| | | | | Meson is an extra dependency and generally sucks. | ||
* | Switch to external ndarray library. | Anton Khirnov | 2020-06-25 |
| | |||
* | egs: reduce the max number of BiCGSTAB iterations to 4 | Anton Khirnov | 2019-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 Khirnov | 2019-06-29 |
| | |||
* | implement several relax steps per sync | Anton Khirnov | 2019-06-29 |
| | |||
* | egs: make array allocation more readable | Anton Khirnov | 2019-06-29 |
| | |||
* | egs: allocate mpi sync parameters only after we know the fd stencil | Anton Khirnov | 2019-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 boundaries | Anton Khirnov | 2019-06-18 |
| | |||
* | egs: simplify reflection boundary handling | Anton Khirnov | 2019-06-14 |
| | |||
* | rescalc: improve reflection boundary conditions | Anton Khirnov | 2019-06-14 |
| | | | | | Make parameter names more clear/consistent, document them, implement missing 1U boundary. | ||
* | egs: constify a function argument | Anton Khirnov | 2019-06-14 |
| | |||
* | egs: handle falloff boundaries properly with multiple components | Anton Khirnov | 2019-06-02 |
| | |||
* | egs: add support for MPI-based multi-component solves | Anton Khirnov | 2019-05-23 |
| | |||
* | Make the ghost points explicit in prolongation | Anton Khirnov | 2019-05-21 |
| | |||
* | egs: simplify condition | Anton Khirnov | 2019-05-16 |
| | |||
* | egs: allow the same context to be used for both relaxation and exact solves | Anton Khirnov | 2019-05-06 |
| | |||
* | egs: merge residual calc and correct when possible | Anton Khirnov | 2019-04-24 |
| | | | | | Also, merge the reflect boundary condition into residual calc+add. Improves performance due to better locality. | ||
* | egs: parallelize diff_coeffs premult operation | Anton Khirnov | 2019-04-23 |
| | |||
* | egs: premultiply diff_coeffs with the denominator in init | Anton Khirnov | 2019-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 Khirnov | 2019-04-19 |
| | |||
* | egs: drop unused function parameters | Anton Khirnov | 2019-04-19 |
| | |||
* | egs: do not assume the same stride for all arrays | Anton Khirnov | 2019-04-17 |
| | | | | Also, allocate all the diff coeffs together. | ||
* | egs: optimize the correction step | Anton Khirnov | 2019-04-02 |
| | |||
* | egs: optimize applying reflection boundaries | Anton Khirnov | 2019-04-02 |
| | |||
* | mg2d: extend stats logging | Anton Khirnov | 2019-04-01 |
| | |||
* | egs_exact: do not construct the matrix more often than necessary | Anton Khirnov | 2019-03-26 |
| | | | | It does not change unless the diff coeffs change. | ||
* | egs_exact: avoid explicit matrix transpoe | Anton Khirnov | 2019-03-26 |
| | |||
* | egs_exact: get rid of an unnecessary function parameter | Anton Khirnov | 2019-03-25 |
| | |||
* | egs_exact: parallelize matrix construction | Anton Khirnov | 2019-03-25 |
| | |||
* | egs: reindent | Anton Khirnov | 2019-03-25 |
| | |||
* | egs: add more timers | Anton Khirnov | 2019-03-25 |
| | |||
* | egs: only apply the fixval condition when it is non-zero and on init | Anton Khirnov | 2019-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 order | Anton Khirnov | 2019-03-25 |
| | | | | Drop the hack that just ran through the loop twice. | ||
* | egs: zero u on allocation | Anton Khirnov | 2019-03-25 |
| | | | | This will be useful in later commits. | ||
* | ell_grid_solve: switch to ndarray in its external API | Anton Khirnov | 2019-03-22 |
| | |||
* | ell_grid_solve: use ndarray API for allocating internal arrays | Anton Khirnov | 2019-03-21 |
| | |||
* | ell_grid_solve: use BiCGSTAB to speed up exact solves | Anton Khirnov | 2019-03-18 |
| | |||
* | ell_grid_solve: remove unused variable | Anton Khirnov | 2019-03-11 |
| | |||
* | ell_grid_solve: initialize diff_coeffs to 0 | Anton Khirnov | 2019-03-04 |
| | | | | Prevents the uninitialized items from affecting interpolation. | ||
* | Implement C/r falloff boundary condition. | Anton Khirnov | 2019-03-04 |
| | | | | API bump. | ||
* | ell_grid_solve: do not read from outside of allocated boundary values | Anton Khirnov | 2019-02-24 |
| | |||
* | ell_grid_solve: do not read from possibly-uninitialized boundary layer | Anton Khirnov | 2019-02-08 |
| | |||
* | Rename fixdiff boundary condition to reflect. | Anton Khirnov | 2019-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 code | Anton Khirnov | 2019-02-06 |
| | |||
* | Change the meaning of boundary location to make more sense. | Anton Khirnov | 2019-02-05 |
| | | | | API bump. | ||
* | mg2d: print stats properly for exact solves | Anton Khirnov | 2019-02-02 |
| | |||
* | ell_grid_solve: split residual computation into its own file | Anton Khirnov | 2019-01-30 |
| | |||
* | mg2d: account for effect of the ~u term on the relaxation factor | Anton Khirnov | 2019-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 mismatch | Anton Khirnov | 2019-01-29 |
| |