Periodic

Erik Schnetter <schnetter@uni-tuebingen.de>

Date

Abstract

Provide periodic boundary conditions.

1 Introduction

This thorn provides periodic boundary conditions that are independent of PUGH, i.e. they work with both PUGH and Carpet. They use the new boundary condition scheme, so that no changes to existing code and only small changes to existing parameter files are necessary. Currently, thorn Periodic works in single patch mode only.

2 Using This Thorn

Make sure that the other symmetry thorns (e.g. CartGrid3D) do not provide symmetry boundary conditions for the same boundaries as Periodic. Then activate thorn Periodic and thorn Slab. Set the parameters Periodic::periodic* according to your wishes.

2.1 Obtaining This Thorn

This thorn (and thorn Slab) are available in the TAT arrangement.

2.2 Examples

The following lines come from a WaveToy simulation with Carpet:

   driver::global_nx               = 19  
   driver::global_ny               = 26  
   driver::global_nz               = 34  
 
   driver::ghost_size              = 2  
 
   grid::type                      = byrange  
   grid::xmin                      = -5.4  
   grid::ymin                      = -7.2  
   grid::zmin                      = -9.6  
   grid::xmax                      =  5.4  
   grid::ymax                      =  7.8  
   grid::zmax                      = 10.2  
   grid::domain                    = full  
 
   periodic::periodic              = yes

3 Parameters




check_boundaries
Scope: private  BOOLEAN



Description: Check the boundaries for poison



  Default: no






periodic
Scope: private  BOOLEAN



Description: Periodic boundary conditions



  Default: no






periodic_x
Scope: private  BOOLEAN



Description: Periodic boundary conditions in x-direction



  Default: no






periodic_y
Scope: private  BOOLEAN



Description: Periodic boundary conditions in y-direction



  Default: no






periodic_z
Scope: private  BOOLEAN



Description: Periodic boundary conditions in z-direction



  Default: no






poison_boundaries
Scope: private  BOOLEAN



Description: Fill the symmetry boundary with a poison value before the symmetry is applied



  Default: no






poison_value
Scope: private  INT



Description: Integer value (0..255) used to poison new timelevels (with memset)



Range   Default: 254
0:255
Must fit into a byte. Use 0 for zero, 255 for nan, and e.g. 113 for a large value.






verbose
Scope: private  BOOLEAN



Description: Produce screen output while applying boundary conditions



  Default: no



4 Interfaces

General

Implements:

periodic

Uses header:

Slab.h

Provides:

Periodic_ApplyVI to

Periodic_ApplyVN to

Periodic_ApplyGI to

Periodic_ApplyGN to

5 Schedule

This section lists all the variables which are assigned storage by thorn CactusNumerical/Periodic. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.

Storage

NONE

Scheduled Functions

SymmetryRegister

  periodic_registerbc

  register periodic boundary conditions

 

 Language:c
 Type: function

BoundaryConditions

  periodic_applybc

  apply periodic boundary conditions

 

 Language:c
 Type: function