ARTEMIS
Variables
run_libensemble_on_warpx Namespace Reference

Variables

string generator_type = 'aposmm'
 
string machine = 'local'
 
 aposmm_optimizers
 
 machine_specs = all_machine_specs.local_specs
 
 nworkers
 
 is_master
 
 libE_specs
 
 _
 
 sim_app = machine_specs['sim_app']
 
int n = 4
 
 exctr = MPIExecutor(central_mode=True)
 
 full_path
 
 calc_type
 
dictionary sim_specs
 
dictionary gen_specs
 
dictionary alloc_specs
 
 sim_max = machine_specs['sim_max']
 
dictionary exit_criteria = {'sim_max': sim_max}
 
 persis_info = add_unique_random_streams({}, nworkers + 1)
 
 H
 
 flag
 

Detailed Description

This file is part of the suite of scripts to use LibEnsemble on top of WarpX
simulations. It is the entry point script that runs LibEnsemble. Libensemble
then launches WarpX simulations.

Execute locally via the following command:
    python run_libensemble_on_warpx.py --comms local --nworkers 3
On summit, use the submission script:
    bsub summit_submit_mproc.sh

The number of concurrent evaluations of the objective function will be
nworkers=1 as one worker is for the persistent gen_f.

Variable Documentation

◆ _

run_libensemble_on_warpx._
private

◆ alloc_specs

dictionary run_libensemble_on_warpx.alloc_specs
Initial value:
1 = {
2  # Allocator function, decides what a worker should do.
3  # We use a LibEnsemble allocator.
4  'alloc_f': alloc_f,
5  'out': [
6  ('allocated', bool)
7  ],
8  'user': {
9  # If true wait for all sims to process before generate more
10  'batch_mode': True,
11  # Only one active generator at a time
12  'num_active_gens': 1
13  }
14  }

◆ aposmm_optimizers

run_libensemble_on_warpx.aposmm_optimizers

◆ calc_type

run_libensemble_on_warpx.calc_type

◆ exctr

run_libensemble_on_warpx.exctr = MPIExecutor(central_mode=True)

◆ exit_criteria

dictionary run_libensemble_on_warpx.exit_criteria = {'sim_max': sim_max}

◆ flag

run_libensemble_on_warpx.flag

◆ full_path

run_libensemble_on_warpx.full_path

◆ gen_specs

dictionary run_libensemble_on_warpx.gen_specs
Initial value:
1 = {
2  # Generator function. Will randomly generate new sim inputs 'x'.
3  'gen_f': gen_f,
4  # Generator input. This is a RNG, no need for inputs.
5  'in': [],
6  'out': [
7  # parameters to input into the simulation.
8  ('x', float, (n,))
9  ],
10  'user': {
11  # Total max number of sims running concurrently.
12  'gen_batch_size': nworkers,
13  # Lower bound for the n parameters.
14  'lb': np.array([2.e-3, 2.e-3, 0.005, .1]),
15  # Upper bound for the n parameters.
16  'ub': np.array([2.e-2, 2.e-2, 0.028, 3.]),
17  }
18  }

◆ generator_type

string run_libensemble_on_warpx.generator_type = 'aposmm'

◆ H

run_libensemble_on_warpx.H

◆ is_master

run_libensemble_on_warpx.is_master

◆ libE_specs

run_libensemble_on_warpx.libE_specs

◆ machine

string run_libensemble_on_warpx.machine = 'local'

◆ machine_specs

run_libensemble_on_warpx.machine_specs = all_machine_specs.local_specs

◆ n

int run_libensemble_on_warpx.n = 4

◆ nworkers

run_libensemble_on_warpx.nworkers

◆ persis_info

run_libensemble_on_warpx.persis_info = add_unique_random_streams({}, nworkers + 1)

◆ sim_app

run_libensemble_on_warpx.sim_app = machine_specs['sim_app']

◆ sim_max

run_libensemble_on_warpx.sim_max = machine_specs['sim_max']

◆ sim_specs

dictionary run_libensemble_on_warpx.sim_specs