simu
Define and load diffusion simulation.
- class simu.Simulation(config, work_dir, logger)[source]
Bases:
objectHandle system properties, simulation conditions, simulation results.
This is a base class that organizes all input parameter processing and prepares simulation results. It is meant to be used only through subclasses
NewSimulation(create new simulation) orReadSimulation(read simulation from log file), not directly by the user.This is a 1D version, with constant temperature, time-invariant space grid and time step.
- Variables:
work_dir (pathlib.Path) – Work directory.
logger (
log_utils.CustomLogger) – Logger.data_dir (pathlib.Path) – Data directory, user- or package-provided (see
paths.get_data_dir()).config (dict) – Simulation input parameters.
db_register (dict) – Names and file paths of databases in data folder.
default_parameters (dict) – Parameters used when not specified in user input.
comps (list of str) – System constituents (Va + atom components).
inds (list of str) – Independent constituents (Va + atom components).
phase (str) – System phase name.
temperature (
temperature.Temperature) – Temperature program.TK (float) – Temperature in Kelvin
TC (float) – Temperature in Celsius
databases (dict) – Databases used in the simulation (thermo, mobility, molar_volume, vacancy_formation_energy)
V_partial (dict) – Partial molar volumes.
thermo (
thermodynamics.Thermodynamics) – Thermodynamic properties.mobility (
mobility.Mobility) – Mobility properties.space (
space.SpaceGrid) – Space grid parameters.boundary_conditions (dict) – Instances of
boundary_conditions.BoundaryConditions, with ‘left’ and ‘right’ as keys.lattice (
lattice.Lattice) – Parameters relative to vacancy annihilation/creation.initial_conditions (
initial_conditions.InitialConditions) – Initial conditions.time (
time.TimeGrid) – Time-related parameters.L_mean_kind (str) – Kind of mean used to compute L values at nodes.
ready (bool) – Whether simulation is ready to run.
simres (
results.SimulationResults) – Simulation results.results (dict) – Simulation results, nested dicts with syntax res[th][var][k], see
results.SimulationResults.res (dict) – Alias of results.
result – Function to access simulation results, see
results.SimulationResults.result().
- get_database_register()[source]
Get database register from ‘user_data.toml’.
Four categories of databases are handled:
Partial molar volume
Vacancy formation energy
Thermodynamics
Mobility
All are optional : if no entry in ‘user_data.toml’, default to empty dict.
- get_default_parameters()[source]
Get default parameters.
For each parameter defined in
constants.factory_default_parameters, look for entry in ‘user_data.toml’, and default to entry inconstants.factory_default_parameters.
- get_thermo_handler()[source]
Process input parameters and make thermodynamic properties handler.
- Returns:
Thermodynamic properties handler.
- Return type:
- get_mob_handler()[source]
Process input parameters and make mobility properties handler.
- Returns:
Mobility properties handler.
- Return type:
- get_database_from_register(name, table)[source]
Get database file path from register.
- Parameters:
name (str) – Database name.
table (str) – Database category.
- Raises:
utils.UserInputError – If database not found in register.
- Returns:
val – Database file path.
- Return type:
str
- get_boundary_conditions(min_atom_fraction)[source]
Make dict of
boundary_conditions.BoundaryConditionsinstances.- Parameters:
min_atom_fraction (min_atom_fraction : float) – Minimum atom fraction accepted.
- Returns:
dct –
boundary_conditions.BoundaryConditionsinstances.- Return type:
dict
- class simu.NewSimulation(file=None, config=None, ref=None, log=True)[source]
Bases:
SimulationCreate new simulation from input file or dict.
Process user input and make
Simulationinstance. The user is expected to provide either a file or a dict, using the ‘file’ or ‘config’ keyword argument.See
Simulationfor documentation on attributes and methods.- run(show_completion=False, verbose=1)[source]
Prepare log and run diffusion simulation.
Call to
solvers.solver(). The function returns variables at saved_steps.These are logged to file, and stored in simres attribute (
results.SimulationResultsinstance).
- Parameters:
show_completion (bool, optional) – Print completion rate to screen while simulation is running. The default is False.
verbose (int, optional) – Verbosity level, sets amount of information printed while simulation is running. Valid values: 0 (less verbose) and 1 (more verbose). The default is 1. See
solvers.solver()andsolvers.remesh().
- Raises:
utils.UserInputError – If simulation is not ready.
- class simu.ReadSimulation(file)[source]
Bases:
SimulationCreate simulation from log file.
See
Simulationfor documentation on attributes and methods.- __init__(file)[source]
Class constructor.
Read log file of a previous simulation, get input dict and simulation results and make instance of
results.SimulationResults.