Skip to content

Commit

Permalink
StaggeredWaveToyX: New thorn
Browse files Browse the repository at this point in the history
  • Loading branch information
eschnett committed Jun 8, 2023
1 parent 818507c commit d620dbf
Show file tree
Hide file tree
Showing 75 changed files with 1,349 additions and 0 deletions.
9 changes: 9 additions & 0 deletions StaggeredWaveToyX/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Cactus Code Thorn StaggeredWaveToyX
Author(s) : Erik Schnetter <[email protected]>
Maintainer(s): Erik Schnetter <[email protected]>
Licence : LGPL
--------------------------------------------------------------------------

1. Purpose

Solve the scalar wave equation using staggered grids.
3 changes: 3 additions & 0 deletions StaggeredWaveToyX/configuration.ccl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Configuration definitions for thorn StaggeredWaveToyX

REQUIRES Loop
99 changes: 99 additions & 0 deletions StaggeredWaveToyX/interface.ccl
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Interface definition for thorn StaggeredWaveToyX

IMPLEMENTS: StaggeredWaveToyX

USES INCLUDE HEADER: loop_device.hxx
USES INCLUDE HEADER: vect.hxx



CCTK_REAL ustate TYPE=gf CENTERING={vvv} TAGS='rhs="urhs" dependents="uerror energy"'
{
u
ft
} "Scalar wave state vector"

CCTK_REAL fxstate TYPE=gf CENTERING={cvv} TAGS='parities={-1 +1 +1} rhs="fxrhs" dependents="fxerror energy"'
{
fx
} "Scalar wave state vector, staggered in x direction"

CCTK_REAL fystate TYPE=gf CENTERING={vcv} TAGS='parities={+1 -1 +1} rhs="fyrhs" dependents="fyerror energy"'
{
fy
} "Scalar wave state vector, staggered in y direction"

CCTK_REAL fzstate TYPE=gf CENTERING={vvc} TAGS='parities={+1 +1 -1} rhs="fzrhs" dependents="fzerror energy"'
{
fz
} "Scalar wave state vector, staggered in z direction"



CCTK_REAL urhs TYPE=gf CENTERING={vvv} TAGS='checkpoint="no"'
{
u_rhs
ft_rhs
} "Scalar wave rhs"

CCTK_REAL fxrhs TYPE=gf CENTERING={cvv} TAGS='parities={-1 +1 +1} checkpoint="no"'
{
fx_rhs
} "Scalar wave rhs, staggered in x direction"

CCTK_REAL fyrhs TYPE=gf CENTERING={vcv} TAGS='parities={+1 -1 +1} checkpoint="no"'
{
fy_rhs
} "Scalar wave rhs, staggered in y direction"

CCTK_REAL fzrhs TYPE=gf CENTERING={vvc} TAGS='parities={+1 +1 -1} checkpoint="no"'
{
fz_rhs
} "Scalar wave rhs, staggered in z direction"



CCTK_REAL curlfx TYPE=gf CENTERING={vcc} TAGS='parities={+1 -1 -1} checkpoint="no"'
{
curlfx
} "Constraints, staggered in x direction"

CCTK_REAL curlfy TYPE=gf CENTERING={cvc} TAGS='parities={-1 +1 -1} checkpoint="no"'
{
curlfy
} "Constraints, staggered in y direction"

CCTK_REAL curlfz TYPE=gf CENTERING={ccv} TAGS='parities={-1 -1 +1} checkpoint="no"'
{
curlfz
} "Constraints, staggered in z direction"



CCTK_REAL energy CENTERING={CCC} TYPE=gf TAGS='checkpoint="no"'
{
eps
} "Energy density"



CCTK_REAL uerror TYPE=gf CENTERING={vvv} TAGS='checkpoint="no"'
{
u_err
ft_err
} "Scalar wave error"

CCTK_REAL fxerror TYPE=gf CENTERING={cvv} TAGS='parities={-1 +1 +1} checkpoint="no"'
{
fx_err
} "Scalar wave error, staggered in x direction"

CCTK_REAL fyerror TYPE=gf CENTERING={vcv} TAGS='parities={+1 -1 +1} checkpoint="no"'
{
fy_err
} "Scalar wave error, staggered in y direction"

CCTK_REAL fzerror TYPE=gf CENTERING={vvc} TAGS='parities={+1 +1 -1} checkpoint="no"'
{
fz_err
} "Scalar wave error, staggered in z direction"
61 changes: 61 additions & 0 deletions StaggeredWaveToyX/par/standing.par
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
ActiveThorns = "
CarpetX
IOUtil
ODESolvers
StaggeredWaveToyX
TimerReport
"

$out_every = 16

Cactus::cctk_show_schedule = no
Cactus::presync_mode = "mixed-error"

CarpetX::poison_undefined_values = no

CarpetX::periodic_x = yes
CarpetX::periodic_y = yes
CarpetX::periodic_z = yes

Cactus::terminate = "time"
Cactus::cctk_final_time = 1.0

StaggeredWaveToyX::initial_condition = "standing wave"

ODESolvers::method = "RK3"

IO::out_dir = $parfile
IO::out_every = $out_every

CarpetX::out_norm_vars = "all"

CarpetX::out_tsv_vars = "
StaggeredWaveToyX::ustate
StaggeredWaveToyX::fxstate
StaggeredWaveToyX::fystate
StaggeredWaveToyX::fzstate
StaggeredWaveToyX::urhs
StaggeredWaveToyX::fxrhs
StaggeredWaveToyX::fyrhs
StaggeredWaveToyX::fzrhs
StaggeredWaveToyX::curlfx
StaggeredWaveToyX::curlfy
StaggeredWaveToyX::curlfz
StaggeredWaveToyX::energy
StaggeredWaveToyX::uerror
StaggeredWaveToyX::fxerror
StaggeredWaveToyX::fyerror
StaggeredWaveToyX::fzerror
"

CarpetX::out_silo_vars = "
StaggeredWaveToyX::ustate
StaggeredWaveToyX::urhs
StaggeredWaveToyX::energy
StaggeredWaveToyX::uerror
"

TimerReport::out_every = $out_every
TimerReport::out_filename = "TimerReport"
TimerReport::output_schedule_timers = no
TimerReport::n_top_timers = 100
32 changes: 32 additions & 0 deletions StaggeredWaveToyX/param.ccl
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Parameter definitions for thorn StaggeredWaveToyX

KEYWORD initial_condition "Initial condition"
{
"standing wave" :: "Standing wave"
"Gaussian" :: "Gaussian"
} "standing wave"

CCTK_REAL amplitude "Initial amplitude"
{
*:* :: ""
} 1.0

CCTK_REAL standing_wave_kx "kx for standing wave"
{
*:* :: ""
} 0.5

CCTK_REAL standing_wave_ky "kz for standing wave"
{
*:* :: ""
} 0.5

CCTK_REAL standing_wave_kz "ky for standing wave"
{
*:* :: ""
} 0.5

CCTK_REAL gaussian_width "width of Gaussian"
{
(0:* :: ""
} 1.0
75 changes: 75 additions & 0 deletions StaggeredWaveToyX/schedule.ccl
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Schedule definitions for thorn StaggeredWaveToyX

STORAGE: ustate fxstate fystate fzstate

SCHEDULE StaggeredWaveToyX_Initial AT initial
{
LANG: C
WRITES: ustate(interior)
WRITES: fxstate(interior)
WRITES: fystate(interior)
WRITES: fzstate(interior)
SYNC: ustate
SYNC: fxstate
SYNC: fystate
SYNC: fzstate
} "Initialize scalar wave state"

SCHEDULE StaggeredWaveToyX_RHS IN ODESolvers_RHS
{
LANG: C
READS: ustate(everywhere)
READS: fxstate(everywhere)
READS: fystate(everywhere)
READS: fzstate(everywhere)
WRITES: urhs(interior)
WRITES: fxrhs(interior)
WRITES: fyrhs(interior)
WRITES: fzrhs(interior)
SYNC: urhs
SYNC: fxrhs
SYNC: fyrhs
SYNC: fzrhs
} "Calculate scalar wave RHS"

SCHEDULE StaggeredWaveToyX_Constraints IN ODESolvers_PostStep
{
LANG: C
READS: fxstate(interior)
READS: fystate(interior)
READS: fzstate(interior)
WRITES: curlfx(interior)
WRITES: curlfy(interior)
WRITES: curlfz(interior)
SYNC: curlfx
SYNC: curlfy
SYNC: curlfz
} "Calculate scalar wave constraints"

SCHEDULE StaggeredWaveToyX_Energy IN ODESolvers_PostStep
{
LANG: C
READS: ustate(interior)
READS: fxstate(interior)
READS: fystate(interior)
READS: fzstate(interior)
WRITES: energy(interior)
SYNC: energy
} "Calculate scalar wave energy density"

SCHEDULE StaggeredWaveToyX_Error IN ODESolvers_PostStep
{
LANG: C
READS: ustate(interior)
READS: fxstate(interior)
READS: fystate(interior)
READS: fzstate(interior)
WRITES: uerror(interior)
WRITES: fxerror(interior)
WRITES: fyerror(interior)
WRITES: fzerror(interior)
SYNC: uerror
SYNC: fxerror
SYNC: fyerror
SYNC: fzerror
} "Calculate error in scalar wave state"
7 changes: 7 additions & 0 deletions StaggeredWaveToyX/src/make.code.defn
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Main make.code.defn file for thorn StaggeredWaveToyX

# Source files in this directory
SRCS = staggeredwavetoyx.cxx

# Subdirectories containing source files
SUBDIRS =
Loading

0 comments on commit d620dbf

Please sign in to comment.