Skip to content

Commit ba03d05

Browse files
committed
CurvTmunu: add thorn
1 parent b509eb1 commit ba03d05

7 files changed

Lines changed: 97 additions & 0 deletions

File tree

‎CurvTmunu/README‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Cactus Code Thorn CurvTmunu
2+
Author(s) : Liwei Ji <jiliwei.phys@gmail.com>
3+
Maintainer(s): Liwei Ji <jiliwei.phys@gmail.com>
4+
Licence : LGPL
5+
--------------------------------------------------------------------------
6+
7+
1. Purpose
8+
9+
Provide storage for the stress-energy tensor T_\mu\nu

‎CurvTmunu/configuration.ccl‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Configuration definition for thorn CurvTmunu
2+
3+
REQUIRES Loop

‎CurvTmunu/interface.ccl‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Interface definition for thorn CurvTmunu
2+
3+
IMPLEMENTS: CurvTmunu
4+
5+
USES INCLUDE HEADER: loop_device.hxx
6+
7+
8+
PUBLIC:
9+
10+
CCTK_REAL eTtt TYPE=gf CENTERING={ccc} TAGS='checkpoint="no"' "T_00"
11+
12+
CCTK_REAL eTti TYPE=gf CENTERING={ccc} TAGS='checkpoint="no"' { eTtx eTty eTtz } "T_0i"
13+
14+
CCTK_REAL eTij TYPE=gf CENTERING={ccc} TAGS='checkpoint="no"' { eTxx eTxy eTxz eTyy eTyz eTzz } "T_ij"

‎CurvTmunu/param.ccl‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Parameter definitions for thorn CurvTmunu

‎CurvTmunu/schedule.ccl‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Schedule definitions for thorn CurvTmunu
2+
3+
SCHEDULE GROUP CurvTmunu_SetTmunuVars AT initial AFTER CurvADM_SetADMVars
4+
{
5+
} "Schedule group for setting T_munu"
6+
7+
if (CCTK_IsThornActive("ODESolvers")) {
8+
SCHEDULE GROUP CurvTmunu_SetTmunuVars IN ODESolvers_PostStep AFTER CurvADM_SetADMVars
9+
{
10+
} "Schedule group for setting T_munu"
11+
} else {
12+
SCHEDULE GROUP CurvTmunu_SetTmunuVars AT postregrid AFTER CurvADM_SetADMVars
13+
{
14+
} "Schedule group for setting T_munu"
15+
16+
SCHEDULE GROUP CurvTmunu_SetTmunuVars AT poststep AFTER CurvADM_SetADMVars
17+
{
18+
} "Schedule group for setting T_munu"
19+
}
20+
21+
22+
SCHEDULE CurvTmunu_ZeroTmunu IN CurvTmunu_SetTmunuVars
23+
{
24+
LANG: C
25+
WRITES: eTtt(everywhere) eTti(everywhere) eTij(everywhere)
26+
} "Set T_munu to zero"
27+
28+
SCHEDULE GROUP CurvTmunu_AddToTmunu IN CurvTmunu_SetTmunuVars AFTER CurvTmunu_ZeroTmunu
29+
{
30+
} "Add to T_munu here"

‎CurvTmunu/src/make.code.defn‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Main make.code.defn file for thorn CurvTmunu
2+
3+
# Source files in this directory
4+
SRCS = tmunu.cxx
5+
6+
# Subdirectories containing source files
7+
SUBDIRS =

‎CurvTmunu/src/tmunu.cxx‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include <loop_device.hxx>
2+
3+
#include <cctk.h>
4+
#include <cctk_Arguments.h>
5+
#include <cctk_Parameters.h>
6+
7+
#include <array>
8+
9+
namespace CurvTmunu {
10+
using namespace std;
11+
using namespace Loop;
12+
13+
extern "C" void CurvTmunu_ZeroTmunu(CCTK_ARGUMENTS) {
14+
DECLARE_CCTK_ARGUMENTSX_CurvTmunu_ZeroTmunu;
15+
DECLARE_CCTK_PARAMETERS;
16+
17+
grid.loop_all_device<1, 1, 1>(grid.nghostzones,
18+
[=] CCTK_DEVICE(const PointDesc &p)
19+
CCTK_ATTRIBUTE_ALWAYS_INLINE {
20+
eTtt(p.I) = 0;
21+
eTtx(p.I) = 0;
22+
eTty(p.I) = 0;
23+
eTtz(p.I) = 0;
24+
eTxx(p.I) = 0;
25+
eTxy(p.I) = 0;
26+
eTxz(p.I) = 0;
27+
eTyy(p.I) = 0;
28+
eTyz(p.I) = 0;
29+
eTzz(p.I) = 0;
30+
});
31+
}
32+
33+
} // namespace CurvTmunu

0 commit comments

Comments
 (0)