## Periodic

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

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.

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