pyrokinetics.gk_code.gkw.GKInputGKW#

class pyrokinetics.gk_code.gkw.GKInputGKW(filename=None)[source]#

Bases: GKInput, FileReader

Class that can read GKW input files, and produce Numerics, LocalSpecies, and LocalGeometry objects

Parameters:

filename (PathLike | str | None)

__init__(filename=None)#
Parameters:

filename (PathLike | str | None)

Methods

__init__([filename])

add_flags(flags)

Add extra flags to GKW input file

from_file(path[, file_type])

Read a file from disk, returning an instance of this class.

from_str(input_string)

get_local_geometry()

Returns local geometry.

get_local_species()

Load LocalSpecies object from GKW file

get_ne_te_normalisation()

get_numerics()

Gather numerical info (grid spacing, time steps, etc)

get_reference_values(local_norm)

Reads in normalisation values from input file

is_linear()

is_nonlinear()

Return true if the GKCode is nonlinear, otherwise return False

read_dict(input_dict[, detect_norm])

Reads GKW input file given as dict Uses default read_dict, which assumes input is a dict

read_from_file(filename[, detect_norm])

Reads GKW input file into a dictionary Uses default read, which assumes input is a Fortran90 namelist

read_str(input_string[, detect_norm])

Reads GKW input file given as string Uses default read_str, which assumes input_string is a Fortran90 namelist

set(local_geometry, local_species, numerics)

Set self.data using LocalGeometry, LocalSpecies, and Numerics.

supported_file_types()

Returns a list of all registered file types.

verify_expected_keys(filename, keys)

Checks that the expected keys are present at the top level of self.data.

verify_file_type(filename)

Ensure this file is a valid gkw input file, and that it contains sufficient info for Pyrokinetics to work with

write(filename[, float_format, local_norm, ...])

Write self.data to a gyrokinetics input file.

Attributes

add_flags(flags)[source]#

Add extra flags to GKW input file

Return type:

None

code_name = 'GKW'#
default_file_name = 'input.dat'#
file_type: ClassVar[str] = 'GKW'#
get_local_geometry()[source]#

Returns local geometry. Delegates to more specific functions

Return type:

LocalGeometry

get_local_species()[source]#

Load LocalSpecies object from GKW file

get_ne_te_normalisation()[source]#
get_numerics()[source]#

Gather numerical info (grid spacing, time steps, etc)

Return type:

Numerics

get_reference_values(local_norm)[source]#

Reads in normalisation values from input file

Return type:

Dict[str, Any]

Parameters:

local_norm (SimulationNormalisation)

is_nonlinear()[source]#

Return true if the GKCode is nonlinear, otherwise return False

Return type:

bool

norm_convention: str = 'gkw'#

Convention used for normalising this code’s quantities

pyro_gkw_miller = {'Z0': ['geom', 'zmil'], 'bt_ccw': ['geom', 'signb'], 'dZ0dr': ['geom', 'dzmil'], 'delta': ['geom', 'delta'], 'ip_ccw': ['geom', 'signj'], 'kappa': ['geom', 'kappa'], 'q': ['geom', 'q'], 'rho': ['geom', 'eps'], 's_delta': ['geom', 'sdelta'], 's_kappa': ['geom', 'skappa'], 'shat': ['geom', 'shat'], 'shift': ['geom', 'drmil']}#
pyro_gkw_miller_defaults = {'Z0': 0.0, 'bt_ccw': -1, 'dZ0dr': 0.0, 'delta': 0.0, 'ip_ccw': -1, 'kappa': 1.0, 'q': 2.0, 'rho': 0.16666, 's_delta': 0.0, 's_kappa': 0.0, 'shat': 1.0, 'shift': 0.0}#
pyro_gkw_mxh = {'Z0': ['geom', 'zmil'], 'bt_ccw': ['geom', 'signb'], 'cn': ['geom', 'c'], 'dZ0dr': ['geom', 'dzmil'], 'dcndr': ['geom', 'c_prime'], 'delta': ['geom', 'delta'], 'dsndr': ['geom', 's_prime'], 'ip_ccw': ['geom', 'signj'], 'kappa': ['geom', 'kappa'], 'n_moments': ['geom', 'n_shape'], 'q': ['geom', 'q'], 'rho': ['geom', 'eps'], 's_delta': ['geom', 'sdelta'], 's_kappa': ['geom', 'skappa'], 'shat': ['geom', 'shat'], 'shift': ['geom', 'drmil'], 'sn': ['geom', 's']}#
pyro_gkw_mxh_defaults = {'Z0': 0.0, 'bt_ccw': -1, 'cn': [0.0, 0.0, 0.0, 0.0], 'dZ0dr': 0.0, 'dcndr': [0.0, 0.0, 0.0, 0.0], 'delta': 0.0, 'dsndr': [0.0, 0.0, 0.0, 0.0], 'ip_ccw': -1, 'kappa': 1.0, 'n_moments': 4, 'q': 2.0, 'rho': 0.16666, 's_delta': 0.0, 's_kappa': 0.0, 'shat': 1.0, 'shift': 0.0, 'sn': [0.0, 0.0, 0.0, 0.0]}#
pyro_gkw_species = {'dens': 'dens', 'domega_drho': 'uprim', 'inverse_ln': 'rln', 'inverse_lt': 'rlt', 'mass': 'mass', 'temp': 'temp', 'z': 'z'}#
read_dict(input_dict, detect_norm=True)[source]#

Reads GKW input file given as dict Uses default read_dict, which assumes input is a dict

Return type:

Dict[str, Any]

Parameters:
read_from_file(filename, detect_norm=True)[source]#

Reads GKW input file into a dictionary Uses default read, which assumes input is a Fortran90 namelist

Return type:

Dict[str, Any]

Parameters:
read_str(input_string, detect_norm=True)[source]#

Reads GKW input file given as string Uses default read_str, which assumes input_string is a Fortran90 namelist

Return type:

Dict[str, Any]

Parameters:
  • input_string (str)

  • detect_norm (bool)

set(local_geometry, local_species, numerics, local_norm=None, template_file=None, code_normalisation=None, **kwargs)[source]#

Set self.data using LocalGeometry, LocalSpecies, and Numerics. These may be obtained via another GKInput file, or from Equilibrium/Kinetics objects.

Parameters:
verify_file_type(filename)[source]#

Ensure this file is a valid gkw input file, and that it contains sufficient info for Pyrokinetics to work with

Parameters:

filename (PathLike | str)

write(filename, float_format='', local_norm=None, code_normalisation=None)[source]#

Write self.data to a gyrokinetics input file. Uses default write, which writes to a Fortan90 namelist

Parameters: