diff options
author | Anton Khirnov <anton@khirnov.net> | 2018-04-23 08:45:07 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2018-04-23 08:45:54 +0200 |
commit | 788f68c3bbf7c74b717d8894be4610d39d0d97f2 (patch) | |
tree | c24059943ee5855b8f96699dda89597002ee7a0c /td_constraints.c | |
parent | 2ee593d56a83f0264cc41620c2feb3e03a13974f (diff) |
Add the simple time-antisym initial data family.
Diffstat (limited to 'td_constraints.c')
-rw-r--r-- | td_constraints.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/td_constraints.c b/td_constraints.c index 663b83a..dd62150 100644 --- a/td_constraints.c +++ b/td_constraints.c @@ -67,7 +67,27 @@ static const TDFamilyDef ae_time_antisym = { .a_diverge = 0.0092078837427, }; -#if 0 +static double k_rtheta_eval_simple_time_antisym(TDConstraintEvalContext *ctx, + double r, double theta) +{ + const double r2 = SQR(r); + return ctx->amplitude * r * exp(-r2) * sin(2.0 * theta); +} + +static double k_rtheta_eval_dr_simple_time_antisym(TDConstraintEvalContext *ctx, + double r, double theta) +{ + const double r2 = SQR(r); + return ctx->amplitude * (1.0 - 2.0 * r2) * exp(-r2) * sin(2.0 * theta); +} + +static double k_rtheta_eval_dt_simple_time_antisym(TDConstraintEvalContext *ctx, + double r, double theta) +{ + const double r2 = SQR(r); + return 2.0 * ctx->amplitude * r * exp(-r2) * cos(2.0 * theta); +} + static const TDFamilyDef simple_time_antisym = { .eval_krt = k_rtheta_eval_simple_time_antisym, .eval_krt_dr = k_rtheta_eval_dr_simple_time_antisym, @@ -75,10 +95,10 @@ static const TDFamilyDef simple_time_antisym = { .a_converge = 1.018918628476058, .a_diverge = 1.018918628476968, }; -#endif static const TDFamilyDef *td_families[] = { [TD_FAMILY_AE_TIME_ANTISYM] = &ae_time_antisym, + [TD_FAMILY_SIMPLE_TIME_ANTISYM] = &simple_time_antisym, }; static void @@ -292,4 +312,5 @@ int tdi_constraint_eval(TDConstraintEvalContext *ctx, enum TDConstraintEq eq, double *out) { constraint_funcs[eq](ctx, vars, out); + return 0; } |