diff options
author | Anton Khirnov <anton@khirnov.net> | 2019-01-29 15:38:17 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2019-01-29 15:38:17 +0100 |
commit | 40e686b7688345a903f4afb97362de7d57cbb3c7 (patch) | |
tree | e28466537988295de240e6c1aac4b96e35880a6b /ell_grid_solve.h | |
parent | 2d00e4bf8b63bbe1c4442cd7f765ef8782f5ac6c (diff) |
mg2d: account for effect of the ~u term on the relaxation factor
The maximum allowed time step in the presence of a -K * u term goes like
2 (dx ** 2) / (4 + K (dx ** 2))
Diffstat (limited to 'ell_grid_solve.h')
-rw-r--r-- | ell_grid_solve.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ell_grid_solve.h b/ell_grid_solve.h index a12e9c3..4ee6cb4 100644 --- a/ell_grid_solve.h +++ b/ell_grid_solve.h @@ -65,10 +65,24 @@ typedef struct EGSInternal EGSInternal; typedef struct EGSRelaxContext { /** + * The "time step" for relaxation is calculated as + * Δt = r_m * r_f * step[0] * step[1] + * + * Where + * - r_m is relax_multiplier if specified, 1.0 otherwise + * - r_f is relax_factor if specified, a default fd_stencil-dependent value + * otherwise + */ + /** * The time stepping factor in relaxation. */ double relax_factor; + /** + * Multiplier for the time stepping factor. + */ + double relax_multiplier; + int64_t count_correct; int64_t time_correct; } EGSRelaxContext; |