-
Notifications
You must be signed in to change notification settings - Fork 2
/
wafer.yaml
103 lines (88 loc) · 4.66 KB
/
wafer.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# ___
# __ ____ _ / __\__ _ __
# \ \ /\ / / _` |/ / / _ \ '__|
# \ V V / (_| / _\| __/ |
# \_/\_/ \__,/ / \___|_| Configuration file.
# \__/
#
# Any variables listed as OPTIONAL may be commented out if they are not required in your simulation.
# Note: the YAML markup requires a space between a '#' and the next character to be considered valid.
# A string value to call your project for identification.
project_name: develop
# Number of spatial grid points, step sizes in space and time.
grid:
size: # Number of grid points in Cartesian coordinates.
x: 50
y: 50
z: 50
dn: 0.01 # Spatial step
dt: 3e-5 # Temporal step. For stability this must be < dn*dn/3.
# Convergence tolerance for energies.
tolerance: 1e-4
# Precision to use for central differencing. Choices: ThreePoint, FivePoint, SevenPoint.
# The more points the smaller the error - provided the step size choice is appropreate.
central_difference: ThreePoint
# OPTIONAL: Maximum number of steps to try before giving up. This stops us from calculating forever
# if the system diverges. But this will most likely never happen so it's fine to leave this as default.
# max_steps: 50000000
# Starting wafefunction. New run should be 0 (i.e. ground state). If the ground state is converged,
# setting this to 1 will 'restart' the calculation at the first excited state. The converged ground
# state wavefunction is expected in the ./input/ directory when this is requested.
wavenum: 0
# Maximum excited state to calculate
wavemax: 1
# Potential type to simulate. Choices:
# NoPotential: V = 0, no potential at all.
# Cube: A 3D square (i.e. cubic) well.
# QuadWell: Quad well, with short side along the *z*-axis.
# Periodic: Periodic (sin squared).
# Coulomb: Standard Coulomb.
# ComplexCoulomb: Complex Coulomb.
# ElipticalCoulomb: Elliptical Coulomb.
# SimpleCornell: Cornell with no corrections.
# FullCornell: Fully anisotropic screened Cornell + spin correction.
# Harmonic: Harmonic oscillator.
# ComplexHarmonic: Complex harmonic oscillator.
# Dodecahedron: Dodecahedron, because this totally exists in nature right?
# FromFile: Pull data from file. Good to save a little startup time on restart runs,
# or a more complex potential generated from an external tool.
# FromScript: Calls a python script the user can implement.
potential: Harmonic
# Mass of the particle currently being investigated (amu).
mass: 15.9994
# Wavefunction initial conditions. Since we usually dont know the form this is
# usually guess work - unless we have previous information to work with. Choices:
# FromFile: Data will be pulled from file. This could be pre-calculated data from some
# inferior wavefunction solver, or more likely than not one of two other options.
#
# 1. A converged excited state lower than the requested start state: e.g. `wavenum` is
# set to 2, and a converged excited state 1 is in the `input` directory.
# 2. A converged, low resolution version of the current state is in the `input` directory,
# which dramatically assists in the calculation time of high resolution runs.
# Gaussian: A random value from the Gaussian distribution, using the standard deviation `sig`.
# Couloumb: Coulomb-like.
# Constant: A constant value of 0.1.
# Boolean: A Boolean test grid, good for benchmarks.
init_condition: Boolean
# Standard Deviation of initial wavefunction noise.
sig: 1.0
# Symmetry axes can be applied to assist convergence. Choices:
# NotConstrained: Don't constrain system at all.
# AboutZ: Symmetric about *z*-axis.
# AntisymAboutZ: Antisymmetric about *z*-axis.
# AboutY: Symmetric about *y*-axis.
# AntisymAboutY: Antisymmetric about *y*-axis.
init_symmetry: NotConstrained
# Output configuration of simulation.
# The file_type variable has the following chioces:
# Messagepack: a binary option. Small file sizes (comparatively), but not human readable - can be converted to be however.
# Csv: a plain text file with comma separated values.
# Json: a popular structured text format found on the web, but also good for Wafer output.
# Yaml: another structured text format that is a little more feature rich than JSON.
# Ron: a structured text format designed to encapsulate the Rust syntax.
output:
screen_update: 1000 # Steps before recording measurables.
# snap_update: 10000 # OPTIONAL: Steps befode dumping all variables to file, i.e. A 'snapshot'.
file_type: Ron # File format for outputs. See options above
save_wavefns: true # Dump full 3D wavefunctions to disk once calculated.
save_potential: true # Save potential at beginning of run.