lammps
This module tests the binary 'lmp' in available modules containing substring 'LAMMPS'. The tests come from the lammps github repository (https://github.com/lammps/lammps/)
EESSI_LAMMPS_ALL_OBMD_simulation_staggered_global
¶
Bases: EESSI_LAMMPS_base, EESSI_Mixin
Test case testing a combination of Open-Boundary Molecular Dynamics (OBMD) and A Load balancing Library (ALL) functionality in LAMMPS. OBMD simulations are characterized by dynamically changing particle populations and strongly non-uniform spatial workloads due to particle insertion, removal, and fluxes across open boundaries. In this context, efficient load balancing is particularly critical to sustain scalability and numerical efficiency, as imbalances can rapidly arise during the simulation.
The test simulates liquid water under equilibrium conditions, which is described using the mesoscopic DPD water model. The density of DPD water in the region of interest is checked as part of the sanity check. If the density equals the desired value (within predetermined error), the test is successful.
EESSI_LAMMPS_ALL_balance_staggered_global_base
¶
Bases: EESSI_LAMMPS_base
Base class for test cases that test ALL (A Load Balancing Library) integration with LAMMPS. The key feature of this class is a sanity check that determines if either load balancing has improved over the course of the run, or if load balancing was already good from the start.
assert_imbalence()
¶
Assert that the imbalance has gone down by at least 50%, OR that it was already very low (<1.1)
assert_sanity()
¶
Check all sanity criteria
check_if_ALL_included()
¶
Only run this test when LAMMPS has the ALL package.
check_number_neighbors()
¶
Assert that the test calulated the right number of neighbours
EESSI_LAMMPS_ALL_balance_staggered_global_large
¶
Bases: EESSI_LAMMPS_ALL_balance_staggered_global_base, EESSI_Mixin
Implementation of a large-scale test case (running up to 1/8th of a node and larger) that tests load balancing in LAMMPS through the ALL library.
assert_sanity()
¶
Check all sanity criteria
EESSI_LAMMPS_ALL_balance_staggered_global_small
¶
Bases: EESSI_LAMMPS_ALL_balance_staggered_global_base, EESSI_Mixin
Implementation of a small-scale test case (running up to 8 cores) that tests load balancing in LAMMPS through the ALL library.
EESSI_LAMMPS_OBMD_simulation
¶
Bases: EESSI_LAMMPS_base, EESSI_Mixin
Test case testing Open-Boundary Molecular Dynamics (OBMD) functionality in LAMMPS. The test simulates liquid water under equilibrium conditions, which is described using the mesoscopic DPD water model. The density of DPD water in the region of interest is checked as part of the sanity check. If the density equals the desired value (within predetermined error), the test is successful.
EESSI_LAMMPS_base
¶
Bases: RunOnlyRegressionTest
Base class for the LAMMPS based tests. This sets time limit, device type, module name, the compute unit and a number of sanity functions that may be shared amongst concrete implementations of this base class.
assert_NDS()
¶
Assert that the calculated energy at timestep 100 is with the margin of error
assert_lammps_openmp_treads()
¶
Assert that OpenMP thread(s) per MPI task is set
assert_lammps_processor_grid()
¶
Assert that the processor grid is set correctly
assert_run()
¶
Assert that the test calulated the right number of neighbours
assert_run_steps(ref_nsteps=10000)
¶
Assert that the test calulated the right number of steps
compute_ndenprof(values, bins, start, stop)
¶
Checking the values in nden_profile.out
set_compute_unit()
¶
Set the compute unit to which tasks will be assigned
set_executable_opts()
¶
Set executable opts based on device_type parameter
EESSI_LAMMPS_lj
¶
Bases: EESSI_LAMMPS_base, EESSI_Mixin
EESSI_LAMMPS_rhodo
¶
Bases: EESSI_LAMMPS_base, EESSI_Mixin
filter_scale_partial_and_full_nodes()
¶
Returns all scales that do have a (guaranteed) core count, e.g. 1_8_node, 1_4_node, ..., 2_nodes, ..., 16_nodes.
Does not return scales that nhave num_cpus_per_node set.
filter_scale_up_to_8_cores()
¶
Returns all scales with (guaranteed) 8 cores or less. E.g. 1_core, 2_core, ..., 1cpn_2nodes, ... Does not return scales like 1_8_node, since for this scale the number of cores is system-dependent.
split(list, size)
¶
Split a sequence into equally‑sized chunks of length 'size'.