mlmc.sim

Contains a parent simulation class and a specific synthetic simulation

Submodules

mlmc.sim.simulation module

class mlmc.sim.simulation.Simulation[source]

Bases: abc.ABC

static calculate(config_dict, seed)[source]

Method that actually run the calculation, calculate fine and coarse sample and also extract their results :param config_dict: dictionary containing simulation configuration, LevelSimulation.config_dict (set in level_instance) :param seed: random seed, int :return: List[fine result, coarse result], both flatten arrays (see mlmc.sim.synth_simulation._calculate())

level_instance(fine_level_params: List[float], coarse_level_params: List[float]) → mlmc.level_simulation.LevelSimulation[source]

Create LevelSimulation object which is farther used for calculation etc. :param fine_level_params: :param coarse_level_params: :return: LevelSimulation

result_format() → List[mlmc.quantity.quantity_spec.QuantitySpec][source]

Define simulation result format :return: List[QuantitySpec, …]

mlmc.sim.synth_simulation module

class mlmc.sim.synth_simulation.SynthSimulation(config=None)[source]

Bases: mlmc.sim.simulation.Simulation

static calculate(config, seed)[source]

Calculate fine and coarse sample and also extract their results :param config: dictionary containing simulation configuration :param seed: random number generator seed :return: np.ndarray, np.ndarray

static generate_random_samples(distr, seed, size)[source]

Generate random samples from given distribution :param distr: scipy distribution :param seed: uint32 :param size: size of result :return: fine sample, coarse sample

level_instance(fine_level_params: List[float], coarse_level_params: List[float]) → mlmc.level_simulation.LevelSimulation[source]
Parameters:
  • fine_level_params
  • coarse_level_params
Returns:

n_ops_estimate(step)[source]
result_format() → List[mlmc.quantity.quantity_spec.QuantitySpec][source]

Result format :return:

static sample_fn(x, h)[source]

Calculates the simulation sample :param x: Distribution sample :param h: Simluation step :return: sample

static sample_fn_no_error(x, h)[source]

Calculates the simulation sample :param x: Distribution sample :param h: Simluation step :return: sample

len_results = 0
n_nans = 0
nan_fraction = 0
result_dict = {}
class mlmc.sim.synth_simulation.SynthSimulationWorkspace(config)[source]

Bases: mlmc.sim.synth_simulation.SynthSimulation

static calculate(config, seed)[source]

Calculate fine and coarse sample and also extract their results :param config: dictionary containing simulation configuration :param seed: random number generator seed :return: np.ndarray, np.ndarray

static generate_random_samples(distr, seed, size)[source]

Generate random samples from given distribution :param distr: scipy distribution :param seed: uint32 :param size: size of result :return: fine sample, coarse sample

level_instance(fine_level_params: List[float], coarse_level_params: List[float]) → mlmc.level_simulation.LevelSimulation[source]
Parameters:
  • fine_level_params
  • coarse_level_params
Returns:

n_ops_estimate(step)[source]
static sample_fn(x, h)[source]

Calculates the simulation sample :param x: Distribution sample :param h: Simluation step :return: sample

static sample_fn_no_error(x, h)[source]

Calculates the simulation sample :param x: Distribution sample :param h: Simluation step :return: sample

CONFIG_FILE = 'synth_sim_config.yaml'
len_results = 0
n_nans = 0
nan_fraction = 0
result_dict = {}

Module contents

Contains a parent simulation class and a specific synthetic simulation