diff options
-rw-r--r-- | param.ccl | 2 | ||||
-rw-r--r-- | src/WaveToy.c | 17 |
2 files changed, 19 insertions, 0 deletions
@@ -9,6 +9,8 @@ KEYWORD bound "Type of boundary condition to use" "flat" :: "Flat boundary condition" "static" :: "Static boundary condition" "radiation" :: "Radiation boundary condition" + "robin" :: "Robin boundary condition" + "zero" :: "Zero boundary condition" } "none" diff --git a/src/WaveToy.c b/src/WaveToy.c index e959cea..94ebae7 100644 --- a/src/WaveToy.c +++ b/src/WaveToy.c @@ -120,8 +120,13 @@ void WaveToyC_Boundaries(CCTK_ARGUMENTS) DECLARE_CCTK_ARGUMENTS DECLARE_CCTK_PARAMETERS + CCTK_REAL finf; int ierr=-1; int sw[3]; + int npow; + + finf = 1.0; + npow = 1; /* Set the stencil width */ sw[0]=1; @@ -143,6 +148,18 @@ void WaveToyC_Boundaries(CCTK_ARGUMENTS) ierr = BndRadiativeVN(cctkGH,sw,0.0,1.0,"wavetoy::phi", "wavetoy::phi"); } + else if (CCTK_Equals(bound,"robin")) + { + ierr = BndRobinVN(cctkGH,sw,finf,npow,"wavetoy::phi"); + } + else if (CCTK_Equals(bound,"zero")) + { + ierr = BndScalarVN(cctkGH,sw, 0.0,"wavetoy::phi"); + } + else if (! CCTK_Equals(bound,"none")) + { + CCTK_WARN(0,"Boundary condition not recognized"); + } if (ierr < 0) { |