Compare commits

...

213 Commits

Author SHA1 Message Date
ae0c81c575 Merge branch 'master' into binaries 2024-10-07 10:41:52 -03:00
5f1902c7dd Merge branch 'master' into binaries 2024-07-30 22:25:25 -03:00
161595791d Merge branch 'master' into binaries 2024-07-30 16:54:15 -03:00
8048597303 Merge branch 'master' into binaries 2024-07-19 10:07:03 -03:00
c353dc4ae5 Merge branch 'master' into binaries 2024-07-10 20:56:17 -03:00
c44eeb31a0 Merge branch 'master' into binaries 2024-07-03 22:36:34 -03:00
8fc234269b Merge branch 'master' into binaries 2024-07-01 20:11:43 -03:00
7c59e1c0bc Merge branch 'master' into binaries 2024-06-03 22:26:05 -03:00
6f4e800932 Merge branch 'master' into binaries 2024-06-01 23:41:37 -03:00
3de0ec092d Merge branch 'master' into binaries 2024-05-25 13:21:30 -03:00
8c340364bd Merge branch 'master' into binaries 2024-05-24 19:02:30 -03:00
dde07cf6bc Merge branch 'master' into binaries 2024-04-20 18:01:20 -03:00
c89e5fe002 Merge branch 'master' into binaries 2024-03-08 22:41:53 -03:00
f79846d1bc Merge branch 'master' into binaries 2023-12-31 17:46:08 -03:00
ef9c94d006 Merge branch 'master' into binaries 2023-12-28 19:21:25 -03:00
e15fcc2f91 Merge branch 'master' into binaries 2023-12-26 22:21:03 -03:00
1ab20ef426 Merge branch 'master' into binaries 2023-12-23 12:15:56 -03:00
7376abea36 Merge branch 'master' into binaries 2023-12-20 18:34:38 -03:00
2afa59d16c Merge branch 'master' into binaries 2023-12-19 15:57:27 -03:00
78c6d1d83f Merge branch 'master' into binaries 2023-12-18 09:34:59 -03:00
96cc183c10 Merge branch 'master' into binaries 2023-12-14 18:20:24 -03:00
795b28e426 USER_PROBLEM: Fix rotational terms for the mail star.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-12-04 11:45:11 -03:00
ab3667c34d Merge branch 'master' into binaries 2023-08-29 17:44:43 -03:00
364696661a Merge branch 'master' into binaries 2023-08-29 17:23:13 -03:00
0ea3ef0841 Merge branch 'master' into binaries 2023-08-29 10:53:23 -03:00
d0f5d0c888 Merge branch 'master' into binaries 2023-08-14 17:31:37 -03:00
e59470ea30 Merge branch 'master' into binaries 2023-07-27 18:44:19 -03:00
6b3f1d74ea USER_PROBLEM: Improve the initial profiles for binaries problem.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-06-21 10:30:22 -03:00
4616a9144a Merge branch 'master' into binaries 2023-06-07 18:22:18 -03:00
a77903d51c USER_PROBLEM: Introduce a buffer zone around stars.
The buffer zone preserves the initial profiles of the variables, and
helps to maintain the round shape of the star.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-06-03 17:54:45 -03:00
37b9a957ee USER_PROBLEM: Adapt update_shape() to work with conservative variables.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2023-05-31 18:31:57 -03:00
7cf63ec5d5 Merge branch 'master' into binaries 2023-05-31 18:21:28 -03:00
d8c86a0f48 Merge branch 'master' into binaries 2023-05-17 15:36:41 -03:00
54eeca1d32 Merge branch 'master' into binaries 2023-05-16 18:17:42 -03:00
493625ce47 Merge branch 'master' into binaries 2023-04-28 17:30:03 -03:00
9cf9a57933 Merge branch 'master' into binaries 2023-04-03 18:16:35 -03:00
6aa20caf88 Merge branch 'master' into binaries 2023-02-28 10:22:18 -03:00
68683937d7 Merge branch 'master' into binaries 2023-02-27 10:06:10 -03:00
aa261bd9b8 Merge branch 'master' into binaries 2023-02-22 16:10:05 -03:00
8599e0ede3 Merge branch 'master' into binaries 2023-02-08 12:33:18 -03:00
86469c2043 Merge branch 'master' into binaries 2023-02-07 10:18:16 -03:00
73ae99ff02 Merge branch 'master' into binaries 2022-11-27 15:59:48 -03:00
44fe494299 Merge branch 'master' into binaries 2022-11-25 18:21:32 -03:00
f846d6183b Merge branch 'master' into binaries 2022-11-25 16:10:21 -03:00
f0df248bfa Merge branch 'master' into binaries 2022-11-16 15:51:48 -03:00
b229885aa9 Merge branch 'master' into binaries 2022-11-11 17:49:42 -03:00
825662e466 Merge branch 'master' into binaries 2022-11-07 19:58:19 -03:00
c577680f80 Merge branch 'master' into binaries 2022-10-24 10:07:16 -03:00
8cb77828c1 Merge branch 'master' into binaries 2022-10-24 08:57:19 -03:00
69a027c8f5 Merge branch 'master' into binaries 2022-10-06 13:10:21 -03:00
c97c443f20 Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-09-30 19:16:46 -03:00
19e832cf68 Merge branch 'master' into binaries 2022-09-30 19:03:47 -03:00
4dfdcb66c5 Merge branch 'master' into binaries 2022-07-14 17:34:36 -03:00
fccdff630f USER_PROBLEM: Make orbitinig and non orbiting cases consistent.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-07-07 13:38:51 -03:00
f55e6bd773 USER_PROBLEM: Make the initial shock paraboloid.
The curvature of the paraboloid shock is controlled by parameter
'shock_curvature'. The default value is 0.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-07-02 11:47:56 -03:00
8a3df6b216 USER_PROBLEM: Separate star regions and add magnetic field profile.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-06-29 18:15:48 -03:00
b0963e3e61 Merge branch 'master' into binaries 2022-06-11 00:35:39 -03:00
24bfdb9591 Merge branch 'master' into binaries 2022-06-09 18:06:33 -03:00
60c674b887 USER_PROBLEM: Rewrite and slightly optimize update_user_shapes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-06-09 18:01:24 -03:00
15714dedef Merge branch 'master' into binaries 2022-06-04 15:28:58 -03:00
7193a96dba Merge branch 'master' into binaries 2022-05-31 19:38:12 -03:00
8be69137b1 Merge branch 'master' into binaries 2022-05-27 21:56:51 -03:00
03cdfa1a11 Merge branch 'master' into binaries 2022-05-26 22:35:54 -03:00
e5ff27373e USER_PROBLEM: Maximum density decides the wind origin.
We do not want to sum the winds from both stars, since it produces
overshoots near the companion star. Instead, the maximum density between
two winds decides the density, pressure, and velocity in the region
between two stars.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-05-26 22:23:55 -03:00
4c9553ae69 Merge branch 'master' into binaries 2022-05-26 22:22:41 -03:00
aa34f0aa50 Merge branch 'master' into binaries 2022-05-24 19:34:03 -03:00
2c3b48f5ef Merge branch 'master' into binaries 2022-04-07 10:35:10 -03:00
78ff4f99c4 USER_PROBLEM: Rewrite update_user_shapes() to work with OpenMP.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-02-19 16:17:54 -03:00
552bbeffa1 Merge branch 'master' into binaries 2022-02-19 15:42:40 -03:00
84b2284699 Merge branch 'master' into binaries 2022-02-19 13:42:29 -03:00
c2d0fe8a3a Merge branch 'master' into binaries 2022-02-17 09:47:28 -03:00
7cbb86ff98 Merge branch 'master' into binaries 2022-02-11 22:48:39 -03:00
be396d072d Merge branch 'master' into binaries 2022-02-10 12:18:14 -03:00
52ab497962 Merge branch 'master' into binaries 2022-02-09 19:47:45 -03:00
aa1daeee84 Merge branch 'master' into binaries 2022-02-01 10:21:03 -03:00
7433177351 Merge branch 'master' into binaries 2022-01-25 09:14:49 -03:00
84de161562 Merge branch 'master' into binaries 2022-01-11 12:45:54 -03:00
66cff8ab98 Merge branch 'master' into binaries 2022-01-09 17:49:48 -03:00
1518dae615 Merge branch 'master' into binaries 2022-01-08 11:53:23 -03:00
ea06ef2d9f USER_PROBLEM: Make variable initialization OpenMP conformant.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2022-01-08 11:41:44 -03:00
5f85e090a9 Merge branch 'master' into binaries 2022-01-08 11:40:41 -03:00
41d0e0e48d Merge branch 'master' into binaries 2022-01-07 16:25:17 -03:00
c7c68922b7 Merge branch 'master' into binaries 2022-01-02 18:03:11 -03:00
8959948437 Merge branch 'master' into binaries 2022-01-02 13:08:21 -03:00
6b69c67e80 Merge branch 'master' into binaries 2022-01-01 17:28:09 -03:00
59d470f8e8 Merge branch 'master' into binaries 2021-12-18 15:36:30 -03:00
ac9ca20c8a Merge branch 'master' into binaries 2021-12-16 09:24:38 -03:00
53e1b4551c Merge branch 'master' into binaries 2021-12-15 16:53:53 -03:00
af19185cd7 Merge branch 'master' into binaries 2021-12-15 09:46:42 -03:00
3d9c7c6990 Merge branch 'master' into binaries 2021-12-02 12:03:19 -03:00
ea01f254ea Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-26 17:17:31 -03:00
86204879e0 USER_PROBLEM: Import missing update_shapes().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-26 17:09:10 -03:00
c5f89d42f8 Merge branch 'master' into binaries 2021-11-26 17:08:22 -03:00
b863d56e9b Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-26 16:55:02 -03:00
a0ae13b87b Merge branch 'master' into binaries 2021-11-25 18:02:01 -03:00
1c8341ac53 Merge branch 'master' into binaries 2021-11-25 11:57:25 -03:00
6639495441 Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-11-25 10:49:58 -03:00
3434305791 Merge branch 'master' into binaries 2021-11-13 22:17:14 -03:00
e220bc7cbd Merge branch 'master' into binaries 2021-11-12 23:10:50 -03:00
d4494677a7 Merge branch 'master' into binaries 2021-11-12 14:14:03 -03:00
cb10f52017 Merge branch 'master' into binaries 2021-11-12 13:18:49 -03:00
dc60992354 Merge branch 'master' into binaries 2021-11-11 16:01:43 -03:00
6ed0ba096c Merge branch 'master' into binaries 2021-11-10 22:51:00 -03:00
7ec79e40aa Merge branch 'master' into binaries 2021-11-10 16:47:05 -03:00
0cc641d7d1 Merge branch 'master' into binaries 2021-11-10 16:43:00 -03:00
4aee2f3eb0 Merge branch 'master' into binaries 2021-11-10 10:02:39 -03:00
c85071406a Merge branch 'master' into binaries 2021-11-09 22:21:30 -03:00
63d6dfe0c4 Merge branch 'master' into binaries 2021-11-09 16:53:25 -03:00
01cdba7766 Merge branch 'master' into binaries 2021-11-08 22:37:09 -03:00
530b5a5945 Merge branch 'master' into binaries 2021-11-04 10:27:50 -03:00
216a76cb9a Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-10-26 16:52:19 -03:00
b1b6940db9 Merge branch 'master' into binaries 2021-10-23 11:47:03 -03:00
780d9c2cd1 Merge branch 'master' into binaries 2021-10-20 18:09:59 -03:00
13719a8f29 Merge branch 'master' into binaries 2021-10-18 11:34:44 -03:00
0cc32eaf80 Merge branch 'master' into binaries 2021-10-16 19:05:24 -03:00
170f589550 Merge branch 'master' into binaries 2021-10-15 15:32:05 -03:00
fc8aa7e3ef Merge branch 'master' into binaries 2021-10-15 13:53:22 -03:00
3fa051604b Merge branch 'master' into binaries 2021-10-06 18:08:31 -03:00
352369b57c Merge branch 'master' into binaries 2021-10-05 11:13:02 -03:00
5c7706ca18 Merge branch 'master' into binaries 2021-10-05 11:00:41 -03:00
e7222201ab Merge branch 'master' into binaries 2021-09-21 11:31:18 -03:00
81284a4f9b Merge branch 'master' into binaries 2021-09-20 08:47:32 -03:00
53c53a8e4b Merge branch 'master' into binaries 2021-09-12 12:03:15 -03:00
ef58bc17a3 Merge branch 'master' into binaries 2021-08-17 11:27:41 -03:00
8502126bed Merge branch 'master' into binaries 2021-07-20 18:05:53 -03:00
d87814d3f5 Merge branch 'master' into binaries 2021-07-19 15:13:21 -03:00
6c4725518f Merge branch 'master' into binaries 2021-07-19 13:18:00 -03:00
3127ddd7eb Merge branch 'master' into binaries 2021-07-19 13:06:43 -03:00
a07e85fd3b Merge branch 'master' into binaries 2021-07-18 19:51:13 -03:00
10179fb71b Merge branch 'master' into binaries 2021-07-15 13:00:21 -03:00
cb831885cb USER_PROBLEM: Introduce a parameter to shift the star positions.
Using the parameter 'xshift', we can shift the stars' positions along
the X direction in order to cover better the region of developed
turbulence.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-06-03 21:47:50 -03:00
cf404e4b52 Merge branch 'master' into binaries 2021-06-03 16:28:54 -03:00
65c0a0a235 Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-03-18 11:18:41 -03:00
545540a132 USER_PROBLEM: Print binary problem parameters.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2021-01-11 21:47:40 -03:00
2d02bfff65 Merge branch 'master' into binaries 2021-01-11 17:58:33 -03:00
646e2a236c Merge branch 'master' into binaries 2020-11-26 10:52:19 -03:00
246ae65000 Merge branch 'master' into binaries 2020-11-26 09:54:51 -03:00
12a3216ea4 USER_PROBLEM: Implement flag to select orbiting or fixed stars.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2020-11-25 16:50:05 -03:00
3c42fc79a3 Merge branch 'master' into binaries 2020-11-24 23:19:07 -03:00
b95377b7c1 Merge branch 'master' into binaries 2020-10-09 22:43:08 -03:00
a8e0273969 Merge branch 'master' into binaries 2020-09-16 06:43:40 -03:00
a3b31f3141 Merge branch 'master' into binaries 2020-09-15 23:00:56 -03:00
8b82d8444c Merge branch 'master' into binaries 2020-09-15 20:40:12 -03:00
12c0dd69c3 Merge branch 'master' into binaries 2020-09-11 19:13:05 -03:00
8f7a795045 Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2020-09-11 19:08:39 -03:00
67af4550db Merge branch 'master' into binaries 2019-10-04 13:50:58 -03:00
3c81cf068f Merge branch 'master' into binaries 2019-03-07 11:16:41 -03:00
45c7706af8 Merge branch 'master' into binaries 2019-02-21 16:00:46 -03:00
7c51d3d096 Merge branch 'master' into binaries 2019-02-18 17:14:22 -03:00
24963a7a27 Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2019-02-13 11:46:54 -02:00
e226a5ebb6 Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2019-02-13 11:38:59 -02:00
dc172efdb3 Merge branch 'master' into binaries 2019-01-31 22:00:41 -02:00
68ff188148 Merge branch 'master' into binaries 2019-01-30 15:41:05 -02:00
91f8adda59 USER_PROBLEM: Remove cruft left from the merge.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2019-01-29 11:16:20 -02:00
b1525655e2 Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2019-01-29 11:06:17 -02:00
48450383f7 Merge branch 'master' into binaries 2018-08-31 11:17:36 -03:00
8a23933ae2 Merge branch 'master' into binaries 2018-08-30 09:09:11 -03:00
60e4941170 Merge branch 'master' into binaries 2018-08-27 19:53:32 -03:00
80be187082 Merge branch 'master' into binaries 2018-08-26 23:12:06 -03:00
67bc11cd5a Merge branch 'master' into binaries 2018-08-21 23:06:56 -03:00
6eee6eca65 Merge branch 'master' into binaries 2018-08-13 10:00:59 -03:00
d638ffc513 Merge branch 'master' into binaries 2018-03-30 21:41:05 -03:00
943d292ae2 Merge branch 'master' into binaries 2018-02-20 15:30:40 -03:00
084df89cdd Merge branch 'master' into binaries 2018-02-09 17:42:39 -02:00
7536c3ddba Merge branch 'master' into binaries 2018-02-09 08:24:48 -02:00
fdc94d64ea Merge branch 'master' into binaries 2018-01-18 11:10:16 -02:00
09bdebd109 Merge branch 'master' into binaries 2018-01-17 13:33:42 -02:00
5d07afc2e7 Merge branch 'master' into binaries 2018-01-17 08:45:13 -02:00
ec0da99053 Merge branch 'master' into binaries 2018-01-17 08:28:13 -02:00
269f77e144 Merge branch 'master' into binaries 2018-01-16 13:31:43 -02:00
bba29cd7ed Merge branch 'master' into binaries 2018-01-16 11:50:02 -02:00
8fc8173d26 Merge branch 'master' into binaries 2018-01-16 10:31:30 -02:00
96c158ea28 Merge branch 'master' into binaries 2018-01-11 09:28:21 -02:00
3e05170ba4 Merge branch 'master' into binaries 2017-09-05 12:18:12 -03:00
d35956e4d9 Merge branch 'master' into binaries 2017-05-16 17:03:47 -03:00
aff5ca21e2 Merge branch 'master' into binaries 2017-05-11 10:03:29 -03:00
1689a41d91 Merge branch 'master' into binaries 2017-05-11 09:58:02 -03:00
3f904f0df0 Merge branch 'master' into binaries 2017-05-11 09:54:47 -03:00
c39095c9b5 Merge branch 'master' into binaries 2017-05-10 08:46:48 -03:00
6ea3428f7d Merge branch 'master' into binaries 2017-05-05 08:42:29 -03:00
6ec3101a9b Merge branch 'master' into binaries 2017-05-03 12:00:40 -03:00
1dc305bb87 Merge branch 'master' into binaries 2017-04-28 13:26:49 -03:00
15ea95f932 Merge branch 'master' into binaries 2017-04-28 13:25:39 -03:00
32cf0c51ca Merge branch 'master' into binaries 2017-04-19 07:31:05 -03:00
d111c7cf50 Merge branch 'binaries' of bitbucket.org:amunteam/amun-code into binaries 2017-04-10 08:07:36 -03:00
7bc5807c80 Merge branch 'master' into binaries 2017-04-10 08:06:22 -03:00
5cac79f637 Merge branch 'master' into binaries 2017-03-10 12:08:00 -03:00
65be8c3d5a Merge branch 'master' into binaries 2017-03-09 09:34:43 -03:00
00860cd62b SHAPES: Move update_shapes_binaries to USER_PROBLEM.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2017-03-08 16:42:11 -03:00
c6a54ba2c9 PROBLEMS: Move binaries setup to USER_PROBLEM.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2017-03-08 16:30:23 -03:00
e11d41fb02 Merge branch 'master' into binaries 2017-03-08 14:22:17 -03:00
180d8b8e36 Merge branch 'master' into binaries 2016-12-22 10:30:39 -02:00
957ed24caf Merge branch 'master' into binaries 2016-12-02 10:01:14 -02:00
c89ef4415f Merge branch 'master' into binaries 2016-11-18 11:42:40 -02:00
b8bef681a7 Merge branch 'master' into binaries 2016-11-18 11:13:29 -02:00
6bc9493674 Merge branch 'master' into binaries 2016-08-20 07:11:48 -03:00
9f08daa277 Merge branch 'master' into binaries 2016-05-13 13:56:04 -03:00
39c22fc053 Merge branch 'master' into binaries 2015-12-27 17:18:29 -02:00
07da0e7a91 Merge branch 'master' into binaries 2015-06-08 20:14:43 -03:00
06fe62faf7 Merge branch 'master' into binaries 2015-06-08 19:21:18 -03:00
f7597e66ac Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-05-16 16:20:20 -03:00
d75bba8773 Merge branch 'master' into binaries 2015-05-11 10:39:18 -03:00
36ef146c9c Merge branch 'master' into binaries 2015-05-10 13:20:11 -03:00
b71f592697 Merge branch 'master' into binaries 2015-05-07 11:04:27 -03:00
a925395ded Merge branch 'master' into binaries
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>

Conflicts:
	src/problems.F90
	src/shapes.F90
2015-04-24 10:47:50 -03:00
ba4ad674fb PROBLEMS: Fix star velocity calculation.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-02-11 12:57:19 -02:00
a9f90fe5ac PROBLEMS: Update binaries.in after parameter names change.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-02-11 12:02:06 -02:00
1fa217c4b1 PROBLEMS: Rewrite binaries problems.
This rewrite adds the star rotation velocity profiles, improves the
Kepler's equation solver, and calculates the star position with the
mass center as the reference point.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-02-11 11:59:04 -02:00
44ac795aac Merge branch 'master' into binaries 2015-02-10 08:42:18 -02:00
03bd0ace96 PROBLEMS: Add parameter file for the binaries problem.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-01-26 07:36:35 -02:00
944bfad52c Merge branch 'master' into binaries 2015-01-25 22:04:03 -02:00
ba1b7d4a7c SHAPES: Implement shape update for the binaries wind problem.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-01-25 21:33:43 -02:00
a8a296a450 PROBLEMS: Implement binaries wind interaction problem.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2015-01-25 21:32:35 -02:00
2 changed files with 678 additions and 4 deletions

74
problems/binaries.in Normal file

@ -0,0 +1,74 @@
# problem name and parameters
#
problem = "binaries"
gamma = 1.1d+00
mstar = 2.0d+00
mcomp = 1.0d+00
rstar = 5.0d-02
rcomp = 5.0d-02
dstar = 1.0d+07
dratio = 1.0d+02
msstar = 3.0d+00
mscomp = 1.5d+01
tstar = 2.0d+01
tcomp = 1.0d+01
vstar = 5.0d-01
vcomp = 2.5d+00
distance = 2.0d-01
eccentricity = 0.9d+00
period = 1.0d+02
buni = 1.0d-03
# physics
#
equation_system = "mhd"
equation_of_state = "adi"
# numerical methods
#
time_advance = "ssprk(m,2)"
stages = 4
riemann_solver = "hlld"
reconstruction = "tvd"
limiter = "mc"
fix_positivity = "off"
clip_extrema = "off"
# mesh parameters
#
xblocks = 3
yblocks = 2
zblocks = 1
xmin = -4.5d+00
xmax = 4.5d+00
ymin = -3.0d+00
ymax = 3.0d+00
zmin = -1.5d+00
zmax = 1.5d+00
# refinement control
#
ncells = 16
nghosts = 2
minlev = 1
maxlev = 5
# boundary conditions
#
xlbndry = "open"
xubndry = "open"
ylbndry = "open"
yubndry = "open"
zlbndry = "open"
zubndry = "open"
enable_shapes = "on"
# runtime control parameters
#
tmax = 1.2d+02
cfl = 3.0d-01
# data output control
#
precise_snapshots = "on"
snapshot_interval = 1.0d-01

@ -31,6 +31,56 @@ module user_problem
implicit none
! flag indicating the stars are orbiting
!
logical, save :: orbiting = .false.
! default problem parameter values
!
real(kind=8), save :: mstar = 2.00d+00
real(kind=8), save :: mcomp = 1.00d+00
real(kind=8), save :: rstar = 1.00d-01
real(kind=8), save :: rcomp = 1.00d-01
real(kind=8), save :: rbuffer = 8.00d-02
real(kind=8), save :: dstar = 1.00d+06
real(kind=8), save :: dratio = 1.00d+02
real(kind=8), save :: msstar = 3.00d+00
real(kind=8), save :: mscomp = 1.50d+01
real(kind=8), save :: tstar = 0.00d+00
real(kind=8), save :: tcomp = 0.00d+00
real(kind=8), save :: omstar = 0.00d+00
real(kind=8), save :: omcomp = 0.00d+00
real(kind=8), save :: vstar = 5.00d-01
real(kind=8), save :: vcomp = 2.50d+00
real(kind=8), save :: xshock = 0.00d+00
real(kind=8), save :: cshock = 0.00d+00
real(kind=8), save :: xshift = 0.00d+00
real(kind=8), save :: dist = 2.00d-01
real(kind=8), save :: period = 1.00d+02
real(kind=8), save :: ecc = 9.00d-01
real(kind=8), save :: buni = 1.00d-03
real(kind=8), save :: tol = 1.00d-14
integer , save :: maxit = 20
real(kind=8), save :: dcomp, pstar, pcomp
real(kind=8), save :: r2stari, r2compi, r2staro, r2compo
real(kind=8), save :: acomp , bcomp
real(kind=8), save :: om
real(kind=8), save :: ms, mc
real(kind=8), save :: asemi, omega, ean
real(kind=8), save :: uxs, uxc
real(kind=8), save :: tprev
real(kind=8), save :: xps = 1.0d+00, yps = 0.0d+00
real(kind=8), save :: xpc = -1.0d+00, ypc = 0.0d+00
real(kind=8), save :: uys, uyc, xrs, yrs, xrc, yrc
real(kind=8) :: ida = 1.0d+00, idm = 1.0d+00
integer, parameter :: idx = NDIMS - 1
private
public :: initialize_user_problem, finalize_user_problem
public :: user_statistics
@ -58,6 +108,15 @@ module user_problem
!
subroutine initialize_user_problem(problem, rcount, verbose, status)
use algebra , only : quadratic
use constants , only : pi2
use equations , only : ipr
use equations , only : adiabatic_index
use helpers , only : print_section, print_parameter
use mesh , only : setup_problem
use parameters , only : get_parameter
use shapes , only : update_shapes
implicit none
character(len=64), intent(in) :: problem
@ -65,10 +124,205 @@ module user_problem
logical , intent(in) :: verbose
integer , intent(out) :: status
character(len=32) :: orb = "off"
integer :: n
real(kind=8) :: as, ac
real(kind=8), dimension(3) :: a
real(kind=8), dimension(2) :: x
!
!-------------------------------------------------------------------------------
!
status = 0
! star masses, radia, densities and sonic Mach numbers
!
call get_parameter("mstar" , mstar )
call get_parameter("mcomp" , mcomp )
call get_parameter("rstar" , rstar )
call get_parameter("rcomp" , rcomp )
call get_parameter("rbuffer" , rbuffer)
call get_parameter("dstar" , dstar )
call get_parameter("dratio" , dratio)
call get_parameter("msstar" , msstar)
call get_parameter("mscomp" , mscomp)
! wind speeds
!
call get_parameter("vstar" , vstar )
call get_parameter("vcomp" , vcomp )
! orbit parameters
!
call get_parameter("xshift" , xshift)
call get_parameter("distance" , dist )
call get_parameter("period" , period)
call get_parameter("eccentricity", ecc )
! the initial shock curvature
!
call get_parameter("shock_curvature", cshock)
! star rotation periods
!
call get_parameter("tstar" , tstar )
call get_parameter("tcomp" , tcomp )
! magnetic field profile parameters
!
call get_parameter("buni" , buni )
! Kepler's equation solver parameters
!
call get_parameter("orbiting" , orb )
call get_parameter("tolerance" , tol )
call get_parameter("maxit" , maxit )
! check if stars should be orbiting
!
select case(trim(orb))
case ("on", "ON", "t", "T", "y", "Y", "true", "TRUE", "yes", "YES")
orbiting = .true.
case default
orbiting = .false.
end select
! indices
!
ida = idx * adiabatic_index
idm = 5.0d-01 * NDIMS
! correct rbuffer
!
rbuffer = max(0.0d+00, rbuffer)
! calculate the square of radia
!
r2stari = rstar**2
r2compi = rcomp**2
r2staro = (rstar + rbuffer)**2
r2compo = (rcomp + rbuffer)**2
! calculate densities and pressures
!
dcomp = dstar / dratio
if (ipr > 0) then
pstar = (vstar / msstar)**2 * dstar / adiabatic_index
pcomp = (vcomp / mscomp)**2 * dcomp / adiabatic_index
end if
! calculate the rotation speeds
!
if (tstar > 0.0d+00) omstar = 1.0d+00 / tstar
if (tcomp > 0.0d+00) omcomp = 1.0d+00 / tcomp
! calculate orbit parameters
!
acomp = dist / (1.0d+00 - ecc)
bcomp = acomp * sqrt(1.0d+00 - ecc * ecc)
om = (pi2 / period) / (1.0d+00 - ecc)
if (.not. orbiting) then
! fix positions if the start are not orbiting
!
xps = xshift + 0.5d+00 * acomp
yps = 0.0d+00
xpc = xshift - 0.5d+00 * acomp
ypc = 0.0d+00
uxs = 0.0d+00
uys = 0.0d+00
uxc = 0.0d+00
uyc = 0.0d+00
else
! calculate initial positions and velocities
!
xps = mcomp / (mstar + mcomp) * dist + xshift
xpc = - mstar / (mstar + mcomp) * dist + xshift
uys = xps * om
uyc = - xpc * om
! calculate mass fractions
!
ms = mcomp / (mstar + mcomp)
mc = mstar / (mstar + mcomp)
! calculate orbit parameters
!
asemi = dist / (1.0d+00 - ecc)
omega = pi2 / period
ean = 0.0d+00
! set the initial positions
!
xrs = ms * dist + xshift
yrs = 0.0d+00
xrc = - mc * dist + xshift
yrc = 0.0d+00
end if
as = 1.0d+00 / (vstar * dstar * rstar**2)
ac = 1.0d+00 / (vcomp * dcomp * rcomp**2)
a(1) = as * xps**2 - ac * xpc**2
a(2) = 2.0d+00 * (ac * xpc - as * xps)
a(3) = as - ac
n = quadratic(a, x)
if (a(3) >= 0.0d+00) then
xshock = minval(x)
else
xshock = maxval(x)
end if
! set the previous time
!
tprev = 0.0d+00
! proceed if no errors
!
if (status == 0) then
! print information about the user problem setup
!
call print_section(verbose, "Parameters (* - set, otherwise calculated)")
call print_parameter(verbose, '(*) adiabatic_index' , adiabatic_index)
call print_parameter(verbose, '(*) dratio = dstar/dcomp', dratio)
call print_parameter(verbose, '(*) dstar' , dstar)
call print_parameter(verbose, '( ) dcomp' , dcomp)
call print_parameter(verbose, '(*) vstar' , vstar)
call print_parameter(verbose, '(*) vcomp' , vcomp)
call print_parameter(verbose, '(*) msstar' , msstar)
call print_parameter(verbose, '(*) mscomp' , mscomp)
call print_parameter(verbose, '( ) pstar' , pstar)
call print_parameter(verbose, '( ) pcomp' , pcomp)
call print_parameter(verbose, '(*) buni' , buni)
call print_parameter(verbose, '(*) rstar' , rstar)
call print_parameter(verbose, '(*) rcomp' , rcomp)
call print_parameter(verbose, '(*) rbuffer' , rbuffer)
call print_parameter(verbose, '(*) tstar' , tstar)
call print_parameter(verbose, '(*) tcomp' , tcomp)
if (orbiting) then
call print_parameter(verbose, '(*) distance' , dist)
call print_parameter(verbose, '(*) eccentricity', ecc)
call print_parameter(verbose, '( ) acomp' , acomp)
call print_parameter(verbose, '( ) bcomp' , bcomp)
else
call print_parameter(verbose, '(*) distance' , acomp)
end if
call print_parameter(verbose, '( ) shock position' , xshock)
call print_parameter(verbose, '(*) shock curvature', cshock)
end if ! status
! associate subroutines to problem setup and shape update
!
setup_problem => setup_user_problem
update_shapes => update_user_shapes
!-------------------------------------------------------------------------------
!
end subroutine initialize_user_problem
@ -91,7 +345,7 @@ module user_problem
implicit none
integer, intent(out) :: status
!
!-------------------------------------------------------------------------------
!
status = 0
@ -105,7 +359,8 @@ module user_problem
! subroutine SETUP_USER_PROBLEM:
! -----------------------------
!
! Subroutine sets the initial conditions for the user specific problem.
! Subroutine sets the initial conditions for the wind interaction in
! the binary star problem.
!
! Arguments:
!
@ -116,14 +371,180 @@ module user_problem
!
subroutine setup_user_problem(pdata)
use blocks, only : block_data
use blocks , only : block_data
use coordinates, only : nn => bcells
use coordinates, only : ax, ay, az
use equations , only : prim2cons, magnetized
use equations , only : nv
use equations , only : idn, ivx, ivy, ivz, ipr, ibx, iby, ibz, ibp
implicit none
type(block_data), pointer, intent(inout) :: pdata
integer :: i, j, k
real(kind=8) :: xs, ys, zs = 0.0d+00
real(kind=8) :: xc, yc, zc = 0.0d+00
real(kind=8) :: rs2, rc2, rs, rc, rd, ra
real(kind=8) :: dns, prs, vxs, vys, vzs, bzs
real(kind=8) :: dnc, prc, vxc, vyc, vzc, bzc
real(kind=8), dimension(nv,nn) :: q, u
real(kind=8), dimension(nn) :: x, y
#if NDIMS == 3
real(kind=8), dimension(nn) :: z
#endif /* NDIMS == 3 */
!
!-------------------------------------------------------------------------------
!
#if NDIMS == 2
k = 1
#endif /* NDIMS == 2 */
x(:) = pdata%meta%xmin + ax(pdata%meta%level,:)
y(:) = pdata%meta%ymin + ay(pdata%meta%level,:)
#if NDIMS == 3
z(:) = pdata%meta%zmin + az(pdata%meta%level,:)
#endif /* NDIMS == 3 */
! set magnetic field components
!
if (magnetized) then
q(ibx,:) = 0.0d+00
q(iby,:) = 0.0d+00
q(ibz,:) = buni
q(ibp,:) = 0.0d+00
end if
#if NDIMS == 3
! iterate over all positions in the YZ plane
!
do k = 1, nn
! calculate the Z coordinates of the central and companion stars
!
zs = z(k)
zc = z(k)
#endif /* NDIMS == 3 */
do j = 1, nn
! calculate the Y coordinates of the central and companion stars
!
ys = y(j) - yps
yc = y(j) - ypc
! distance from the line connecting both stars
!
#if NDIMS == 3
ra = y(j)**2 + z(k)**2
#else /* NDIMS == 3 */
ra = y(j)**2
#endif /* NDIMS == 3 */
! sweep along the X coordinate
!
do i = 1, nn
! calculate the X coordinates of the central and companion stars
!
xs = x(i) - xps
xc = x(i) - xpc
! calculate the distances from the centers of the central and companion stars
!
#if NDIMS == 3
rs2 = max(xs * xs + ys * ys + zs * zs, 1.0d-16)
rc2 = max(xc * xc + yc * yc + zc * zc, 1.0d-16)
#else /* NDIMS == 3 */
rs2 = max(xs * xs + ys * ys, 1.0d-16)
rc2 = max(xc * xc + yc * yc, 1.0d-16)
#endif /* NDIMS == 3 */
rs = sqrt(rs2)
rc = sqrt(rc2)
! calculate profiles from the central star
!
rd = max(1.0d+00, rs / rstar)
dns = dstar / rd**idx
if (ipr > 0) prs = pstar / rd**ida
if (ibz > 0) bzs = buni / rd**idm
! set the central star wind velocity
!
vxs = vstar * xs / rs
vys = vstar * ys / rs
vzs = vstar * zs / rs
! calculate profiles from the companion star
!
rd = max(1.0d+00, rc / rcomp)
dnc = dcomp / rd**idx
if (ipr > 0) prc = pcomp / rd**ida
if (ibz > 0) bzc = buni / rd**idm
! set the companion star wind velocity
!
vxc = vcomp * xc / rc
vyc = vcomp * yc / rc
vzc = vcomp * zc / rc
! set the variables
!
if (rs2 <= r2stari) then
q(idn,i) = dns
q(ivx,i) = vxs * rs / rstar - omstar * ys
q(ivy,i) = vys * rs / rstar + omstar * xs + uys
q(ivz,i) = vzs * rs / rstar
if (ipr > 0) q(ipr,i) = prs
if (ibz > 0) q(ibz,i) = bzs
else if (rc2 <= r2compi) then
q(idn,i) = dnc
q(ivx,i) = vxc * rs / rcomp - omcomp * yc
q(ivy,i) = vyc * rs / rcomp + omcomp * xc + uyc
q(ivz,i) = vzc * rs / rcomp
if (ipr > 0) q(ipr,i) = prc
if (ibz > 0) q(ibz,i) = bzc
else
if (x(i) > xshock - cshock * ra) then
q(idn,i) = dns
q(ivx,i) = vxs
q(ivy,i) = vys
q(ivz,i) = vzs
if (ipr > 0) q(ipr,i) = prs
if (ibz > 0) q(ibz,i) = bzs
else
q(idn,i) = dnc
q(ivx,i) = vxc
q(ivy,i) = vyc
q(ivz,i) = vzc
if (ipr > 0) q(ipr,i) = prc
if (ibz > 0) q(ibz,i) = bzc
end if
end if
end do ! i = 1, nn
! convert the primitive variables to conservative ones
!
call prim2cons(q(:,:), u(:,:))
! copy the primitive variables to the current block
!
pdata%q(:,:,j,k) = q(:,:)
! copy the conserved variables to the current block
!
pdata%u(:,:,j,k) = u(:,:)
end do ! j = 1, nn
#if NDIMS == 3
end do ! k = 1, nn
#endif /* NDIMS == 3 */
!-------------------------------------------------------------------------------
!
@ -177,15 +598,194 @@ module user_problem
!
subroutine update_user_shapes(pdata, time, dt)
use blocks, only : block_data
use blocks , only : block_data
use coordinates, only : nn => bcells
use coordinates, only : ax, ay, az
use equations , only : nv
use equations , only : idn, ivx, ivy, ivz, ipr, ibx, iby, ibz, ibp
use equations , only : prim2cons
implicit none
type(block_data), pointer, intent(inout) :: pdata
real(kind=8) , intent(in) :: time, dt
integer :: i, j, k
real(kind=8) :: xs, ys, zs
real(kind=8) :: xc, yc, zc
real(kind=8) :: dv, ds
real(kind=8) :: sn, cs, man, res
real(kind=8) :: rs2, rc2, rs, rc, rd
real(kind=8), dimension(nv) :: qs, qc
real(kind=8), dimension(nn) :: x, y
#if NDIMS == 3
real(kind=8), dimension(nn) :: z
#endif /* NDIMS == 3 */
!-------------------------------------------------------------------------------
!
! if time changes, we have to recalculate the star positions
!
if (time > tprev .and. orbiting) then
! solve the Kepler's equation to obtain the new value of eccentric anomaly
!
man = omega * time
res = 1.0d+00
i = 1
do while(abs(res) >= tol .and. i <= maxit)
res = (ean - ecc * sin(ean) - man) / (1.0d+00 - ecc * cos(ean))
ean = ean - res
i = i + 1
end do
if (abs(res) >= tol) then
print *, "Kepler's equations could not be solved!"
print *, "it: ", i, ", E: ", ean, ", dE: ", res
print *, ""
end if
! calculate trigonometric functions of the true anomaly
!
dv = 1.0d+00 - ecc * cos(ean)
sn = sqrt(1.0d+00 - ecc**2) * sin(ean) / dv
cs = (cos(ean) - ecc) / dv
! calculate the position and velocity of the companion star
!
ds = asemi * dv
rs = ms * ds
rc = mc * ds
xps = rs * cs + xshift
yps = rs * sn
xpc = - rc * cs + xshift
ypc = - rc * sn
ds = time - tprev
uxs = (xps - xrs) / ds
uys = (yps - yrs) / ds
uxc = (xpc - xrc) / ds
uyc = (ypc - yrc) / ds
! update tprev, previous positions
!
tprev = time
xrs = xps
yrs = yps
xrc = xpc
yrc = ypc
end if ! time /= tprev
x(:) = pdata%meta%xmin + ax(pdata%meta%level,:)
y(:) = pdata%meta%ymin + ay(pdata%meta%level,:)
#if NDIMS == 3
z(:) = pdata%meta%zmin + az(pdata%meta%level,:)
#endif /* NDIMS == 3 */
! set density and pressure in the stars' interiors
!
qs(idn) = dstar
qc(idn) = dcomp
if (ipr > 0) then
qs(ipr) = pstar
qc(ipr) = pcomp
end if
! set magnetic field in the stars' interiors
!
if (ibx > 0) then
qs(ibx) = 0.0d+00
qs(iby) = 0.0d+00
qs(ibz) = buni
qs(ibp) = 0.0d+00
qc(ibx) = 0.0d+00
qc(iby) = 0.0d+00
qc(ibz) = buni
qc(ibp) = 0.0d+00
end if
#if NDIMS == 3
do k = 1, nn
zs = z(k)
zc = z(k)
#else /* NDIMS == 3 */
do k = 1, 1
zs = 0.0d+00
zc = 0.0d+00
#endif /* NDIMS == 3 */
do j = 1, nn
ys = y(j) - yps
yc = y(j) - ypc
do i = 1, nn
xs = x(i) - xps
xc = x(i) - xpc
! calculate distances from the centers of the central and companion stars
!
rs2 = xs * xs + ys * ys + zs * zs
if (rs2 <= r2staro) then
rs = max(sqrt(rs2), 1.0d-16)
rd = max(1.0d+00, rs / rstar)
qs(idn) = dstar / rd**idx
if (ipr > 0) qs(ipr) = pstar / rd**ida
if (ibz > 0) qs(ibz) = buni / rd**idm
if (rs2 <= r2stari) then
qs(ivx) = vstar * xs / rstar
qs(ivy) = vstar * ys / rstar
qs(ivz) = vstar * zs / rstar
else
qs(ivx) = vstar * xs / rs
qs(ivy) = vstar * ys / rs
qs(ivz) = vstar * zs / rs
end if
qs(ivx) = qs(ivx) - omstar * ys + uxs
qs(ivy) = qs(ivy) + omstar * xs + uys
pdata%q(:,i,j,k) = qs(:)
call prim2cons(qs(:), pdata%u(:,i,j,k))
end if
rc2 = xc * xc + yc * yc + zc * zc
if (rc2 <= r2compo) then
rc = max(sqrt(rc2), 1.0d-16)
rd = max(1.0d+00, rc / rcomp)
qc(idn) = dcomp / rd**idx
if (ipr > 0) qc(ipr) = pcomp / rd**ida
if (ibz > 0) qc(ibz) = buni / rd**idm
if (rc2 <= r2compi) then
qc(ivx) = vcomp * xc / rcomp
qc(ivy) = vcomp * yc / rcomp
qc(ivz) = vcomp * zc / rcomp
else
qc(ivx) = vcomp * xc / rc
qc(ivy) = vcomp * yc / rc
qc(ivz) = vcomp * zc / rc
end if
qc(ivx) = qc(ivx) - omcomp * yc + uxc
qc(ivy) = qc(ivy) + omcomp * xc + uyc
pdata%q(:,i,j,k) = qc(:)
call prim2cons(qc(:), pdata%u(:,i,j,k))
end if
end do
end do
end do
!-------------------------------------------------------------------------------
!