From c07f5e83398651cf8d0dccb036705b9eb69d8646 Mon Sep 17 00:00:00 2001 From: Karl Hammond Date: Wed, 19 Oct 2022 10:29:18 -0500 Subject: [PATCH 001/247] Temporary(?) fix for highlighting overflow in labelmap.rst --- doc/src/labelmap.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/labelmap.rst b/doc/src/labelmap.rst index 57e4926611..a11ab653f8 100644 --- a/doc/src/labelmap.rst +++ b/doc/src/labelmap.rst @@ -25,7 +25,7 @@ Examples .. code-block:: LAMMPS labelmap atom 3 carbon 4 'c3"' 5 "c1'" 6 "c#" - labelmap bond 1 carbonyl 2 nitrile 3 """ c1'-c2" """ + labelmap bond 1 carbonyl 2 nitrile 3 """ c1'-c2" """ #" labelmap atom $(label2type(atom,carbon)) C # change type label from 'carbon' to 'C' labelmap clear labelmap write mymap.include From 6977f71eb0ad15e370e330739cf6cf937f4ceca0 Mon Sep 17 00:00:00 2001 From: rohskopf Date: Sat, 20 May 2023 13:53:22 -0600 Subject: [PATCH 002/247] Initial example --- examples/mliap/jax/README.md | 38 +++++++++++ examples/mliap/jax/deploy_script.py | 32 +++++++++ examples/mliap/jax/in.run | 48 +++++++++++++ examples/mliap/jax/mliap_jax.pkl | Bin 0 -> 234 bytes examples/mliap/jax/mliap_unified_jax.py | 0 examples/mliap/jax/write_unified.py | 86 ++++++++++++++++++++++++ 6 files changed, 204 insertions(+) create mode 100644 examples/mliap/jax/README.md create mode 100644 examples/mliap/jax/deploy_script.py create mode 100644 examples/mliap/jax/in.run create mode 100644 examples/mliap/jax/mliap_jax.pkl create mode 100644 examples/mliap/jax/mliap_unified_jax.py create mode 100644 examples/mliap/jax/write_unified.py diff --git a/examples/mliap/jax/README.md b/examples/mliap/jax/README.md new file mode 100644 index 0000000000..14a049221a --- /dev/null +++ b/examples/mliap/jax/README.md @@ -0,0 +1,38 @@ +# Running JAX from LAMMPS + +### Getting started + +First make a Python environment with dependencies: + + conda create --name jax python=3.10 + conda activate jax + # Upgrade pip + python -m pip install --upgrade pip + # Install JAX: + python -m pip install --upgrade "jax[cpu]" + # Install other dependencies: + python -m pip install numpy scipy torch scikit-learn virtualenv psutil tabulate mpi4py Cython + +Install LAMMPS: + + cd /path/to/lammps + mkdir build-jax; cd build-jax + cmake ../cmake -DLAMMPS_EXCEPTIONS=yes \ + -DBUILD_SHARED_LIBS=yes \ + -DMLIAP_ENABLE_PYTHON=yes \ + -DPKG_PYTHON=yes \ + -DPKG_ML-SNAP=yes \ + -DPKG_ML-IAP=yes \ + -DPYTHON_EXECUTABLE:FILEPATH=`which python` + make -j4 + make install-python + +### Wrapping JAX code + +Take inspiration from the `FitSNAP` ML-IAP wrapper: https://github.com/rohskopf/FitSNAP/blob/mliap-unified/fitsnap3lib/tools/write_unified.py + +First define JAX model in `deploy_script.py`, which will wrap model with `write_unified`. + + python deploy_script.py + +Then load model in LAMMPS and run: \ No newline at end of file diff --git a/examples/mliap/jax/deploy_script.py b/examples/mliap/jax/deploy_script.py new file mode 100644 index 0000000000..58af797766 --- /dev/null +++ b/examples/mliap/jax/deploy_script.py @@ -0,0 +1,32 @@ +import numpy as np +import pickle +from pathlib import Path +from write_unified import MLIAPInterface + +class MyModel(): + def __init__(self,blah): + """ + coeffs = np.genfromtxt(file,skip_header=6) + self.bias = coeffs[0] + self.weights = coeffs[1:] + """ + self.blah = blah + self.n_params = 3 #len(coeffs) + self.n_descriptors = 1 #len(self.weights) + self.n_elements = 1 + + def __call__(self,rij): + print(rij) + #energy[:] = bispectrum @ self.weights + self.bias + #beta[:] = self.weights + return 5 + +model = MyModel(1) + +#unified = MLIAPInterface(model, ["Ta"], model_device="cpu") + +def create_pickle(): + unified = MLIAPInterface(model, ["Ta"]) + unified.pickle('mliap_jax.pkl') + +create_pickle() \ No newline at end of file diff --git a/examples/mliap/jax/in.run b/examples/mliap/jax/in.run new file mode 100644 index 0000000000..1ffc2d3c0f --- /dev/null +++ b/examples/mliap/jax/in.run @@ -0,0 +1,48 @@ +# Initialize simulation + +variable nsteps index 10000 +units metal + +# generate the box and atom positions using a BCC lattice + +#boundary p p p +#read_data DATA + +variable nrep equal 2 #10 +variable a equal 3.316 +variable nx equal ${nrep} +variable ny equal ${nrep} +variable nz equal ${nrep} +lattice bcc $a +region box block 0 ${nx} 0 ${ny} 0 ${nz} +create_box 1 box +create_atoms 1 box +mass 1 180.88 + +pair_style mliap unified mliap_jax.pkl 0 +pair_coeff * * Ta + +compute eatom all pe/atom +compute energy all reduce sum c_eatom + +compute satom all stress/atom NULL +compute str all reduce sum c_satom[1] c_satom[2] c_satom[3] +variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol) + +thermo_style custom step temp epair c_energy etotal press v_press +thermo 10 +thermo_modify norm yes + +# Set up NVE run + +timestep 0.5e-3 +neighbor 1.0 bin +# is this neigh modify every 1 slow? +neigh_modify once no every 1 delay 0 check yes + +# Run MD + +velocity all create 3200.0 4928459 loop geom +dump 1 all xyz 10 dump.xyz +fix 1 all nve +run ${nsteps} \ No newline at end of file diff --git a/examples/mliap/jax/mliap_jax.pkl b/examples/mliap/jax/mliap_jax.pkl new file mode 100644 index 0000000000000000000000000000000000000000..2cbbedb7c1bd8dd8af97d7312471cf2054e163d1 GIT binary patch literal 234 zcmZ9GyAFat5Ji1pP$GVZHhzOvhA76u)=U-{<0deWWr?9M(SAC|@AFs0XW^}GZgI{% zJGXo59rlk#TZD@AUSlFW3Rl5=6Ocu-S24;}CKox$m>>>> hey!") + #elems = self.as_tensor(data.elems).type(torch.int64).reshape(1, data.ntotal) + + """ + elems = self.as_tensor(data.elems).type(torch.int64) + 1 + #z_vals = self.species_set[elems+1] + pair_i = self.as_tensor(data.pair_i).type(torch.int64) + pair_j = self.as_tensor(data.pair_j).type(torch.int64) + rij = self.as_tensor(data.rij).type(torch.float64).requires_grad_(True) + nlocal = self.as_tensor(data.nlistatoms) + """ + + rij = data.rij + + #(total_energy, fij) = self.network(rij, None, None, None, nlocal, elems, pair_i, pair_j, "cpu", dtype=torch.float64, mode="lammps") + + test = self.model(rij) + + #data.update_pair_forces(fij) + #data.energy = total_energy.item() + + pass + +def setup_LAMMPS(energy): + """ + + :param energy: energy node for lammps interface + :return: graph for computing from lammps MLIAP unified inputs. + """ + + model = TheModelClass(*args, **kwargs) + + save_state_dict = torch.load("Ta_Pytorch.pt") + model.load_state_dict(save_state_dict["model_state_dict"]) + + + #model.load_state_dict(torch.load(PATH)) + model.eval() + + #model.eval() + return model \ No newline at end of file From 28c9c274be1fd270a866258dafc09486d3cccf1a Mon Sep 17 00:00:00 2001 From: rohskopf Date: Sat, 20 May 2023 14:08:20 -0600 Subject: [PATCH 003/247] Copy MLIAPUnified LJ example --- examples/mliap/jax/README.md | 6 +- examples/mliap/jax/deploy_script.py | 33 ++--------- examples/mliap/jax/in.run | 59 ++++++++------------ examples/mliap/jax/mliap_unified_jax.py | 41 ++++++++++++++ examples/mliap/jax/mliap_unified_jax_Ar.pkl | Bin 0 -> 181 bytes examples/mliap/jax/write_unified.py | 1 + 6 files changed, 76 insertions(+), 64 deletions(-) create mode 100644 examples/mliap/jax/mliap_unified_jax_Ar.pkl diff --git a/examples/mliap/jax/README.md b/examples/mliap/jax/README.md index 14a049221a..320d87e465 100644 --- a/examples/mliap/jax/README.md +++ b/examples/mliap/jax/README.md @@ -35,4 +35,8 @@ First define JAX model in `deploy_script.py`, which will wrap model with `write_ python deploy_script.py -Then load model in LAMMPS and run: \ No newline at end of file +This creates `.pkl` file to be loaded by LAMMPS ML-IAP Unified. + +Run LAMMPS with the model: + + mpirun -np P lmp -in in.run \ No newline at end of file diff --git a/examples/mliap/jax/deploy_script.py b/examples/mliap/jax/deploy_script.py index 58af797766..5e73995565 100644 --- a/examples/mliap/jax/deploy_script.py +++ b/examples/mliap/jax/deploy_script.py @@ -1,32 +1,11 @@ -import numpy as np -import pickle -from pathlib import Path -from write_unified import MLIAPInterface +import lammps +import lammps.mliap -class MyModel(): - def __init__(self,blah): - """ - coeffs = np.genfromtxt(file,skip_header=6) - self.bias = coeffs[0] - self.weights = coeffs[1:] - """ - self.blah = blah - self.n_params = 3 #len(coeffs) - self.n_descriptors = 1 #len(self.weights) - self.n_elements = 1 - - def __call__(self,rij): - print(rij) - #energy[:] = bispectrum @ self.weights + self.bias - #beta[:] = self.weights - return 5 - -model = MyModel(1) - -#unified = MLIAPInterface(model, ["Ta"], model_device="cpu") +#from lammps.mliap.mliap_unified_lj import MLIAPUnifiedLJ +from mliap_unified_jax import MLIAPUnifiedJAX def create_pickle(): - unified = MLIAPInterface(model, ["Ta"]) - unified.pickle('mliap_jax.pkl') + unified = MLIAPUnifiedJAX(["Ar"]) + unified.pickle('mliap_unified_jax_Ar.pkl') create_pickle() \ No newline at end of file diff --git a/examples/mliap/jax/in.run b/examples/mliap/jax/in.run index 1ffc2d3c0f..354dfd769f 100644 --- a/examples/mliap/jax/in.run +++ b/examples/mliap/jax/in.run @@ -1,48 +1,35 @@ -# Initialize simulation +# 3d Lennard-Jones melt -variable nsteps index 10000 -units metal +units lj +atom_style atomic -# generate the box and atom positions using a BCC lattice - -#boundary p p p -#read_data DATA - -variable nrep equal 2 #10 -variable a equal 3.316 -variable nx equal ${nrep} -variable ny equal ${nrep} -variable nz equal ${nrep} -lattice bcc $a -region box block 0 ${nx} 0 ${ny} 0 ${nz} +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 create_box 1 box create_atoms 1 box -mass 1 180.88 +mass 1 1.0 -pair_style mliap unified mliap_jax.pkl 0 -pair_coeff * * Ta +velocity all create 3.0 87287 loop geom -compute eatom all pe/atom -compute energy all reduce sum c_eatom +pair_style mliap unified mliap_unified_jax_Ar.pkl 0 +pair_coeff * * Ar -compute satom all stress/atom NULL -compute str all reduce sum c_satom[1] c_satom[2] c_satom[3] -variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol) +neighbor 0.3 bin +neigh_modify every 20 delay 0 check no -thermo_style custom step temp epair c_energy etotal press v_press -thermo 10 -thermo_modify norm yes +fix 1 all nve -# Set up NVE run +#dump id all atom 50 dump.melt -timestep 0.5e-3 -neighbor 1.0 bin -# is this neigh modify every 1 slow? -neigh_modify once no every 1 delay 0 check yes +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -# Run MD +#dump 3 all movie 1 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -velocity all create 3200.0 4928459 loop geom -dump 1 all xyz 10 dump.xyz -fix 1 all nve -run ${nsteps} \ No newline at end of file +#dump 4 all custom 1 forces.xyz fx fy fz + +thermo 50 +run 250 \ No newline at end of file diff --git a/examples/mliap/jax/mliap_unified_jax.py b/examples/mliap/jax/mliap_unified_jax.py index e69de29bb2..a2447d1cdb 100644 --- a/examples/mliap/jax/mliap_unified_jax.py +++ b/examples/mliap/jax/mliap_unified_jax.py @@ -0,0 +1,41 @@ +from lammps.mliap.mliap_unified_abc import MLIAPUnified +import numpy as np + + +class MLIAPUnifiedJAX(MLIAPUnified): + """Test implementation for MLIAPUnified.""" + + def __init__(self, element_types, epsilon=1.0, sigma=1.0, rcutfac=1.25): + # ARGS: interface, element_types, ndescriptors, nparams, rcutfac + super().__init__(None, element_types, 1, 3, rcutfac) + # Mimicking the LJ pair-style: + # pair_style lj/cut 2.5 + # pair_coeff * * 1 1 + self.epsilon = epsilon + self.sigma = sigma + + def compute_gradients(self, data): + """Test compute_gradients.""" + + def compute_descriptors(self, data): + """Test compute_descriptors.""" + + def compute_forces(self, data): + """Test compute_forces.""" + eij, fij = self.compute_pair_ef(data) + data.update_pair_energy(eij) + data.update_pair_forces(fij) + + def compute_pair_ef(self, data): + rij = data.rij + + r2inv = 1.0 / np.sum(rij ** 2, axis=1) + r6inv = r2inv * r2inv * r2inv + + lj1 = 4.0 * self.epsilon * self.sigma**12 + lj2 = 4.0 * self.epsilon * self.sigma**6 + + eij = r6inv * (lj1 * r6inv - lj2) + fij = r6inv * (3.0 * lj2 - 6.0 * lj2 * r6inv) * r2inv + fij = fij[:, np.newaxis] * rij + return eij, fij \ No newline at end of file diff --git a/examples/mliap/jax/mliap_unified_jax_Ar.pkl b/examples/mliap/jax/mliap_unified_jax_Ar.pkl new file mode 100644 index 0000000000000000000000000000000000000000..04b173031520d82eb1b407293993b6329e52765e GIT binary patch literal 181 zcmZo*nYxMr0(t~i3yB=+#+rKA=o7iAWd Date: Wed, 24 May 2023 11:39:05 -0600 Subject: [PATCH 004/247] Properly decorate energy/force compute --- examples/mliap/jax/in.run | 2 +- examples/mliap/jax/mliap_unified_jax.py | 29 ++++++++++++++++++++----- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/examples/mliap/jax/in.run b/examples/mliap/jax/in.run index 354dfd769f..0685d58f08 100644 --- a/examples/mliap/jax/in.run +++ b/examples/mliap/jax/in.run @@ -32,4 +32,4 @@ fix 1 all nve #dump 4 all custom 1 forces.xyz fx fy fz thermo 50 -run 250 \ No newline at end of file +run 100 \ No newline at end of file diff --git a/examples/mliap/jax/mliap_unified_jax.py b/examples/mliap/jax/mliap_unified_jax.py index a2447d1cdb..b986b1247e 100644 --- a/examples/mliap/jax/mliap_unified_jax.py +++ b/examples/mliap/jax/mliap_unified_jax.py @@ -1,5 +1,9 @@ from lammps.mliap.mliap_unified_abc import MLIAPUnified import numpy as np +import jax +import jax.numpy as jnp +from jax import jit +from functools import partial class MLIAPUnifiedJAX(MLIAPUnified): @@ -13,6 +17,7 @@ class MLIAPUnifiedJAX(MLIAPUnified): # pair_coeff * * 1 1 self.epsilon = epsilon self.sigma = sigma + self.npair_max = 250000 def compute_gradients(self, data): """Test compute_gradients.""" @@ -22,12 +27,26 @@ class MLIAPUnifiedJAX(MLIAPUnified): def compute_forces(self, data): """Test compute_forces.""" - eij, fij = self.compute_pair_ef(data) - data.update_pair_energy(eij) - data.update_pair_forces(fij) + rij = data.rij - def compute_pair_ef(self, data): - rij = data.rij + # TODO: Take max npairs from the LAMMPS Cython side. + if (data.npairs > self.npair_max): + self.npair_max = data.npairs + + npad = self.npair_max - data.npairs + # TODO: Take pre-padded rij from the LAMMPS Cython side. + # This might account for ~2-3x slowdown compared to original LJ. + rij = np.pad(rij, ((0,npad), (0,0)), 'constant') + + eij, fij = self.compute_pair_ef(rij) + + data.update_pair_energy(np.array(np.double(eij))) + data.update_pair_forces(np.array(np.double(fij))) + + #@jax.jit # <-- This will error! See https://github.com/google/jax/issues/1251 + # @partial takes a function (e.g. jax.jit) as an arg. + @partial(jax.jit, static_argnums=(0,)) + def compute_pair_ef(self, rij): r2inv = 1.0 / np.sum(rij ** 2, axis=1) r6inv = r2inv * r2inv * r2inv From b2e5f93d490652d35dd67da8a1796b4912d7352a Mon Sep 17 00:00:00 2001 From: rohskopf Date: Wed, 24 May 2023 13:08:10 -0600 Subject: [PATCH 005/247] Use jax functions --- examples/mliap/jax/mliap_unified_jax.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/mliap/jax/mliap_unified_jax.py b/examples/mliap/jax/mliap_unified_jax.py index b986b1247e..4625fbf7f7 100644 --- a/examples/mliap/jax/mliap_unified_jax.py +++ b/examples/mliap/jax/mliap_unified_jax.py @@ -17,6 +17,7 @@ class MLIAPUnifiedJAX(MLIAPUnified): # pair_coeff * * 1 1 self.epsilon = epsilon self.sigma = sigma + # TODO: Take this from the LAMMPS Cython side. self.npair_max = 250000 def compute_gradients(self, data): @@ -48,7 +49,7 @@ class MLIAPUnifiedJAX(MLIAPUnified): @partial(jax.jit, static_argnums=(0,)) def compute_pair_ef(self, rij): - r2inv = 1.0 / np.sum(rij ** 2, axis=1) + r2inv = 1.0 / jnp.sum(rij ** 2, axis=1) r6inv = r2inv * r2inv * r2inv lj1 = 4.0 * self.epsilon * self.sigma**12 @@ -56,5 +57,5 @@ class MLIAPUnifiedJAX(MLIAPUnified): eij = r6inv * (lj1 * r6inv - lj2) fij = r6inv * (3.0 * lj2 - 6.0 * lj2 * r6inv) * r2inv - fij = fij[:, np.newaxis] * rij - return eij, fij \ No newline at end of file + fij = fij[:, jnp.newaxis] * rij + return eij, fij From 29ba0e3f184337ed74b342d00521ee6835c1fd68 Mon Sep 17 00:00:00 2001 From: Linux-cpp-lisp <1473644+Linux-cpp-lisp@users.noreply.github.com> Date: Wed, 24 May 2023 18:15:56 -0700 Subject: [PATCH 006/247] Update MLIAP JAX example to use jax.grad --- examples/mliap/jax/mliap_unified_jax.py | 42 ++++++++++++++----------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/examples/mliap/jax/mliap_unified_jax.py b/examples/mliap/jax/mliap_unified_jax.py index 4625fbf7f7..d4e75ee5c0 100644 --- a/examples/mliap/jax/mliap_unified_jax.py +++ b/examples/mliap/jax/mliap_unified_jax.py @@ -5,10 +5,30 @@ import jax.numpy as jnp from jax import jit from functools import partial +# /- ensure epsilon and sigma are treated as compile-time constants +@partial(jit, static_argnums=(0, 1)) +def lj_potential(epsilon: float, sigma: float, rij): + # a pure function we can differentiate: + def _tot_e(rij): + r2inv = 1.0 / jnp.sum(rij ** 2, axis=1) + r6inv = r2inv * r2inv * r2inv + + lj1 = 4.0 * epsilon * sigma**12 + lj2 = 4.0 * epsilon * sigma**6 + + eij = r6inv * (lj1 * r6inv - lj2) + return jnp.sum(eij) + # /- construct a function computing _tot_e and its derivative + tot_e, fij = jax.value_and_grad(_tot_e)(rij) + return tot_e, fij + class MLIAPUnifiedJAX(MLIAPUnified): """Test implementation for MLIAPUnified.""" + epsilon: float + sigma: float + def __init__(self, element_types, epsilon=1.0, sigma=1.0, rcutfac=1.25): # ARGS: interface, element_types, ndescriptors, nparams, rcutfac super().__init__(None, element_types, 1, 3, rcutfac) @@ -39,23 +59,7 @@ class MLIAPUnifiedJAX(MLIAPUnified): # This might account for ~2-3x slowdown compared to original LJ. rij = np.pad(rij, ((0,npad), (0,0)), 'constant') - eij, fij = self.compute_pair_ef(rij) + e_tot, fij = lj_potential(rij) - data.update_pair_energy(np.array(np.double(eij))) - data.update_pair_forces(np.array(np.double(fij))) - - #@jax.jit # <-- This will error! See https://github.com/google/jax/issues/1251 - # @partial takes a function (e.g. jax.jit) as an arg. - @partial(jax.jit, static_argnums=(0,)) - def compute_pair_ef(self, rij): - - r2inv = 1.0 / jnp.sum(rij ** 2, axis=1) - r6inv = r2inv * r2inv * r2inv - - lj1 = 4.0 * self.epsilon * self.sigma**12 - lj2 = 4.0 * self.epsilon * self.sigma**6 - - eij = r6inv * (lj1 * r6inv - lj2) - fij = r6inv * (3.0 * lj2 - 6.0 * lj2 * r6inv) * r2inv - fij = fij[:, jnp.newaxis] * rij - return eij, fij + data.energy = e_tot.item() + data.update_pair_forces(np.array(fij, dtype=np.float64)) From 35a55068d7d1d2cd9448f36a4130fe4c88301989 Mon Sep 17 00:00:00 2001 From: rohskopf Date: Thu, 25 May 2023 01:35:08 -0600 Subject: [PATCH 007/247] Add input padded rij from LAMMPS Cython side --- examples/mliap/jax/mliap_unified_jax.py | 26 ++++++++----------------- src/ML-IAP/mliap_unified_couple.pyx | 11 +++++++++++ 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/examples/mliap/jax/mliap_unified_jax.py b/examples/mliap/jax/mliap_unified_jax.py index d4e75ee5c0..ee09392ee8 100644 --- a/examples/mliap/jax/mliap_unified_jax.py +++ b/examples/mliap/jax/mliap_unified_jax.py @@ -5,10 +5,9 @@ import jax.numpy as jnp from jax import jit from functools import partial -# /- ensure epsilon and sigma are treated as compile-time constants -@partial(jit, static_argnums=(0, 1)) -def lj_potential(epsilon: float, sigma: float, rij): - # a pure function we can differentiate: +@jax.jit +def lj_potential(epsilon, sigma, rij): + # A pure function we can differentiate: def _tot_e(rij): r2inv = 1.0 / jnp.sum(rij ** 2, axis=1) r6inv = r2inv * r2inv * r2inv @@ -17,8 +16,8 @@ def lj_potential(epsilon: float, sigma: float, rij): lj2 = 4.0 * epsilon * sigma**6 eij = r6inv * (lj1 * r6inv - lj2) - return jnp.sum(eij) - # /- construct a function computing _tot_e and its derivative + return 0.5 * jnp.sum(eij) + # Construct a function computing _tot_e and its derivative tot_e, fij = jax.value_and_grad(_tot_e)(rij) return tot_e, fij @@ -37,8 +36,6 @@ class MLIAPUnifiedJAX(MLIAPUnified): # pair_coeff * * 1 1 self.epsilon = epsilon self.sigma = sigma - # TODO: Take this from the LAMMPS Cython side. - self.npair_max = 250000 def compute_gradients(self, data): """Test compute_gradients.""" @@ -48,18 +45,11 @@ class MLIAPUnifiedJAX(MLIAPUnified): def compute_forces(self, data): """Test compute_forces.""" - rij = data.rij - # TODO: Take max npairs from the LAMMPS Cython side. - if (data.npairs > self.npair_max): - self.npair_max = data.npairs + # NOTE: Use data.rij_max with JAX. + rij = data.rij_max - npad = self.npair_max - data.npairs - # TODO: Take pre-padded rij from the LAMMPS Cython side. - # This might account for ~2-3x slowdown compared to original LJ. - rij = np.pad(rij, ((0,npad), (0,0)), 'constant') - - e_tot, fij = lj_potential(rij) + e_tot, fij = lj_potential(self.epsilon, self.sigma, rij) data.energy = e_tot.item() data.update_pair_forces(np.array(fij, dtype=np.float64)) diff --git a/src/ML-IAP/mliap_unified_couple.pyx b/src/ML-IAP/mliap_unified_couple.pyx index 3fde99a25e..25852a1c5f 100644 --- a/src/ML-IAP/mliap_unified_couple.pyx +++ b/src/ML-IAP/mliap_unified_couple.pyx @@ -281,6 +281,16 @@ cdef class MLIAPDataPy: return None return np.asarray( &self.data.rij[0][0]) + @property + def rij_max(self): + if self.data.rij is NULL: + return None + return np.asarray( &self.data.rij[0][0]) + + @property + def nneigh_max(self): + return self.data.nneigh_max + @write_only_property def graddesc(self, value): if self.data.graddesc is NULL: @@ -357,6 +367,7 @@ cdef public object mliap_unified_connect(char *fname, MLIAPDummyModel * model, unified_int.descriptor = descriptor unified.interface = unified_int + #print(unified_int) if unified.ndescriptors is None: raise ValueError("no descriptors set") From 1fd34ffac602723d8279cad1274bc15554e5a8dc Mon Sep 17 00:00:00 2001 From: rohskopf Date: Thu, 25 May 2023 14:49:38 -0600 Subject: [PATCH 008/247] Update --- examples/mliap/jax/in.run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/mliap/jax/in.run b/examples/mliap/jax/in.run index 0685d58f08..354dfd769f 100644 --- a/examples/mliap/jax/in.run +++ b/examples/mliap/jax/in.run @@ -32,4 +32,4 @@ fix 1 all nve #dump 4 all custom 1 forces.xyz fx fy fz thermo 50 -run 100 \ No newline at end of file +run 250 \ No newline at end of file From 3012426bd51261f04f5a87188dbb8fa80196ca16 Mon Sep 17 00:00:00 2001 From: Linux-cpp-lisp <1473644+Linux-cpp-lisp@users.noreply.github.com> Date: Thu, 25 May 2023 17:49:02 -0400 Subject: [PATCH 009/247] send eij to LAMMPS --- examples/mliap/jax/mliap_unified_jax.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/mliap/jax/mliap_unified_jax.py b/examples/mliap/jax/mliap_unified_jax.py index ee09392ee8..96f9a067cc 100644 --- a/examples/mliap/jax/mliap_unified_jax.py +++ b/examples/mliap/jax/mliap_unified_jax.py @@ -15,11 +15,11 @@ def lj_potential(epsilon, sigma, rij): lj1 = 4.0 * epsilon * sigma**12 lj2 = 4.0 * epsilon * sigma**6 - eij = r6inv * (lj1 * r6inv - lj2) - return 0.5 * jnp.sum(eij) + eij = 0.5 * r6inv * (lj1 * r6inv - lj2) + return jnp.sum(eij), eij # Construct a function computing _tot_e and its derivative - tot_e, fij = jax.value_and_grad(_tot_e)(rij) - return tot_e, fij + (_, eij), fij = jax.value_and_grad(_tot_e, has_aux=True)(rij) + return eij, fij class MLIAPUnifiedJAX(MLIAPUnified): @@ -49,7 +49,7 @@ class MLIAPUnifiedJAX(MLIAPUnified): # NOTE: Use data.rij_max with JAX. rij = data.rij_max - e_tot, fij = lj_potential(self.epsilon, self.sigma, rij) + eij, fij = lj_potential(self.epsilon, self.sigma, rij) - data.energy = e_tot.item() + data.update_pair_energy(np.array(eij, dtype=np.float64)) data.update_pair_forces(np.array(fij, dtype=np.float64)) From 4174116014ef72d232511adaf4e9163d5fc94b58 Mon Sep 17 00:00:00 2001 From: rohskopf Date: Thu, 25 May 2023 16:02:45 -0600 Subject: [PATCH 010/247] Fix 1/2 factor in energy --- examples/mliap/jax/mliap_unified_jax.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/mliap/jax/mliap_unified_jax.py b/examples/mliap/jax/mliap_unified_jax.py index 96f9a067cc..42134c19d2 100644 --- a/examples/mliap/jax/mliap_unified_jax.py +++ b/examples/mliap/jax/mliap_unified_jax.py @@ -15,8 +15,8 @@ def lj_potential(epsilon, sigma, rij): lj1 = 4.0 * epsilon * sigma**12 lj2 = 4.0 * epsilon * sigma**6 - eij = 0.5 * r6inv * (lj1 * r6inv - lj2) - return jnp.sum(eij), eij + eij = r6inv * (lj1 * r6inv - lj2) + return 0.5 * jnp.sum(eij), eij # Construct a function computing _tot_e and its derivative (_, eij), fij = jax.value_and_grad(_tot_e, has_aux=True)(rij) return eij, fij From ff7bae17394d8ed47fb533e983d406ff28384d59 Mon Sep 17 00:00:00 2001 From: rohskopf Date: Thu, 25 May 2023 18:43:18 -0600 Subject: [PATCH 011/247] Add Kokkos getters --- src/KOKKOS/mliap_unified_couple_kokkos.pyx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/KOKKOS/mliap_unified_couple_kokkos.pyx b/src/KOKKOS/mliap_unified_couple_kokkos.pyx index 5e274d7f36..bd94b79eb4 100644 --- a/src/KOKKOS/mliap_unified_couple_kokkos.pyx +++ b/src/KOKKOS/mliap_unified_couple_kokkos.pyx @@ -346,6 +346,16 @@ cdef class MLIAPDataPy: return None return create_array(self.data.dev, self.data.rij, [self.npairs,3],False) + @property + def rij_max(self): + if self.data.rij is NULL: + return None + return create_array(self.data.dev, self.data.rij, [self.nneigh_max,3], False) + + @property + def nneigh_max(self): + return self.data.nneigh_max + @write_only_property def graddesc(self, value): if self.data.graddesc is NULL: From b7146c900ffd09adfc7513691674a46de82cf83f Mon Sep 17 00:00:00 2001 From: rohskopf Date: Thu, 25 May 2023 18:58:56 -0600 Subject: [PATCH 012/247] Add instructions --- examples/mliap/jax/README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/examples/mliap/jax/README.md b/examples/mliap/jax/README.md index 320d87e465..c56c9e6d93 100644 --- a/examples/mliap/jax/README.md +++ b/examples/mliap/jax/README.md @@ -27,6 +27,33 @@ Install LAMMPS: make -j4 make install-python +### Kokkos install + +Make sure you install cupy properly! + + python -m pip cupy + +Install LAMMPS. Take care to change `Kokkos_ARCH_*` flag: + + cmake ../cmake -DLAMMPS_EXCEPTIONS=yes \ + -DBUILD_SHARED_LIBS=yes \ + -DPKG_PYTHON=yes \ + -DPKG_ML-SNAP=yes \ + -DPKG_ML-IAP=yes \ + -DMLIAP_ENABLE_PYTHON=yes \ + -DPKG_KOKKOS=yes \ + -DKokkos_ARCH_TURING75=yes \ + -DKokkos_ENABLE_CUDA=yes \ + -DKokkos_ENABLE_OPENMP=yes \ + -DCMAKE_CXX_COMPILER=${HOME}/lammps/lib/kokkos/bin/nvcc_wrapper \ + -DPYTHON_EXECUTABLE:FILEPATH=`which python` + make -j + make install-python + +Run example: + + mpirun -np 1 lmp -k on g 1 -sf kk -pk kokkos newton on -in in.run + ### Wrapping JAX code Take inspiration from the `FitSNAP` ML-IAP wrapper: https://github.com/rohskopf/FitSNAP/blob/mliap-unified/fitsnap3lib/tools/write_unified.py From 6eb586e66fb9811d89083d072a0325aba2416e15 Mon Sep 17 00:00:00 2001 From: Linux-cpp-lisp <1473644+Linux-cpp-lisp@users.noreply.github.com> Date: Thu, 25 May 2023 21:03:32 -0400 Subject: [PATCH 013/247] update_atom_energy initial --- src/KOKKOS/mliap_unified_kokkos.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/KOKKOS/mliap_unified_kokkos.cpp b/src/KOKKOS/mliap_unified_kokkos.cpp index 1fdf039473..deb9cbc346 100644 --- a/src/KOKKOS/mliap_unified_kokkos.cpp +++ b/src/KOKKOS/mliap_unified_kokkos.cpp @@ -371,6 +371,25 @@ void LAMMPS_NS::update_pair_forces(MLIAPDataKokkosDevice *data, double *fij) } } +/* ---------------------------------------------------------------------- + set energy for i indexed atoms + ---------------------------------------------------------------------- */ + +void LAMMPS_NS::update_atom_energy(MLIAPDataKokkosDevice *data, double *ei) +{ + auto d_eatoms = data->eatoms; + const auto nlistatoms = data->nlistatoms; + + Kokkos::parallel_reduce(nlistatoms, KOKKOS_LAMBDA(int i, double &local_sum){ + double e = ei[i]; + // must not count any contribution where i is not a local atom + if (i < nlistatoms) { + d_eatoms[i] = e; + local_sum += e; + } + },*data->energy); +} + namespace LAMMPS_NS { template class MLIAPDummyModelKokkos; template class MLIAPDummyDescriptorKokkos; From 49b2c299a7ba44e95d958e1ed94005041373b811 Mon Sep 17 00:00:00 2001 From: rohskopf Date: Fri, 26 May 2023 10:48:58 -0600 Subject: [PATCH 014/247] Add Kokkos example --- examples/mliap/jax/README.md | 20 ++++-- examples/mliap/jax/in.run | 6 +- .../mliap/jax/mliap_unified_jax_kokkos.py | 62 +++++++++++++++++++ 3 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 examples/mliap/jax/mliap_unified_jax_kokkos.py diff --git a/examples/mliap/jax/README.md b/examples/mliap/jax/README.md index c56c9e6d93..3a5fe0105c 100644 --- a/examples/mliap/jax/README.md +++ b/examples/mliap/jax/README.md @@ -54,11 +54,9 @@ Run example: mpirun -np 1 lmp -k on g 1 -sf kk -pk kokkos newton on -in in.run -### Wrapping JAX code +### Deploying JAX models on CPU -Take inspiration from the `FitSNAP` ML-IAP wrapper: https://github.com/rohskopf/FitSNAP/blob/mliap-unified/fitsnap3lib/tools/write_unified.py - -First define JAX model in `deploy_script.py`, which will wrap model with `write_unified`. +Use `deploy_script.py`, which will wrap model with `write_unified_jax`. python deploy_script.py @@ -66,4 +64,16 @@ This creates `.pkl` file to be loaded by LAMMPS ML-IAP Unified. Run LAMMPS with the model: - mpirun -np P lmp -in in.run \ No newline at end of file + mpirun -np P lmp -in in.run + +### Deploying JAX models in Kokkos + +Use `deploy_script_kokkos.py`, which will wrap model with `write_unified_jax_kokkos`. + + python deploy_script_kokkos.py + +This creates `.pkl` file to be loaded by LAMMPS ML-IAP Unified. + +Run LAMMPS with the model: + + mpirun -np 1 lmp -k on g 1 -sf kk -pk kokkos newton on -in in.run \ No newline at end of file diff --git a/examples/mliap/jax/in.run b/examples/mliap/jax/in.run index 354dfd769f..d0560e6620 100644 --- a/examples/mliap/jax/in.run +++ b/examples/mliap/jax/in.run @@ -31,5 +31,7 @@ fix 1 all nve #dump 4 all custom 1 forces.xyz fx fy fz -thermo 50 -run 250 \ No newline at end of file +dump 1 all xyz 10 dump.xyz + +thermo 1 +run 250 diff --git a/examples/mliap/jax/mliap_unified_jax_kokkos.py b/examples/mliap/jax/mliap_unified_jax_kokkos.py new file mode 100644 index 0000000000..5006936884 --- /dev/null +++ b/examples/mliap/jax/mliap_unified_jax_kokkos.py @@ -0,0 +1,62 @@ +from lammps.mliap.mliap_unified_abc import MLIAPUnified +import numpy as np +import jax +import jax.dlpack +import jax.numpy as jnp +from jax import jit +from functools import partial +import cupy + +@jax.jit +def lj_potential(epsilon, sigma, rij): + # A pure function we can differentiate: + def _tot_e(rij): + r2inv = 1.0 / jnp.sum(rij ** 2, axis=1) + r6inv = r2inv * r2inv * r2inv + + lj1 = 4.0 * epsilon * sigma**12 + lj2 = 4.0 * epsilon * sigma**6 + + eij = r6inv * (lj1 * r6inv - lj2) + return 0.5 * jnp.sum(eij), eij + # Construct a function computing _tot_e and its derivative + (_, eij), fij = jax.value_and_grad(_tot_e, has_aux=True)(rij) + return eij, fij + + +class MLIAPUnifiedJAXKokkos(MLIAPUnified): + """JAX wrapper for MLIAPUnified.""" + + epsilon: float + sigma: float + + def __init__(self, element_types, epsilon=1.0, sigma=1.0, rcutfac=1.25): + # ARGS: interface, element_types, ndescriptors, nparams, rcutfac + super().__init__(None, element_types, 1, 3, rcutfac) + # Mimicking the LJ pair-style: + # pair_style lj/cut 2.5 + # pair_coeff * * 1 1 + self.epsilon = epsilon + self.sigma = sigma + + def compute_gradients(self, data): + """Test compute_gradients.""" + + def compute_descriptors(self, data): + """Test compute_descriptors.""" + + def compute_forces(self, data): + """Test compute_forces.""" + + # NOTE: Use data.rij_max with JAX. + # dlpack requires cudnn: + rij = jax.dlpack.from_dlpack(data.rij_max.toDlpack()) + eij, fij = lj_potential(self.epsilon, self.sigma, rij) + + # Convert back to cupy. + eij = cupy.from_dlpack(jax.dlpack.to_dlpack(eij)).astype(np.float64) + fij = cupy.from_dlpack(jax.dlpack.to_dlpack(fij)).astype(np.float64) + + # Send to LAMMPS. + data.update_pair_energy(eij) + data.update_pair_forces(fij) From 87850f31cafb5c991a4a2520ac2c581f37586b97 Mon Sep 17 00:00:00 2001 From: rohskopf Date: Fri, 26 May 2023 11:18:37 -0600 Subject: [PATCH 015/247] Add Kokkos instructions --- examples/mliap/jax/README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/examples/mliap/jax/README.md b/examples/mliap/jax/README.md index 3a5fe0105c..ccaa234034 100644 --- a/examples/mliap/jax/README.md +++ b/examples/mliap/jax/README.md @@ -29,9 +29,17 @@ Install LAMMPS: ### Kokkos install -Make sure you install cupy properly! +Use same Python dependencies as above, with some extra changes: - python -m pip cupy +1. Make sure you install cupy properly! E.g. + + python -m pip install cupy-cuda12x + +2. Install JAX for GPU/CUDA: + + python -m pip install --trusted-host storage.googleapis.com --upgrade "jax[cuda12_local]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html + +3. Install cudNN: https://developer.nvidia.com/cudnn Install LAMMPS. Take care to change `Kokkos_ARCH_*` flag: From 2e68930f2a1873826055223db7a6173be0e73b1f Mon Sep 17 00:00:00 2001 From: rohskopf Date: Fri, 26 May 2023 11:21:13 -0600 Subject: [PATCH 016/247] Format readme --- examples/mliap/jax/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/mliap/jax/README.md b/examples/mliap/jax/README.md index ccaa234034..5cc0c49f16 100644 --- a/examples/mliap/jax/README.md +++ b/examples/mliap/jax/README.md @@ -33,11 +33,11 @@ Use same Python dependencies as above, with some extra changes: 1. Make sure you install cupy properly! E.g. - python -m pip install cupy-cuda12x + python -m pip install cupy-cuda12x 2. Install JAX for GPU/CUDA: - python -m pip install --trusted-host storage.googleapis.com --upgrade "jax[cuda12_local]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html + python -m pip install --trusted-host storage.googleapis.com --upgrade "jax[cuda12_local]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html 3. Install cudNN: https://developer.nvidia.com/cudnn From b5a1c6d47f54ddb6bd2d646a8e51fe4a933fcc2c Mon Sep 17 00:00:00 2001 From: rohskopf Date: Fri, 26 May 2023 11:25:29 -0600 Subject: [PATCH 017/247] Declare update per atom function --- src/KOKKOS/mliap_unified_kokkos.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/KOKKOS/mliap_unified_kokkos.h b/src/KOKKOS/mliap_unified_kokkos.h index aad25891b0..1af7715dad 100644 --- a/src/KOKKOS/mliap_unified_kokkos.h +++ b/src/KOKKOS/mliap_unified_kokkos.h @@ -60,6 +60,7 @@ template MLIAPBuildUnifiedKokkos_t build_unified(char *, MLIAPDataKokkos *, LAMMPS *, char * = NULL); void update_pair_energy(MLIAPDataKokkosDevice *, double *); void update_pair_forces(MLIAPDataKokkosDevice *, double *); +void update_atom_energy(MLIAPDataKokkosDevice *, double *); } // namespace LAMMPS_NS From 16751b06b3c5c8949e164e709816f410d8d2b798 Mon Sep 17 00:00:00 2001 From: rohskopf Date: Fri, 26 May 2023 12:52:51 -0600 Subject: [PATCH 018/247] Add os env vars to allow more MPI procs --- examples/mliap/jax/mliap_unified_jax.py | 10 ++++++++-- examples/mliap/jax/mliap_unified_jax_kokkos.py | 7 +++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/examples/mliap/jax/mliap_unified_jax.py b/examples/mliap/jax/mliap_unified_jax.py index 42134c19d2..69cbee6221 100644 --- a/examples/mliap/jax/mliap_unified_jax.py +++ b/examples/mliap/jax/mliap_unified_jax.py @@ -4,11 +4,17 @@ import jax import jax.numpy as jnp from jax import jit from functools import partial +import os + +# Required else get `jaxlib.xla_extension.XlaRuntimeError: RESOURCE_EXHAUSTED: Out of memory` +os.environ["XLA_PYTHON_CLIENT_PREALLOCATE"]="false" +os.environ["XLA_PYTHON_CLIENT_MEM_FRACTION"]=".XX" +os.environ["XLA_PYTHON_CLIENT_ALLOCATOR"]="platform" @jax.jit def lj_potential(epsilon, sigma, rij): - # A pure function we can differentiate: def _tot_e(rij): + """A differentiable fn for total energy.""" r2inv = 1.0 / jnp.sum(rij ** 2, axis=1) r6inv = r2inv * r2inv * r2inv @@ -17,7 +23,7 @@ def lj_potential(epsilon, sigma, rij): eij = r6inv * (lj1 * r6inv - lj2) return 0.5 * jnp.sum(eij), eij - # Construct a function computing _tot_e and its derivative + # Compute _tot_e and its derivative. (_, eij), fij = jax.value_and_grad(_tot_e, has_aux=True)(rij) return eij, fij diff --git a/examples/mliap/jax/mliap_unified_jax_kokkos.py b/examples/mliap/jax/mliap_unified_jax_kokkos.py index 5006936884..fd7f106f47 100644 --- a/examples/mliap/jax/mliap_unified_jax_kokkos.py +++ b/examples/mliap/jax/mliap_unified_jax_kokkos.py @@ -6,6 +6,13 @@ import jax.numpy as jnp from jax import jit from functools import partial import cupy +import os + +# Required else get `jaxlib.xla_extension.XlaRuntimeError: RESOURCE_EXHAUSTED: Out of memory` +# Does not fix GPU problem with larger num. atoms. +#os.environ["XLA_PYTHON_CLIENT_PREALLOCATE"]="false" +#os.environ["XLA_PYTHON_CLIENT_MEM_FRACTION"]=".XX" +#os.environ["XLA_PYTHON_CLIENT_ALLOCATOR"]="platform" @jax.jit def lj_potential(epsilon, sigma, rij): From f3ff8dac6626add46564385dcc39c622cc09546b Mon Sep 17 00:00:00 2001 From: jbcouli Date: Wed, 7 Jun 2023 16:23:06 -0600 Subject: [PATCH 019/247] clean up documentation for BPM bond styles --- doc/src/bond_bpm_rotational.rst | 45 +++++++++++++++++---------------- doc/src/bond_bpm_spring.rst | 37 ++++++++++++++------------- 2 files changed, 42 insertions(+), 40 deletions(-) diff --git a/doc/src/bond_bpm_rotational.rst b/doc/src/bond_bpm_rotational.rst index ca12d86ccc..cfacfde2cd 100644 --- a/doc/src/bond_bpm_rotational.rst +++ b/doc/src/bond_bpm_rotational.rst @@ -10,7 +10,7 @@ Syntax bond_style bpm/rotational keyword value attribute1 attribute2 ... -* optional keyword = *overlay/pair* or *store/local* or *smooth* or *break/no* +* optional keyword = *overlay/pair* or *store/local* or *smooth* or *break* .. parsed-literal:: @@ -80,32 +80,32 @@ respectively. Details on the calculations of shear displacements and angular displacements can be found in :ref:`(Wang) ` and :ref:`(Wang and Mora) `. -Bonds will break under sufficient stress. A breaking criteria is calculated +Bonds will break under sufficient stress. A breaking criterion is calculated .. math:: - B = \mathrm{max}\{0, \frac{f_r}{f_{r,c}} + \frac{|f_s|}{f_{s,c}} + - \frac{|\tau_b|}{\tau_{b,c}} + \frac{|\tau_t|}{\tau_{t,c}} \} + B = \mathrm{max}\left\{0, \frac{f_r}{f_{r,c}} + \frac{|f_s|}{f_{s,c}} + + \frac{|\tau_b|}{\tau_{b,c}} + \frac{|\tau_t|}{\tau_{t,c}} \right\} where :math:`|f_s|` is the magnitude of the shear force and :math:`|\tau_b|` and :math:`|\tau_t|` are the magnitudes of the -bending and twisting forces, respectively. The corresponding variables +bending and twisting torques, respectively. The corresponding variables :math:`f_{r,c}` :math:`f_{s,c}`, :math:`\tau_{b,c}`, and :math:`\tau_{t,c}` are critical limits to each force or torque. If :math:`B` is ever equal to or exceeds one, the bond will break. This -is done by setting by setting its type to 0 such that forces and +is done by setting the bond type to 0 such that forces and torques are no longer computed. After computing the base magnitudes of the forces and torques, they can be optionally multiplied by an extra factor :math:`w` to smoothly interpolate forces and torques to zero as the bond breaks. This term -is calculated as :math:`w = (1.0 - B^4)`. This smoothing factor can be -added or removed using the *smooth* keyword. +is calculated as :math:`w = (1.0 - B^4)`. This smoothing factor can be added +or removed by setting the *smooth* keyword to *yes* or *no*, respectively. Finally, additional damping forces and torques are applied to the two particles. A force is applied proportional to the difference in the normal velocity of particles using a similar construction as -dissipative particle dynamics (:ref:`(Groot) `): +dissipative particle dynamics :ref:`(Groot) `: .. math:: @@ -115,8 +115,8 @@ where :math:`\gamma_n` is the damping strength, :math:`\hat{r}` is the radial normal vector, and :math:`\vec{v}` is the velocity difference between the two particles. Similarly, tangential forces are applied to each atom proportional to the relative differences in sliding -velocities with a constant prefactor :math:`\gamma_s` (:ref:`(Wang et -al.) `) along with their associated torques. The rolling and +velocities with a constant prefactor :math:`\gamma_s` :ref:`(Wang et +al.) ` along with their associated torques. The rolling and twisting components of the relative angular velocities of the two atoms are also damped by applying torques with prefactors of :math:`\gamma_r` and :math:`\gamma_t`, respectively. @@ -139,21 +139,23 @@ or :doc:`read_restart ` commands: * :math:`\gamma_r` (force*distance/velocity units) * :math:`\gamma_t` (force*distance/velocity units) -However, the *normalize* option will normalize the radial and shear forces -by :math:`r_0` such that :math:`k_r` and :math:`k_s` are unit less. +If the *normalize* keyword is set to *yes*, the radial and shear forces +will be normalized by :math:`r_0` such that :math:`k_r` and :math:`k_s` +must be given in force units. By default, pair forces are not calculated between bonded particles. -Pair forces can alternatively be overlaid on top of bond forces using -the *overlay/pair* option. These settings require specific +Pair forces can alternatively be overlaid on top of bond forces by setting +the *overlay/pair* keyword to *yes*. These settings require specific :doc:`special_bonds ` settings described in the -restrictions. Further details can be found in the `:doc: how to -` page on BPMs. +restrictions. Further details can be found in the :doc:`how to +` page on BPMs. .. versionadded:: 28Mar2023 -If the *break* option is used, then LAMMPS assumes bonds should not break +If the *break* keyword is set to *no*, LAMMPS assumes bonds should not break during a simulation run. This will prevent some unnecessary calculation. -However, if a bond does break, it will trigger an error. +However, if a bond reaches a damage criterion greater than one, +it will trigger an error. If the *store/local* keyword is used, an internal fix will track bonds that break during the simulation. Whenever a bond breaks, data is processed @@ -239,9 +241,8 @@ requires setting special_bonds lj 0 1 1 coul 1 1 1 -and :doc:`newton ` must be set to bond off. If the -*overlay/pair* option is used, this bond style alternatively requires -setting +and :doc:`newton ` must be set to bond off. If the *overlay/pair* +keyword is set to *yes*, this bond style alternatively requires setting .. code-block:: LAMMPS diff --git a/doc/src/bond_bpm_spring.rst b/doc/src/bond_bpm_spring.rst index d89035dcad..2376b8e077 100644 --- a/doc/src/bond_bpm_spring.rst +++ b/doc/src/bond_bpm_spring.rst @@ -10,7 +10,7 @@ Syntax bond_style bpm/spring keyword value attribute1 attribute2 ... -* optional keyword = *overlay/pair* or *store/local* or *smooth* or *break/no* +* optional keyword = *overlay/pair* or *store/local* or *smooth* or *break* .. parsed-literal:: @@ -72,13 +72,13 @@ particles based on a model described by Clemmer and Robbins where :math:`k` is a stiffness, :math:`r` is the current distance and :math:`r_0` is the initial distance between the two particles, and :math:`w` is an optional smoothing factor discussed below. Bonds will -break at a strain of :math:`\epsilon_c`. This is done by setting by -setting its type to 0 such that forces are no longer computed. +break at a strain of :math:`\epsilon_c`. This is done by setting +the bond type to 0 such that forces are no longer computed. An additional damping force is applied to the bonded particles. This forces is proportional to the difference in the normal velocity of particles using a similar construction as -dissipative particle dynamics (:ref:`(Groot) `): +dissipative particle dynamics :ref:`(Groot) `: .. math:: @@ -88,9 +88,10 @@ where :math:`\gamma` is the damping strength, :math:`\hat{r}` is the radial normal vector, and :math:`\vec{v}` is the velocity difference between the two particles. -The smoothing factor :math:`w` can be added or removed using the -*smooth* keyword. It is constructed such that forces smoothly go -to zero, avoiding discontinuities, as bonds approach the critical strain +The smoothing factor :math:`w` can be added or removed by setting the +*smooth* keyword to *yes* or *no*, respectively. It is constructed such +that forces smoothly go to zero, avoiding discontinuities, as bonds +approach the critical strain .. math:: @@ -105,21 +106,22 @@ the data file or restart files read by the :doc:`read_data * :math:`\epsilon_c` (unit less) * :math:`\gamma` (force/velocity units) -However, the *normalize* option will normalize the elastic bond force by -:math:`r_0` such that :math:`k` is unit less. +If the *normalize* keyword is set to *yes*, the elastic bond force will be +normalized by :math:`r_0` such that :math:`k` must be given in force units. By default, pair forces are not calculated between bonded particles. -Pair forces can alternatively be overlaid on top of bond forces using -the *overlay/pair* option. These settings require specific +Pair forces can alternatively be overlaid on top of bond forces by setting +the *overlay/pair* keyword to *yes*. These settings require specific :doc:`special_bonds ` settings described in the -restrictions. Further details can be found in the `:doc: how to -` page on BPMs. +restrictions. Further details can be found in the :doc:`how to +` page on BPMs. .. versionadded:: 28Mar2023 -If the *break* option is used, then LAMMPS assumes bonds should not break +If the *break* keyword is set to *no*, LAMMPS assumes bonds should not break during a simulation run. This will prevent some unnecessary calculation. -However, if a bond does break, it will trigger an error. +However, if a bond reaches a strain greater than :math:`\epsilon_c`, +it will trigger an error. If the *store/local* keyword is used, an internal fix will track bonds that break during the simulation. Whenever a bond breaks, data is processed @@ -196,9 +198,8 @@ requires setting special_bonds lj 0 1 1 coul 1 1 1 -and :doc:`newton ` must be set to bond off. If the -*overlay/pair* option is used, this bond style alternatively requires -setting +and :doc:`newton ` must be set to bond off. If the *overlay/pair* +keyword is set to *yes*, this bond style alternatively requires setting .. code-block:: LAMMPS From 04a31c33e231bbe2a7151447fa46e4b6b39dc3f7 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Fri, 9 Jun 2023 09:57:23 -0600 Subject: [PATCH 020/247] Changing output of fforce in pair granular single() --- src/GRANULAR/pair_granular.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index 0b6bd537e5..390a7581d7 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -767,10 +767,11 @@ double PairGranular::single(int i, int j, int itype, int jtype, model->history = history; model->calculate_forces(); - double *forces = model->forces; // apply forces & torques - fforce = MathExtra::len3(forces); + // Calculate normal component, normalized by r + fforce = MathExtra::dot3(model->forces, model->dx); + fforce *= model->rinv * model->rinv; // set single_extra quantities svector[0] = model->fs[0]; From e0cbcff1f9ab272b21c028ca8be1765be37e7178 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Fri, 9 Jun 2023 10:43:00 -0600 Subject: [PATCH 021/247] Simplying normal force calculation --- src/GRANULAR/pair_granular.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index 390a7581d7..30f272791e 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -770,8 +770,7 @@ double PairGranular::single(int i, int j, int itype, int jtype, // apply forces & torques // Calculate normal component, normalized by r - fforce = MathExtra::dot3(model->forces, model->dx); - fforce *= model->rinv * model->rinv; + fforce = model->Fnormal * model->rinv; // set single_extra quantities svector[0] = model->fs[0]; From 233fb67eaa7b6e82ec22a74886288660267567a3 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Wed, 14 Jun 2023 00:28:24 -0500 Subject: [PATCH 022/247] Reverted the zero net induced charge constraint, updated the fix polarize doc page for q_scaled and q --- doc/src/fix_polarize.rst | 15 +++++++++++++- src/DIELECTRIC/fix_polarize_bem_gmres.cpp | 24 ---------------------- src/DIELECTRIC/fix_polarize_bem_icc.cpp | 24 ---------------------- src/DIELECTRIC/fix_polarize_functional.cpp | 13 +----------- 4 files changed, 15 insertions(+), 61 deletions(-) diff --git a/doc/src/fix_polarize.rst b/doc/src/fix_polarize.rst index dd8a0c7d75..f35e34bc67 100644 --- a/doc/src/fix_polarize.rst +++ b/doc/src/fix_polarize.rst @@ -130,10 +130,23 @@ Fix *polarize/functional* employs the energy functional variation approach as described in :ref:`(Jadhao) ` to solve :math:`\sigma_b`. +The induced charges computed by these fixes are stored in the *q_scaled* field, +and can be accessed as in the following example: + +.. code-block:: LAMMPS + + compute qs all property/atom q_scaled + dump 1 all custom 1000 all.txt id type q x y z c_qs + +Note that the *q* field is the regular atom charges, which do not change +during the simulation. For interface particles, *q_scaled* is the sum +of the real charge, divided by the local dielectric constant *epsilon*, +and their induced charges. For non-interface particles, *q_scaled* is +the real charge, divided by the local dielectric constant *epsilon*. + More details on the implementation of these fixes and their recommended use are described in :ref:`(NguyenTD) `. - Restart, fix_modify, output, run start/stop, minimize info """""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/src/DIELECTRIC/fix_polarize_bem_gmres.cpp b/src/DIELECTRIC/fix_polarize_bem_gmres.cpp index b11ac7e482..3945b76641 100644 --- a/src/DIELECTRIC/fix_polarize_bem_gmres.cpp +++ b/src/DIELECTRIC/fix_polarize_bem_gmres.cpp @@ -445,31 +445,7 @@ void FixPolarizeBEMGMRES::compute_induced_charges() comm->forward_comm(this); - // compute the total induced charges of the interface particles - // for interface particles: set the charge to be the sum of unscaled (free) charges and induced charges - - double tmp = 0; - for (int i = 0; i < nlocal; i++) { - if (!(mask[i] & groupbit)) continue; - - double q_bound = q_scaled[i] - q[i]; - tmp += q_bound; - q[i] = q_scaled[i]; - } - if (first) first = 0; - - // ensure sum of all induced charges being zero - - int ncount = group->count(igroup); - double sum = 0; - MPI_Allreduce(&tmp, &sum, 1, MPI_DOUBLE, MPI_SUM, world); - double qboundave = sum / (double) ncount; - - for (int i = 0; i < nlocal; i++) { - if (!(mask[i] & groupbit)) continue; - q[i] -= qboundave; - } } /* ---------------------------------------------------------------------- */ diff --git a/src/DIELECTRIC/fix_polarize_bem_icc.cpp b/src/DIELECTRIC/fix_polarize_bem_icc.cpp index 697d45f416..2b5664e4f5 100644 --- a/src/DIELECTRIC/fix_polarize_bem_icc.cpp +++ b/src/DIELECTRIC/fix_polarize_bem_icc.cpp @@ -361,30 +361,6 @@ void FixPolarizeBEMICC::compute_induced_charges() } iterations = itr; - - // compute the total induced charges of the interface particles - // for interface particles: set the charge to be the sum of unscaled (free) charges and induced charges - - double tmp = 0; - for (int i = 0; i < nlocal; i++) { - if (!(mask[i] & groupbit)) continue; - - double q_bound = q_scaled[i] - q[i]; - tmp += q_bound; - q[i] = q_scaled[i]; - } - - // ensure sum of all induced charges being zero - - int ncount = group->count(igroup); - double sum = 0; - MPI_Allreduce(&tmp, &sum, 1, MPI_DOUBLE, MPI_SUM, world); - double qboundave = sum / (double) ncount; - - for (int i = 0; i < nlocal; i++) { - if (!(mask[i] & groupbit)) continue; - q[i] -= qboundave; - } } /* ---------------------------------------------------------------------- */ diff --git a/src/DIELECTRIC/fix_polarize_functional.cpp b/src/DIELECTRIC/fix_polarize_functional.cpp index a0dc034818..ab039f9c48 100644 --- a/src/DIELECTRIC/fix_polarize_functional.cpp +++ b/src/DIELECTRIC/fix_polarize_functional.cpp @@ -386,18 +386,7 @@ void FixPolarizeFunctional::update_induced_charges() for (int i = 0; i < nlocal; i++) { if (induced_charge_idx[i] < 0) continue; int idx = induced_charge_idx[i]; - q[i] = -induced_charges[idx] / (4 * MY_PI); - q_scaled[i] = q[i] / epsilon[i]; - tmp += q_scaled[i]; - } - - double sum = 0; - MPI_Allreduce(&tmp, &sum, 1, MPI_DOUBLE, MPI_SUM, world); - double qboundave = sum/(double)num_induced_charges; - - for (int i = 0; i < nlocal; i++) { - if (induced_charge_idx[i] < 0) continue; - q_scaled[i] -= qboundave; + q_scaled[i] = -induced_charges[idx] / (4 * MY_PI); } // revert to scaled charges to calculate forces From 838be24af426e9769adde43ce7fdac1684b71bbe Mon Sep 17 00:00:00 2001 From: jtclemm Date: Mon, 19 Jun 2023 10:15:06 -0600 Subject: [PATCH 023/247] Fixing argument parsing increment --- src/BPM/bond_bpm.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BPM/bond_bpm.cpp b/src/BPM/bond_bpm.cpp index da189ccaf5..d965a19067 100644 --- a/src/BPM/bond_bpm.cpp +++ b/src/BPM/bond_bpm.cpp @@ -189,11 +189,11 @@ void BondBPM::settings(int narg, char **arg) } else if (strcmp(arg[iarg], "overlay/pair") == 0) { if (iarg + 1 > narg) error->all(FLERR, "Illegal bond bpm command, missing option for overlay/pair"); overlay_flag = utils::logical(FLERR, arg[iarg + 1], false, lmp); - iarg++; + iarg += 2; } else if (strcmp(arg[iarg], "break") == 0) { if (iarg + 1 > narg) error->all(FLERR, "Illegal bond bpm command, missing option for break"); break_flag = utils::logical(FLERR, arg[iarg + 1], false, lmp); - iarg++; + iarg += 2; } else { leftover_iarg.push_back(iarg); iarg++; From af3d97102383772d3f96743d8afec8e93e54dfa4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 19 Jun 2023 15:28:27 -0400 Subject: [PATCH 024/247] allow longer argument strings to avoid failues with unit tests --- examples/COUPLE/simple/simple.f90 | 2 +- fortran/lammps.f90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/COUPLE/simple/simple.f90 b/examples/COUPLE/simple/simple.f90 index 3aafbee01b..d9505fff4d 100644 --- a/examples/COUPLE/simple/simple.f90 +++ b/examples/COUPLE/simple/simple.f90 @@ -30,7 +30,7 @@ PROGRAM f_driver REAL (kind=8), ALLOCATABLE :: x(:) REAL (kind=8), PARAMETER :: epsilon=0.1 - CHARACTER (len=64) :: arg + CHARACTER (len=1024) :: arg CHARACTER (len=1024) :: line ! setup MPI and various communicators diff --git a/fortran/lammps.f90 b/fortran/lammps.f90 index ba3997ac8e..28e40bca44 100644 --- a/fortran/lammps.f90 +++ b/fortran/lammps.f90 @@ -20,7 +20,7 @@ ! University of Missouri, 2012-2020 ! ! Contributing authors: -! - Axel Kohlmeyer , Temple University, 2020-2022 +! - Axel Kohlmeyer , Temple University, 2020-2023 ! - Karl D. Hammond , University of Missouri, 2022 ! ! The Fortran module tries to follow the API of the C library interface From 6791651b62b047da4d69889fc8343b47f6120f7e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 20 Jun 2023 09:41:55 -0400 Subject: [PATCH 025/247] add else branch to make coverity scan happy --- src/REPLICA/fix_pimd_langevin.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/REPLICA/fix_pimd_langevin.cpp b/src/REPLICA/fix_pimd_langevin.cpp index 75280fd3d5..7ba502d2e6 100644 --- a/src/REPLICA/fix_pimd_langevin.cpp +++ b/src/REPLICA/fix_pimd_langevin.cpp @@ -906,7 +906,10 @@ void FixPIMDLangevin::langevin_init() Lan_c[i] = cos(_omega_np_dt_half); Lan_s[i] = sin(_omega_np_dt_half); } + } else { + error->universe_all(FLERR, "Unknown fmmode setting; only physical and normal are supported!"); } + if (tau > 0) gamma = 1.0 / tau; else From fcc3c99e2bf402abf683e9d4518d5732f5917348 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 20 Jun 2023 13:31:16 -0400 Subject: [PATCH 026/247] avoid segfaults if a dump is created and followed by run pre no --- src/MPIIO/dump_atom_mpiio.cpp | 2 ++ src/MPIIO/dump_custom_mpiio.cpp | 2 ++ src/dump.cpp | 39 ++++++++++----------------------- src/dump_atom.cpp | 9 ++++++-- src/dump_custom.cpp | 18 ++++++++------- src/dump_grid.cpp | 2 ++ src/dump_xyz.cpp | 7 +++--- 7 files changed, 39 insertions(+), 40 deletions(-) diff --git a/src/MPIIO/dump_atom_mpiio.cpp b/src/MPIIO/dump_atom_mpiio.cpp index 4e0fd47a29..844d1a46e4 100644 --- a/src/MPIIO/dump_atom_mpiio.cpp +++ b/src/MPIIO/dump_atom_mpiio.cpp @@ -283,6 +283,8 @@ void DumpAtomMPIIO::init_style() void DumpAtomMPIIO::write_header(bigint ndump) { + if (!header_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + (this->*header_choice)(ndump); } diff --git a/src/MPIIO/dump_custom_mpiio.cpp b/src/MPIIO/dump_custom_mpiio.cpp index 32e09675a8..80adefa325 100644 --- a/src/MPIIO/dump_custom_mpiio.cpp +++ b/src/MPIIO/dump_custom_mpiio.cpp @@ -309,6 +309,8 @@ void DumpCustomMPIIO::init_style() void DumpCustomMPIIO::write_header(bigint ndump) { + if (!header_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + (this->*header_choice)(ndump); } diff --git a/src/dump.cpp b/src/dump.cpp index 372773bbb2..c1a246ada2 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -1,4 +1,4 @@ -// clang-format off + // clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -41,14 +41,20 @@ Dump *Dump::dumpptr; #define BIG 1.0e20 #define EPSILON 1.0e-6 -enum{ASCEND,DESCEND}; +enum { ASCEND, DESCEND }; /* ---------------------------------------------------------------------- */ -Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) +Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : + Pointers(lmp), multiname(nullptr), refresh(nullptr), skipvar(nullptr), format(nullptr), + format_default(nullptr), format_line_user(nullptr), format_float_user(nullptr), + format_int_user(nullptr), format_bigint_user(nullptr), format_column_user(nullptr), fp(nullptr), + nameslist(nullptr), buf(nullptr), sbuf(nullptr), ids(nullptr), bufsort(nullptr), + idsort(nullptr), index(nullptr), proclist(nullptr), xpbc(nullptr), vpbc(nullptr), + imagepbc(nullptr), irregular(nullptr) { - MPI_Comm_rank(world,&me); - MPI_Comm_size(world,&nprocs); + MPI_Comm_rank(world, &me); + MPI_Comm_size(world, &nprocs); id = utils::strdup(arg[0]); @@ -64,17 +70,7 @@ Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) first_flag = 0; flush_flag = 1; - format = nullptr; - format_default = nullptr; - - format_line_user = nullptr; - format_float_user = nullptr; - format_int_user = nullptr; - format_bigint_user = nullptr; - format_column_user = nullptr; - refreshflag = 0; - refresh = nullptr; clearstep = 0; sort_flag = 0; @@ -92,25 +88,15 @@ Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) has_id = 1; skipflag = 0; - skipvar = nullptr; maxfiles = -1; numfiles = 0; fileidx = 0; - nameslist = nullptr; maxbuf = maxids = maxsort = maxproc = 0; - buf = bufsort = nullptr; - ids = idsort = nullptr; - index = proclist = nullptr; - irregular = nullptr; - maxsbuf = 0; - sbuf = nullptr; maxpbc = -1; - xpbc = vpbc = nullptr; - imagepbc = nullptr; // parse filename for special syntax // if contains '%', write one file per proc and replace % with proc-ID @@ -120,18 +106,17 @@ Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) // else if ends in .gz or other known extensions -> compressed text file // else ASCII text file - fp = nullptr; singlefile_opened = 0; compressed = 0; binary = 0; multifile = 0; + size_one = 0; multiproc = 0; nclusterprocs = nprocs; filewriter = 0; if (me == 0) filewriter = 1; fileproc = 0; - multiname = nullptr; char *ptr; if ((ptr = strchr(filename,'%'))) { diff --git a/src/dump_atom.cpp b/src/dump_atom.cpp index 1d3862ab26..656eef8c9d 100644 --- a/src/dump_atom.cpp +++ b/src/dump_atom.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -29,8 +28,10 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -DumpAtom::DumpAtom(LAMMPS *lmp, int narg, char **arg) : Dump(lmp, narg, arg) +DumpAtom::DumpAtom(LAMMPS *lmp, int narg, char **arg) : + Dump(lmp, narg, arg), header_choice(nullptr), pack_choice(nullptr) { + // clang-format off if (narg != 5) error->all(FLERR,"Illegal dump atom command"); scale_flag = 1; @@ -146,6 +147,8 @@ int DumpAtom::modify_param(int narg, char **arg) void DumpAtom::write_header(bigint ndump) { + if (!header_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + if (multiproc) (this->*header_choice)(ndump); else if (me == 0) (this->*header_choice)(ndump); } @@ -154,6 +157,8 @@ void DumpAtom::write_header(bigint ndump) void DumpAtom::pack(tagint *ids) { + if (!pack_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + (this->*pack_choice)(ids); } diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 33cfba2cef..6a10641434 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -53,13 +52,14 @@ enum{LT,LE,GT,GE,EQ,NEQ,XOR}; /* ---------------------------------------------------------------------- */ DumpCustom::DumpCustom(LAMMPS *lmp, int narg, char **arg) : - Dump(lmp, narg, arg), idregion(nullptr), thresh_array(nullptr), thresh_op(nullptr), - thresh_value(nullptr), thresh_last(nullptr), thresh_fix(nullptr), thresh_fixID(nullptr), - thresh_first(nullptr), earg(nullptr), vtype(nullptr), vformat(nullptr), columns(nullptr), - columns_default(nullptr), choose(nullptr), dchoose(nullptr), clist(nullptr), - field2index(nullptr), argindex(nullptr), id_compute(nullptr), compute(nullptr), id_fix(nullptr), - fix(nullptr), id_variable(nullptr), variable(nullptr), vbuf(nullptr), id_custom(nullptr), - custom(nullptr), custom_flag(nullptr), typenames(nullptr), pack_choice(nullptr) + Dump(lmp, narg, arg), idregion(nullptr), thresh_array(nullptr), thresh_op(nullptr), + thresh_value(nullptr), thresh_last(nullptr), thresh_fix(nullptr), thresh_fixID(nullptr), + thresh_first(nullptr), earg(nullptr), vtype(nullptr), vformat(nullptr), columns(nullptr), + columns_default(nullptr), choose(nullptr), dchoose(nullptr), clist(nullptr), + field2index(nullptr), argindex(nullptr), id_compute(nullptr), compute(nullptr), id_fix(nullptr), + fix(nullptr), id_variable(nullptr), variable(nullptr), vbuf(nullptr), id_custom(nullptr), + custom(nullptr), custom_flag(nullptr), typenames(nullptr), header_choice(nullptr), + pack_choice(nullptr) { if (narg == 5) error->all(FLERR,"No dump {} arguments specified", style); @@ -352,6 +352,8 @@ void DumpCustom::init_style() void DumpCustom::write_header(bigint ndump) { + if (!header_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + if (multiproc) (this->*header_choice)(ndump); else if (me == 0) (this->*header_choice)(ndump); } diff --git a/src/dump_grid.cpp b/src/dump_grid.cpp index 056cac1095..39d80ade11 100644 --- a/src/dump_grid.cpp +++ b/src/dump_grid.cpp @@ -311,6 +311,8 @@ void DumpGrid::init_style() void DumpGrid::write_header(bigint ndump) { + if (!header_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + if (multiproc) (this->*header_choice)(ndump); else if (me == 0) (this->*header_choice)(ndump); } diff --git a/src/dump_xyz.cpp b/src/dump_xyz.cpp index 83c4d180d6..241ec1c059 100644 --- a/src/dump_xyz.cpp +++ b/src/dump_xyz.cpp @@ -130,6 +130,8 @@ int DumpXYZ::modify_param(int narg, char **arg) void DumpXYZ::write_header(bigint n) { if (me == 0) { + if (!fp) error->one(FLERR, "Must not use 'run pre no' after creating a new dump"); + auto header = fmt::format("{}\n Atoms. Timestep: {}", n, update->ntimestep); if (time_flag) header += fmt::format(" Time: {:.6f}", compute_time()); header += "\n"; @@ -177,9 +179,8 @@ int DumpXYZ::convert_string(int n, double *mybuf) memory->grow(sbuf,maxsbuf,"dump:sbuf"); } - offset += sprintf(&sbuf[offset],format, - typenames[static_cast (mybuf[m+1])], - mybuf[m+2],mybuf[m+3],mybuf[m+4]); + offset += sprintf(&sbuf[offset], format, typenames[static_cast (mybuf[m+1])], + mybuf[m+2], mybuf[m+3], mybuf[m+4]); m += size_one; } From 6d6f57aeff1db9d1a75d55d0d5b2c642e811441b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 20 Jun 2023 16:17:11 -0400 Subject: [PATCH 027/247] cosmetic --- src/variable.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/variable.cpp b/src/variable.cpp index 456359de2f..4d07a9e3c2 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -3658,7 +3658,6 @@ int Variable::math_function(char *word, char *contents, Tree **tree, Tree **tree print_var_error(FLERR,"Invalid math function in variable formula",ivar); double value; if (update->ntimestep < ivalue1) value = ivalue1; - //else if (update->ntimestep <= ivalue3) { else { value = ivalue1; double logsp = ivalue1; From e4b50a610e9b740bb8c9d7e072cd183a4bd7cc12 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 20 Jun 2023 13:31:16 -0400 Subject: [PATCH 028/247] avoid segfaults if a dump is created and followed by run pre no --- src/MPIIO/dump_atom_mpiio.cpp | 2 ++ src/MPIIO/dump_custom_mpiio.cpp | 2 ++ src/dump.cpp | 39 ++++++++++----------------------- src/dump_atom.cpp | 9 ++++++-- src/dump_custom.cpp | 18 ++++++++------- src/dump_grid.cpp | 2 ++ src/dump_xyz.cpp | 7 +++--- 7 files changed, 39 insertions(+), 40 deletions(-) diff --git a/src/MPIIO/dump_atom_mpiio.cpp b/src/MPIIO/dump_atom_mpiio.cpp index 4e0fd47a29..844d1a46e4 100644 --- a/src/MPIIO/dump_atom_mpiio.cpp +++ b/src/MPIIO/dump_atom_mpiio.cpp @@ -283,6 +283,8 @@ void DumpAtomMPIIO::init_style() void DumpAtomMPIIO::write_header(bigint ndump) { + if (!header_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + (this->*header_choice)(ndump); } diff --git a/src/MPIIO/dump_custom_mpiio.cpp b/src/MPIIO/dump_custom_mpiio.cpp index 32e09675a8..80adefa325 100644 --- a/src/MPIIO/dump_custom_mpiio.cpp +++ b/src/MPIIO/dump_custom_mpiio.cpp @@ -309,6 +309,8 @@ void DumpCustomMPIIO::init_style() void DumpCustomMPIIO::write_header(bigint ndump) { + if (!header_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + (this->*header_choice)(ndump); } diff --git a/src/dump.cpp b/src/dump.cpp index 372773bbb2..c1a246ada2 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -1,4 +1,4 @@ -// clang-format off + // clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -41,14 +41,20 @@ Dump *Dump::dumpptr; #define BIG 1.0e20 #define EPSILON 1.0e-6 -enum{ASCEND,DESCEND}; +enum { ASCEND, DESCEND }; /* ---------------------------------------------------------------------- */ -Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) +Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : + Pointers(lmp), multiname(nullptr), refresh(nullptr), skipvar(nullptr), format(nullptr), + format_default(nullptr), format_line_user(nullptr), format_float_user(nullptr), + format_int_user(nullptr), format_bigint_user(nullptr), format_column_user(nullptr), fp(nullptr), + nameslist(nullptr), buf(nullptr), sbuf(nullptr), ids(nullptr), bufsort(nullptr), + idsort(nullptr), index(nullptr), proclist(nullptr), xpbc(nullptr), vpbc(nullptr), + imagepbc(nullptr), irregular(nullptr) { - MPI_Comm_rank(world,&me); - MPI_Comm_size(world,&nprocs); + MPI_Comm_rank(world, &me); + MPI_Comm_size(world, &nprocs); id = utils::strdup(arg[0]); @@ -64,17 +70,7 @@ Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) first_flag = 0; flush_flag = 1; - format = nullptr; - format_default = nullptr; - - format_line_user = nullptr; - format_float_user = nullptr; - format_int_user = nullptr; - format_bigint_user = nullptr; - format_column_user = nullptr; - refreshflag = 0; - refresh = nullptr; clearstep = 0; sort_flag = 0; @@ -92,25 +88,15 @@ Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) has_id = 1; skipflag = 0; - skipvar = nullptr; maxfiles = -1; numfiles = 0; fileidx = 0; - nameslist = nullptr; maxbuf = maxids = maxsort = maxproc = 0; - buf = bufsort = nullptr; - ids = idsort = nullptr; - index = proclist = nullptr; - irregular = nullptr; - maxsbuf = 0; - sbuf = nullptr; maxpbc = -1; - xpbc = vpbc = nullptr; - imagepbc = nullptr; // parse filename for special syntax // if contains '%', write one file per proc and replace % with proc-ID @@ -120,18 +106,17 @@ Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) // else if ends in .gz or other known extensions -> compressed text file // else ASCII text file - fp = nullptr; singlefile_opened = 0; compressed = 0; binary = 0; multifile = 0; + size_one = 0; multiproc = 0; nclusterprocs = nprocs; filewriter = 0; if (me == 0) filewriter = 1; fileproc = 0; - multiname = nullptr; char *ptr; if ((ptr = strchr(filename,'%'))) { diff --git a/src/dump_atom.cpp b/src/dump_atom.cpp index 1d3862ab26..656eef8c9d 100644 --- a/src/dump_atom.cpp +++ b/src/dump_atom.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -29,8 +28,10 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -DumpAtom::DumpAtom(LAMMPS *lmp, int narg, char **arg) : Dump(lmp, narg, arg) +DumpAtom::DumpAtom(LAMMPS *lmp, int narg, char **arg) : + Dump(lmp, narg, arg), header_choice(nullptr), pack_choice(nullptr) { + // clang-format off if (narg != 5) error->all(FLERR,"Illegal dump atom command"); scale_flag = 1; @@ -146,6 +147,8 @@ int DumpAtom::modify_param(int narg, char **arg) void DumpAtom::write_header(bigint ndump) { + if (!header_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + if (multiproc) (this->*header_choice)(ndump); else if (me == 0) (this->*header_choice)(ndump); } @@ -154,6 +157,8 @@ void DumpAtom::write_header(bigint ndump) void DumpAtom::pack(tagint *ids) { + if (!pack_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + (this->*pack_choice)(ids); } diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 33cfba2cef..6a10641434 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -53,13 +52,14 @@ enum{LT,LE,GT,GE,EQ,NEQ,XOR}; /* ---------------------------------------------------------------------- */ DumpCustom::DumpCustom(LAMMPS *lmp, int narg, char **arg) : - Dump(lmp, narg, arg), idregion(nullptr), thresh_array(nullptr), thresh_op(nullptr), - thresh_value(nullptr), thresh_last(nullptr), thresh_fix(nullptr), thresh_fixID(nullptr), - thresh_first(nullptr), earg(nullptr), vtype(nullptr), vformat(nullptr), columns(nullptr), - columns_default(nullptr), choose(nullptr), dchoose(nullptr), clist(nullptr), - field2index(nullptr), argindex(nullptr), id_compute(nullptr), compute(nullptr), id_fix(nullptr), - fix(nullptr), id_variable(nullptr), variable(nullptr), vbuf(nullptr), id_custom(nullptr), - custom(nullptr), custom_flag(nullptr), typenames(nullptr), pack_choice(nullptr) + Dump(lmp, narg, arg), idregion(nullptr), thresh_array(nullptr), thresh_op(nullptr), + thresh_value(nullptr), thresh_last(nullptr), thresh_fix(nullptr), thresh_fixID(nullptr), + thresh_first(nullptr), earg(nullptr), vtype(nullptr), vformat(nullptr), columns(nullptr), + columns_default(nullptr), choose(nullptr), dchoose(nullptr), clist(nullptr), + field2index(nullptr), argindex(nullptr), id_compute(nullptr), compute(nullptr), id_fix(nullptr), + fix(nullptr), id_variable(nullptr), variable(nullptr), vbuf(nullptr), id_custom(nullptr), + custom(nullptr), custom_flag(nullptr), typenames(nullptr), header_choice(nullptr), + pack_choice(nullptr) { if (narg == 5) error->all(FLERR,"No dump {} arguments specified", style); @@ -352,6 +352,8 @@ void DumpCustom::init_style() void DumpCustom::write_header(bigint ndump) { + if (!header_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + if (multiproc) (this->*header_choice)(ndump); else if (me == 0) (this->*header_choice)(ndump); } diff --git a/src/dump_grid.cpp b/src/dump_grid.cpp index 056cac1095..39d80ade11 100644 --- a/src/dump_grid.cpp +++ b/src/dump_grid.cpp @@ -311,6 +311,8 @@ void DumpGrid::init_style() void DumpGrid::write_header(bigint ndump) { + if (!header_choice) error->all(FLERR, "Must not use 'run pre no' after creating a new dump"); + if (multiproc) (this->*header_choice)(ndump); else if (me == 0) (this->*header_choice)(ndump); } diff --git a/src/dump_xyz.cpp b/src/dump_xyz.cpp index 83c4d180d6..241ec1c059 100644 --- a/src/dump_xyz.cpp +++ b/src/dump_xyz.cpp @@ -130,6 +130,8 @@ int DumpXYZ::modify_param(int narg, char **arg) void DumpXYZ::write_header(bigint n) { if (me == 0) { + if (!fp) error->one(FLERR, "Must not use 'run pre no' after creating a new dump"); + auto header = fmt::format("{}\n Atoms. Timestep: {}", n, update->ntimestep); if (time_flag) header += fmt::format(" Time: {:.6f}", compute_time()); header += "\n"; @@ -177,9 +179,8 @@ int DumpXYZ::convert_string(int n, double *mybuf) memory->grow(sbuf,maxsbuf,"dump:sbuf"); } - offset += sprintf(&sbuf[offset],format, - typenames[static_cast (mybuf[m+1])], - mybuf[m+2],mybuf[m+3],mybuf[m+4]); + offset += sprintf(&sbuf[offset], format, typenames[static_cast (mybuf[m+1])], + mybuf[m+2], mybuf[m+3], mybuf[m+4]); m += size_one; } From e95b10f24aef2735da23330bf64c4fa390b0e55a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 21 Jun 2023 06:42:19 -0400 Subject: [PATCH 029/247] update VMD plugin headers to the latest version --- lib/molfile/molfile_plugin.h | 1 - lib/molfile/vmdplugin.h | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/molfile/molfile_plugin.h b/lib/molfile/molfile_plugin.h index 491cd375bb..a417b82e96 100644 --- a/lib/molfile/molfile_plugin.h +++ b/lib/molfile/molfile_plugin.h @@ -987,4 +987,3 @@ typedef struct { } molfile_plugin_t; #endif - diff --git a/lib/molfile/vmdplugin.h b/lib/molfile/vmdplugin.h index 7afc358e97..9336d3e24f 100644 --- a/lib/molfile/vmdplugin.h +++ b/lib/molfile/vmdplugin.h @@ -11,7 +11,7 @@ * * $RCSfile: vmdplugin.h,v $ * $Author: johns $ $Locker: $ $State: Exp $ - * $Revision: 1.34 $ $Date: 2018/05/02 03:12:56 $ + * $Revision: 1.35 $ $Date: 2020/10/16 07:50:56 $ * ***************************************************************************/ @@ -58,8 +58,8 @@ /*@}*/ -/** "WIN32" is defined on both WIN32 and WIN64 platforms... */ -#if (defined(WIN32)) +/** Detect compilations targeting Windows x86 and x64 platforms */ +#if (defined(WIN32) || defined(WIN64) || defined(_MSC_VER)) #define WIN32_LEAN_AND_MEAN #include From ffda6596da1f44a920daa57b8719290476c0a1b1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Jun 2023 10:48:07 -0400 Subject: [PATCH 030/247] detect and flag short reads with missing lines in utils::read_lines_from_file() --- src/utils.cpp | 67 +++++++++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 29 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp index bc4eee7385..eee1d5dd46 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -272,6 +272,7 @@ int utils::read_lines_from_file(FILE *fp, int nlines, int nmax, char *buffer, in { char *ptr = buffer; *ptr = '\0'; + int mylines = 0; if (me == 0) { if (fp) { @@ -282,13 +283,15 @@ int utils::read_lines_from_file(FILE *fp, int nlines, int nmax, char *buffer, in ptr += strlen(ptr); // ensure buffer is null terminated. null char is start of next line. *ptr = '\0'; + // count line + ++mylines; } } } int n = strlen(buffer); MPI_Bcast(&n, 1, MPI_INT, 0, comm); - if (n == 0) return 1; + if ((n == 0) || (nlines != mylines)) return 1; MPI_Bcast(buffer, n + 1, MPI_CHAR, 0, comm); return 0; } @@ -879,8 +882,8 @@ char *utils::expand_type(const char *file, int line, const std::string &str, int caller decides what to do if arg is not a COMPUTE or FIX reference ------------------------------------------------------------------------- */ -int utils::check_grid_reference(char *errstr, char *ref, int nevery, - char *&id, int &igrid, int &idata, int &index, LAMMPS *lmp) +int utils::check_grid_reference(char *errstr, char *ref, int nevery, char *&id, int &igrid, + int &idata, int &index, LAMMPS *lmp) { ArgInfo argi(ref, ArgInfo::COMPUTE | ArgInfo::FIX); index = argi.get_index1(); @@ -889,80 +892,85 @@ int utils::check_grid_reference(char *errstr, char *ref, int nevery, switch (argi.get_type()) { case ArgInfo::UNKNOWN: { - lmp->error->all(FLERR,"%s grid reference %s is invalid",errstr,ref); + lmp->error->all(FLERR, "%s grid reference %s is invalid", errstr, ref); } break; - // compute value = c_ID + // compute value = c_ID case ArgInfo::COMPUTE: { // split name = idcompute:gname:dname into 3 strings - auto words = parse_grid_id(FLERR,name,lmp->error); + auto words = parse_grid_id(FLERR, name, lmp->error); const auto &idcompute = words[0]; const auto &gname = words[1]; const auto &dname = words[2]; auto icompute = lmp->modify->get_compute_by_id(idcompute); - if (!icompute) lmp->error->all(FLERR,"{} compute ID {} not found",errstr,idcompute); + if (!icompute) lmp->error->all(FLERR, "{} compute ID {} not found", errstr, idcompute); if (icompute->pergrid_flag == 0) - lmp->error->all(FLERR,"{} compute {} does not compute per-grid info",errstr,idcompute); + lmp->error->all(FLERR, "{} compute {} does not compute per-grid info", errstr, idcompute); int dim; - igrid = icompute->get_grid_by_name(gname,dim); + igrid = icompute->get_grid_by_name(gname, dim); if (igrid < 0) - lmp->error->all(FLERR,"{} compute {} does not recognize grid name {}",errstr,idcompute,gname); + lmp->error->all(FLERR, "{} compute {} does not recognize grid name {}", errstr, idcompute, + gname); int ncol; - idata = icompute->get_griddata_by_name(igrid,dname,ncol); + idata = icompute->get_griddata_by_name(igrid, dname, ncol); if (idata < 0) - lmp->error->all(FLERR,"{} compute {} does not recognize data name {}",errstr,idcompute,dname); + lmp->error->all(FLERR, "{} compute {} does not recognize data name {}", errstr, idcompute, + dname); if (argi.get_dim() == 0 && ncol) - lmp->error->all(FLERR,"{} compute {} data {} is not per-grid vector",errstr,idcompute,dname); + lmp->error->all(FLERR, "{} compute {} data {} is not per-grid vector", errstr, idcompute, + dname); if (argi.get_dim() && ncol == 0) - lmp->error->all(FLERR,"{} compute {} data {} is not per-grid array",errstr,idcompute,dname); + lmp->error->all(FLERR, "{} compute {} data {} is not per-grid array", errstr, idcompute, + dname); if (argi.get_dim() && argi.get_index1() > ncol) - lmp->error->all(FLERR,"{} compute {} array {} is accessed out-of-range",errstr,idcompute,dname); + lmp->error->all(FLERR, "{} compute {} array {} is accessed out-of-range", errstr, idcompute, + dname); id = utils::strdup(idcompute); return ArgInfo::COMPUTE; } break; - // fix value = f_ID + // fix value = f_ID case ArgInfo::FIX: { // split name = idfix:gname:dname into 3 strings - auto words = parse_grid_id(FLERR,name,lmp->error); + auto words = parse_grid_id(FLERR, name, lmp->error); const auto &idfix = words[0]; const auto &gname = words[1]; const auto &dname = words[2]; auto ifix = lmp->modify->get_fix_by_id(idfix); - if (!ifix) lmp->error->all(FLERR,"{} fix ID {} not found",errstr,idfix); + if (!ifix) lmp->error->all(FLERR, "{} fix ID {} not found", errstr, idfix); if (ifix->pergrid_flag == 0) - lmp->error->all(FLERR,"{} fix {} does not compute per-grid info",errstr,idfix); + lmp->error->all(FLERR, "{} fix {} does not compute per-grid info", errstr, idfix); if (nevery % ifix->pergrid_freq) - lmp->error->all(FLERR,"{} fix {} not computed at compatible time",errstr,idfix); + lmp->error->all(FLERR, "{} fix {} not computed at compatible time", errstr, idfix); int dim; - igrid = ifix->get_grid_by_name(gname,dim); + igrid = ifix->get_grid_by_name(gname, dim); if (igrid < 0) - lmp->error->all(FLERR,"{} fix {} does not recognize grid name {}",errstr,idfix,gname); + lmp->error->all(FLERR, "{} fix {} does not recognize grid name {}", errstr, idfix, gname); int ncol; - idata = ifix->get_griddata_by_name(igrid,dname,ncol); + idata = ifix->get_griddata_by_name(igrid, dname, ncol); if (idata < 0) - lmp->error->all(FLERR,"{} fix {} does not recognize data name {}",errstr,idfix,dname); + lmp->error->all(FLERR, "{} fix {} does not recognize data name {}", errstr, idfix, dname); if (argi.get_dim() == 0 && ncol) - lmp->error->all(FLERR,"{} fix {} data {} is not per-grid vector",errstr,idfix,dname); + lmp->error->all(FLERR, "{} fix {} data {} is not per-grid vector", errstr, idfix, dname); if (argi.get_dim() > 0 && ncol == 0) - lmp->error->all(FLERR,"{} fix {} data {} is not per-grid array",errstr,idfix,dname); + lmp->error->all(FLERR, "{} fix {} data {} is not per-grid array", errstr, idfix, dname); if (argi.get_dim() > 0 && argi.get_index1() > ncol) - lmp->error->all(FLERR,"{} fix {} array {} is accessed out-of-range",errstr,idfix,dname); + lmp->error->all(FLERR, "{} fix {} array {} is accessed out-of-range", errstr, idfix, dname); id = utils::strdup(idfix); return ArgInfo::FIX; @@ -1360,8 +1368,9 @@ bool utils::is_double(const std::string &str) { if (str.empty()) return false; - return strmatch(str, "^[+-]?\\d+\\.?\\d*$") || strmatch(str, "^[+-]?\\d+\\.?\\d*[eE][+-]?\\d+$") || - strmatch(str, "^[+-]?\\d*\\.?\\d+$") || strmatch(str, "^[+-]?\\d*\\.?\\d+[eE][+-]?\\d+$"); + return strmatch(str, "^[+-]?\\d+\\.?\\d*$") || + strmatch(str, "^[+-]?\\d+\\.?\\d*[eE][+-]?\\d+$") || strmatch(str, "^[+-]?\\d*\\.?\\d+$") || + strmatch(str, "^[+-]?\\d*\\.?\\d+[eE][+-]?\\d+$"); } /* ---------------------------------------------------------------------- From e9a06a065451d82bc82e7c7a6b1b00f97ae9632e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Jun 2023 11:49:56 -0400 Subject: [PATCH 031/247] correct and reformat error messages for short reads --- src/read_data.cpp | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/read_data.cpp b/src/read_data.cpp index 2fea75f7c0..e3087ae215 100644 --- a/src/read_data.cpp +++ b/src/read_data.cpp @@ -2021,9 +2021,7 @@ void ReadData::pairIJcoeffs() if (eof) error->all(FLERR, "Unexpected end of data file"); if (tlabelflag && !lmap->is_complete(Atom::ATOM)) - error->all(FLERR, - "Label map is incomplete: " - "all types must be assigned a unique type label"); + error->all(FLERR,"Label map is incomplete: all types must be assigned a unique type label"); char *original = buf; for (i = 0; i < ntypes; i++) @@ -2032,10 +2030,7 @@ void ReadData::pairIJcoeffs() *next = '\0'; parse_coeffs(buf, nullptr, 0, 2, toffset, tlabelflag, lmap->lmap2lmap.atom); if (ncoeffarg == 0) - error->all(FLERR, - "Unexpected empty line in PairIJCoeffs section. " - "Expected {} lines.", - (ntypes - 1) * ntypes); + error->all(FLERR, "Unexpected empty line in PairIJCoeffs section. Expected {} lines.", nsq); force->pair->coeff(ncoeffarg, coeffarg); buf = next + 1; } @@ -2055,9 +2050,7 @@ void ReadData::bondcoeffs() if (eof) error->all(FLERR, "Unexpected end of data file"); if (blabelflag && !lmap->is_complete(Atom::BOND)) - error->all(FLERR, - "Label map is incomplete: " - "all types must be assigned a unique type label"); + error->all(FLERR, "Label map is incomplete: all types must be assigned a unique type label"); char *original = buf; for (int i = 0; i < nbondtypes; i++) { @@ -2086,9 +2079,7 @@ void ReadData::anglecoeffs(int which) if (eof) error->all(FLERR, "Unexpected end of data file"); if (alabelflag && !lmap->is_complete(Atom::ANGLE)) - error->all(FLERR, - "Label map is incomplete: " - "all types must be assigned a unique type label"); + error->all(FLERR, "Label map is incomplete: all types must be assigned a unique type label"); char *original = buf; for (int i = 0; i < nangletypes; i++) { @@ -2122,9 +2113,7 @@ void ReadData::dihedralcoeffs(int which) if (eof) error->all(FLERR, "Unexpected end of data file"); if (dlabelflag && !lmap->is_complete(Atom::DIHEDRAL)) - error->all(FLERR, - "Label map is incomplete: " - "all types must be assigned a unique type label"); + error->all(FLERR, "Label map is incomplete: all types must be assigned a unique type label"); char *original = buf; for (int i = 0; i < ndihedraltypes; i++) { From a38e0fb47b586331f54bcb19a46995d5d8546fb8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 23 Jun 2023 08:22:31 -0400 Subject: [PATCH 032/247] restore clang-format comments --- src/dump.cpp | 2 +- src/dump_atom.cpp | 2 +- src/dump_custom.cpp | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dump.cpp b/src/dump.cpp index c1a246ada2..39d8989c41 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -1,4 +1,4 @@ - // clang-format off +// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories diff --git a/src/dump_atom.cpp b/src/dump_atom.cpp index 656eef8c9d..2d047dc0a0 100644 --- a/src/dump_atom.cpp +++ b/src/dump_atom.cpp @@ -1,3 +1,4 @@ +// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -31,7 +32,6 @@ using namespace LAMMPS_NS; DumpAtom::DumpAtom(LAMMPS *lmp, int narg, char **arg) : Dump(lmp, narg, arg), header_choice(nullptr), pack_choice(nullptr) { - // clang-format off if (narg != 5) error->all(FLERR,"Illegal dump atom command"); scale_flag = 1; diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 6a10641434..bdbc8ec185 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -1,3 +1,4 @@ +// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories From fab01c7d5fa771040485ba6f624badb1eeec82e3 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Sat, 24 Jun 2023 20:26:08 -0600 Subject: [PATCH 033/247] Remove extra semicolons --- src/grid2d.h | 2 +- src/grid3d.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/grid2d.h b/src/grid2d.h index bb1bfb25e1..fd6b5efd1e 100644 --- a/src/grid2d.h +++ b/src/grid2d.h @@ -67,7 +67,7 @@ protected: int stencil_grid_lo,stencil_grid_hi; // grid cells accessed beyond owned cell double shift_grid; // location of grid point within grid cell // only affects which proc owns grid cell - double shift_atom_lo,shift_atom_hi;; // max shift applied to atoms + double shift_atom_lo,shift_atom_hi; // max shift applied to atoms // when mapped to grid cell by caller // can be different in lo/hi directions // only affects extent of ghost cells diff --git a/src/grid3d.h b/src/grid3d.h index 97fcf5992a..c15d5ac7f2 100644 --- a/src/grid3d.h +++ b/src/grid3d.h @@ -69,7 +69,7 @@ class Grid3d : protected Pointers { int stencil_grid_lo,stencil_grid_hi; // grid cells accessed beyond owned cell double shift_grid; // location of grid point within grid cell // only affects which proc owns grid cell - double shift_atom_lo,shift_atom_hi;; // max shift applied to atoms + double shift_atom_lo,shift_atom_hi; // max shift applied to atoms // when mapped to grid cell by caller // can be different in lo/hi directions // only affects extent of ghost cells From bfa39a37ff81e37a871e4ff6968edda648349ff8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 25 Jun 2023 05:47:21 -0400 Subject: [PATCH 034/247] apply clang-format --- src/grid2d.h | 30 +++++++++++++++--------------- src/grid3d.h | 36 ++++++++++++++++++------------------ 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/grid2d.h b/src/grid2d.h index fd6b5efd1e..6c1cca5f9d 100644 --- a/src/grid2d.h +++ b/src/grid2d.h @@ -53,7 +53,7 @@ class Grid2d : protected Pointers { void read_file(int, void *, FILE *, int, int); void write_file(int, void *, int, int, int, MPI_Datatype); -protected: + protected: int me, nprocs; int layout; // not TILED or TILED, same as Comm class MPI_Comm gridcomm; // communicator for this class @@ -61,18 +61,18 @@ protected: // inputs from caller via constructor - int nx, ny; // size of global grid in both dims - double maxdist; // distance owned atoms can move outside subdomain - int stencil_atom_lo,stencil_atom_hi; // grid cells accessed beyond atom's cell - int stencil_grid_lo,stencil_grid_hi; // grid cells accessed beyond owned cell - double shift_grid; // location of grid point within grid cell - // only affects which proc owns grid cell - double shift_atom_lo,shift_atom_hi; // max shift applied to atoms - // when mapped to grid cell by caller - // can be different in lo/hi directions - // only affects extent of ghost cells - int yextra; // 1 if extra grid cells in Y, 0 if not - double yfactor; // multiplier on extent of grid in Y direction + int nx, ny; // size of global grid in both dims + double maxdist; // distance owned atoms can move outside subdomain + int stencil_atom_lo, stencil_atom_hi; // grid cells accessed beyond atom's cell + int stencil_grid_lo, stencil_grid_hi; // grid cells accessed beyond owned cell + double shift_grid; // location of grid point within grid cell + // only affects which proc owns grid cell + double shift_atom_lo, shift_atom_hi; // max shift applied to atoms + // when mapped to grid cell by caller + // can be different in lo/hi directions + // only affects extent of ghost cells + int yextra; // 1 if extra grid cells in Y, 0 if not + double yfactor; // multiplier on extent of grid in Y direction // extent of my owned and ghost cells @@ -190,11 +190,11 @@ protected: // internal variables for OVERLAP operation // ------------------------------------------- - int *overlap_procs; // length of Nprocs in communicator + int *overlap_procs; // length of Nprocs in communicator // BRICK decomposition - double *xsplit,*ysplit,*zsplit; + double *xsplit, *ysplit, *zsplit; int ***grid2proc; // TILED decomposition diff --git a/src/grid3d.h b/src/grid3d.h index c15d5ac7f2..e4a8e276f5 100644 --- a/src/grid3d.h +++ b/src/grid3d.h @@ -23,8 +23,8 @@ class Grid3d : protected Pointers { enum { KSPACE = 0, PAIR = 1, FIX = 2 }; // calling classes Grid3d(class LAMMPS *, MPI_Comm, int, int, int); - Grid3d(class LAMMPS *, MPI_Comm, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int); + Grid3d(class LAMMPS *, MPI_Comm, int, int, int, int, int, int, int, int, int, int, int, int, int, + int, int); ~Grid3d(); void set_distance(double); @@ -41,8 +41,8 @@ class Grid3d : protected Pointers { void get_bounds_owned(int &, int &, int &, int &, int &, int &); void get_bounds_ghost(int &, int &, int &, int &, int &, int &); - void setup_grid(int &, int &, int &, int &, int &, int &, - int &, int &, int &, int &, int &, int &); + void setup_grid(int &, int &, int &, int &, int &, int &, int &, int &, int &, int &, int &, + int &); void setup_comm(int &, int &); int ghost_adjacent(); @@ -63,18 +63,18 @@ class Grid3d : protected Pointers { // input from caller - int nx, ny, nz; // size of global grid in all 3 dims - double maxdist; // distance owned atoms can move outside subdomain - int stencil_atom_lo,stencil_atom_hi; // grid cells accessed beyond atom's cell - int stencil_grid_lo,stencil_grid_hi; // grid cells accessed beyond owned cell - double shift_grid; // location of grid point within grid cell - // only affects which proc owns grid cell - double shift_atom_lo,shift_atom_hi; // max shift applied to atoms - // when mapped to grid cell by caller - // can be different in lo/hi directions - // only affects extent of ghost cells - int zextra; // 1 if extra grid cells in Z, 0 if not - double zfactor; // multiplier on extent of grid in Z direction + int nx, ny, nz; // size of global grid in all 3 dims + double maxdist; // distance owned atoms can move outside subdomain + int stencil_atom_lo, stencil_atom_hi; // grid cells accessed beyond atom's cell + int stencil_grid_lo, stencil_grid_hi; // grid cells accessed beyond owned cell + double shift_grid; // location of grid point within grid cell + // only affects which proc owns grid cell + double shift_atom_lo, shift_atom_hi; // max shift applied to atoms + // when mapped to grid cell by caller + // can be different in lo/hi directions + // only affects extent of ghost cells + int zextra; // 1 if extra grid cells in Z, 0 if not + double zfactor; // multiplier on extent of grid in Z direction // extent of my owned and ghost cells @@ -196,11 +196,11 @@ class Grid3d : protected Pointers { // internal variables for OVERLAP operation // ------------------------------------------- - int *overlap_procs; // length of Nprocs in communicator + int *overlap_procs; // length of Nprocs in communicator // BRICK decomposition - double *xsplit,*ysplit,*zsplit; + double *xsplit, *ysplit, *zsplit; int ***grid2proc; // TILED decomposition From 92c118b29fc760a26aca9f38ad0db0fb2dd08fe8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 25 Jun 2023 05:56:51 -0400 Subject: [PATCH 035/247] replace for (;;) with while (true) --- src/EXTRA-COMPUTE/compute_ackland_atom.cpp | 8 ++++---- src/EXTRA-COMPUTE/compute_basal_atom.cpp | 8 ++++---- src/EXTRA-COMPUTE/compute_hexorder_atom.cpp | 4 ++-- src/KOKKOS/compute_orientorder_atom_kokkos.cpp | 4 ++-- src/compute_centro_atom.cpp | 8 ++++---- src/compute_orientorder_atom.cpp | 4 ++-- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/EXTRA-COMPUTE/compute_ackland_atom.cpp b/src/EXTRA-COMPUTE/compute_ackland_atom.cpp index d8a77b9c2f..fd7a5fb05c 100644 --- a/src/EXTRA-COMPUTE/compute_ackland_atom.cpp +++ b/src/EXTRA-COMPUTE/compute_ackland_atom.cpp @@ -357,7 +357,7 @@ void ComputeAcklandAtom::select(int k, int n, double *arr) arr--; l = 1; ir = n; - for (;;) { + while (true) { if (ir <= l+1) { if (ir == l+1 && arr[ir] < arr[l]) { SWAP(arr[l],arr[ir]) @@ -378,7 +378,7 @@ void ComputeAcklandAtom::select(int k, int n, double *arr) i = l+1; j = ir; a = arr[l+1]; - for (;;) { + while (true) { do i++; while (arr[i] < a); do j--; while (arr[j] > a); if (j < i) break; @@ -403,7 +403,7 @@ void ComputeAcklandAtom::select2(int k, int n, double *arr, int *iarr) iarr--; l = 1; ir = n; - for (;;) { + while (true) { if (ir <= l+1) { if (ir == l+1 && arr[ir] < arr[l]) { SWAP(arr[l],arr[ir]) @@ -430,7 +430,7 @@ void ComputeAcklandAtom::select2(int k, int n, double *arr, int *iarr) j = ir; a = arr[l+1]; ia = iarr[l+1]; - for (;;) { + while (true) { do i++; while (arr[i] < a); do j--; while (arr[j] > a); if (j < i) break; diff --git a/src/EXTRA-COMPUTE/compute_basal_atom.cpp b/src/EXTRA-COMPUTE/compute_basal_atom.cpp index b149746fb4..8b65917111 100644 --- a/src/EXTRA-COMPUTE/compute_basal_atom.cpp +++ b/src/EXTRA-COMPUTE/compute_basal_atom.cpp @@ -442,7 +442,7 @@ void ComputeBasalAtom::select(int k, int n, double *arr) arr--; l = 1; ir = n; - for (;;) { + while (true) { if (ir <= l+1) { if (ir == l+1 && arr[ir] < arr[l]) { SWAP(arr[l],arr[ir]) @@ -463,7 +463,7 @@ void ComputeBasalAtom::select(int k, int n, double *arr) i = l+1; j = ir; a = arr[l+1]; - for (;;) { + while (true) { do i++; while (arr[i] < a); do j--; while (arr[j] > a); if (j < i) break; @@ -488,7 +488,7 @@ void ComputeBasalAtom::select2(int k, int n, double *arr, int *iarr) iarr--; l = 1; ir = n; - for (;;) { + while (true) { if (ir <= l+1) { if (ir == l+1 && arr[ir] < arr[l]) { SWAP(arr[l],arr[ir]) @@ -515,7 +515,7 @@ void ComputeBasalAtom::select2(int k, int n, double *arr, int *iarr) j = ir; a = arr[l+1]; ia = iarr[l+1]; - for (;;) { + while (true) { do i++; while (arr[i] < a); do j--; while (arr[j] > a); if (j < i) break; diff --git a/src/EXTRA-COMPUTE/compute_hexorder_atom.cpp b/src/EXTRA-COMPUTE/compute_hexorder_atom.cpp index a10e810e82..dc04c6b650 100644 --- a/src/EXTRA-COMPUTE/compute_hexorder_atom.cpp +++ b/src/EXTRA-COMPUTE/compute_hexorder_atom.cpp @@ -281,7 +281,7 @@ void ComputeHexOrderAtom::select2(int k, int n, double *arr, int *iarr) iarr--; l = 1; ir = n; - for (;;) { + while (true) { if (ir <= l+1) { if (ir == l+1 && arr[ir] < arr[l]) { SWAP(arr[l],arr[ir]) @@ -308,7 +308,7 @@ void ComputeHexOrderAtom::select2(int k, int n, double *arr, int *iarr) j = ir; a = arr[l+1]; ia = iarr[l+1]; - for (;;) { + while (true) { do i++; while (arr[i] < a); do j--; while (arr[j] > a); if (j < i) break; diff --git a/src/KOKKOS/compute_orientorder_atom_kokkos.cpp b/src/KOKKOS/compute_orientorder_atom_kokkos.cpp index 157d41126f..263a070a3a 100644 --- a/src/KOKKOS/compute_orientorder_atom_kokkos.cpp +++ b/src/KOKKOS/compute_orientorder_atom_kokkos.cpp @@ -386,7 +386,7 @@ void ComputeOrientOrderAtomKokkos::select3(int k, int n, int ii) con l = 0; ir = n-1; - for (;;) { + while (true) { if (ir <= l+1) { if (ir == l+1 && arr[ir] < arr[l]) { SWAP(arr,l,ir); @@ -421,7 +421,7 @@ void ComputeOrientOrderAtomKokkos::select3(int k, int n, int ii) con a3[0] = arr3(l+1,0); a3[1] = arr3(l+1,1); a3[2] = arr3(l+1,2); - for (;;) { + while (true) { do i++; while (arr[i] < a); do j--; while (arr[j] > a); if (j < i) break; diff --git a/src/compute_centro_atom.cpp b/src/compute_centro_atom.cpp index ae6ef4901f..f726a95594 100644 --- a/src/compute_centro_atom.cpp +++ b/src/compute_centro_atom.cpp @@ -338,7 +338,7 @@ void ComputeCentroAtom::select(int k, int n, double *arr) arr--; l = 1; ir = n; - for (;;) { + while (true) { if (ir <= l + 1) { if (ir == l + 1 && arr[ir] < arr[l]) { SWAP(arr[l], arr[ir]) } return; @@ -351,7 +351,7 @@ void ComputeCentroAtom::select(int k, int n, double *arr) i = l + 1; j = ir; a = arr[l + 1]; - for (;;) { + while (true) { do i++; while (arr[i] < a); do j--; @@ -378,7 +378,7 @@ void ComputeCentroAtom::select2(int k, int n, double *arr, int *iarr) iarr--; l = 1; ir = n; - for (;;) { + while (true) { if (ir <= l + 1) { if (ir == l + 1 && arr[ir] < arr[l]) { SWAP(arr[l], arr[ir]) @@ -405,7 +405,7 @@ void ComputeCentroAtom::select2(int k, int n, double *arr, int *iarr) j = ir; a = arr[l + 1]; ia = iarr[l + 1]; - for (;;) { + while (true) { do i++; while (arr[i] < a); do j--; diff --git a/src/compute_orientorder_atom.cpp b/src/compute_orientorder_atom.cpp index 5682432c8e..6f1b2b4036 100644 --- a/src/compute_orientorder_atom.cpp +++ b/src/compute_orientorder_atom.cpp @@ -370,7 +370,7 @@ void ComputeOrientOrderAtom::select3(int k, int n, double *arr, int *iarr, doubl arr3--; l = 1; ir = n; - for (;;) { + while (true) { if (ir <= l + 1) { if (ir == l + 1 && arr[ir] < arr[l]) { SWAP(arr[l], arr[ir]); @@ -405,7 +405,7 @@ void ComputeOrientOrderAtom::select3(int k, int n, double *arr, int *iarr, doubl a3[0] = arr3[l + 1][0]; a3[1] = arr3[l + 1][1]; a3[2] = arr3[l + 1][2]; - for (;;) { + while (true) { do i++; while (arr[i] < a); do j--; From d1980031efbb2a8b73ca5ca75596b5b4c314e445 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 25 Jun 2023 06:02:17 -0400 Subject: [PATCH 036/247] remove more duplicate semicolons --- src/BODY/pair_body_rounded_polyhedron.cpp | 2 +- src/CG-DNA/bond_oxdna_fene.cpp | 2 +- src/CG-DNA/pair_oxdna2_coaxstk.cpp | 2 +- src/CG-DNA/pair_oxdna2_dh.cpp | 2 +- src/CG-DNA/pair_oxdna_coaxstk.cpp | 2 +- src/CG-DNA/pair_oxdna_xstk.cpp | 2 +- src/CG-DNA/pair_oxrna2_xstk.cpp | 2 +- src/EXTRA-COMPUTE/compute_adf.cpp | 2 +- src/EXTRA-DUMP/dump_xtc.cpp | 2 +- src/EXTRA-FIX/fix_wall_ees.cpp | 2 +- src/INTEL/npair_full_bin_intel.cpp | 2 +- src/INTEL/pppm_disp_intel.cpp | 2 +- src/KOKKOS/atom_vec_dpd_kokkos.cpp | 12 ++++++------ src/KOKKOS/dihedral_harmonic_kokkos.cpp | 6 +++--- src/KOKKOS/fix_wall_gran_old.cpp | 2 +- src/KSPACE/ewald.cpp | 2 +- src/KSPACE/pair_lj_charmmfsw_coul_long.cpp | 6 +++--- src/KSPACE/pppm.cpp | 2 +- src/KSPACE/pppm_disp.cpp | 2 +- src/MOLECULE/pair_lj_charmmfsw_coul_charmmfsh.cpp | 4 ++-- src/RIGID/fix_shake.cpp | 2 +- src/SMTBQ/pair_smtbq.cpp | 2 +- src/SPIN/min_spin_lbfgs.cpp | 2 +- src/fix_ave_grid.cpp | 2 +- src/input.cpp | 2 +- src/special.cpp | 2 +- 26 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index d9a79abad0..9425707ef1 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -1910,7 +1910,7 @@ void PairBodyRoundedPolyhedron::inside_polygon(int ibody, int face_index, iffirst = facfirst[ibody]; rradi = rounded_radius[ibody]; double rradsq = rradi*rradi; - anglesum1 = anglesum2 = 0;; + anglesum1 = anglesum2 = 0; for (i = 0; i < MAX_FACE_SIZE; i++) { npi1 = static_cast(face[iffirst+face_index][i]); if (npi1 < 0) break; diff --git a/src/CG-DNA/bond_oxdna_fene.cpp b/src/CG-DNA/bond_oxdna_fene.cpp index 2d471cbbe6..780b71e44c 100644 --- a/src/CG-DNA/bond_oxdna_fene.cpp +++ b/src/CG-DNA/bond_oxdna_fene.cpp @@ -146,7 +146,7 @@ void BondOxdnaFene::ev_tally_xyz(int i, int j, int nlocal, int newton_bond, doub void BondOxdnaFene::compute(int eflag, int vflag) { int a, b, in, type; - double delf[3], delta[3], deltb[3]; // force, torque increment;; + double delf[3], delta[3], deltb[3]; // force, torque increment double delr[3], ebond, fbond; double rsq, Deltasq, rlogarg; double r, rr0, rr0sq; diff --git a/src/CG-DNA/pair_oxdna2_coaxstk.cpp b/src/CG-DNA/pair_oxdna2_coaxstk.cpp index 844ba56577..527020076c 100644 --- a/src/CG-DNA/pair_oxdna2_coaxstk.cpp +++ b/src/CG-DNA/pair_oxdna2_coaxstk.cpp @@ -612,7 +612,7 @@ void PairOxdna2Coaxstk::coeff(int narg, char **arg) (0.5 * (cut_cxst_lo_one - cut_cxst_0_one) * (cut_cxst_lo_one - cut_cxst_0_one) - k_cxst_one * 0.5 * (cut_cxst_0_one -cut_cxst_c_one) * (cut_cxst_0_one - cut_cxst_c_one)/k_cxst_one); - cut_cxst_lc_one = cut_cxst_lo_one - 0.5 * (cut_cxst_lo_one - cut_cxst_0_one)/b_cxst_lo_one;; + cut_cxst_lc_one = cut_cxst_lo_one - 0.5 * (cut_cxst_lo_one - cut_cxst_0_one)/b_cxst_lo_one; b_cxst_hi_one = 0.25 * (cut_cxst_hi_one - cut_cxst_0_one) * (cut_cxst_hi_one - cut_cxst_0_one)/ (0.5 * (cut_cxst_hi_one - cut_cxst_0_one) * (cut_cxst_hi_one - cut_cxst_0_one) - diff --git a/src/CG-DNA/pair_oxdna2_dh.cpp b/src/CG-DNA/pair_oxdna2_dh.cpp index dcfe3f9ea1..a8114c84d7 100644 --- a/src/CG-DNA/pair_oxdna2_dh.cpp +++ b/src/CG-DNA/pair_oxdna2_dh.cpp @@ -79,7 +79,7 @@ void PairOxdna2Dh::compute_interaction_sites(double e1[3], void PairOxdna2Dh::compute(int eflag, int vflag) { - double delf[3],delta[3],deltb[3]; // force, torque increment;; + double delf[3],delta[3],deltb[3]; // force, torque increment double rtmp_s[3],delr[3]; double evdwl,fpair,factor_lj; double r,rsq,rinv; diff --git a/src/CG-DNA/pair_oxdna_coaxstk.cpp b/src/CG-DNA/pair_oxdna_coaxstk.cpp index b9b34338fe..679bfbf18d 100644 --- a/src/CG-DNA/pair_oxdna_coaxstk.cpp +++ b/src/CG-DNA/pair_oxdna_coaxstk.cpp @@ -749,7 +749,7 @@ void PairOxdnaCoaxstk::coeff(int narg, char **arg) (0.5 * (cut_cxst_lo_one - cut_cxst_0_one) * (cut_cxst_lo_one - cut_cxst_0_one) - k_cxst_one * 0.5 * (cut_cxst_0_one -cut_cxst_c_one) * (cut_cxst_0_one - cut_cxst_c_one)/k_cxst_one); - cut_cxst_lc_one = cut_cxst_lo_one - 0.5 * (cut_cxst_lo_one - cut_cxst_0_one)/b_cxst_lo_one;; + cut_cxst_lc_one = cut_cxst_lo_one - 0.5 * (cut_cxst_lo_one - cut_cxst_0_one)/b_cxst_lo_one; b_cxst_hi_one = 0.25 * (cut_cxst_hi_one - cut_cxst_0_one) * (cut_cxst_hi_one - cut_cxst_0_one)/ (0.5 * (cut_cxst_hi_one - cut_cxst_0_one) * (cut_cxst_hi_one - cut_cxst_0_one) - diff --git a/src/CG-DNA/pair_oxdna_xstk.cpp b/src/CG-DNA/pair_oxdna_xstk.cpp index d95004f537..6ef6091889 100644 --- a/src/CG-DNA/pair_oxdna_xstk.cpp +++ b/src/CG-DNA/pair_oxdna_xstk.cpp @@ -696,7 +696,7 @@ void PairOxdnaXstk::coeff(int narg, char **arg) (0.5 * (cut_xst_lo_one - cut_xst_0_one) * (cut_xst_lo_one - cut_xst_0_one) - k_xst_one * 0.5 * (cut_xst_0_one -cut_xst_c_one) * (cut_xst_0_one - cut_xst_c_one)/k_xst_one); - cut_xst_lc_one = cut_xst_lo_one - 0.5 * (cut_xst_lo_one - cut_xst_0_one)/b_xst_lo_one;; + cut_xst_lc_one = cut_xst_lo_one - 0.5 * (cut_xst_lo_one - cut_xst_0_one)/b_xst_lo_one; b_xst_hi_one = 0.25 * (cut_xst_hi_one - cut_xst_0_one) * (cut_xst_hi_one - cut_xst_0_one)/ (0.5 * (cut_xst_hi_one - cut_xst_0_one) * (cut_xst_hi_one - cut_xst_0_one) - diff --git a/src/CG-DNA/pair_oxrna2_xstk.cpp b/src/CG-DNA/pair_oxrna2_xstk.cpp index cdba56e33a..e28b6573bf 100644 --- a/src/CG-DNA/pair_oxrna2_xstk.cpp +++ b/src/CG-DNA/pair_oxrna2_xstk.cpp @@ -639,7 +639,7 @@ void PairOxrna2Xstk::coeff(int narg, char **arg) (0.5 * (cut_xst_lo_one - cut_xst_0_one) * (cut_xst_lo_one - cut_xst_0_one) - k_xst_one * 0.5 * (cut_xst_0_one -cut_xst_c_one) * (cut_xst_0_one - cut_xst_c_one)/k_xst_one); - cut_xst_lc_one = cut_xst_lo_one - 0.5 * (cut_xst_lo_one - cut_xst_0_one)/b_xst_lo_one;; + cut_xst_lc_one = cut_xst_lo_one - 0.5 * (cut_xst_lo_one - cut_xst_0_one)/b_xst_lo_one; b_xst_hi_one = 0.25 * (cut_xst_hi_one - cut_xst_0_one) * (cut_xst_hi_one - cut_xst_0_one)/ (0.5 * (cut_xst_hi_one - cut_xst_0_one) * (cut_xst_hi_one - cut_xst_0_one) - diff --git a/src/EXTRA-COMPUTE/compute_adf.cpp b/src/EXTRA-COMPUTE/compute_adf.cpp index fc74cb8037..35ff8bfd33 100644 --- a/src/EXTRA-COMPUTE/compute_adf.cpp +++ b/src/EXTRA-COMPUTE/compute_adf.cpp @@ -288,7 +288,7 @@ void ComputeADF::init() rcutinnerk[0] = 0.0; rcutouterj[0] = force->pair->cutforce; rcutouterk[0] = force->pair->cutforce; - maxouter = force->pair->cutforce;; + maxouter = force->pair->cutforce; } else { for (int m = 0; m < ntriples; m++) { maxouter = MAX(rcutouterj[m],maxouter); diff --git a/src/EXTRA-DUMP/dump_xtc.cpp b/src/EXTRA-DUMP/dump_xtc.cpp index 6b0b97181b..ba3f740cf7 100644 --- a/src/EXTRA-DUMP/dump_xtc.cpp +++ b/src/EXTRA-DUMP/dump_xtc.cpp @@ -1046,7 +1046,7 @@ int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx]; } } - if (buf[1] != 0) buf[0]++;; + if (buf[1] != 0) buf[0]++; xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */ return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0])); } else { diff --git a/src/EXTRA-FIX/fix_wall_ees.cpp b/src/EXTRA-FIX/fix_wall_ees.cpp index 230b8f6ac0..0e4d5aa1eb 100644 --- a/src/EXTRA-FIX/fix_wall_ees.cpp +++ b/src/EXTRA-FIX/fix_wall_ees.cpp @@ -116,7 +116,7 @@ void FixWallEES::wall_particle(int m, int which, double coord) nhat[(dim+2)%3] = 0 ; - double* shape = bonus[ellipsoid[i]].shape;; + double* shape = bonus[ellipsoid[i]].shape; MathExtra::quat_to_mat(bonus[ellipsoid[i]].quat,A); MathExtra::transpose_matvec(A,nhat,tempvec); for (int k = 0; k<3; k++) { diff --git a/src/INTEL/npair_full_bin_intel.cpp b/src/INTEL/npair_full_bin_intel.cpp index 2f8af4c8af..285ed35ec9 100644 --- a/src/INTEL/npair_full_bin_intel.cpp +++ b/src/INTEL/npair_full_bin_intel.cpp @@ -62,7 +62,7 @@ fbi(NeighList *list, IntelBuffers *buffers) { list->inum = nlocal; list->gnum = 0; - int host_start = _fix->host_start_neighbor();; + int host_start = _fix->host_start_neighbor(); const int off_end = _fix->offload_end_neighbor(); #ifdef _LMP_INTEL_OFFLOAD diff --git a/src/INTEL/pppm_disp_intel.cpp b/src/INTEL/pppm_disp_intel.cpp index cc4aa6ab93..6dac9fad99 100644 --- a/src/INTEL/pppm_disp_intel.cpp +++ b/src/INTEL/pppm_disp_intel.cpp @@ -1478,7 +1478,7 @@ void PPPMDispIntel::fieldforce_c_ik(IntelBuffers * /*buffers*/) int nxsum = nx + nlower; int nysum = ny + nlower; - int nzsum = nz + nlower;; + int nzsum = nz + nlower; FFT_SCALAR dx = nx+fshiftone - (x[i][0]-lo0)*xi; FFT_SCALAR dy = ny+fshiftone - (x[i][1]-lo1)*yi; diff --git a/src/KOKKOS/atom_vec_dpd_kokkos.cpp b/src/KOKKOS/atom_vec_dpd_kokkos.cpp index eda26a92dc..a8ce29f666 100644 --- a/src/KOKKOS/atom_vec_dpd_kokkos.cpp +++ b/src/KOKKOS/atom_vec_dpd_kokkos.cpp @@ -116,22 +116,22 @@ void AtomVecDPDKokkos::grow_pointers() d_dpdTheta = atomKK->k_dpdTheta.d_view; h_dpdTheta = atomKK->k_dpdTheta.h_view; uCond = atomKK->uCond; - d_uCond = atomKK->k_uCond.d_view;; + d_uCond = atomKK->k_uCond.d_view; h_uCond = atomKK->k_uCond.h_view; uMech = atomKK->uMech; - d_uMech = atomKK->k_uMech.d_view;; + d_uMech = atomKK->k_uMech.d_view; h_uMech = atomKK->k_uMech.h_view; uChem = atomKK->uChem; - d_uChem = atomKK->k_uChem.d_view;; + d_uChem = atomKK->k_uChem.d_view; h_uChem = atomKK->k_uChem.h_view; uCG = atomKK->uCG; - d_uCG = atomKK->k_uCG.d_view;; + d_uCG = atomKK->k_uCG.d_view; h_uCG = atomKK->k_uCG.h_view; uCGnew = atomKK->uCGnew; - d_uCGnew = atomKK->k_uCGnew.d_view;; + d_uCGnew = atomKK->k_uCGnew.d_view; h_uCGnew = atomKK->k_uCGnew.h_view; duChem = atomKK->duChem; - d_duChem = atomKK->k_duChem.d_view;; + d_duChem = atomKK->k_duChem.d_view; h_duChem = atomKK->k_duChem.h_view; } diff --git a/src/KOKKOS/dihedral_harmonic_kokkos.cpp b/src/KOKKOS/dihedral_harmonic_kokkos.cpp index 96287946ea..8ca0b368df 100644 --- a/src/KOKKOS/dihedral_harmonic_kokkos.cpp +++ b/src/KOKKOS/dihedral_harmonic_kokkos.cpp @@ -265,9 +265,9 @@ void DihedralHarmonicKokkos::operator()(TagDihedralHarmonicComputenspecial[iatom][0]; for (j = 0; j < npartner[i]; j++) - partner_tag[i][j] = atommols[imol]->special[iatom][j] + tagprev;; + partner_tag[i][j] = atommols[imol]->special[iatom][j] + tagprev; } } diff --git a/src/SMTBQ/pair_smtbq.cpp b/src/SMTBQ/pair_smtbq.cpp index 15e5c2da5e..fdef0b6043 100644 --- a/src/SMTBQ/pair_smtbq.cpp +++ b/src/SMTBQ/pair_smtbq.cpp @@ -204,7 +204,7 @@ PairSMTBQ::~PairSMTBQ() memory->destroy(potcov); memory->destroy(nvsm); - memory->destroy(vsm);; + memory->destroy(vsm); memory->destroy(flag_QEq); memory->destroy(nQEqall); diff --git a/src/SPIN/min_spin_lbfgs.cpp b/src/SPIN/min_spin_lbfgs.cpp index c9c84239b6..ae9d33a705 100644 --- a/src/SPIN/min_spin_lbfgs.cpp +++ b/src/SPIN/min_spin_lbfgs.cpp @@ -378,7 +378,7 @@ void MinSpinLBFGS::calc_search_direction() scaling = maximum_rotation(g_cur); for (int i = 0; i < 3 * nlocal; i++) { - p_s[i] = -g_cur[i] * factor * scaling;; + p_s[i] = -g_cur[i] * factor * scaling; g_old[i] = g_cur[i] * factor; for (int k = 0; k < num_mem; k++) { ds[k][i] = 0.0; diff --git a/src/fix_ave_grid.cpp b/src/fix_ave_grid.cpp index 524def73a4..039c656fab 100644 --- a/src/fix_ave_grid.cpp +++ b/src/fix_ave_grid.cpp @@ -931,7 +931,7 @@ void FixAveGrid::atom2grid() vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2]; if (rmass) one = rmass[i]; else one = mass[type[i]]; - array2d[bin[i][0]][bin[i][1]][m] += one*vsq;; + array2d[bin[i][0]][bin[i][1]][m] += one*vsq; } } } else { diff --git a/src/input.cpp b/src/input.cpp index 1dc2b00ebc..dbbc62df59 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -567,7 +567,7 @@ void Input::substitute(char *&str, char *&str2, int &max, int &max2, int flag) // else $x becomes x followed by null char // beyond = points to text following variable - int i,n,paren_count,nchars;; + int i,n,paren_count,nchars; char immediate[256]; char *var,*value,*beyond; int quoteflag = 0; diff --git a/src/special.cpp b/src/special.cpp index a210b6a82a..7e15ec9e80 100644 --- a/src/special.cpp +++ b/src/special.cpp @@ -958,7 +958,7 @@ void Special::combine() void Special::angle_trim() { - int i,j,k,m;; + int i,j,k,m; int *num_angle = atom->num_angle; int *num_dihedral = atom->num_dihedral; From d8135194931b08efa7ae2b786e4e7a5c9617919b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 26 Jun 2023 10:52:12 -0400 Subject: [PATCH 037/247] make handling of masses consistent and simplify code --- src/EXTRA-COMPUTE/compute_stress_mop.cpp | 37 +++++++--------- .../compute_stress_mop_profile.cpp | 44 +++++++------------ 2 files changed, 31 insertions(+), 50 deletions(-) diff --git a/src/EXTRA-COMPUTE/compute_stress_mop.cpp b/src/EXTRA-COMPUTE/compute_stress_mop.cpp index 98e3bf7043..aa50f39ab9 100644 --- a/src/EXTRA-COMPUTE/compute_stress_mop.cpp +++ b/src/EXTRA-COMPUTE/compute_stress_mop.cpp @@ -432,16 +432,14 @@ void ComputeStressMop::compute_pairs() fi[1] = atom->f[i][1]; fi[2] = atom->f[i][2]; - //coordinates at t-dt (based on Velocity-Verlet alg.) - if (rmass) { - xj[0] = xi[0]-vi[0]*dt+fi[0]/2.0/rmass[i]*dt*dt*ftm2v; - xj[1] = xi[1]-vi[1]*dt+fi[1]/2.0/rmass[i]*dt*dt*ftm2v; - xj[2] = xi[2]-vi[2]*dt+fi[2]/2.0/rmass[i]*dt*dt*ftm2v; - } else { - xj[0] = xi[0]-vi[0]*dt+fi[0]/2.0/mass[itype]*dt*dt*ftm2v; - xj[1] = xi[1]-vi[1]*dt+fi[1]/2.0/mass[itype]*dt*dt*ftm2v; - xj[2] = xi[2]-vi[2]*dt+fi[2]/2.0/mass[itype]*dt*dt*ftm2v; - } + const double imass = (rmass) ? rmass[i] : mass[itype]; + const double iterm = 0.5/imass*dt*ftm2v; + + // coordinates at t-dt (based on Velocity-Verlet alg.) + + xj[0] = xi[0]-vi[0]*dt+fi[0]*iterm*dt; + xj[1] = xi[1]-vi[1]*dt+fi[1]*iterm*dt; + xj[2] = xi[2]-vi[2]*dt+fi[2]*iterm*dt; // because LAMMPS does not put atoms back in the box // at each timestep, must check atoms going through the @@ -453,23 +451,18 @@ void ComputeStressMop::compute_pairs() if (((xi[dir]-pos_temp)*(xj[dir]-pos_temp)) < 0) { // sgn = copysign(1.0,vi[dir]-vcm[dir]); + sgn = copysign(1.0,vi[dir]); // approximate crossing velocity by v(t-dt/2) (based on Velocity-Verlet alg.) double vcross[3]; - if (rmass) { - vcross[0] = vi[0]-fi[0]/rmass[i]/2.0*ftm2v*dt; - vcross[1] = vi[1]-fi[1]/rmass[i]/2.0*ftm2v*dt; - vcross[2] = vi[2]-fi[2]/rmass[i]/2.0*ftm2v*dt; - } else { - vcross[0] = vi[0]-fi[0]/mass[itype]/2.0*ftm2v*dt; - vcross[1] = vi[1]-fi[1]/mass[itype]/2.0*ftm2v*dt; - vcross[2] = vi[2]-fi[2]/mass[itype]/2.0*ftm2v*dt; - } + vcross[0] = vi[0]-fi[0]*iterm; + vcross[1] = vi[1]-fi[1]*iterm; + vcross[2] = vi[2]-fi[2]*iterm; - values_local[m] += mass[itype]*vcross[0]*sgn/dt/area*nktv2p/ftm2v; - values_local[m+1] += mass[itype]*vcross[1]*sgn/dt/area*nktv2p/ftm2v; - values_local[m+2] += mass[itype]*vcross[2]*sgn/dt/area*nktv2p/ftm2v; + values_local[m] += imass*vcross[0]*sgn/dt/area*nktv2p/ftm2v; + values_local[m+1] += imass*vcross[1]*sgn/dt/area*nktv2p/ftm2v; + values_local[m+2] += imass*vcross[2]*sgn/dt/area*nktv2p/ftm2v; } } } diff --git a/src/EXTRA-COMPUTE/compute_stress_mop_profile.cpp b/src/EXTRA-COMPUTE/compute_stress_mop_profile.cpp index 1f1dc30733..12a02cbe63 100644 --- a/src/EXTRA-COMPUTE/compute_stress_mop_profile.cpp +++ b/src/EXTRA-COMPUTE/compute_stress_mop_profile.cpp @@ -435,16 +435,14 @@ void ComputeStressMopProfile::compute_pairs() fi[1] = atom->f[i][1]; fi[2] = atom->f[i][2]; - //coordinates at t-dt (based on Velocity-Verlet alg.) - if (rmass) { - xj[0] = xi[0]-vi[0]*dt+fi[0]/2/rmass[i]*dt*dt*ftm2v; - xj[1] = xi[1]-vi[1]*dt+fi[1]/2/rmass[i]*dt*dt*ftm2v; - xj[2] = xi[2]-vi[2]*dt+fi[2]/2/rmass[i]*dt*dt*ftm2v; - } else { - xj[0] = xi[0]-vi[0]*dt+fi[0]/2/mass[itype]*dt*dt*ftm2v; - xj[1] = xi[1]-vi[1]*dt+fi[1]/2/mass[itype]*dt*dt*ftm2v; - xj[2] = xi[2]-vi[2]*dt+fi[2]/2/mass[itype]*dt*dt*ftm2v; - } + const double imass = (rmass) ? rmass[i] : mass[itype]; + const double iterm = 0.5/imass*dt*ftm2v; + + // coordinates at t-dt (based on Velocity-Verlet alg.) + + xj[0] = xi[0]-vi[0]*dt+fi[0]*iterm*dt; + xj[1] = xi[1]-vi[1]*dt+fi[1]*iterm*dt; + xj[2] = xi[2]-vi[2]*dt+fi[2]*iterm*dt; for (ibin = 0; ibin < nbins; ibin++) { pos = coord[ibin][0]; @@ -454,26 +452,16 @@ void ComputeStressMopProfile::compute_pairs() sgn = copysign(1.0,vi[dir]); - //approximate crossing velocity by v(t-dt/2) (based on Velocity-Verlet alg.) - if (rmass) { - double vcross[3]; - vcross[0] = vi[0]-fi[0]/rmass[i]/2*ftm2v*dt; - vcross[1] = vi[1]-fi[1]/rmass[i]/2*ftm2v*dt; - vcross[2] = vi[2]-fi[2]/rmass[i]/2*ftm2v*dt; + // approximate crossing velocity by v(t-dt/2) (based on Velocity-Verlet alg.) - values_local[ibin][m] += rmass[i]*vcross[0]*sgn/dt/area*nktv2p/ftm2v; - values_local[ibin][m+1] += rmass[i]*vcross[1]*sgn/dt/area*nktv2p/ftm2v; - values_local[ibin][m+2] += rmass[i]*vcross[2]*sgn/dt/area*nktv2p/ftm2v; - } else { - double vcross[3]; - vcross[0] = vi[0]-fi[0]/mass[itype]/2*ftm2v*dt; - vcross[1] = vi[1]-fi[1]/mass[itype]/2*ftm2v*dt; - vcross[2] = vi[2]-fi[2]/mass[itype]/2*ftm2v*dt; + double vcross[3]; + vcross[0] = vi[0]-fi[0]*iterm; + vcross[1] = vi[1]-fi[1]*iterm; + vcross[2] = vi[2]-fi[2]*iterm; - values_local[ibin][m] += mass[itype]*vcross[0]*sgn/dt/area*nktv2p/ftm2v; - values_local[ibin][m+1] += mass[itype]*vcross[1]*sgn/dt/area*nktv2p/ftm2v; - values_local[ibin][m+2] += mass[itype]*vcross[2]*sgn/dt/area*nktv2p/ftm2v; - } + values_local[ibin][m] += imass*vcross[0]*sgn/dt/area*nktv2p/ftm2v; + values_local[ibin][m+1] += imass*vcross[1]*sgn/dt/area*nktv2p/ftm2v; + values_local[ibin][m+2] += imass*vcross[2]*sgn/dt/area*nktv2p/ftm2v; } } } From d4e705b0598dc6489b9dffeb6533599a7371a005 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 26 Jun 2023 10:59:03 -0400 Subject: [PATCH 038/247] enable and apply clang-format --- src/EXTRA-COMPUTE/compute_stress_mop.cpp | 308 ++++++++++-------- .../compute_stress_mop_profile.cpp | 269 ++++++++------- 2 files changed, 314 insertions(+), 263 deletions(-) diff --git a/src/EXTRA-COMPUTE/compute_stress_mop.cpp b/src/EXTRA-COMPUTE/compute_stress_mop.cpp index aa50f39ab9..fc9de602a7 100644 --- a/src/EXTRA-COMPUTE/compute_stress_mop.cpp +++ b/src/EXTRA-COMPUTE/compute_stress_mop.cpp @@ -41,11 +41,9 @@ using namespace LAMMPS_NS; enum { X, Y, Z }; enum { TOTAL, CONF, KIN, PAIR, BOND, ANGLE }; -// clang-format off /* ---------------------------------------------------------------------- */ -ComputeStressMop::ComputeStressMop(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg) +ComputeStressMop::ComputeStressMop(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg) { if (narg < 6) utils::missing_cmd_args(FLERR, "compute stress/mop", error); @@ -54,37 +52,40 @@ ComputeStressMop::ComputeStressMop(LAMMPS *lmp, int narg, char **arg) : // set compute mode and direction of plane(s) for pressure calculation - if (strcmp(arg[3],"x") == 0) { + if (strcmp(arg[3], "x") == 0) { dir = X; - } else if (strcmp(arg[3],"y") == 0) { + } else if (strcmp(arg[3], "y") == 0) { dir = Y; - } else if (strcmp(arg[3],"z") == 0) { + } else if (strcmp(arg[3], "z") == 0) { dir = Z; - } else error->all(FLERR,"Illegal compute stress/mop command"); + } else + error->all(FLERR, "Illegal compute stress/mop command"); // Position of the plane - if (strcmp(arg[4],"lower") == 0) { + if (strcmp(arg[4], "lower") == 0) { pos = domain->boxlo[dir]; - } else if (strcmp(arg[4],"upper") == 0) { + } else if (strcmp(arg[4], "upper") == 0) { pos = domain->boxhi[dir]; - } else if (strcmp(arg[4],"center") == 0) { - pos = 0.5*(domain->boxlo[dir]+domain->boxhi[dir]); - } else pos = utils::numeric(FLERR,arg[4],false,lmp); + } else if (strcmp(arg[4], "center") == 0) { + pos = 0.5 * (domain->boxlo[dir] + domain->boxhi[dir]); + } else + pos = utils::numeric(FLERR, arg[4], false, lmp); // plane inside the box + if ((pos > domain->boxhi[dir]) || (pos < domain->boxlo[dir])) { error->warning(FLERR, "The specified initial plane lies outside of the simulation box"); double dx[3] = {0.0, 0.0, 0.0}; - dx[dir] = pos - 0.5*(domain->boxhi[dir] + domain->boxlo[dir]); + dx[dir] = pos - 0.5 * (domain->boxhi[dir] + domain->boxlo[dir]); domain->minimum_image(dx[0], dx[1], dx[2]); - pos = 0.5*(domain->boxhi[dir] + domain->boxlo[dir]) + dx[dir]; + pos = 0.5 * (domain->boxhi[dir] + domain->boxlo[dir]) + dx[dir]; if ((pos > domain->boxhi[dir]) || (pos < domain->boxlo[dir])) error->all(FLERR, "Plane for compute stress/mop is out of bounds"); } - if (pos < (domain->boxlo[dir]+domain->prd_half[dir])) { + if (pos < (domain->boxlo[dir] + domain->prd_half[dir])) { pos1 = pos + domain->prd[dir]; } else { pos1 = pos - domain->prd[dir]; @@ -92,52 +93,53 @@ ComputeStressMop::ComputeStressMop(LAMMPS *lmp, int narg, char **arg) : // parse values until one isn't recognized - which = new int[3*(narg-5)]; + which = new int[3 * (narg - 5)]; nvalues = 0; int i; - int iarg=5; + int iarg = 5; while (iarg < narg) { - if (strcmp(arg[iarg],"conf") == 0) { - for (i=0; i<3; i++) { + if (strcmp(arg[iarg], "conf") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = CONF; nvalues++; } - } else if (strcmp(arg[iarg],"kin") == 0) { - for (i=0; i<3; i++) { + } else if (strcmp(arg[iarg], "kin") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = KIN; nvalues++; } - } else if (strcmp(arg[iarg],"total") == 0) { - for (i=0; i<3; i++) { + } else if (strcmp(arg[iarg], "total") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = TOTAL; nvalues++; } - } else if (strcmp(arg[iarg],"pair") == 0) { - for (i=0; i<3; i++) { + } else if (strcmp(arg[iarg], "pair") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = PAIR; nvalues++; } - } else if (strcmp(arg[iarg],"bond") == 0) { - for (i=0; i<3; i++) { + } else if (strcmp(arg[iarg], "bond") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = BOND; nvalues++; } - } else if (strcmp(arg[iarg],"angle") == 0) { - for (i=0; i<3; i++) { + } else if (strcmp(arg[iarg], "angle") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = ANGLE; nvalues++; } - } else error->all(FLERR, "Illegal compute stress/mop command"); //break; + } else + error->all(FLERR, "Illegal compute stress/mop command"); //break; iarg++; } - // Error checks + // Error checks: + // 3D only - if (domain->dimension != 3) - error->all(FLERR, "Compute stress/mop requires a 3d system"); + if (domain->dimension != 3) error->all(FLERR, "Compute stress/mop requires a 3d system"); // orthogonal simulation box if (domain->triclinic != 0) @@ -153,18 +155,17 @@ ComputeStressMop::ComputeStressMop(LAMMPS *lmp, int narg, char **arg) : // this fix produces a global vector - memory->create(vector,nvalues,"stress/mop:vector"); - memory->create(values_local,nvalues,"stress/mop:values_local"); - memory->create(values_global,nvalues,"stress/mop:values_global"); - memory->create(bond_local,nvalues,"stress/mop:bond_local"); - memory->create(bond_global,nvalues,"stress/mop:bond_global"); - memory->create(angle_local,nvalues,"stress/mop:angle_local"); - memory->create(angle_global,nvalues,"stress/mop:angle_global"); + memory->create(vector, nvalues, "stress/mop:vector"); + memory->create(values_local, nvalues, "stress/mop:values_local"); + memory->create(values_global, nvalues, "stress/mop:values_global"); + memory->create(bond_local, nvalues, "stress/mop:bond_local"); + memory->create(bond_global, nvalues, "stress/mop:bond_global"); + memory->create(angle_local, nvalues, "stress/mop:angle_local"); + memory->create(angle_global, nvalues, "stress/mop:angle_global"); size_vector = nvalues; vector_flag = 1; extvector = 0; - } /* ---------------------------------------------------------------------- */ @@ -196,8 +197,8 @@ void ComputeStressMop::init() area = 1; int i; - for (i=0; i<3; i++) { - if (i!=dir) area = area*domain->prd[i]; + for (i = 0; i < 3; i++) { + if (i != dir) area = area * domain->prd[i]; } // Timestep Value @@ -212,10 +213,9 @@ void ComputeStressMop::init() // This compute requires a pair style with pair_single method implemented - if (!force->pair) - error->all(FLERR,"No pair style is defined for compute stress/mop"); + if (!force->pair) error->all(FLERR, "No pair style is defined for compute stress/mop"); if (force->pair->single_enable == 0) - error->all(FLERR,"Pair style does not support compute stress/mop"); + error->all(FLERR, "Pair style does not support compute stress/mop"); // Errors @@ -227,21 +227,23 @@ void ComputeStressMop::init() if (force->angle) { if (force->angle->born_matrix_enable == 0) { if ((strcmp(force->angle_style, "zero") != 0) && (strcmp(force->angle_style, "none") != 0)) - error->all(FLERR,"compute stress/mop does not account for angle potentials"); + error->all(FLERR, "compute stress/mop does not account for angle potentials"); } else { - angleflag = 1; + angleflag = 1; } } if (force->dihedral) { - if ((strcmp(force->dihedral_style, "zero") != 0) && (strcmp(force->dihedral_style, "none") != 0)) - error->all(FLERR,"compute stress/mop does not account for dihedral potentials"); + if ((strcmp(force->dihedral_style, "zero") != 0) && + (strcmp(force->dihedral_style, "none") != 0)) + error->all(FLERR, "compute stress/mop does not account for dihedral potentials"); } if (force->improper) { - if ((strcmp(force->improper_style, "zero") != 0) && (strcmp(force->improper_style, "none") != 0)) - error->all(FLERR,"compute stress/mop does not account for improper potentials"); + if ((strcmp(force->improper_style, "zero") != 0) && + (strcmp(force->improper_style, "none") != 0)) + error->all(FLERR, "compute stress/mop does not account for improper potentials"); } if (force->kspace) - error->warning(FLERR,"compute stress/mop does not account for kspace contributions"); + error->warning(FLERR, "compute stress/mop does not account for kspace contributions"); } // need an occasional half neighbor list @@ -255,7 +257,6 @@ void ComputeStressMop::init_list(int /* id */, NeighList *ptr) list = ptr; } - /* ---------------------------------------------------------------------- compute output vector ------------------------------------------------------------------------- */ @@ -264,38 +265,43 @@ void ComputeStressMop::compute_vector() { invoked_array = update->ntimestep; - //Compute pressures on separate procs + // Compute pressures on separate procs + compute_pairs(); // sum pressure contributions over all procs - MPI_Allreduce(values_local,values_global,nvalues,MPI_DOUBLE,MPI_SUM,world); + + MPI_Allreduce(values_local, values_global, nvalues, MPI_DOUBLE, MPI_SUM, world); + + // Compute bond contribution on separate procs if (bondflag) { - //Compute bond contribution on separate procs compute_bonds(); } else { - for (int i=0; imass; double *rmass = atom->rmass; @@ -317,7 +323,6 @@ void ComputeStressMop::compute_pairs() double *special_lj = force->special_lj; int newton_pair = force->newton_pair; - // zero out arrays for one sample for (i = 0; i < nvalues; i++) values_local[i] = 0.0; @@ -373,7 +378,7 @@ void ComputeStressMop::compute_pairs() delx = xi[0] - xj[0]; dely = xi[1] - xj[1]; delz = xi[2] - xj[2]; - rsq = delx*delx + dely*dely + delz*delz; + rsq = delx * delx + dely * dely + delz * delz; jtype = type[j]; if (rsq >= cutsq[itype][jtype]) continue; @@ -381,29 +386,29 @@ void ComputeStressMop::compute_pairs() //check if ij pair is across plane, add contribution to pressure if (((xi[dir] > pos) && (xj[dir] < pos)) || ((xi[dir] > pos1) && (xj[dir] < pos1))) { - pair->single(i,j,itype,jtype,rsq,factor_coul,factor_lj,fpair); - values_local[m] += fpair*(xi[0]-xj[0])/area*nktv2p; - values_local[m+1] += fpair*(xi[1]-xj[1])/area*nktv2p; - values_local[m+2] += fpair*(xi[2]-xj[2])/area*nktv2p; - } else if (((xi[dir] < pos) && (xj[dir] > pos)) || ((xi[dir] < pos1) && (xj[dir] > pos1))) { - pair->single(i,j,itype,jtype,rsq,factor_coul,factor_lj,fpair); - values_local[m] -= fpair*(xi[0]-xj[0])/area*nktv2p; - values_local[m+1] -= fpair*(xi[1]-xj[1])/area*nktv2p; - values_local[m+2] -= fpair*(xi[2]-xj[2])/area*nktv2p; + pair->single(i, j, itype, jtype, rsq, factor_coul, factor_lj, fpair); + values_local[m] += fpair * (xi[0] - xj[0]) / area * nktv2p; + values_local[m + 1] += fpair * (xi[1] - xj[1]) / area * nktv2p; + values_local[m + 2] += fpair * (xi[2] - xj[2]) / area * nktv2p; + } else if (((xi[dir] < pos) && (xj[dir] > pos)) || + ((xi[dir] < pos1) && (xj[dir] > pos1))) { + pair->single(i, j, itype, jtype, rsq, factor_coul, factor_lj, fpair); + values_local[m] -= fpair * (xi[0] - xj[0]) / area * nktv2p; + values_local[m + 1] -= fpair * (xi[1] - xj[1]) / area * nktv2p; + values_local[m + 2] -= fpair * (xi[2] - xj[2]) / area * nktv2p; } } else { if (((xi[dir] > pos) && (xj[dir] < pos)) || ((xi[dir] > pos1) && (xj[dir] < pos1))) { - pair->single(i,j,itype,jtype,rsq,factor_coul,factor_lj,fpair); - values_local[m] += fpair*(xi[0]-xj[0])/area*nktv2p; - values_local[m+1] += fpair*(xi[1]-xj[1])/area*nktv2p; - values_local[m+2] += fpair*(xi[2]-xj[2])/area*nktv2p; + pair->single(i, j, itype, jtype, rsq, factor_coul, factor_lj, fpair); + values_local[m] += fpair * (xi[0] - xj[0]) / area * nktv2p; + values_local[m + 1] += fpair * (xi[1] - xj[1]) / area * nktv2p; + values_local[m + 2] += fpair * (xi[2] - xj[2]) / area * nktv2p; } } } } } - // Compute kinetic contribution to pressure // counts local particles transfers across the plane @@ -413,56 +418,61 @@ void ComputeStressMop::compute_pairs() for (int i = 0; i < nlocal; i++) { // skip if I is not in group + if (mask[i] & groupbit) { itype = type[i]; - //coordinates at t + // coordinates at t + xi[0] = atom->x[i][0]; xi[1] = atom->x[i][1]; xi[2] = atom->x[i][2]; - //velocities at t + // velocities at t + vi[0] = atom->v[i][0]; vi[1] = atom->v[i][1]; vi[2] = atom->v[i][2]; - //forces at t + // forces at t + fi[0] = atom->f[i][0]; fi[1] = atom->f[i][1]; fi[2] = atom->f[i][2]; const double imass = (rmass) ? rmass[i] : mass[itype]; - const double iterm = 0.5/imass*dt*ftm2v; + const double iterm = 0.5 / imass * dt * ftm2v; // coordinates at t-dt (based on Velocity-Verlet alg.) - xj[0] = xi[0]-vi[0]*dt+fi[0]*iterm*dt; - xj[1] = xi[1]-vi[1]*dt+fi[1]*iterm*dt; - xj[2] = xi[2]-vi[2]*dt+fi[2]*iterm*dt; + xj[0] = xi[0] - vi[0] * dt + fi[0] * iterm * dt; + xj[1] = xi[1] - vi[1] * dt + fi[1] * iterm * dt; + xj[2] = xi[2] - vi[2] * dt + fi[2] * iterm * dt; // because LAMMPS does not put atoms back in the box // at each timestep, must check atoms going through the // image of the plane that is closest to the box - double pos_temp = pos+copysign(1.0,domain->prd_half[dir]-pos)*domain->prd[dir]; - if (fabs(xi[dir]-pos)prd_half[dir] - pos) * domain->prd[dir]; + if (fabs(xi[dir] - pos) < fabs(xi[dir] - pos_temp)) pos_temp = pos; - if (((xi[dir]-pos_temp)*(xj[dir]-pos_temp)) < 0) { + if (((xi[dir] - pos_temp) * (xj[dir] - pos_temp)) < 0) { // sgn = copysign(1.0,vi[dir]-vcm[dir]); - sgn = copysign(1.0,vi[dir]); + sgn = copysign(1.0, vi[dir]); // approximate crossing velocity by v(t-dt/2) (based on Velocity-Verlet alg.) - double vcross[3]; - vcross[0] = vi[0]-fi[0]*iterm; - vcross[1] = vi[1]-fi[1]*iterm; - vcross[2] = vi[2]-fi[2]*iterm; - values_local[m] += imass*vcross[0]*sgn/dt/area*nktv2p/ftm2v; - values_local[m+1] += imass*vcross[1]*sgn/dt/area*nktv2p/ftm2v; - values_local[m+2] += imass*vcross[2]*sgn/dt/area*nktv2p/ftm2v; + double vcross[3]; + vcross[0] = vi[0] - fi[0] * iterm; + vcross[1] = vi[1] - fi[1] * iterm; + vcross[2] = vi[2] - fi[2] * iterm; + + values_local[m] += imass * vcross[0] * sgn / dt / area * nktv2p / ftm2v; + values_local[m + 1] += imass * vcross[1] * sgn / dt / area * nktv2p / ftm2v; + values_local[m + 2] += imass * vcross[2] * sgn / dt / area * nktv2p / ftm2v; } } } @@ -504,9 +514,11 @@ void ComputeStressMop::compute_bonds() double local_contribution[3] = {0.0, 0.0, 0.0}; // initialization + for (int i = 0; i < nvalues; i++) bond_local[i] = 0.0; // loop over all bonded atoms in the current proc + for (atom1 = 0; atom1 < nlocal; atom1++) { if (!(mask[atom1] & groupbit)) continue; @@ -534,6 +546,7 @@ void ComputeStressMop::compute_bonds() if (btype <= 0) continue; // minimum image of atom1 with respect to the plane of interest + dx[0] = x[atom1][0]; dx[1] = x[atom1][1]; dx[2] = x[atom1][2]; @@ -545,6 +558,7 @@ void ComputeStressMop::compute_bonds() x_bond_1[dir] += pos; // minimum image of atom2 with respect to atom1 + dx[0] = x[atom2][0] - x_bond_1[0]; dx[1] = x[atom2][1] - x_bond_1[1]; dx[2] = x[atom2][2] - x_bond_1[2]; @@ -554,6 +568,7 @@ void ComputeStressMop::compute_bonds() x_bond_2[2] = x_bond_1[2] + dx[2]; // check if the bond vector crosses the plane of interest + double tau = (x_bond_1[dir] - pos) / (x_bond_1[dir] - x_bond_2[dir]); if ((tau <= 1) && (tau >= 0)) { dx[0] = x_bond_1[0] - x_bond_2[0]; @@ -563,20 +578,21 @@ void ComputeStressMop::compute_bonds() bond->single(btype, rsq, atom1, atom2, fpair); double sgn = copysign(1.0, x_bond_1[dir] - pos); - local_contribution[0] += sgn*fpair*dx[0]/area*nktv2p; - local_contribution[1] += sgn*fpair*dx[1]/area*nktv2p; - local_contribution[2] += sgn*fpair*dx[2]/area*nktv2p; + local_contribution[0] += sgn * fpair * dx[0] / area * nktv2p; + local_contribution[1] += sgn * fpair * dx[1] / area * nktv2p; + local_contribution[2] += sgn * fpair * dx[2] / area * nktv2p; } } } // loop over the keywords and if necessary add the bond contribution + int m = 0; - while (m=0) && (tau_right <= 1)); - bool left_cross = ((tau_left >=0) && (tau_left <= 1)); + bool right_cross = ((tau_right >= 0) && (tau_right <= 1)); + bool left_cross = ((tau_left >= 0) && (tau_left <= 1)); // no bonds crossing the plane + if (!right_cross && !left_cross) continue; // compute the cos(theta) of the angle - r1 = sqrt(dx_left[0]*dx_left[0] + dx_left[1]*dx_left[1] + dx_left[2]*dx_left[2]); - r2 = sqrt(dx_right[0]*dx_right[0] + dx_right[1]*dx_right[1] + dx_right[2]*dx_right[2]); - cos_theta = -(dx_right[0]*dx_left[0] + dx_right[1]*dx_left[1] + dx_right[2]*dx_left[2])/(r1*r2); - if (cos_theta > 1.0) cos_theta = 1.0; + r1 = sqrt(dx_left[0] * dx_left[0] + dx_left[1] * dx_left[1] + dx_left[2] * dx_left[2]); + r2 = sqrt(dx_right[0] * dx_right[0] + dx_right[1] * dx_right[1] + dx_right[2] * dx_right[2]); + cos_theta = + -(dx_right[0] * dx_left[0] + dx_right[1] * dx_left[1] + dx_right[2] * dx_left[2]) / + (r1 * r2); + + if (cos_theta > 1.0) cos_theta = 1.0; if (cos_theta < -1.0) cos_theta = -1.0; // The method returns derivative with regards to cos(theta) + angle->born_matrix(atype, atom1, atom2, atom3, duang, du2ang); + // only right bond crossing the plane - if (right_cross && !left_cross) - { + + if (right_cross && !left_cross) { double sgn = copysign(1.0, x_angle_right[dir] - pos); - dcos_theta[0] = sgn*(dx_right[0]*cos_theta/r2 + dx_left[0]/r1)/r2; - dcos_theta[1] = sgn*(dx_right[1]*cos_theta/r2 + dx_left[1]/r1)/r2; - dcos_theta[2] = sgn*(dx_right[2]*cos_theta/r2 + dx_left[2]/r1)/r2; + dcos_theta[0] = sgn * (dx_right[0] * cos_theta / r2 + dx_left[0] / r1) / r2; + dcos_theta[1] = sgn * (dx_right[1] * cos_theta / r2 + dx_left[1] / r1) / r2; + dcos_theta[2] = sgn * (dx_right[2] * cos_theta / r2 + dx_left[2] / r1) / r2; } // only left bond crossing the plane - if (!right_cross && left_cross) - { + + if (!right_cross && left_cross) { double sgn = copysign(1.0, x_angle_left[dir] - pos); - dcos_theta[0] = -sgn*(dx_left[0]*cos_theta/r1 + dx_right[0]/r2)/r1; - dcos_theta[1] = -sgn*(dx_left[1]*cos_theta/r1 + dx_right[1]/r2)/r1; - dcos_theta[2] = -sgn*(dx_left[2]*cos_theta/r1 + dx_right[2]/r2)/r1; + dcos_theta[0] = -sgn * (dx_left[0] * cos_theta / r1 + dx_right[0] / r2) / r1; + dcos_theta[1] = -sgn * (dx_left[1] * cos_theta / r1 + dx_right[1] / r2) / r1; + dcos_theta[2] = -sgn * (dx_left[2] * cos_theta / r1 + dx_right[2] / r2) / r1; } // both bonds crossing the plane - if (right_cross && left_cross) - { + + if (right_cross && left_cross) { + // due to right bond + double sgn = copysign(1.0, x_angle_middle[dir] - pos); - dcos_theta[0] = -sgn*(dx_right[0]*cos_theta/r2 + dx_left[0]/r1)/r2; - dcos_theta[1] = -sgn*(dx_right[1]*cos_theta/r2 + dx_left[1]/r1)/r2; - dcos_theta[2] = -sgn*(dx_right[2]*cos_theta/r2 + dx_left[2]/r1)/r2; + dcos_theta[0] = -sgn * (dx_right[0] * cos_theta / r2 + dx_left[0] / r1) / r2; + dcos_theta[1] = -sgn * (dx_right[1] * cos_theta / r2 + dx_left[1] / r1) / r2; + dcos_theta[2] = -sgn * (dx_right[2] * cos_theta / r2 + dx_left[2] / r1) / r2; // due to left bond - dcos_theta[0] += sgn*(dx_left[0]*cos_theta/r1 + dx_right[0]/r2)/r1; - dcos_theta[1] += sgn*(dx_left[1]*cos_theta/r1 + dx_right[1]/r2)/r1; - dcos_theta[2] += sgn*(dx_left[2]*cos_theta/r1 + dx_right[2]/r2)/r1; + + dcos_theta[0] += sgn * (dx_left[0] * cos_theta / r1 + dx_right[0] / r2) / r1; + dcos_theta[1] += sgn * (dx_left[1] * cos_theta / r1 + dx_right[1] / r2) / r1; + dcos_theta[2] += sgn * (dx_left[2] * cos_theta / r1 + dx_right[2] / r2) / r1; } // final contribution of the given angle term - local_contribution[0] += duang*dcos_theta[0]/area*nktv2p; - local_contribution[1] += duang*dcos_theta[1]/area*nktv2p; - local_contribution[2] += duang*dcos_theta[2]/area*nktv2p; + + local_contribution[0] += duang * dcos_theta[0] / area * nktv2p; + local_contribution[1] += duang * dcos_theta[1] / area * nktv2p; + local_contribution[2] += duang * dcos_theta[2] / area * nktv2p; } } + // loop over the keywords and if necessary add the angle contribution + int m = 0; while (m < nvalues) { if (which[m] == CONF || which[m] == TOTAL || which[m] == ANGLE) { angle_local[m] = local_contribution[0]; - angle_local[m+1] = local_contribution[1]; - angle_local[m+2] = local_contribution[2]; + angle_local[m + 1] = local_contribution[1]; + angle_local[m + 2] = local_contribution[2]; } m += 3; } diff --git a/src/EXTRA-COMPUTE/compute_stress_mop_profile.cpp b/src/EXTRA-COMPUTE/compute_stress_mop_profile.cpp index 12a02cbe63..cc201fdbaa 100644 --- a/src/EXTRA-COMPUTE/compute_stress_mop_profile.cpp +++ b/src/EXTRA-COMPUTE/compute_stress_mop_profile.cpp @@ -41,11 +41,10 @@ enum { X, Y, Z }; enum { LOWER, CENTER, UPPER, COORD }; enum { TOTAL, CONF, KIN, PAIR, BOND }; -// clang-format off /* ---------------------------------------------------------------------- */ ComputeStressMopProfile::ComputeStressMopProfile(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg) + Compute(lmp, narg, arg) { if (narg < 7) utils::missing_cmd_args(FLERR, "compute stress/mop/profile", error); @@ -53,58 +52,64 @@ ComputeStressMopProfile::ComputeStressMopProfile(LAMMPS *lmp, int narg, char **a // set compute mode and direction of plane(s) for pressure calculation - if (strcmp(arg[3],"x") == 0) { + if (strcmp(arg[3], "x") == 0) { dir = X; - } else if (strcmp(arg[3],"y") == 0) { + } else if (strcmp(arg[3], "y") == 0) { dir = Y; - } else if (strcmp(arg[3],"z") == 0) { + } else if (strcmp(arg[3], "z") == 0) { dir = Z; - } else error->all(FLERR,"Illegal compute stress/mop/profile command"); + } else + error->all(FLERR, "Illegal compute stress/mop/profile command"); // bin parameters - if (strcmp(arg[4],"lower") == 0) originflag = LOWER; - else if (strcmp(arg[4],"center") == 0) originflag = CENTER; - else if (strcmp(arg[4],"upper") == 0) originflag = UPPER; - else originflag = COORD; - if (originflag == COORD) origin = utils::numeric(FLERR,arg[4],false,lmp); - delta = utils::numeric(FLERR,arg[5],false,lmp); - invdelta = 1.0/delta; + if (strcmp(arg[4], "lower") == 0) + originflag = LOWER; + else if (strcmp(arg[4], "center") == 0) + originflag = CENTER; + else if (strcmp(arg[4], "upper") == 0) + originflag = UPPER; + else + originflag = COORD; + if (originflag == COORD) origin = utils::numeric(FLERR, arg[4], false, lmp); + delta = utils::numeric(FLERR, arg[5], false, lmp); + invdelta = 1.0 / delta; // parse values until one isn't recognized - which = new int[3*(narg-6)]; + which = new int[3 * (narg - 6)]; nvalues = 0; int i; - int iarg=6; + int iarg = 6; while (iarg < narg) { - if (strcmp(arg[iarg],"conf") == 0) { - for (i=0; i<3; i++) { + if (strcmp(arg[iarg], "conf") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = CONF; nvalues++; } - } else if (strcmp(arg[iarg],"kin") == 0) { - for (i=0; i<3; i++) { + } else if (strcmp(arg[iarg], "kin") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = KIN; nvalues++; } - } else if (strcmp(arg[iarg],"total") == 0) { - for (i=0; i<3; i++) { + } else if (strcmp(arg[iarg], "total") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = TOTAL; nvalues++; } - } else if (strcmp(arg[iarg],"pair") == 0) { - for (i=0; i<3; i++) { + } else if (strcmp(arg[iarg], "pair") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = PAIR; nvalues++; } - } else if (strcmp(arg[iarg],"bond") == 0) { - for (i=0; i<3; i++) { + } else if (strcmp(arg[iarg], "bond") == 0) { + for (i = 0; i < 3; i++) { which[nvalues] = BOND; nvalues++; } - } else error->all(FLERR, "Illegal compute stress/mop/profile command"); //break; + } else + error->all(FLERR, "Illegal compute stress/mop/profile command"); //break; iarg++; } @@ -136,7 +141,7 @@ ComputeStressMopProfile::ComputeStressMopProfile(LAMMPS *lmp, int narg, char **a // this fix produces a global array - memory->create(array,nbins,1+nvalues,"stress/mop/profile:array"); + memory->create(array, nbins, 1 + nvalues, "stress/mop/profile:array"); size_array_rows = nbins; size_array_cols = 1 + nvalues; @@ -173,47 +178,49 @@ void ComputeStressMopProfile::init() area = 1; int i; - for (i=0; i<3; i++) { - if (i!=dir) area = area*domain->prd[i]; + for (i = 0; i < 3; i++) { + if (i != dir) area = area * domain->prd[i]; } // timestep Value dt = update->dt; - // Error check + // Error checks: + // Compute stress/mop/profile requires fixed simulation box if (domain->box_change_size || domain->box_change_shape || domain->deform_flag) error->all(FLERR, "Compute stress/mop/profile requires a fixed simulation box"); - //This compute requires a pair style with pair_single method implemented + // This compute requires a pair style with pair_single method implemented - if (!force->pair) - error->all(FLERR,"No pair style is defined for compute stress/mop/profile"); + if (!force->pair) error->all(FLERR, "No pair style is defined for compute stress/mop/profile"); if (force->pair->single_enable == 0) - error->all(FLERR,"Pair style does not support compute stress/mop/profile"); + error->all(FLERR, "Pair style does not support compute stress/mop/profile"); // Errors if (comm->me == 0) { - //Compute stress/mop/profile only accounts for pair interactions. + // Compute stress/mop/profile only accounts for pair interactions. // issue an error if any intramolecular potential or Kspace is defined. if (force->bond) bondflag = 1; if (force->angle) if ((strcmp(force->angle_style, "zero") != 0) && (strcmp(force->angle_style, "none") != 0)) - error->all(FLERR,"compute stress/mop/profile does not account for angle potentials"); + error->all(FLERR, "compute stress/mop/profile does not account for angle potentials"); if (force->dihedral) - if ((strcmp(force->dihedral_style, "zero") != 0) && (strcmp(force->dihedral_style, "none") != 0)) - error->all(FLERR,"compute stress/mop/profile does not account for dihedral potentials"); + if ((strcmp(force->dihedral_style, "zero") != 0) && + (strcmp(force->dihedral_style, "none") != 0)) + error->all(FLERR, "compute stress/mop/profile does not account for dihedral potentials"); if (force->improper) - if ((strcmp(force->improper_style, "zero") != 0) && (strcmp(force->improper_style, "none") != 0)) - error->all(FLERR,"compute stress/mop/profile does not account for improper potentials"); + if ((strcmp(force->improper_style, "zero") != 0) && + (strcmp(force->improper_style, "none") != 0)) + error->all(FLERR, "compute stress/mop/profile does not account for improper potentials"); if (force->kspace) - error->warning(FLERR,"compute stress/mop/profile does not account for kspace contributions"); + error->warning(FLERR, "compute stress/mop/profile does not account for kspace contributions"); } // need an occasional half neighbor list @@ -228,7 +235,6 @@ void ComputeStressMopProfile::init_list(int /* id */, NeighList *ptr) list = ptr; } - /* ---------------------------------------------------------------------- compute output array ------------------------------------------------------------------------- */ @@ -237,39 +243,41 @@ void ComputeStressMopProfile::compute_array() { invoked_array = update->ntimestep; - //Compute pressures on separate procs + // Compute pressures on separate procs + compute_pairs(); // sum pressure contributions over all procs - MPI_Allreduce(&values_local[0][0],&values_global[0][0],nbins*nvalues,MPI_DOUBLE,MPI_SUM,world); + + MPI_Allreduce(&values_local[0][0], &values_global[0][0], nbins * nvalues, MPI_DOUBLE, MPI_SUM, + world); + + // Compute bond contribution on separate procs if (bondflag) { - //Compute bond contribution on separate procs compute_bonds(); } else { for (int m = 0; m < nbins; m++) { - for (int i = 0; i < nvalues; i++) { - bond_local[m][i] = 0.0; - } + for (int i = 0; i < nvalues; i++) { bond_local[m][i] = 0.0; } } } // sum bond contribution over all procs - MPI_Allreduce(&bond_local[0][0],&bond_global[0][0],nbins*nvalues,MPI_DOUBLE,MPI_SUM,world); - for (int ibin=0; ibinmass; double *rmass = atom->rmass; @@ -292,8 +300,8 @@ void ComputeStressMopProfile::compute_pairs() double *special_lj = force->special_lj; int newton_pair = force->newton_pair; - // zero out arrays for one sample + for (m = 0; m < nbins; m++) { for (i = 0; i < nvalues; i++) values_local[m][i] = 0.0; } @@ -351,53 +359,51 @@ void ComputeStressMopProfile::compute_pairs() delx = xi[0] - xj[0]; dely = xi[1] - xj[1]; delz = xi[2] - xj[2]; - rsq = delx*delx + dely*dely + delz*delz; + rsq = delx * delx + dely * dely + delz * delz; jtype = type[j]; if (rsq >= cutsq[itype][jtype]) continue; if (newton_pair || j < nlocal) { - for (ibin=0;ibinpos) && (xj[dir]pos1) && (xj[dir] pos) && (xj[dir] < pos)) || ((xi[dir] > pos1) && (xj[dir] < pos1))) { - pair->single(i,j,itype,jtype,rsq,factor_coul,factor_lj,fpair); + pair->single(i, j, itype, jtype, rsq, factor_coul, factor_lj, fpair); - values_local[ibin][m] += fpair*(xi[0]-xj[0])/area*nktv2p; - values_local[ibin][m+1] += fpair*(xi[1]-xj[1])/area*nktv2p; - values_local[ibin][m+2] += fpair*(xi[2]-xj[2])/area*nktv2p; + values_local[ibin][m] += fpair * (xi[0] - xj[0]) / area * nktv2p; + values_local[ibin][m + 1] += fpair * (xi[1] - xj[1]) / area * nktv2p; + values_local[ibin][m + 2] += fpair * (xi[2] - xj[2]) / area * nktv2p; - } else if ( ((xi[dir]pos)) - || ((xi[dir]pos1))) { + } else if (((xi[dir] < pos) && (xj[dir] > pos)) || + ((xi[dir] < pos1) && (xj[dir] > pos1))) { - pair->single(i,j,itype,jtype,rsq,factor_coul,factor_lj,fpair); + pair->single(i, j, itype, jtype, rsq, factor_coul, factor_lj, fpair); - values_local[ibin][m] -= fpair*(xi[0]-xj[0])/area*nktv2p; - values_local[ibin][m+1] -= fpair*(xi[1]-xj[1])/area*nktv2p; - values_local[ibin][m+2] -= fpair*(xi[2]-xj[2])/area*nktv2p; + values_local[ibin][m] -= fpair * (xi[0] - xj[0]) / area * nktv2p; + values_local[ibin][m + 1] -= fpair * (xi[1] - xj[1]) / area * nktv2p; + values_local[ibin][m + 2] -= fpair * (xi[2] - xj[2]) / area * nktv2p; } } } else { - for (ibin=0;ibinpos) && (xj[dir]pos1) && (xj[dir] pos) && (xj[dir] < pos)) || ((xi[dir] > pos1) && (xj[dir] < pos1))) { - pair->single(i,j,itype,jtype,rsq,factor_coul,factor_lj,fpair); + pair->single(i, j, itype, jtype, rsq, factor_coul, factor_lj, fpair); - values_local[ibin][m] += fpair*(xi[0]-xj[0])/area*nktv2p; - values_local[ibin][m+1] += fpair*(xi[1]-xj[1])/area*nktv2p; - values_local[ibin][m+2] += fpair*(xi[2]-xj[2])/area*nktv2p; + values_local[ibin][m] += fpair * (xi[0] - xj[0]) / area * nktv2p; + values_local[ibin][m + 1] += fpair * (xi[1] - xj[1]) / area * nktv2p; + values_local[ibin][m + 2] += fpair * (xi[2] - xj[2]) / area * nktv2p; } } } @@ -420,54 +426,57 @@ void ComputeStressMopProfile::compute_pairs() itype = type[i]; - //coordinates at t + // coordinates at t + xi[0] = atom->x[i][0]; xi[1] = atom->x[i][1]; xi[2] = atom->x[i][2]; - //velocities at t + // velocities at t + vi[0] = atom->v[i][0]; vi[1] = atom->v[i][1]; vi[2] = atom->v[i][2]; - //forces at t + // forces at t + fi[0] = atom->f[i][0]; fi[1] = atom->f[i][1]; fi[2] = atom->f[i][2]; const double imass = (rmass) ? rmass[i] : mass[itype]; - const double iterm = 0.5/imass*dt*ftm2v; + const double iterm = 0.5 / imass * dt * ftm2v; // coordinates at t-dt (based on Velocity-Verlet alg.) - xj[0] = xi[0]-vi[0]*dt+fi[0]*iterm*dt; - xj[1] = xi[1]-vi[1]*dt+fi[1]*iterm*dt; - xj[2] = xi[2]-vi[2]*dt+fi[2]*iterm*dt; + xj[0] = xi[0] - vi[0] * dt + fi[0] * iterm * dt; + xj[1] = xi[1] - vi[1] * dt + fi[1] * iterm * dt; + xj[2] = xi[2] - vi[2] * dt + fi[2] * iterm * dt; for (ibin = 0; ibin < nbins; ibin++) { pos = coord[ibin][0]; pos1 = coordp[ibin][0]; - if (((xi[dir]-pos)*(xj[dir]-pos)*(xi[dir]-pos1)*(xj[dir]-pos1)<0)) { + if (((xi[dir] - pos) * (xj[dir] - pos) * (xi[dir] - pos1) * (xj[dir] - pos1) < 0)) { - sgn = copysign(1.0,vi[dir]); + sgn = copysign(1.0, vi[dir]); // approximate crossing velocity by v(t-dt/2) (based on Velocity-Verlet alg.) double vcross[3]; - vcross[0] = vi[0]-fi[0]*iterm; - vcross[1] = vi[1]-fi[1]*iterm; - vcross[2] = vi[2]-fi[2]*iterm; + vcross[0] = vi[0] - fi[0] * iterm; + vcross[1] = vi[1] - fi[1] * iterm; + vcross[2] = vi[2] - fi[2] * iterm; - values_local[ibin][m] += imass*vcross[0]*sgn/dt/area*nktv2p/ftm2v; - values_local[ibin][m+1] += imass*vcross[1]*sgn/dt/area*nktv2p/ftm2v; - values_local[ibin][m+2] += imass*vcross[2]*sgn/dt/area*nktv2p/ftm2v; + values_local[ibin][m] += imass * vcross[0] * sgn / dt / area * nktv2p / ftm2v; + values_local[ibin][m + 1] += imass * vcross[1] * sgn / dt / area * nktv2p / ftm2v; + values_local[ibin][m + 2] += imass * vcross[2] * sgn / dt / area * nktv2p / ftm2v; } } } } } - m+=3; + m += 3; } } @@ -503,16 +512,16 @@ void ComputeStressMopProfile::compute_bonds() double x_bond_2[3] = {0.0, 0.0, 0.0}; // initialization + for (int m = 0; m < nbins; m++) { - for (int i = 0; i < nvalues; i++) { - bond_local[m][i] = 0.0; - } + for (int i = 0; i < nvalues; i++) { bond_local[m][i] = 0.0; } local_contribution[m][0] = 0.0; local_contribution[m][1] = 0.0; local_contribution[m][2] = 0.0; } // loop over all bonded atoms in the current proc + for (atom1 = 0; atom1 < nlocal; atom1++) { if (!(mask[atom1] & groupbit)) continue; @@ -539,10 +548,11 @@ void ComputeStressMopProfile::compute_bonds() if (newton_bond == 0 && tag[atom1] > tag[atom2]) continue; if (btype <= 0) continue; - for (int ibin = 0; ibin= 0)) { dx[0] = x_bond_1[0] - x_bond_2[0]; @@ -572,22 +584,23 @@ void ComputeStressMopProfile::compute_bonds() bond->single(btype, rsq, atom1, atom2, fpair); double sgn = copysign(1.0, x_bond_1[dir] - pos); - local_contribution[ibin][0] += sgn*fpair*dx[0]/area*nktv2p; - local_contribution[ibin][1] += sgn*fpair*dx[1]/area*nktv2p; - local_contribution[ibin][2] += sgn*fpair*dx[2]/area*nktv2p; + local_contribution[ibin][0] += sgn * fpair * dx[0] / area * nktv2p; + local_contribution[ibin][1] += sgn * fpair * dx[1] / area * nktv2p; + local_contribution[ibin][2] += sgn * fpair * dx[2] / area * nktv2p; } } } } // loop over the keywords and if necessary add the bond contribution + int m = 0; while (m < nvalues) { if ((which[m] == CONF) || (which[m] == TOTAL) || (which[m] == BOND)) { for (int ibin = 0; ibin < nbins; ibin++) { bond_local[ibin][m] = local_contribution[ibin][0]; - bond_local[ibin][m+1] = local_contribution[ibin][1]; - bond_local[ibin][m+2] = local_contribution[ibin][2]; + bond_local[ibin][m + 1] = local_contribution[ibin][1]; + bond_local[ibin][m + 2] = local_contribution[ibin][2]; } } m += 3; @@ -601,47 +614,51 @@ void ComputeStressMopProfile::compute_bonds() void ComputeStressMopProfile::setup_bins() { - int i,n; + int i, n; double lo = 0.0, hi = 0.0; - double *boxlo,*boxhi; + double *boxlo, *boxhi; boxlo = domain->boxlo; boxhi = domain->boxhi; - if (originflag == LOWER) origin = boxlo[dir]; - else if (originflag == UPPER) origin = boxhi[dir]; + if (originflag == LOWER) + origin = boxlo[dir]; + else if (originflag == UPPER) + origin = boxhi[dir]; else if (originflag == CENTER) origin = 0.5 * (boxlo[dir] + boxhi[dir]); if (origin < boxlo[dir]) { - error->all(FLERR,"Origin of bins for compute stress/mop/profile is out of bounds" ); + error->all(FLERR, "Origin of bins for compute stress/mop/profile is out of bounds"); } else { - n = static_cast ((origin - boxlo[dir]) * invdelta); - lo = origin - n*delta; + n = static_cast((origin - boxlo[dir]) * invdelta); + lo = origin - n * delta; } if (origin < boxhi[dir]) { - n = static_cast ((boxhi[dir] - origin) * invdelta); - hi = origin + n*delta; + n = static_cast((boxhi[dir] - origin) * invdelta); + hi = origin + n * delta; } else { - error->all(FLERR,"Origin of bins for compute stress/mop/profile is out of bounds" ); + error->all(FLERR, "Origin of bins for compute stress/mop/profile is out of bounds"); } offset = lo; - nbins = static_cast ((hi-lo) * invdelta + 1.5); + nbins = static_cast((hi - lo) * invdelta + 1.5); - //allocate bin arrays - memory->create(coord,nbins,1,"stress/mop/profile:coord"); - memory->create(coordp,nbins,1,"stress/mop/profile:coordp"); - memory->create(values_local,nbins,nvalues,"stress/mop/profile:values_local"); - memory->create(values_global,nbins,nvalues,"stress/mop/profile:values_global"); - memory->create(bond_local,nbins,nvalues,"stress/mop/profile:bond_local"); - memory->create(bond_global,nbins,nvalues,"stress/mop/profile:bond_global"); - memory->create(local_contribution,nbins,3,"stress/mop/profile:local_contribution"); + // allocate bin arrays + + memory->create(coord, nbins, 1, "stress/mop/profile:coord"); + memory->create(coordp, nbins, 1, "stress/mop/profile:coordp"); + memory->create(values_local, nbins, nvalues, "stress/mop/profile:values_local"); + memory->create(values_global, nbins, nvalues, "stress/mop/profile:values_global"); + memory->create(bond_local, nbins, nvalues, "stress/mop/profile:bond_local"); + memory->create(bond_global, nbins, nvalues, "stress/mop/profile:bond_global"); + memory->create(local_contribution, nbins, 3, "stress/mop/profile:local_contribution"); // set bin coordinates + for (i = 0; i < nbins; i++) { - coord[i][0] = offset + i*delta; - if (coord[i][0] < (domain->boxlo[dir]+domain->prd_half[dir])) { + coord[i][0] = offset + i * delta; + if (coord[i][0] < (domain->boxlo[dir] + domain->prd_half[dir])) { coordp[i][0] = coord[i][0] + domain->prd[dir]; } else { coordp[i][0] = coord[i][0] - domain->prd[dir]; From 46a9f0a08c4e9d5a7777015f68ce57ca5a18e306 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Mon, 26 Jun 2023 11:08:04 -0700 Subject: [PATCH 039/247] change QM Python wrappers to use ENERGY instead of PE as MDI command --- examples/QUANTUM/LATTE/latte_mdi.py | 6 +++--- examples/QUANTUM/NWChem/nwchem_mdi.py | 6 +++--- examples/QUANTUM/PySCF/pyscf_mdi.py | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/QUANTUM/LATTE/latte_mdi.py b/examples/QUANTUM/LATTE/latte_mdi.py index 0170feee1f..ba1a83120a 100644 --- a/examples/QUANTUM/LATTE/latte_mdi.py +++ b/examples/QUANTUM/LATTE/latte_mdi.py @@ -153,7 +153,7 @@ def mdi_engine(other_options): # engine --> driver - mdi.MDI_Register_Command("@DEFAULT","LATTICE_FORCES") mdi.MDI_Register_Command("@DEFAULT"," driver - mdi.MDI_Register_Command("@DEFAULT","LATTICE_FORCES") #mdi.MDI_Register_Command("@DEFAULT"," driver - mdi.MDI_Register_Command("@DEFAULT"," Date: Mon, 26 Jun 2023 15:20:29 -0400 Subject: [PATCH 040/247] make short read detection bugfix work in parallel --- src/utils.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/utils.cpp b/src/utils.cpp index eee1d5dd46..dd18c4406d 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -290,8 +290,9 @@ int utils::read_lines_from_file(FILE *fp, int nlines, int nmax, char *buffer, in } int n = strlen(buffer); + if (nlines != mylines) n = 0; MPI_Bcast(&n, 1, MPI_INT, 0, comm); - if ((n == 0) || (nlines != mylines)) return 1; + if (n == 0) return 1; MPI_Bcast(buffer, n + 1, MPI_CHAR, 0, comm); return 0; } From c347de78501d7e9693842559c37e22e17f0bf6a1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 26 Jun 2023 16:12:15 -0400 Subject: [PATCH 041/247] improve error messages --- src/create_bonds.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/create_bonds.cpp b/src/create_bonds.cpp index 5355ce2b7c..fa063c7dc6 100644 --- a/src/create_bonds.cpp +++ b/src/create_bonds.cpp @@ -49,7 +49,7 @@ void CreateBonds::command(int narg, char **arg) if (atom->molecular != Atom::MOLECULAR) error->all(FLERR, "Cannot use create_bonds with non-molecular system"); - if (narg < 4) error->all(FLERR, "Illegal create_bonds command"); + if (narg < 4) utils::missing_cmd_args(FLERR, "create_bonds", error); // parse args @@ -58,38 +58,38 @@ void CreateBonds::command(int narg, char **arg) int iarg = 0; if (strcmp(arg[0], "many") == 0) { style = MANY; - if (narg != 6) error->all(FLERR, "Illegal create_bonds command"); + if (narg != 6) error->all(FLERR, "No optional keywords allowed with create_bonds many"); igroup = group->find(arg[1]); - if (igroup == -1) error->all(FLERR, "Cannot find create_bonds group ID"); + if (igroup == -1) error->all(FLERR, "Cannot find create_bonds first group ID {}",arg[1]); group1bit = group->bitmask[igroup]; igroup = group->find(arg[2]); - if (igroup == -1) error->all(FLERR, "Cannot find create_bonds group ID"); + if (igroup == -1) error->all(FLERR, "Cannot find create_bonds second group ID {}", arg[2]); group2bit = group->bitmask[igroup]; btype = utils::inumeric(FLERR, arg[3], false, lmp); rmin = utils::numeric(FLERR, arg[4], false, lmp); rmax = utils::numeric(FLERR, arg[5], false, lmp); - if (rmin > rmax) error->all(FLERR, "Illegal create_bonds command"); + if (rmin > rmax) error->all(FLERR, "Inconsistent cutoffs for create_bonds many"); iarg = 6; } else if (strcmp(arg[0], "single/bond") == 0) { style = SBOND; btype = utils::inumeric(FLERR, arg[1], false, lmp); batom1 = utils::tnumeric(FLERR, arg[2], false, lmp); batom2 = utils::tnumeric(FLERR, arg[3], false, lmp); - if (batom1 == batom2) error->all(FLERR, "Illegal create_bonds command"); + if (batom1 == batom2) error->all(FLERR, "Bond atoms must be different"); iarg = 4; } else if (strcmp(arg[0], "single/angle") == 0) { style = SANGLE; - if (narg < 5) error->all(FLERR, "Illegal create_bonds command"); + if (narg < 5) utils::missing_cmd_args(FLERR, "create_bonds single/angle", error); atype = utils::inumeric(FLERR, arg[1], false, lmp); aatom1 = utils::tnumeric(FLERR, arg[2], false, lmp); aatom2 = utils::tnumeric(FLERR, arg[3], false, lmp); aatom3 = utils::tnumeric(FLERR, arg[4], false, lmp); if ((aatom1 == aatom2) || (aatom1 == aatom3) || (aatom2 == aatom3)) - error->all(FLERR, "Illegal create_bonds command"); + error->all(FLERR, "Angle atoms must be different"); iarg = 5; } else if (strcmp(arg[0], "single/dihedral") == 0) { style = SDIHEDRAL; - if (narg < 6) error->all(FLERR, "Illegal create_bonds command"); + if (narg < 6) utils::missing_cmd_args(FLERR, "create_bonds single/dihedral", error); dtype = utils::inumeric(FLERR, arg[1], false, lmp); datom1 = utils::tnumeric(FLERR, arg[2], false, lmp); datom2 = utils::tnumeric(FLERR, arg[3], false, lmp); @@ -101,7 +101,7 @@ void CreateBonds::command(int narg, char **arg) iarg = 6; } else if (strcmp(arg[0], "single/improper") == 0) { style = SIMPROPER; - if (narg < 6) error->all(FLERR, "Illegal create_bonds command"); + if (narg < 6) utils::missing_cmd_args(FLERR, "create_bonds single/improper", error); dtype = utils::inumeric(FLERR, arg[1], false, lmp); datom1 = utils::tnumeric(FLERR, arg[2], false, lmp); datom2 = utils::tnumeric(FLERR, arg[3], false, lmp); From 906eecdbd7346b2921b01ec9f998f18e1c8886f0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 27 Jun 2023 17:53:06 -0400 Subject: [PATCH 042/247] clarify the temperature computation in compute temp --- doc/src/compute_temp.rst | 28 +++++++++++++-------- doc/utils/sphinx-config/false_positives.txt | 1 + 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/doc/src/compute_temp.rst b/doc/src/compute_temp.rst index 8f6f9f225f..e081280496 100644 --- a/doc/src/compute_temp.rst +++ b/doc/src/compute_temp.rst @@ -37,20 +37,24 @@ The temperature is calculated by the formula .. math:: - \text{KE} = \frac{\text{dim}}{2} N k_B T, + T = \frac{2 E_\mathrm{kin}}{N_\mathrm{DOF} k_B} \quad \mathrm{with} \quad + E_\mathrm{kin} = \sum^{N_\mathrm{atoms}}_{i=1} \frac{1}{2} m_i v^2_i \quad \mathrm{and} \quad + N_\mathrm{DOF} = n_\mathrm{dim} N_\mathrm{atoms} - n_\mathrm{dim} - N_\mathrm{fix DOFs} -where KE = total kinetic energy of the group of atoms (sum of -:math:`\frac12 m v^2`), dim = 2 or 3 is the dimensionality of the -simulation, :math:`N` is the number of atoms in the group, :math:`k_B` -is the Boltzmann constant, and :math:`T` is the absolute temperature. +where :math:`E_\mathrm{kin}` is the total kinetic energy of the group of +atoms, :math:`n_\mathrm{dim}` is the dimensionality of the simulation +(i.e. either 2 or 3), :math:`N_\mathrm{atoms}` is the number of atoms in +the group, :math:`N_\mathrm{fix DOFs}` is the number of degrees of +freedom removed by fix commands (see below), :math:`k_B` is the +Boltzmann constant, and :math:`T` is the resulting computed temperature. A kinetic energy tensor, stored as a six-element vector, is also calculated by this compute for use in the computation of a pressure -tensor. The formula for the components of the tensor is the same as -the above formula, except that :math:`v^2` is replaced by :math:`v_x -v_y` for the :math:`xy` component, and so on. The six components of -the vector are ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, -:math:`xz`, :math:`yz`. +tensor. The formula for the components of the tensor is the same as the +above expression for :math:`E_\mathrm{kin}`, except that :math:`v_i^2` is +replaced by :math:`v_{i,x} v_{i,y}` for the :math:`xy` component, and so on. +The six components of the vector are ordered :math:`xx`, :math:`yy`, +:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. The number of atoms contributing to the temperature is assumed to be constant for the duration of the run; use the *dynamic* option of the @@ -62,6 +66,10 @@ constrain molecular motion, such as :doc:`fix shake ` and atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the *extra* option of the :doc:`compute_modify ` command. +By default this *extra* component is initialized to +:math:`n_\mathrm{dim}` (as shown in the formula above) to represent the +degrees of freedom removed from a system due to its translation +invariance due to periodic boundary conditions. A compute of this style with the ID of "thermo_temp" is created when LAMMPS starts up, as if this command were in the input script: diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 5791288a06..a68cd2714f 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1559,6 +1559,7 @@ intramolecular ints inumeric inv +invariance invariants inversed invertible From a4cba99ff9851e5279e2521a45f2ce1e1d5dc2ca Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Tue, 27 Jun 2023 23:55:57 -0500 Subject: [PATCH 043/247] Attempted to update slabcorr() in pppm/dielectric --- src/DIELECTRIC/fix_polarize_bem_icc.cpp | 2 ++ src/DIELECTRIC/pppm_dielectric.cpp | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/DIELECTRIC/fix_polarize_bem_icc.cpp b/src/DIELECTRIC/fix_polarize_bem_icc.cpp index 2b5664e4f5..4dc7dd2669 100644 --- a/src/DIELECTRIC/fix_polarize_bem_icc.cpp +++ b/src/DIELECTRIC/fix_polarize_bem_icc.cpp @@ -455,6 +455,7 @@ void FixPolarizeBEMICC::set_dielectric_params(double ediff, double emean, double double *ed = atom->ed; double *em = atom->em; double *q = atom->q; + double *q_scaled = atom->q_scaled; double *epsilon = atom->epsilon; int *mask = atom->mask; int nlocal = atom->nlocal; @@ -466,6 +467,7 @@ void FixPolarizeBEMICC::set_dielectric_params(double ediff, double emean, double if (areai > 0) area[i] = areai; if (epsiloni > 0) epsilon[i] = epsiloni; if (set_charge) q[i] = qvalue; + q_scaled[i] = q[i] / epsilon[i]; } } } diff --git a/src/DIELECTRIC/pppm_dielectric.cpp b/src/DIELECTRIC/pppm_dielectric.cpp index b9ae1d65ff..e308cb0826 100644 --- a/src/DIELECTRIC/pppm_dielectric.cpp +++ b/src/DIELECTRIC/pppm_dielectric.cpp @@ -575,7 +575,7 @@ void PPPMDielectric::slabcorr() int nlocal = atom->nlocal; double dipole = 0.0; - for (int i = 0; i < nlocal; i++) dipole += q[i]*x[i][2]; + for (int i = 0; i < nlocal; i++) dipole += eps[i]*q[i]*x[i][2]; // sum local contributions to get global dipole moment @@ -588,7 +588,7 @@ void PPPMDielectric::slabcorr() double dipole_r2 = 0.0; if (eflag_atom || fabs(qsum) > SMALL) { for (int i = 0; i < nlocal; i++) - dipole_r2 += q[i]*x[i][2]*x[i][2]; + dipole_r2 += eps[i]*q[i]*x[i][2]*x[i][2]; // sum local contributions @@ -621,6 +621,6 @@ void PPPMDielectric::slabcorr() for (int i = 0; i < nlocal; i++) { f[i][2] += ffact * eps[i]*q[i]*(dipole_all - qsum*x[i][2]); - efield[i][2] += ffact * eps[i]*(dipole_all - qsum*x[i][2]); + efield[i][2] += ffact * (dipole_all - qsum*x[i][2]); } } From 5d027fc92c66e9875c165355f094dfac3adab74c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 28 Jun 2023 09:50:27 -0400 Subject: [PATCH 044/247] error out when many bonds creation cutoff is larger than periodic domain --- src/create_bonds.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/create_bonds.cpp b/src/create_bonds.cpp index fa063c7dc6..2960eda766 100644 --- a/src/create_bonds.cpp +++ b/src/create_bonds.cpp @@ -60,7 +60,7 @@ void CreateBonds::command(int narg, char **arg) style = MANY; if (narg != 6) error->all(FLERR, "No optional keywords allowed with create_bonds many"); igroup = group->find(arg[1]); - if (igroup == -1) error->all(FLERR, "Cannot find create_bonds first group ID {}",arg[1]); + if (igroup == -1) error->all(FLERR, "Cannot find create_bonds first group ID {}", arg[1]); group1bit = group->bitmask[igroup]; igroup = group->find(arg[2]); if (igroup == -1) error->all(FLERR, "Cannot find create_bonds second group ID {}", arg[2]); @@ -197,6 +197,10 @@ void CreateBonds::many() if (rmax > neighbor->cutneighmin && comm->me == 0) error->warning(FLERR, "Create_bonds max distance > minimum neighbor cutoff"); + if ((domain->xperiodic && (rmax > domain->xprd)) || + (domain->yperiodic && (rmax > domain->yprd)) || (domain->zperiodic && (rmax > domain->zprd))) + error->all(FLERR, "Bond creation cutoff is larger than periodic domain"); + // require special_bonds 1-2 weights = 0.0 and KSpace = nullptr // so that already bonded atom pairs do not appear in neighbor list // otherwise with newton_bond = 1, @@ -205,7 +209,7 @@ void CreateBonds::many() if (force->special_lj[1] != 0.0 || force->special_coul[1] != 0.0) error->all(FLERR, "Create_bonds command requires special_bonds 1-2 weights be 0.0"); - if (force->kspace) error->all(FLERR, "Create_bonds command requires no kspace_style be defined"); + if (force->kspace) error->all(FLERR, "Create_bonds command is incompatible with Kspace styles"); // setup domain, communication and neighboring // acquire ghosts and build standard neighbor lists From a50993dac1255e3fb39e7d2436c69f9a34d38581 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 28 Jun 2023 10:06:31 -0400 Subject: [PATCH 045/247] update docs for create_bonds --- doc/src/create_bonds.rst | 45 ++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/doc/src/create_bonds.rst b/doc/src/create_bonds.rst index d520f1a88e..53a9a1ca50 100644 --- a/doc/src/create_bonds.rst +++ b/doc/src/create_bonds.rst @@ -86,19 +86,20 @@ data file for a complex system of molecules. .. note:: - If the system has no bonds (angles, dihedrals, impropers) to begin with, - or if more bonds per atom are being added than currently exist, then you - must ensure that the number of bond types and the maximum number of - bonds per atom are set to large enough values, and similarly for - angles, dihedrals, and impropers, otherwise an error may occur when too many - bonds (angles, dihedrals, impropers) are added to an atom. If the - :doc:`read_data ` command is used to define the system, these - parameters can be set via the "bond types" and "extra bond per atom" - fields in the header section of the data file. If the - :doc:`create_box ` command is used to define the system, - these two parameters can be set via its optional *bond/types* and - *extra/bond/per/atom* arguments, and similarly for angles, dihedrals, and - impropers. See the doc pages for these two commands for details. + If the system has no bonds (angles, dihedrals, impropers) to begin + with, or if more bonds per atom are being added than currently exist, + then you must ensure that the number of bond types and the maximum + number of bonds per atom are set to large enough values, and + similarly for angles, dihedrals, impropers, and special neighbors, + otherwise an error may occur when too many bonds (angles, dihedrals, + impropers) are added to an atom. If the :doc:`read_data ` + command is used to define the system, these parameters can be set via + its optional *extra/bond/types*, *extra/bond/per/atom*, and similar + keywords to the command. If the :doc:`create_box ` + command is used to define the system, these two parameters can be set + via its optional *bond/types* and *extra/bond/per/atom* arguments, + and similarly for angles, dihedrals, and impropers. See the + corresponding documentation pages for these two commands for details. ---------- @@ -112,7 +113,7 @@ For a bond to be created, an :math:`I,J` pair of atoms must be a distance :math:`D` apart such that :math:`r_\text{min} \le D \le r_\text{max}`. The following settings must have been made in an input script before -this style is used: +the *many* style is used: * special_bonds weight for 1--2 interactions must be 0.0 * a :doc:`pair_style ` must be defined @@ -121,10 +122,13 @@ this style is used: skin :math:`\ge r_\text{max}` These settings are required so that a neighbor list can be created to -search for nearby atoms. Pairs of atoms that are already bonded -cannot appear in the neighbor list, to avoid creation of duplicate -bonds. The neighbor list for all atom type pairs must also extend to -a distance that encompasses the *rmax* for new bonds to create. +search for nearby atoms. Pairs of atoms that are already bonded cannot +appear in the neighbor list, to avoid creation of duplicate bonds. The +neighbor list for all atom type pairs must also extend to a distance +that encompasses the *rmax* for new bonds to create. When using +periodic boundary conditions, the box length in each periodic dimension +must be larger than *rmax*, so that no bonds are created between the +system and its own periodic image. .. note:: @@ -219,6 +223,11 @@ This command cannot be used with molecular systems defined using molecule template files via the :doc:`molecule ` and :doc:`atom_style template ` commands. +For style *many*, no :doc:`kspace style ` must be +defined. Also, the *rmax* value must be smaller than any periodic box +length and the neighbor list cutoff (largest pair cutoff plus neighbor +skin). + Related commands """""""""""""""" From b0b26d9d3a329c76b6ca8d9d164b28f9d597645e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 29 Jun 2023 07:32:52 -0400 Subject: [PATCH 046/247] silence compiler warning --- src/lammps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lammps.cpp b/src/lammps.cpp index 956793c20a..9ac4c98bc3 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -135,7 +135,7 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) : // append git descriptor info to update string when compiling development or maintenance version std::string update_string = UPDATE_STRING; - if (has_git_info() && (update_string == " - Development") || (update_string == " - Maintenance")) + if (has_git_info() && ((update_string == " - Development") || (update_string == " - Maintenance"))) update_string += fmt::format(" - {}", git_descriptor()); external_comm = 0; From 14462d8f8064884452b3ca3904b3c2ed58920eef Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 29 Jun 2023 16:13:16 -0400 Subject: [PATCH 047/247] join strings --- src/neighbor.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 006101da64..23b4b9984e 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -839,8 +839,7 @@ int Neighbor::init_pair() if (style == Neighbor::BIN) { for (i = 0; i < nrequest; i++) if (requests[i]->occasional && requests[i]->ghost) - error->all(FLERR,"Cannot request an occasional binned neighbor list " - "with ghost info"); + error->all(FLERR,"Cannot request an occasional binned neighbor list with ghost info"); } // morph requests in various ways @@ -2672,8 +2671,7 @@ void Neighbor::modify_params(int narg, char **arg) strcmp(arg[iarg+1],"molecule/intra") == 0) { if (iarg+3 > narg) utils::missing_cmd_args(FLERR, "neigh_modify exclude molecule", error); if (atom->molecule_flag == 0) - error->all(FLERR,"Neigh_modify exclude molecule " - "requires atom attribute molecule"); + error->all(FLERR,"Neigh_modify exclude molecule requires atom attribute molecule"); if (nex_mol == maxex_mol) { maxex_mol += EXDELTA; memory->grow(ex_mol_group,maxex_mol,"neigh:ex_mol_group"); From b7024288b66c3930d87b5cfc1dc825366e0a7390 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 29 Jun 2023 21:20:07 -0400 Subject: [PATCH 048/247] add check to disallow custom neighbor list cutoffs larger than the communication cutoff. --- src/neighbor.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 23b4b9984e..df1547e5eb 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -837,9 +837,20 @@ int Neighbor::init_pair() // similar to what vanilla Nbin::coord2atom() does now in atom2bin if (style == Neighbor::BIN) { - for (i = 0; i < nrequest; i++) + for (i = 0; i < nrequest; ++i) if (requests[i]->occasional && requests[i]->ghost) - error->all(FLERR,"Cannot request an occasional binned neighbor list with ghost info"); + error->all(FLERR, "Cannot request an occasional binned neighbor list with ghost info"); + } + + // check requests with a custom neighbor list cutoff to make sure the cutoff is within + // the communication cutoff. For perpetual lists, neighbor list skin is added later. + + const double comm_cutoff = comm->get_comm_cutoff(); + for (i = 0; i < nrequest; ++i) { + if (requests[i]->cut) { + if (comm_cutoff < (requests[i]->cutoff + (requests[i]->occasional ? 0.0 : skin))) + error->all(FLERR, "Custom neighbor list cutoff too large for communication cutoff"); + } } // morph requests in various ways From ab1e090e0e5aff5c943e25e64bc6e320d58c70a1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 29 Jun 2023 21:32:04 -0400 Subject: [PATCH 049/247] neighbor list skin is added to custom cutoff automatically --- src/KIM/pair_kim.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KIM/pair_kim.cpp b/src/KIM/pair_kim.cpp index ae2e6e6ea0..8ac6fe1f75 100644 --- a/src/KIM/pair_kim.cpp +++ b/src/KIM/pair_kim.cpp @@ -596,7 +596,7 @@ void PairKIM::init_style() if (kim_cutoff_values[i] <= neighbor->skin) error->all(FLERR,"Illegal neighbor request (force cutoff {:.3} <= skin {:.3})", kim_cutoff_values[i], neighbor->skin); - req->set_cutoff(kim_cutoff_values[i] + neighbor->skin); + req->set_cutoff(kim_cutoff_values[i]); } // increment instance_me in case of need to change the neighbor list // request settings From 02498925c57e86bbabdfc861fdf442babe10e03e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 29 Jun 2023 22:07:04 -0400 Subject: [PATCH 050/247] only fail on too small periodic domain in z direction if 3d system. --- src/create_bonds.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/create_bonds.cpp b/src/create_bonds.cpp index 2960eda766..13a99a182f 100644 --- a/src/create_bonds.cpp +++ b/src/create_bonds.cpp @@ -198,7 +198,8 @@ void CreateBonds::many() error->warning(FLERR, "Create_bonds max distance > minimum neighbor cutoff"); if ((domain->xperiodic && (rmax > domain->xprd)) || - (domain->yperiodic && (rmax > domain->yprd)) || (domain->zperiodic && (rmax > domain->zprd))) + (domain->yperiodic && (rmax > domain->yprd)) || + ((domain->dimension == 3) && domain->zperiodic && (rmax > domain->zprd))) error->all(FLERR, "Bond creation cutoff is larger than periodic domain"); // require special_bonds 1-2 weights = 0.0 and KSpace = nullptr From 83528f02e83cdfc84e627f7a9f4b54c766c52bcf Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 29 Jun 2023 22:10:31 -0400 Subject: [PATCH 051/247] whitespace --- examples/balance/in.balance | 44 ++++++------- examples/balance/in.balance.bond.fast | 44 ++++++------- examples/balance/in.balance.bond.slow | 44 ++++++------- examples/balance/in.balance.clock.dynamic | 68 ++++++++++---------- examples/balance/in.balance.clock.static | 62 +++++++++--------- examples/balance/in.balance.group.dynamic | 56 ++++++++-------- examples/balance/in.balance.group.static | 62 +++++++++--------- examples/balance/in.balance.kspace | 52 +++++++-------- examples/balance/in.balance.neigh.dynamic | 66 +++++++++---------- examples/balance/in.balance.neigh.rcb | 66 +++++++++---------- examples/balance/in.balance.neigh.static | 58 ++++++++--------- examples/balance/in.balance.var.dynamic | 78 +++++++++++------------ 12 files changed, 350 insertions(+), 350 deletions(-) diff --git a/examples/balance/in.balance b/examples/balance/in.balance index e0fb5078aa..3a1298acfd 100644 --- a/examples/balance/in.balance +++ b/examples/balance/in.balance @@ -2,34 +2,34 @@ variable b index 0 -variable x index 50 -variable y index 20 -variable d index 20 -variable v index 5 -variable w index 2 - -units lj +variable x index 50 +variable y index 20 +variable d index 20 +variable v index 5 +variable w index 2 + +units lj dimension 2 -atom_style atomic +atom_style atomic boundary f f p -lattice hex 0.85 -region box block 0 $x 0 $y -0.5 0.5 -create_box 1 box -region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2) -create_atoms 1 region circle -mass 1 1.0 +lattice hex 0.85 +region box block 0 $x 0 $y -0.5 0.5 +create_box 1 box +region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2) +create_atoms 1 region circle +mass 1 1.0 -velocity all create 0.5 87287 loop geom +velocity all create 0.5 87287 loop geom velocity all set $v $w 0 sum yes -pair_style lj/cut 2.5 -pair_coeff 1 1 10.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff 1 1 10.0 1.0 2.5 -neighbor 0.3 bin -neigh_modify delay 0 every 1 check yes +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes -fix 1 all nve +fix 1 all nve fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi $x 1 1 2.5 fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi $y 1 1 2.5 @@ -49,6 +49,6 @@ fix 10 all balance 50 0.9 rcb #dump_modify 3 pad 5 amap 0 10 sa 1 10 ${colors} thermo_style custom step temp epair press f_10[3] f_10 -thermo 100 +thermo 100 -run 10000 +run 10000 diff --git a/examples/balance/in.balance.bond.fast b/examples/balance/in.balance.bond.fast index 3bfcea033e..ff54fb94cc 100644 --- a/examples/balance/in.balance.bond.fast +++ b/examples/balance/in.balance.bond.fast @@ -2,29 +2,29 @@ variable b index 0 -variable x index 50 -variable y index 20 -variable d index 20 -variable v index 5 -variable w index 2 - -units lj +variable x index 50 +variable y index 20 +variable d index 20 +variable v index 5 +variable w index 2 + +units lj dimension 2 -atom_style bond +atom_style bond boundary f f p -lattice hex 0.85 -region box block 0 $x 0 $y -0.5 0.5 -create_box 1 box bond/types 1 extra/bond/per/atom 6 -region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2) -create_atoms 1 region circle -mass 1 1.0 +lattice hex 0.85 +region box block 0 $x 0 $y -0.5 0.5 +create_box 1 box bond/types 1 extra/bond/per/atom 6 +region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2) +create_atoms 1 region circle +mass 1 1.0 -velocity all create 0.5 87287 loop geom +velocity all create 0.5 87287 loop geom velocity all set $v $w 0 sum yes -pair_style lj/cut 2.5 -pair_coeff 1 1 10.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff 1 1 10.0 1.0 2.5 bond_style harmonic bond_coeff 1 10.0 1.2 @@ -34,10 +34,10 @@ bond_coeff 1 10.0 1.2 special_bonds lj/coul 0 1 1 create_bonds many all all 1 1.0 1.5 -neighbor 0.3 bin -neigh_modify delay 0 every 1 check yes +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes -fix 1 all nve +fix 1 all nve fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi $x 1 1 2.5 fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi $y 1 1 2.5 @@ -58,6 +58,6 @@ fix 10 all balance 50 0.9 rcb #dump_modify 3 pad 5 amap 0 10 sa 1 10 ${colors} thermo_style custom step temp epair press f_10[3] f_10 -thermo 100 +thermo 100 -run 10000 +run 10000 diff --git a/examples/balance/in.balance.bond.slow b/examples/balance/in.balance.bond.slow index 68b1110c3d..1fd4ae4c85 100644 --- a/examples/balance/in.balance.bond.slow +++ b/examples/balance/in.balance.bond.slow @@ -2,42 +2,42 @@ variable b index 0 -variable x index 50 -variable y index 20 -variable d index 20 +variable x index 50 +variable y index 20 +variable d index 20 # careful not to slam into wall too hard -variable v index 0.3 -variable w index 0.08 - -units lj +variable v index 0.3 +variable w index 0.08 + +units lj dimension 2 -atom_style bond +atom_style bond boundary f f p -lattice hex 0.85 -region box block 0 $x 0 $y -0.5 0.5 -create_box 1 box bond/types 1 extra/bond/per/atom 6 -region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2) -create_atoms 1 region circle -mass 1 1.0 +lattice hex 0.85 +region box block 0 $x 0 $y -0.5 0.5 +create_box 1 box bond/types 1 extra/bond/per/atom 6 +region circle sphere $(v_d/2+1) $(v_d/2/sqrt(3.0)+1) 0.0 $(v_d/2) +create_atoms 1 region circle +mass 1 1.0 -velocity all create 0.5 87287 loop geom +velocity all create 0.5 87287 loop geom velocity all set $v $w 0 sum yes -pair_style lj/cut 2.5 -pair_coeff 1 1 10.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff 1 1 10.0 1.0 2.5 bond_style harmonic bond_coeff 1 10.0 1.2 create_bonds many all all 1 1.0 1.5 -neighbor 0.3 bin -neigh_modify delay 0 every 1 check yes +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes -fix 1 all nve +fix 1 all nve fix 2 all wall/lj93 xlo 0.0 1 1 2.5 xhi $x 1 1 2.5 fix 3 all wall/lj93 ylo 0.0 1 1 2.5 yhi $y 1 1 2.5 @@ -57,6 +57,6 @@ fix 10 all balance 50 0.9 rcb #dump_modify 3 pad 5 amap 0 10 sa 1 10 ${colors} thermo_style custom step temp epair press f_10[3] f_10 -thermo 100 +thermo 100 -run 40000 +run 40000 diff --git a/examples/balance/in.balance.clock.dynamic b/examples/balance/in.balance.clock.dynamic index a0bebd518d..aafaf34326 100644 --- a/examples/balance/in.balance.clock.dynamic +++ b/examples/balance/in.balance.clock.dynamic @@ -1,54 +1,54 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic processors * 1 1 -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 3 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 3 box +create_atoms 1 box +mass * 1.0 -region long block 3 6 0 10 0 10 +region long block 3 6 0 10 0 10 set region long type 2 -velocity all create 1.0 87287 +velocity all create 1.0 87287 -pair_style lj/cut 2.5 -pair_coeff * * 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 2.5 pair_coeff * 2 1.0 1.0 5.0 -neighbor 0.3 bin -neigh_modify every 2 delay 4 check yes -fix p all property/atom d_WEIGHT -compute p all property/atom d_WEIGHT -fix 0 all balance 50 1.0 shift x 10 1.0 & +neighbor 0.3 bin +neigh_modify every 2 delay 4 check yes +fix p all property/atom d_WEIGHT +compute p all property/atom d_WEIGHT +fix 0 all balance 50 1.0 shift x 10 1.0 & weight time 1.0 weight store WEIGHT -variable maximb equal f_0[1] -variable iter equal f_0[2] -variable prev equal f_0[3] -variable final equal f_0 +variable maximb equal f_0[1] +variable iter equal f_0[2] +variable prev equal f_0[3] +variable final equal f_0 -#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}" +#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}" -fix 1 all nve +fix 1 all nve -#dump id all atom 50 dump.melt -#dump id all custom 50 dump.lammpstrj id type x y z c_p +#dump id all atom 50 dump.melt +#dump id all custom 50 dump.lammpstrj id type x y z c_p -#dump 2 all image 25 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 25 movie.mpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 +#dump 3 all movie 25 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -thermo 50 -run 500 -run 500 -fix 0 all balance 50 1.0 shift x 5 1.0 & +thermo 50 +run 500 +run 500 +fix 0 all balance 50 1.0 shift x 5 1.0 & weight neigh 0.5 weight time 0.66 weight store WEIGHT run 500 run 500 diff --git a/examples/balance/in.balance.clock.static b/examples/balance/in.balance.clock.static index 6301e56fd0..519e567403 100644 --- a/examples/balance/in.balance.clock.static +++ b/examples/balance/in.balance.clock.static @@ -1,48 +1,48 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic processors * 1 1 -variable factor index 1.0 +variable factor index 1.0 -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 3 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 3 box +create_atoms 1 box +mass * 1.0 -region long block 3 6 0 10 0 10 +region long block 3 6 0 10 0 10 set region long type 2 -velocity all create 1.0 87287 +velocity all create 1.0 87287 -pair_style lj/cut 2.5 -pair_coeff * * 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 2.5 pair_coeff * 2 1.0 1.0 5.0 -neighbor 0.3 bin -neigh_modify every 2 delay 4 check yes +neighbor 0.3 bin +neigh_modify every 2 delay 4 check yes -group fast type 1 -group slow type 2 -balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt +group fast type 1 +group slow type 2 +balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt -fix 1 all nve +fix 1 all nve -#dump id all atom 50 dump.melt +#dump id all atom 50 dump.melt -#dump 2 all image 25 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 25 movie.mpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 +#dump 3 all movie 25 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -thermo 50 -run 250 -balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt -run 250 -balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt -run 250 +thermo 50 +run 250 +balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt +run 250 +balance 1.0 shift x 5 1.1 weight time 1.0 # out unweighted.txt +run 250 diff --git a/examples/balance/in.balance.group.dynamic b/examples/balance/in.balance.group.dynamic index 3e2b44f897..04dc349197 100644 --- a/examples/balance/in.balance.group.dynamic +++ b/examples/balance/in.balance.group.dynamic @@ -1,47 +1,47 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic processors * 1 1 -variable factor index 1.0 +variable factor index 1.0 -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 3 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 3 box +create_atoms 1 box +mass * 1.0 -region long block 3 6 0 10 0 10 +region long block 3 6 0 10 0 10 set region long type 2 -velocity all create 1.0 87287 +velocity all create 1.0 87287 -pair_style lj/cut 2.5 -pair_coeff * * 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 2.5 pair_coeff * 2 1.0 1.0 5.0 -neighbor 0.3 bin -neigh_modify every 2 delay 4 check yes +neighbor 0.3 bin +neigh_modify every 2 delay 4 check yes -group fast type 1 -group slow type 2 -balance 1.0 shift x 5 1.1 & +group fast type 1 +group slow type 2 +balance 1.0 shift x 5 1.1 & weight group 2 fast 1.0 slow ${factor} # out weighted.txt -fix 0 all balance 10 1.0 shift x 5 1.1 & +fix 0 all balance 10 1.0 shift x 5 1.1 & weight group 2 fast 1.0 slow ${factor} -fix 1 all nve +fix 1 all nve -#dump id all atom 50 dump.melt +#dump id all atom 50 dump.melt -#dump 2 all image 25 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 25 movie.mpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 +#dump 3 all movie 25 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -thermo 50 -run 250 +thermo 50 +run 250 diff --git a/examples/balance/in.balance.group.static b/examples/balance/in.balance.group.static index 92ff3e8cb4..ad45c5381d 100644 --- a/examples/balance/in.balance.group.static +++ b/examples/balance/in.balance.group.static @@ -1,54 +1,54 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic processors * 1 1 -variable factor index 1.0 +variable factor index 1.0 -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 3 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 3 box +create_atoms 1 box +mass * 1.0 -region long block 3 6 0 10 0 10 +region long block 3 6 0 10 0 10 set region long type 2 -velocity all create 1.0 87287 +velocity all create 1.0 87287 -pair_style lj/cut 2.5 -pair_coeff * * 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 2.5 pair_coeff * 2 1.0 1.0 5.0 -neighbor 0.3 bin -neigh_modify every 2 delay 4 check yes +neighbor 0.3 bin +neigh_modify every 2 delay 4 check yes -balance 1.0 shift x 5 1.1 # out unweighted.txt +balance 1.0 shift x 5 1.1 # out unweighted.txt -balance 1.0 x uniform +balance 1.0 x uniform variable weight atom (type==1)*1.0+(type==2)*v_factor -balance 1.0 shift x 5 1.1 weight var weight # out weighted_var.txt +balance 1.0 shift x 5 1.1 weight var weight # out weighted_var.txt -balance 1.0 x uniform +balance 1.0 x uniform -group fast type 1 -group slow type 2 -balance 1.0 shift x 5 1.1 & +group fast type 1 +group slow type 2 +balance 1.0 shift x 5 1.1 & weight group 2 fast 1.0 slow ${factor} # out weighted_group.txt -fix 1 all nve +fix 1 all nve -#dump id all atom 50 dump.melt +#dump id all atom 50 dump.melt -#dump 2 all image 25 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 25 movie.mpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 +#dump 3 all movie 25 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -thermo 50 -run 250 +thermo 50 +run 250 diff --git a/examples/balance/in.balance.kspace b/examples/balance/in.balance.kspace index 5a2de11c70..c89024d76f 100644 --- a/examples/balance/in.balance.kspace +++ b/examples/balance/in.balance.kspace @@ -1,47 +1,47 @@ # 3d Lennard-Jones melt -units lj -#atom_style charge +units lj +#atom_style charge processors * 1 1 -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 3 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 3 box +create_atoms 1 box +mass * 1.0 -region long block 3 6 0 10 0 10 +region long block 3 6 0 10 0 10 set region long type 2 #set type 1:2 charge 0.0 -velocity all create 1.0 87287 +velocity all create 1.0 87287 -pair_style lj/long/coul/long long off 2.5 -pair_coeff * * 1.0 1.0 2.5 +pair_style lj/long/coul/long long off 2.5 +pair_coeff * * 1.0 1.0 2.5 pair_coeff * 2 1.0 1.0 5.0 kspace_style pppm/disp 1.0e-4 kspace_modify gewald/disp 0.1 -neighbor 0.3 bin -neigh_modify every 2 delay 4 check yes +neighbor 0.3 bin +neigh_modify every 2 delay 4 check yes -group fast type 1 -group slow type 2 -fix 0 all balance 20 1.0 shift x 5 1.0 & +group fast type 1 +group slow type 2 +fix 0 all balance 20 1.0 shift x 5 1.0 & weight group 2 fast 1.0 slow 2.0 weight time 0.66 -fix 1 all nve +fix 1 all nve -#dump id all atom 50 dump.melt +#dump id all atom 50 dump.melt -#dump 2 all image 25 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 25 movie.mpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 +#dump 3 all movie 25 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -thermo 50 -run 500 +thermo 50 +run 500 diff --git a/examples/balance/in.balance.neigh.dynamic b/examples/balance/in.balance.neigh.dynamic index 395f9f37eb..9217a1c3a6 100644 --- a/examples/balance/in.balance.neigh.dynamic +++ b/examples/balance/in.balance.neigh.dynamic @@ -1,53 +1,53 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic processors * 1 1 -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 3 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 3 box +create_atoms 1 box +mass * 1.0 -region long block 3 6 0 10 0 10 +region long block 3 6 0 10 0 10 set region long type 2 -velocity all create 1.0 87287 +velocity all create 1.0 87287 -pair_style lj/cut 2.5 -pair_coeff * * 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 2.5 pair_coeff * 2 1.0 1.0 5.0 -neighbor 0.3 bin -neigh_modify every 2 delay 4 check yes -fix p all property/atom d_WEIGHT -fix 0 all balance 50 1.0 shift x 5 1.0 & +neighbor 0.3 bin +neigh_modify every 2 delay 4 check yes +fix p all property/atom d_WEIGHT +fix 0 all balance 50 1.0 shift x 5 1.0 & weight neigh 0.8 weight store WEIGHT -compute p all property/atom d_WEIGHT -variable maximb equal f_0[1] -variable iter equal f_0[2] -variable prev equal f_0[3] -variable final equal f_0 +compute p all property/atom d_WEIGHT +variable maximb equal f_0[1] +variable iter equal f_0[2] +variable prev equal f_0[3] +variable final equal f_0 -#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}" +#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}" -fix 1 all nve +fix 1 all nve -#dump id all atom 50 dump.melt -#dump id all custom 50 dump.lammpstrj id type x y z c_p +#dump id all atom 50 dump.melt +#dump id all custom 50 dump.lammpstrj id type x y z c_p -#dump 2 all image 25 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 25 movie.mp4 c_p type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 amap 0.0 2.0 cf 0.1 3 min blue 0.5 green max red +#dump 3 all movie 25 movie.mp4 c_p type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 amap 0.0 2.0 cf 0.1 3 min blue 0.5 green max red -thermo 50 -run 500 -run 500 +thermo 50 +run 500 +run 500 run 500 run 500 diff --git a/examples/balance/in.balance.neigh.rcb b/examples/balance/in.balance.neigh.rcb index 0b2ca59441..040e47fcad 100644 --- a/examples/balance/in.balance.neigh.rcb +++ b/examples/balance/in.balance.neigh.rcb @@ -1,53 +1,53 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic processors * 1 1 -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 3 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 3 box +create_atoms 1 box +mass * 1.0 -region long block 3 6 0 10 0 10 +region long block 3 6 0 10 0 10 set region long type 2 -velocity all create 1.0 87287 +velocity all create 1.0 87287 -pair_style lj/cut 2.5 -pair_coeff * * 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 2.5 pair_coeff * 2 1.0 1.0 5.0 -comm_style tiled +comm_style tiled -neighbor 0.3 bin -neigh_modify every 2 delay 4 check yes -fix p all property/atom d_WEIGHT -fix 0 all balance 50 1.0 rcb weight neigh 0.8 weight store WEIGHT -compute p all property/atom d_WEIGHT -variable maximb equal f_0[1] -variable iter equal f_0[2] -variable prev equal f_0[3] -variable final equal f_0 +neighbor 0.3 bin +neigh_modify every 2 delay 4 check yes +fix p all property/atom d_WEIGHT +fix 0 all balance 50 1.0 rcb weight neigh 0.8 weight store WEIGHT +compute p all property/atom d_WEIGHT +variable maximb equal f_0[1] +variable iter equal f_0[2] +variable prev equal f_0[3] +variable final equal f_0 -#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}" +#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}" -fix 1 all nve +fix 1 all nve -#dump id all atom 50 dump.melt -#dump id all custom 50 dump.lammpstrj id type x y z c_p +#dump id all atom 50 dump.melt +#dump id all custom 50 dump.lammpstrj id type x y z c_p -#dump 2 all image 25 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 25 movie.mpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 +#dump 3 all movie 25 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -thermo 50 +thermo 50 -run 250 +run 250 run 250 diff --git a/examples/balance/in.balance.neigh.static b/examples/balance/in.balance.neigh.static index c3c061bcbe..28fd5eaa9b 100644 --- a/examples/balance/in.balance.neigh.static +++ b/examples/balance/in.balance.neigh.static @@ -1,51 +1,51 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic processors * 1 1 -variable factor index 1.0 +variable factor index 1.0 -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 3 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 3 box +create_atoms 1 box +mass * 1.0 -region long block 3 6 0 10 0 10 +region long block 3 6 0 10 0 10 set region long type 2 -velocity all create 1.0 87287 +velocity all create 1.0 87287 -pair_style lj/cut 2.5 -pair_coeff * * 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 2.5 pair_coeff * 2 1.0 1.0 5.0 -neighbor 0.3 bin -neigh_modify every 2 delay 4 check yes +neighbor 0.3 bin +neigh_modify every 2 delay 4 check yes -balance 1.0 shift x 10 1.0 weight neigh 0.8 # out weighted_var.txt +balance 1.0 shift x 10 1.0 weight neigh 0.8 # out weighted_var.txt -fix 1 all nve +fix 1 all nve -#dump id all atom 50 dump.melt +#dump id all atom 50 dump.melt -#dump 2 all image 25 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 25 movie.mpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 +#dump 3 all movie 25 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -thermo 50 -run 250 post no -balance 1.0 shift x 10 1.0 weight neigh 0.8 +thermo 50 run 250 post no -balance 1.0 shift x 10 1.0 weight neigh 0.8 +balance 1.0 shift x 10 1.0 weight neigh 0.8 run 250 post no -balance 1.0 shift x 10 1.0 weight neigh 0.8 weight time 0.6 +balance 1.0 shift x 10 1.0 weight neigh 0.8 +run 250 post no +balance 1.0 shift x 10 1.0 weight neigh 0.8 weight time 0.6 run 250 -balance 1.0 shift x 10 1.0 weight neigh 0.8 weight time 0.6 +balance 1.0 shift x 10 1.0 weight neigh 0.8 weight time 0.6 run 250 diff --git a/examples/balance/in.balance.var.dynamic b/examples/balance/in.balance.var.dynamic index 0c49106cdf..846c0c1fdb 100644 --- a/examples/balance/in.balance.var.dynamic +++ b/examples/balance/in.balance.var.dynamic @@ -1,65 +1,65 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic processors * 1 1 -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 3 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 3 box +create_atoms 1 box +mass * 1.0 -region long block 3 6 0 10 0 10 +region long block 3 6 0 10 0 10 set region long type 2 -velocity all create 1.0 87287 +velocity all create 1.0 87287 -pair_style lj/cut 2.5 -pair_coeff * * 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 2.5 pair_coeff * 2 1.0 1.0 5.0 -neighbor 0.3 bin -neigh_modify every 2 delay 4 check yes -fix p all property/atom d_WEIGHT -compute p all property/atom d_WEIGHT +neighbor 0.3 bin +neigh_modify every 2 delay 4 check yes +fix p all property/atom d_WEIGHT +compute p all property/atom d_WEIGHT -group fast type 1 -group slow type 2 -balance 1.0 shift x 10 1.0 & +group fast type 1 +group slow type 2 +balance 1.0 shift x 10 1.0 & weight group 2 fast 0.8 slow 2.5 weight store WEIGHT -variable lastweight atom c_p +variable lastweight atom c_p -fix 0 all balance 50 1.0 shift x 10 1.0 & +fix 0 all balance 50 1.0 shift x 10 1.0 & weight var lastweight weight time 0.5 weight store WEIGHT -variable maximb equal f_0[1] -variable iter equal f_0[2] -variable prev equal f_0[3] -variable final equal f_0 +variable maximb equal f_0[1] +variable iter equal f_0[2] +variable prev equal f_0[3] +variable final equal f_0 -#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}" +#fix 3 all print 50 "${iter} ${prev} ${final} ${maximb}" -fix 1 all nve +fix 1 all nve -#dump id all atom 50 dump.melt -#dump id all custom 50 dump.lammpstrj id type x y z c_p +#dump id all atom 50 dump.melt +#dump id all custom 50 dump.lammpstrj id type x y z c_p -#dump 2 all image 25 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 25 movie.mpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 +#dump 3 all movie 25 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -thermo 50 -run 500 -run 500 +thermo 50 +run 500 +run 500 -balance 1.0 shift x 10 1.0 & +balance 1.0 shift x 10 1.0 & weight group 2 fast 0.8 slow 2.5 weight store WEIGHT -fix 0 all balance 50 1.0 shift x 5 1.0 & +fix 0 all balance 50 1.0 shift x 5 1.0 & weight var lastweight weight neigh 0.5 weight store WEIGHT run 500 From 55918ebabf2d18d43813dd5bfa81fc1a34aefb05 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 30 Jun 2023 16:17:04 -0400 Subject: [PATCH 052/247] sphinx-tabs 3.4.1 is now available directly --- doc/utils/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/utils/requirements.txt b/doc/utils/requirements.txt index 3f7bc065d0..9c8522948b 100644 --- a/doc/utils/requirements.txt +++ b/doc/utils/requirements.txt @@ -2,7 +2,7 @@ Sphinx >= 5.3.0, <7.1.0 sphinxcontrib-spelling sphinxcontrib-jquery git+https://github.com/akohlmey/sphinx-fortran@parallel-read -git+https://github.com/executablebooks/sphinx-tabs@v3.4.1 +sphinx-tabs>=3.4.1 breathe Pygments six From c1213c5222607860dda764b5915afd4d36092f35 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 30 Jun 2023 16:17:47 -0400 Subject: [PATCH 053/247] use dynamic/dof and extra/dof consistently. remove compatibility note in docs. --- doc/src/compute_modify.rst | 37 +++--- doc/src/compute_rdf.rst | 2 +- doc/src/compute_temp_asphere.rst | 49 ++++---- doc/src/compute_temp_body.rst | 16 +-- doc/src/compute_temp_drude.rst | 3 +- doc/src/compute_temp_sphere.rst | 35 +++--- doc/src/fix_charge_regulation.rst | 2 +- doc/src/fix_deposit.rst | 25 ++-- doc/src/fix_evaporate.rst | 10 +- doc/src/fix_gcmc.rst | 114 +++++++++--------- doc/src/fix_modify.rst | 33 ++--- doc/src/fix_pour.rst | 22 ++-- .../PACKAGES/atc/cauchy_born/in.flying_cube | 16 +-- .../PACKAGES/atc/cauchy_born/in.ftcb_constV | 24 ++-- examples/PACKAGES/atc/fluids/in.bar1d_fluids | 84 ++++++------- examples/PACKAGES/atc/fluids/in.concentration | 76 ++++++------ examples/PACKAGES/atc/fluids/in.shear_flow | 64 +++++----- examples/PACKAGES/atc/hardy/in.eshelby_static | 42 +++---- examples/PACKAGES/atc/hardy/in.nvt | 26 ++-- examples/PACKAGES/atc/thermal/in.bar1d | 76 ++++++------ .../PACKAGES/atc/thermal/in.bar1d_all_atoms | 84 ++++++------- .../PACKAGES/atc/thermal/in.bar1d_combined | 74 ++++++------ examples/PACKAGES/atc/thermal/in.bar1d_flux | 70 +++++------ .../PACKAGES/atc/thermal/in.bar1d_frac_step | 58 ++++----- examples/PACKAGES/atc/thermal/in.bar1d_hoover | 80 ++++++------ .../PACKAGES/atc/thermal/in.bar1d_interpolate | 74 ++++++------ examples/PACKAGES/atc/thermal/in.bar1d_lumped | 72 +++++------ .../atc/two_temperature/in.uniform_heating | 42 +++---- .../PACKAGES/charge_regulation/in.chreg-acid | 2 +- .../charge_regulation/in.chreg-acid-real | 14 +-- .../charge_regulation/in.chreg-polymer | 2 +- examples/mc/in.gcmc.lj | 48 ++++---- 32 files changed, 688 insertions(+), 688 deletions(-) diff --git a/doc/src/compute_modify.rst b/doc/src/compute_modify.rst index 2c5f7d0e8e..028eb8b66d 100644 --- a/doc/src/compute_modify.rst +++ b/doc/src/compute_modify.rst @@ -12,16 +12,14 @@ Syntax * compute-ID = ID of the compute to modify * one or more keyword/value pairs may be listed -* keyword = *extra/dof* or *extra* or *dynamic/dof* or *dynamic* +* keyword = *extra/dof* or *dynamic/dof* .. parsed-literal:: *extra/dof* value = N N = # of extra degrees of freedom to subtract - *extra* syntax is identical to *extra/dof*, will be disabled at some point *dynamic/dof* value = *yes* or *no* yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature - *dynamic* syntax is identical to *dynamic/dof*, will be disabled at some point Examples """""""" @@ -37,19 +35,18 @@ Description Modify one or more parameters of a previously defined compute. Not all compute styles support all parameters. -The *extra/dof* or *extra* keyword refers to how many degrees of -freedom are subtracted (typically from :math:`3N`) as a normalizing -factor in a temperature computation. Only computes that compute a -temperature use this option. The default is 2 or 3 for :doc:`2d or 3d -systems ` which is a correction factor for an ensemble of -velocities with zero total linear momentum. For compute temp/partial, -if one or more velocity components are excluded, the value used for -*extra* is scaled accordingly. You can use a negative number for the -*extra* parameter if you need to add degrees-of-freedom. See the -:doc:`compute temp/asphere ` command for an -example. +The *extra/dof* keyword refers to how many degrees of freedom are +subtracted (typically from :math:`3N`) as a normalizing factor in a +temperature computation. Only computes that compute a temperature use +this option. The default is 2 or 3 for :doc:`2d or 3d systems +` which is a correction factor for an ensemble of velocities +with zero total linear momentum. For compute temp/partial, if one or +more velocity components are excluded, the value used for *extra/dof* is +scaled accordingly. You can use a negative number for the *extra/dof* +parameter if you need to add degrees-of-freedom. See the :doc:`compute +temp/asphere ` command for an example. -The *dynamic/dof* or *dynamic* keyword determines whether the number +The *dynamic/dof* keyword determines whether the number of atoms :math:`N` in the compute group and their associated degrees of freedom (DOF) are re-computed each time a temperature is computed. Only compute styles that calculate a temperature use this option. By @@ -61,12 +58,6 @@ are adding atoms or molecules to the system (see the :doc:`fix pour `), then this option should be used to ensure the temperature is correctly normalized. -.. note:: - - The *extra* and *dynamic* keywords should not be used as they - are deprecated (March 2017) and will eventually be disabled. Instead, - use the equivalent *extra/dof* and *dynamic/dof* keywords. - Restrictions """""""""""" none @@ -79,5 +70,5 @@ Related commands Default """"""" -The option defaults are extra/dof = 2 or 3 for 2d or 3d systems and -dynamic/dof = *no*. +The option defaults are extra/dof = 2 or 3 for 2d or 3d systems, +respectively, and dynamic/dof = *no*. diff --git a/doc/src/compute_rdf.rst b/doc/src/compute_rdf.rst index 88bd7ec74c..ed73800f82 100644 --- a/doc/src/compute_rdf.rst +++ b/doc/src/compute_rdf.rst @@ -202,7 +202,7 @@ change from zero to one at the location of the spike in :math:`g(r)`. parallel efficiency and scaling. For systems, where only the type of atoms changes (e.g., when using :doc:`fix atom/swap `), you need to explicitly request the dynamic normalization updates - via :doc:`compute_modify dynamic yes ` + via :doc:`compute_modify dynamic/dof yes ` Related commands """""""""""""""" diff --git a/doc/src/compute_temp_asphere.rst b/doc/src/compute_temp_asphere.rst index cba52a68b4..5741db76aa 100644 --- a/doc/src/compute_temp_asphere.rst +++ b/doc/src/compute_temp_asphere.rst @@ -49,25 +49,26 @@ rotational). .. note:: - This choice for degrees of freedom (DOF) assumes that all - finite-size aspherical or spherical particles in your model will - freely rotate, sampling all their rotational DOF. It is possible to - use a combination of interaction potentials and fixes that induce no - torque or otherwise constrain some of all of your particles so that - this is not the case. Then there are fewer DOF and you should use the - :doc:`compute_modify extra ` command to adjust the DOF - accordingly. + This choice for degrees of freedom (DOF) assumes that all finite-size + aspherical or spherical particles in your model will freely rotate, + sampling all their rotational DOF. It is possible to use a + combination of interaction potentials and fixes that induce no torque + or otherwise constrain some of all of your particles so that this is + not the case. Then there are fewer DOF and you should use the + :doc:`compute_modify extra/dof ` command to adjust + the DOF accordingly. For example, an aspherical particle with all three of its shape -parameters the same is a sphere. If it does not rotate, then it -should have 3 DOF instead of 6 in 3d (or two instead of three in 2d). -A uniaxial aspherical particle has two of its three shape parameters the +parameters the same is a sphere. If it does not rotate, then it should +have 3 DOF instead of 6 in 3d (or two instead of three in 2d). A +uniaxial aspherical particle has two of its three shape parameters the same. If it does not rotate around the axis perpendicular to its circular cross section, then it should have 5 DOF instead of 6 in 3d. -The latter is the case for uniaxial ellipsoids in a :doc:`GayBerne model ` since there is no induced torque around the -optical axis. It will also be the case for biaxial ellipsoids when -exactly two of the semiaxes have the same length and the corresponding -relative well depths are equal. +The latter is the case for uniaxial ellipsoids in a :doc:`GayBerne model +` since there is no induced torque around the optical +axis. It will also be the case for biaxial ellipsoids when exactly two +of the semiaxes have the same length and the corresponding relative well +depths are equal. The translational kinetic energy is computed the same as is described by the :doc:`compute temp ` command. The rotational @@ -90,15 +91,17 @@ inertia tensor are used. The six components of the vector are ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. The number of atoms contributing to the temperature is assumed to be -constant for the duration of the run; use the *dynamic* option of the -:doc:`compute_modify ` command if this is not the case. +constant for the duration of the run; use the *dynamic/dof* option of +the :doc:`compute_modify ` command if this is not the +case. -This compute subtracts out translational degrees-of-freedom due to -fixes that constrain molecular motion, such as :doc:`fix shake ` and :doc:`fix rigid `. This means the -temperature of groups of atoms that include these constraints will be -computed correctly. If needed, the subtracted degrees-of-freedom can -be altered using the *extra* option of the -:doc:`compute_modify ` command. +This compute subtracts out translational degrees-of-freedom due to fixes +that constrain molecular motion, such as :doc:`fix shake ` +and :doc:`fix rigid `. This means the temperature of groups +of atoms that include these constraints will be computed correctly. If +needed, the subtracted degrees-of-freedom can be altered using the +*extra/dof* option of the :doc:`compute_modify ` +command. See the :doc:`Howto thermostat ` page for a discussion of different ways to compute temperature and perform diff --git a/doc/src/compute_temp_body.rst b/doc/src/compute_temp_body.rst index 64f5ce9a0f..f29ca5c39b 100644 --- a/doc/src/compute_temp_body.rst +++ b/doc/src/compute_temp_body.rst @@ -51,11 +51,10 @@ rotational). This choice for degrees of freedom (DOF) assumes that all body particles in your model will freely rotate, sampling all their rotational DOF. It is possible to use a combination of interaction - potentials and fixes that induce no torque or otherwise constrain some - of all of your particles so that this is not the case. Then there are - less DOF and you should use the - :doc:`compute_modify extra ` command to adjust the DOF - accordingly. + potentials and fixes that induce no torque or otherwise constrain + some of all of your particles so that this is not the case. Then + there are less DOF and you should use the :doc:`compute_modify + extra/dof ` command to adjust the DOF accordingly. The translational kinetic energy is computed the same as is described by the :doc:`compute temp ` command. The rotational @@ -72,15 +71,16 @@ used. The six components of the vector are ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. The number of atoms contributing to the temperature is assumed to be -constant for the duration of the run; use the *dynamic* option of the -:doc:`compute_modify ` command if this is not the case. +constant for the duration of the run; use the *dynamic/dof* option of +the :doc:`compute_modify ` command if this is not the +case. This compute subtracts out translational degrees-of-freedom due to fixes that constrain molecular motion, such as :doc:`fix shake ` and :doc:`fix rigid `. This means the temperature of groups of atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can -be altered using the *extra* option of the +be altered using the *extra/dof* option of the :doc:`compute_modify ` command. See the :doc:`Howto thermostat ` page for a diff --git a/doc/src/compute_temp_drude.rst b/doc/src/compute_temp_drude.rst index 8602bc3589..be09afc6a4 100644 --- a/doc/src/compute_temp_drude.rst +++ b/doc/src/compute_temp_drude.rst @@ -75,7 +75,8 @@ Restrictions The number of degrees of freedom contributing to the temperature is assumed to be constant for the duration of the run unless the -*fix_modify* command sets the option *dynamic yes*\ . +:doc:`fix_modify command ` sets the option *dynamic/dof +yes*\ . Related commands """""""""""""""" diff --git a/doc/src/compute_temp_sphere.rst b/doc/src/compute_temp_sphere.rst index 5c7c73a8d2..d1891f64bf 100644 --- a/doc/src/compute_temp_sphere.rst +++ b/doc/src/compute_temp_sphere.rst @@ -49,14 +49,13 @@ each has three degrees of freedom (two translational, one rotational). .. note:: - This choice for degrees of freedom (DOF) assumes that all - finite-size spherical particles in your model will freely rotate, - sampling all their rotational DOF. It is possible to use a - combination of interaction potentials and fixes that induce no torque - or otherwise constrain some of all of your particles so that this is - not the case. Then there are less DOF and you should use the - :doc:`compute_modify extra ` command to adjust the DOF - accordingly. + This choice for degrees of freedom (DOF) assumes that all finite-size + spherical particles in your model will freely rotate, sampling all + their rotational DOF. It is possible to use a combination of + interaction potentials and fixes that induce no torque or otherwise + constrain some of all of your particles so that this is not the case. + Then there are less DOF and you should use the :doc:`compute_modify + extra/dof ` command to adjust the DOF accordingly. The translational kinetic energy is computed the same as is described by the :doc:`compute temp ` command. The rotational @@ -73,20 +72,22 @@ velocity. A kinetic energy tensor, stored as a six-element vector, is also calculated by this compute. The formula for the components of the tensor is the same as the above formulas, except that :math:`v^2` and -:math:`\omega^2` are replaced by :math:`v_x v_y` and :math:`\omega_x \omega_y` -for the :math:`xy` component. The six components of the vector are ordered -:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. +:math:`\omega^2` are replaced by :math:`v_x v_y` and :math:`\omega_x +\omega_y` for the :math:`xy` component. The six components of the +vector are ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, +:math:`xz`, :math:`yz`. The number of atoms contributing to the temperature is assumed to be constant for the duration of the run; use the *dynamic* option of the :doc:`compute_modify ` command if this is not the case. -This compute subtracts out translational degrees-of-freedom due to -fixes that constrain molecular motion, such as :doc:`fix shake ` and :doc:`fix rigid `. This means the -temperature of groups of atoms that include these constraints will be -computed correctly. If needed, the subtracted degrees of freedom can -be altered using the *extra* option of the -:doc:`compute_modify ` command. +This compute subtracts out translational degrees-of-freedom due to fixes +that constrain molecular motion, such as :doc:`fix shake ` +and :doc:`fix rigid `. This means the temperature of groups +of atoms that include these constraints will be computed correctly. If +needed, the subtracted degrees of freedom can be altered using the +*extra/dof* option of the :doc:`compute_modify ` +command. See the :doc:`Howto thermostat ` page for a discussion of different ways to compute temperature and perform diff --git a/doc/src/fix_charge_regulation.rst b/doc/src/fix_charge_regulation.rst index c1e790c691..203d40951d 100644 --- a/doc/src/fix_charge_regulation.rst +++ b/doc/src/fix_charge_regulation.rst @@ -171,7 +171,7 @@ Langevin thermostat: .. code-block:: LAMMPS compute dtemp all temp - compute_modify dtemp dynamic yes + compute_modify dtemp dynamic/dof yes fix fT all langevin 1.0 1.0 1.0 123 fix_modify fT temp dtemp diff --git a/doc/src/fix_deposit.rst b/doc/src/fix_deposit.rst index 7d19e93148..c8746bcf9c 100644 --- a/doc/src/fix_deposit.rst +++ b/doc/src/fix_deposit.rst @@ -95,10 +95,9 @@ default group "all" and the group specified in the fix deposit command (which can also be "all"). If you are computing temperature values which include inserted -particles, you will want to use the -:doc:`compute_modify ` dynamic option, which ensures the -current number of atoms is used as a normalizing factor each time the -temperature is computed. +particles, you will want to use the :doc:`compute_modify dynamic/dof yes +` option, which ensures the current number of atoms is +used as a normalizing factor each time the temperature is computed. Care must be taken that inserted particles are not too near existing atoms, using the options described below. When inserting particles @@ -160,15 +159,17 @@ command which also appears in your input script. .. note:: - If you wish the new rigid molecules (and other rigid molecules) - to be thermostatted correctly via :doc:`fix rigid/small/nvt ` - or :doc:`fix rigid/small/npt `, then you need to use the - "fix_modify dynamic/dof yes" command for the rigid fix. This is to - inform that fix that the molecule count will vary dynamically. + If you wish the new rigid molecules (and other rigid molecules) to be + thermostatted correctly via :doc:`fix rigid/small/nvt ` or + :doc:`fix rigid/small/npt `, then you need to use the + :doc:`fix_modify dynamic/dof yes ` command for the rigid + fix. This is to inform that fix that the molecule count will vary + dynamically. If you wish to insert molecules via the *mol* keyword, that will have their bonds or angles constrained via SHAKE, use the *shake* keyword, -specifying as its value the ID of a separate :doc:`fix shake ` command which also appears in your input script. +specifying as its value the ID of a separate :doc:`fix shake +` command which also appears in your input script. Each timestep a particle is inserted, the coordinates for its atoms are chosen as follows. For insertion of individual atoms, the @@ -268,8 +269,8 @@ units of distance or velocity. If you are monitoring the temperature of a system where the atom count is changing due to adding particles, you typically should use - the :doc:`compute_modify dynamic yes ` command for the - temperature compute you are using. + the :doc:`compute_modify dynamic/dof yes ` command + for the temperature compute you are using. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/doc/src/fix_evaporate.rst b/doc/src/fix_evaporate.rst index 4c5ea01e13..c8e46631a3 100644 --- a/doc/src/fix_evaporate.rst +++ b/doc/src/fix_evaporate.rst @@ -69,14 +69,15 @@ incur overhead due to the cost of building neighbor lists. If you are monitoring the temperature of a system where the atom count is changing due to evaporation, you typically should use the - :doc:`compute_modify dynamic yes ` command for the + :doc:`compute_modify dynamic/dof yes ` command for the temperature compute you are using. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. None of the :doc:`fix_modify ` options -are relevant to this fix. +No information about this fix is written to :doc:`binary restart files +`. None of the :doc:`fix_modify ` options are +relevant to this fix. This fix computes a global scalar, which can be accessed by various :doc:`output commands `. The scalar is the cumulative @@ -84,7 +85,8 @@ number of deleted atoms. The scalar value calculated by this fix is "intensive". No parameter of this fix can be used with the *start/stop* keywords of -the :doc:`run ` command. This fix is not invoked during :doc:`energy minimization `. +the :doc:`run ` command. This fix is not invoked during +:doc:`energy minimization `. Restrictions """""""""""" diff --git a/doc/src/fix_gcmc.rst b/doc/src/fix_gcmc.rst index c348e2a44f..c0fa990d6e 100644 --- a/doc/src/fix_gcmc.rst +++ b/doc/src/fix_gcmc.rst @@ -146,8 +146,8 @@ center-of-mass is inside the specified region. If used with :doc:`fix nvt `, the temperature of the imaginary reservoir, T, should be set to be equivalent to the target temperature used in fix nvt. Otherwise, the imaginary reservoir will not be in -thermal equilibrium with the simulation cell. Also, it is important -that the temperature used by fix nvt be dynamic/dof, which can be +thermal equilibrium with the simulation cell. Also, it is important that +the temperature used by *fix nvt* is dynamically updated, which can be achieved as follows: .. code-block:: LAMMPS @@ -197,15 +197,17 @@ which also appears in your input script. .. note:: - If you wish the new rigid molecules (and other rigid molecules) - to be thermostatted correctly via :doc:`fix rigid/small/nvt ` - or :doc:`fix rigid/small/npt `, then you need to use the - "fix_modify dynamic/dof yes" command for the rigid fix. This is to - inform that fix that the molecule count will vary dynamically. + If you wish the new rigid molecules (and other rigid molecules) to be + thermostatted correctly via :doc:`fix rigid/small/nvt ` or + :doc:`fix rigid/small/npt `, then you need to use the + :doc:`fix_modify dynamic/dof yes ` command for the rigid + fix. This is to inform that fix that the molecule count will vary + dynamically. If you wish to insert molecules via the *mol* keyword, that will have their bonds or angles constrained via SHAKE, use the *shake* keyword, -specifying as its value the ID of a separate :doc:`fix shake ` command which also appears in your input script. +specifying as its value the ID of a separate :doc:`fix shake +` command which also appears in your input script. Optionally, users may specify the relative amounts of different MC moves using the *mcmoves* keyword. The values *Patomtrans*, @@ -335,31 +337,30 @@ temperature. Some fixes have an associated potential energy. Examples of such fixes include: :doc:`efield `, :doc:`gravity `, :doc:`addforce `, :doc:`langevin `, -:doc:`restrain `, -:doc:`temp/berendsen `, -:doc:`temp/rescale `, and :doc:`wall fixes `. -For that energy to be included in the total potential energy of the -system (the quantity used when performing GCMC exchange and MC moves), -you MUST enable -the :doc:`fix_modify ` *energy* option for that fix. The -doc pages for individual :doc:`fix ` commands specify if this -should be done. +:doc:`restrain `, :doc:`temp/berendsen +`, :doc:`temp/rescale `, and +:doc:`wall fixes `. For that energy to be included in the +total potential energy of the system (the quantity used when performing +GCMC exchange and MC moves), you MUST enable the :doc:`fix_modify +` *energy* option for that fix. The doc pages for +individual :doc:`fix ` commands specify if this should be done. Use the *charge* option to insert atoms with a user-specified point -charge. Note that doing so will cause the system to become -non-neutral. LAMMPS issues a warning when using long-range -electrostatics (kspace) with non-neutral systems. See the :doc:`compute group/group ` documentation for more details -about simulating non-neutral systems with kspace on. +charge. Note that doing so will cause the system to become non-neutral. +LAMMPS issues a warning when using long-range electrostatics (kspace) +with non-neutral systems. See the :doc:`compute group/group +` documentation for more details about simulating +non-neutral systems with kspace on. Use of this fix typically will cause the number of atoms to fluctuate, -therefore, you will want to use the -:doc:`compute_modify dynamic/dof ` command to ensure that the -current number of atoms is used as a normalizing factor each time -temperature is computed. A simple example of this is: +therefore, you will want to use the :doc:`compute_modify dynamic/dof +` command to ensure that the current number of atoms is +used as a normalizing factor each time temperature is computed. A simple +example of this is: .. code-block:: LAMMPS - compute_modify thermo_temp dynamic yes + compute_modify thermo_temp dynamic/dof yes A more complicated example is listed earlier on this page in the context of NVT dynamics. @@ -369,31 +370,29 @@ in the context of NVT dynamics. If the density of the cell is initially very small or zero, and increases to a much larger density after a period of equilibration, then certain quantities that are only calculated once at the start - (kspace parameters) may no longer be accurate. The - solution is to start a new simulation after the equilibrium density - has been reached. + (kspace parameters) may no longer be accurate. The solution is to + start a new simulation after the equilibrium density has been + reached. With some pair_styles, such as :doc:`Buckingham `, -:doc:`Born-Mayer-Huggins ` and :doc:`ReaxFF `, two -atoms placed close to each other may have an arbitrary large, negative -potential energy due to the functional form of the potential. While -these unphysical configurations are inaccessible to typical dynamical -trajectories, they can be generated by Monte Carlo moves. The -*overlap_cutoff* keyword suppresses these moves by effectively -assigning an infinite positive energy to all new configurations that -place any pair of atoms closer than the specified overlap cutoff -distance. +:doc:`Born-Mayer-Huggins ` and :doc:`ReaxFF `, +two atoms placed close to each other may have an arbitrary large, +negative potential energy due to the functional form of the potential. +While these unphysical configurations are inaccessible to typical +dynamical trajectories, they can be generated by Monte Carlo moves. The +*overlap_cutoff* keyword suppresses these moves by effectively assigning +an infinite positive energy to all new configurations that place any +pair of atoms closer than the specified overlap cutoff distance. -The *max* and *min* keywords allow for the restriction of the number -of atoms in the simulation. They automatically reject all insertion -or deletion moves that would take the system beyond the set boundaries. +The *max* and *min* keywords allow for the restriction of the number of +atoms in the simulation. They automatically reject all insertion or +deletion moves that would take the system beyond the set boundaries. Should the system already be beyond the boundary, only moves that bring the system closer to the bounds may be accepted. -The *group* keyword adds all inserted atoms to the -:doc:`group ` of the group-ID value. The *grouptype* keyword -adds all inserted atoms of the specified type to the -:doc:`group ` of the group-ID value. +The *group* keyword adds all inserted atoms to the :doc:`group ` +of the group-ID value. The *grouptype* keyword adds all inserted atoms +of the specified type to the :doc:`group ` of the group-ID value. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -446,22 +445,21 @@ called. Reneighboring is required. Only usable for 3D simulations. -Can be run in parallel, but aspects of the GCMC part will not scale -well in parallel. Currently, molecule translations and rotations -are not supported with more than one MPI process. -It is still possible to do parallel molecule exchange without -translation and rotation moves by setting MC moves to zero -and/or by using the *mcmoves* keyword with *Pmoltrans* = *Pmolrotate* = 0 . +This fix can be run in parallel, but aspects of the GCMC part will not +scale well in parallel. Currently, molecule translations and rotations +are not supported with more than one MPI process. It is still possible +to do parallel molecule exchange without translation and rotation moves +by setting MC moves to zero and/or by using the *mcmoves* keyword with +*Pmoltrans* = *Pmolrotate* = 0 . -When using fix gcmc in combination with fix shake or fix rigid, -only GCMC exchange moves are supported, so the argument -*M* must be zero. +When using fix gcmc in combination with fix shake or fix rigid, only +GCMC exchange moves are supported, so the argument *M* must be zero. -When using fix gcmc in combination with fix rigid, deletion -of the last remaining molecule is not allowed for technical reasons, -and so the molecule count will never drop below 1, regardless of the -specified chemical potential. +When using fix gcmc in combination with fix rigid, deletion of the last +remaining molecule is not allowed for technical reasons, and so the +molecule count will never drop below 1, regardless of the specified +chemical potential. Note that very lengthy simulations involving insertions/deletions of billions of gas molecules may run out of atom or molecule IDs and diff --git a/doc/src/fix_modify.rst b/doc/src/fix_modify.rst index 175d02dd8f..265803c213 100644 --- a/doc/src/fix_modify.rst +++ b/doc/src/fix_modify.rst @@ -131,24 +131,24 @@ with their specified level at the beginning of a r-RESPA run. The *dynamic/dof* keyword determines whether the number of atoms N in the fix group and their associated degrees of freedom are re-computed each time a temperature is computed. Only fix styles that calculate -their own internal temperature use this option. Currently this is -only the :doc:`fix rigid/nvt/small ` and :doc:`fix -rigid/npt/small ` commands for the purpose of -thermostatting rigid body translation and rotation. By default, N and -their DOF are assumed to be constant. If you are adding atoms or -molecules to the system (see the :doc:`fix pour `, :doc:`fix -deposit `, and :doc:`fix gcmc ` commands) or -expect atoms or molecules to be lost (e.g. due to exiting the -simulation box or via :doc:`fix evaporate `), then this -option should be used to ensure the temperature is correctly -normalized. +their own internal temperature use this option. Currently this is only +the :doc:`fix rigid/nvt/small ` and :doc:`fix rigid/npt/small +` commands for the purpose of thermostatting rigid body +translation and rotation. By default, N and their DOF are assumed to be +constant. If you are adding atoms or molecules to the system (see the +:doc:`fix pour `, :doc:`fix deposit `, and +:doc:`fix gcmc ` commands) or expect atoms or molecules to be +lost (e.g. due to exiting the simulation box or via :doc:`fix evaporate +`), then this option should be used to ensure the +temperature is correctly normalized. .. note:: - Other thermostatting fixes, such as :doc:`fix nvt `, do - not use the *dynamic/dof* keyword because they use a temperature - compute to calculate temperature. See the :doc:`compute_modify dynamic/dof ` command for a similar way to ensure - correct temperature normalization for those thermostats. + Other thermostatting fixes, such as :doc:`fix nvt `, do not + use the *dynamic/dof* keyword because they use a temperature compute + to calculate temperature. See the :doc:`compute_modify dynamic/dof + ` command for a similar way to ensure correct + temperature normalization for those thermostats. The *bodyforces* keyword determines whether the forces and torques acting on rigid bodies are computed *early* at the post-force stage of @@ -156,7 +156,8 @@ each timestep (right after per-atom forces have been computed and communicated among processors), or *late* at the final-integrate stage of each timestep (after any other fixes have finished their post-force tasks). Only the rigid-body integration fixes use this option, which -includes :doc:`fix rigid ` and :doc:`fix rigid/small `, and their variants, and also :doc:`fix poems `. +includes :doc:`fix rigid ` and :doc:`fix rigid/small +`, and their variants, and also :doc:`fix poems `. The default is *late*\ . If there are other fixes that add forces to individual atoms, then the rigid-body constraints will include these diff --git a/doc/src/fix_pour.rst b/doc/src/fix_pour.rst index 6ef18ea800..8a7000662e 100644 --- a/doc/src/fix_pour.rst +++ b/doc/src/fix_pour.rst @@ -123,15 +123,17 @@ command which also appears in your input script. .. note:: - If you wish the new rigid molecules (and other rigid molecules) - to be thermostatted correctly via :doc:`fix rigid/small/nvt ` - or :doc:`fix rigid/small/npt `, then you need to use the - "fix_modify dynamic/dof yes" command for the rigid fix. This is to - inform that fix that the molecule count will vary dynamically. + If you wish the new rigid molecules (and other rigid molecules) to be + thermostatted correctly via :doc:`fix rigid/small/nvt ` or + :doc:`fix rigid/small/npt `, then you need to use the + :doc:`fix_modify dynamic/dof yes ` command for the rigid + fix. This is to inform that fix that the molecule count will vary + dynamically. If you wish to insert molecules via the *mol* keyword, that will have their bonds or angles constrained via SHAKE, use the *shake* keyword, -specifying as its value the ID of a separate :doc:`fix shake ` command which also appears in your input script. +specifying as its value the ID of a separate :doc:`fix shake +` command which also appears in your input script. Each timestep particles are inserted, they are placed randomly inside the insertion volume so as to mimic a stream of poured particles. If @@ -148,10 +150,10 @@ many timesteps until the desired # of particles has been inserted. .. note:: - If you are monitoring the temperature of a system where the - particle count is changing due to adding particles, you typically - should use the :doc:`compute_modify dynamic yes ` - command for the temperature compute you are using. + If you are monitoring the temperature of a system where the particle + count is changing due to adding particles, you typically should use + the :doc:`compute_modify dynamic/dof yes ` command + for the temperature compute you are using. ---------- diff --git a/examples/PACKAGES/atc/cauchy_born/in.flying_cube b/examples/PACKAGES/atc/cauchy_born/in.flying_cube index 23bd7a5ae0..9b81fcf6a0 100644 --- a/examples/PACKAGES/atc/cauchy_born/in.flying_cube +++ b/examples/PACKAGES/atc/cauchy_born/in.flying_cube @@ -1,11 +1,11 @@ # This test evaluates Hardy fields for a small block of LJ material -# that's undergoing translation in the x-direction through the +# that's undergoing translation in the x-direction through the # periodic boundary. echo both -log log.flying_cube +log log.flying_cube units real atom_style atomic -variable lattice_constant equal 5.256227487 +variable lattice_constant equal 5.256227487 variable c equal 6 variable L equal (${lattice_constant}*$c) variable V equal $L*$L*$L @@ -23,15 +23,15 @@ create_box 1 box create_atoms 1 region box mass 1 $m group all region box -pair_style lj/cut 13.5 -pair_coeff 1 1 0.238 3.405 +pair_style lj/cut 13.5 +pair_coeff 1 1 0.238 3.405 # define region neighbor 1.0 bin neigh_modify delay 0 every 200 check no # neigh_modify delay 0 every $n reset_timestep 0 thermo $s -compute_modify thermo_temp extra 0 +compute_modify thermo_temp extra/dof 0 thermo_style custom step temp pxx pyy pzz etotal lx ly lz timestep ${dt} min_modify line quadratic @@ -46,10 +46,10 @@ variable zHI equal zhi # region BOX block ${xLO} ${xHI} ${yLO} ${yHI} ${zLO} ${zHI} units box region BOX block ${xLO} ${xHI} -0.5 31.7 -0.5 31.7 units box fix ATC all atc field -fix_modify ATC mesh create 1 1 1 box p p p +fix_modify ATC mesh create 1 1 1 box p p p fix_modify ATC fields add stress velocity displacement fix_modify ATC fields add temperature kinetic_temperature -fix_modify ATC fields add internal_energy energy +fix_modify ATC fields add internal_energy energy fix_modify ATC output flying_cubeFE $s text binary tensor_components # fix_modify ATC atomic_output flying_cubeMD $m text binary tensor_components dump dumpfc all atom $s flying_cube.dmp diff --git a/examples/PACKAGES/atc/cauchy_born/in.ftcb_constV b/examples/PACKAGES/atc/cauchy_born/in.ftcb_constV index 431fe15ddd..2b54a50739 100644 --- a/examples/PACKAGES/atc/cauchy_born/in.ftcb_constV +++ b/examples/PACKAGES/atc/cauchy_born/in.ftcb_constV @@ -1,34 +1,34 @@ # This test compares Hardy and Cauchy-Born metrics of energy density and stress # for an Ar system undergoing dynamics at a finite temperature. echo both -log ftcb_constV.log +log ftcb_constV.log units real atom_style atomic -variable lattice_constant equal 5.256227487 +variable lattice_constant equal 5.256227487 variable c equal 6 variable L equal (${lattice_constant}*$c) variable V equal $L*$L*$L print "Volume : $V" -variable Ti equal 0.0001 +variable Ti equal 0.0001 variable dT equal 0.2 variable n equal 10000 variable m equal 200 variable dt equal 0.1 # create system -lattice fcc ${lattice_constant} +lattice fcc ${lattice_constant} region box block 0 $c 0 $c 0 $c boundary p p p -pair_style lj/cut 13.5 +pair_style lj/cut 13.5 read_data ftcb_constV_setup.init mass 1 39.95 -pair_coeff 1 1 0.238 3.405 +pair_coeff 1 1 0.238 3.405 # define region neighbor 1.0 bin neigh_modify delay 0 every 2000 check no reset_timestep 0 thermo $m -compute_modify thermo_temp extra 0 -variable nrepeat equal $n/$m +compute_modify thermo_temp extra/dof 0 +variable nrepeat equal $n/$m variable sxx equal -pxx variable intenergy equal etotal fix TDAVE all ave/time $m ${nrepeat} $n c_thermo_temp v_sxx v_intenergy ave one file ftcb_constV.profile @@ -37,7 +37,7 @@ timestep ${dt} # filtered fix ATCFILT all atc field Ar_CauchyBorn.mat #fix_modify ATCFILT reset_atomic_reference_positions ftcb_constV_setup.data -fix_modify ATCFILT mesh create 1 1 1 box p p p +fix_modify ATCFILT mesh create 1 1 1 box p p p fix_modify ATCFILT fields none fix_modify ATCFILT fields add internal_energy stress cauchy_born_energy cauchy_born_stress fix_modify ATCFILT fields add temperature displacement @@ -51,7 +51,7 @@ fix_modify ATCFILT filter type step # not filtered fix ATC all atc field Ar_CauchyBorn.mat #fix_modify ATC reset_atomic_reference_positions ftcb_constV_setup.data -fix_modify ATC mesh create 1 1 1 box p p p +fix_modify ATC mesh create 1 1 1 box p p p fix_modify ATC fields none fix_modify ATC fields add internal_energy stress cauchy_born_energy cauchy_born_stress fix_modify ATC fields add temperature displacement @@ -59,7 +59,7 @@ fix_modify ATC gradients add displacement fix_modify ATC output ftcb_constVFE $m text binary tensor_components velocity all create ${Ti} 102486 mom yes rot yes dist gaussian # step iu T,V space -variable i loop 1 +variable i loop 1 label loop_i print ">>> step $i, T: ${Ti}, V: $V" variable Tf equal ${Ti}+${dT} @@ -69,6 +69,6 @@ label loop_i fix NVT all nvt temp ${Tf} ${Tf} 20 drag 0.5 tchain 1 run $n unfix NVT - variable Ti equal ${Tf} + variable Ti equal ${Tf} next i jump in.ftcb_constV loop_i diff --git a/examples/PACKAGES/atc/fluids/in.bar1d_fluids b/examples/PACKAGES/atc/fluids/in.bar1d_fluids index 79a6c8a4c2..69a2df6900 100644 --- a/examples/PACKAGES/atc/fluids/in.bar1d_fluids +++ b/examples/PACKAGES/atc/fluids/in.bar1d_fluids @@ -5,50 +5,50 @@ # out # to the FEM on the right. Insufficient time is captured to reach the # linear # steady state, but heat crossing both boundaries should be observed. log bar1d_fluids.log -units real -atom_style atomic +units real +atom_style atomic # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) # NOTE following 3 lines added for restart boundary f p p pair_style lj/cut 13.5 read_data temp.init -#read_restart post_eq.dat +#read_restart post_eq.dat lattice fcc 5.405 origin 0.25 0.25 0.25 # create atoms, NOTE commented out for restart -#region mdRegion block -7 7 -3 3 -3 3 -#boundary f p p -#create_box 2 mdRegion -#create_atoms 1 region mdRegion -#mass * 39.95 +#region mdRegion block -7 7 -3 3 -3 3 +#boundary f p p +#create_box 2 mdRegion +#create_atoms 1 region mdRegion +#mass * 39.95 # specify interal/ghost atoms -#region mdInternal block -6 6 -3 3 -3 3 -#region mdGhost block -6 6 -3 3 -3 3 side out +#region mdInternal block -6 6 -3 3 -3 3 +#region mdGhost block -6 6 -3 3 -3 3 side out #create_atoms 1 region mdGhost #lattice fcc 6.5 origin 0.25 0.25 0.25 -#create_atoms 2 region mdInternal -group internal type 2 -group ghost type 1 +#create_atoms 2 region mdInternal +group internal type 2 +group ghost type 1 # velocities have Vcm = 0, NOTE next four lines commented out for restart -#velocity internal create 100. 87287 mom yes loop geom -#pair_style lj/cut 13.5 -##pair_coeff 1 1 0.010323166 3.405 13.5 -#pair_coeff * * .238 3.405 13.5 -neighbor 5. bin -neigh_modify every 10 delay 0 check no -#write_restart tinit.dat +#velocity internal create 100. 87287 mom yes loop geom +#pair_style lj/cut 13.5 +##pair_coeff 1 1 0.010323166 3.405 13.5 +#pair_coeff * * .238 3.405 13.5 +neighbor 5. bin +neigh_modify every 10 delay 0 check no +#write_restart tinit.dat # ID group atc PhysicsType ParameterFile lattice fcc 5.405 origin 0.25 0.25 0.25 -region atcRegion block -6.25 6.25 -3 3 -3 3 +region atcRegion block -6.25 6.25 -3 3 -3 3 fix AtC internal atc thermal Ar_thermal.mat # ID part keywords nx ny nz region periodicity fix_modify AtC mesh create 6 1 1 atcRegion f p p fix_modify AtC time_integration fractional_step -fix_modify AtC atom_element_map eulerian 10 # NOTE this introduces a minor amount of time integration error tracking the atomic temperature +fix_modify AtC atom_element_map eulerian 10 # NOTE this introduces a minor amount of time integration error tracking the atomic temperature fix_modify AtC internal_quadrature off -#fix_modify AtC mass_matrix fe +#fix_modify AtC mass_matrix fe # fix a temperature -fix_modify AtC fix temperature all 100. +fix_modify AtC fix temperature all 100. # add nodesets # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax fix_modify AtC mesh create_nodeset lbc -6.3 -6.2 -INF INF -INF INF @@ -56,43 +56,43 @@ fix_modify AtC mesh create_nodeset rbc 6.2 6.3 -INF INF -INF INF #fix_modify AtC fix temperature lbc 120. #fix_modify AtC fix temperature rbc 100. #used for restarting -#fix_modify AtC consistent_fe_initialization on +#fix_modify AtC consistent_fe_initialization on #fix_modify AtC initial temperature all 100. # turn on thermostat -fix_modify AtC control thermal rescale 10 +fix_modify AtC control thermal rescale 10 # equilibrate MD field variable xdof equal 3*count(ghost) -compute_modify thermo_temp extra ${xdof} +compute_modify thermo_temp extra/dof ${xdof} thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_modify format 1 %6i format 2 %7.2g #fix_modify AtC output bar1d_fluids_eqFE 200 text binary #dump D1 all atom 200 dump_eq.bar1d -timestep 2 -thermo 200 -run 2000 -#write_restart post_eq.dat +timestep 2 +thermo 200 +run 2000 +#write_restart post_eq.dat # change thermostat to hoover reset_timestep 0 -fix_modify AtC reset_time +fix_modify AtC reset_time fix_modify AtC unfix temperature all variable deltaT equal 2.*2000. fix_modify AtC fix temperature lbc temporal_ramp 100. 120. ${deltaT} -#fix_modify AtC fix temperature lbc 100. +#fix_modify AtC fix temperature lbc 100. fix_modify AtC fix temperature rbc 100. fix_modify AtC control thermal flux no_boundary -fix_modify AtC control tolerance 1.e-14 -fix_modify AtC control localized_lambda on +fix_modify AtC control tolerance 1.e-14 +fix_modify AtC control localized_lambda on fix_modify AtC filter type exponential fix_modify AtC filter scale 1000.0 fix_modify AtC filter on # output commands fix_modify AtC output bar1d_fluidsFE 100 text #undump D1 -#dump D2 all atom 200 dump.bar1d -#dump D2 all custom 200 dump.bar1d id type xs ys zs vx vy vz +#dump D2 all atom 200 dump.bar1d +#dump D2 all custom 200 dump.bar1d id type xs ys zs vx vy vz # set-up non-equilibrium IC -thermo 100 -run 2000 +thermo 100 +run 2000 # run non-equilibrium condition -fix_modify AtC fix temperature lbc 120. -run 4000 +fix_modify AtC fix temperature lbc 120. +run 4000 diff --git a/examples/PACKAGES/atc/fluids/in.concentration b/examples/PACKAGES/atc/fluids/in.concentration index 255524bc0a..f5c2a37cbb 100644 --- a/examples/PACKAGES/atc/fluids/in.concentration +++ b/examples/PACKAGES/atc/fluids/in.concentration @@ -1,10 +1,10 @@ echo both -units real +units real atom_style full # charge ### NOTE p p p is required for both lammps & atc since periodic images are employed in ExtrinsicModelElectrostatic::correct_electrostatic_forces ########### BEGIN PARAMETERS #################################### -variable T equal 300 -variable a equal 1.0 # 5.719025032 +variable T equal 300 +variable a equal 1.0 # 5.719025032 variable i equal 10 # thermo variable f equal 50 # neighbor & conc interval variable s equal 100 # 10 # 100 # output @@ -12,18 +12,18 @@ variable n equal 800 # 20 # 200 # 300 # duration variable x equal 4 # 40 # 2 # 4 # exchanges variable e equal 100. # 1. # 100. # 10. # energy variable h equal 5 # nelems -variable dt equal 4. #1. # 0 # 4.0 +variable dt equal 4. #1. # 0 # 4.0 ############## END PARAMETERS ################################# -dimension 3 -boundary p p p -pair_style lj/cut/coul/cut 13.0 -lattice sc $a +dimension 3 +boundary p p p +pair_style lj/cut/coul/cut 13.0 +lattice sc $a read_data concentration_init.data atom_modify sort 0 1 mass * 39.948 pair_coeff * * 0.2381 3.405 pair_coeff 1 * 0.4 3.405 -dielectric 80.0 +dielectric 80.0 variable xlo equal xlo variable xhi equal xhi variable xmid equal 0.5*(${xhi}+${xlo}) @@ -37,9 +37,9 @@ region FLUID block ${xlo} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box region R block ${xmid} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box group SOLID type 1 variable xdof equal 3*count(SOLID) -compute_modify thermo_temp extra ${xdof} -#set group SOLID charge 0 -group NEUTRAL type 2 +compute_modify thermo_temp extra/dof ${xdof} +#set group SOLID charge 0 +group NEUTRAL type 2 group FLUID type 2 3 4 group NION type 3 group PION type 4 @@ -72,16 +72,16 @@ compute PMIN PION reduce min x compute PMAX PION reduce max x compute NMIN NION reduce min x compute NMAX NION reduce max x -timestep ${dt} +timestep ${dt} #neighbor 13 bin neigh_modify every $i check no # coulombic interactions -fix ATC FLUID atc species_electrostatic Ar_electrostatic.mat +fix ATC FLUID atc species_electrostatic Ar_electrostatic.mat #fix_modify ATC parallel_consistency off fix_modify ATC extrinsic short_range off #fix_modify ATC boundary SOLID fix_modify ATC atom_element_map eulerian $i -fix_modify ATC internal_quadrature off +fix_modify ATC internal_quadrature off fix_modify ATC consistent_fe_initialization on fix_modify ATC filter type exponential fix_modify ATC filter scale $i @@ -97,31 +97,31 @@ fix_modify ATC mesh create_elementset BOX BOX fix_modify ATC mass_matrix fe fix_modify ATC include atomic_charge fix_modify ATC add_species N type 3 -fix_modify ATC add_species P type 4 +fix_modify ATC add_species P type 4 fix_modify ATC add_species Nt type 5 -fix_modify ATC add_species Pt type 6 +fix_modify ATC add_species Pt type 6 ## CC fix_modify ATC control concentration N R 0.001 Nt # deletions R -fix_modify ATC control concentration N frequency $f -fix_modify ATC control concentration N max_energy $e +fix_modify ATC control concentration N frequency $f +fix_modify ATC control concentration N max_energy $e fix_modify ATC control concentration N max_attempts 100 fix_modify ATC control concentration N max_exchanges $x #- fix_modify ATC control concentration P R 0.002 Pt # addtions R -fix_modify ATC control concentration P frequency $f +fix_modify ATC control concentration P frequency $f fix_modify ATC control concentration P max_energy $e -fix_modify ATC control concentration P max_attempts 100 +fix_modify ATC control concentration P max_attempts 100 fix_modify ATC control concentration P max_exchanges $x fix_modify ATC output volume_integral all mass_density fix_modify ATC output volume_integral all charge_density # data reduction fix PP all atc field -#fix_modify PP add_species ions type 3 4 +#fix_modify PP add_species ions type 3 4 #fix_modify PP add_species IONS type 3 4 1 2 -fix_modify PP add_species n type 3 -fix_modify PP add_species p type 4 -fix_modify PP add_species s type 1 -fix_modify PP add_species o type 2 +fix_modify PP add_species n type 3 +fix_modify PP add_species p type 4 +fix_modify PP add_species s type 1 +fix_modify PP add_species o type 2 fix_modify PP fields add species_concentration mass_density charge_density temperature fix_modify PP fields add charge_flux species_flux fix_modify PP output volume_integral all mass_density @@ -129,7 +129,7 @@ fix_modify PP output volume_integral all charge_density fix_modify PP mesh create $h 1 1 BOX f p p fix_modify PP atom_element_map eulerian $i # output -thermo $i +thermo $i variable dN equal f_ATC[1] variable dP equal f_ATC[2] variable Nc equal f_ATC[3] @@ -141,19 +141,19 @@ variable Nu equal f_ATC[7] variable Pu equal f_ATC[8] variable Ng equal f_ATC[9] variable Pg equal f_ATC[10] -thermo_style custom step temp etotal & +thermo_style custom step temp etotal & atoms v_F v_P v_N v_dP v_dN v_Pc v_Nc v_Pr v_Nr v_Pt v_Nt & c_PMIN c_NMIN c_PMAX c_NMAX c_Q c_M c_Qf c_Mf v_Pu v_Nu v_Pg v_Ng -# NOTE this doesn't seem to work -#thermo_modify format 4 %5d format 5 %5d format 6 %5d format 7 %5d format 8 %5d -#thermo_modify format 4 %5d -#thermo_modify format 5 %5d -#thermo_modify format 6 %5d -#thermo_modify format 7 %5d -#thermo_modify format 8 %5d -#thermo_modify format 9 %5d -#thermo_modify format 10 %5d -#thermo_modify format 11 %5d +# NOTE this doesn't seem to work +#thermo_modify format 4 %5d format 5 %5d format 6 %5d format 7 %5d format 8 %5d +#thermo_modify format 4 %5d +#thermo_modify format 5 %5d +#thermo_modify format 6 %5d +#thermo_modify format 7 %5d +#thermo_modify format 8 %5d +#thermo_modify format 9 %5d +#thermo_modify format 10 %5d +#thermo_modify format 11 %5d log concentration.log fix_modify ATC output concentrationFE $s text binary fix_modify PP output concentrationPP $s text diff --git a/examples/PACKAGES/atc/fluids/in.shear_flow b/examples/PACKAGES/atc/fluids/in.shear_flow index 3c06676c64..29327dfb1c 100644 --- a/examples/PACKAGES/atc/fluids/in.shear_flow +++ b/examples/PACKAGES/atc/fluids/in.shear_flow @@ -2,42 +2,42 @@ # This benchmark tests momentum flux as a BC to the MD region to generate shear flow. # Currently heat will be generated as it will have no where to go. log shear_flow.log -units real -atom_style atomic +units real +atom_style atomic # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) # NOTE following 3 lines added for restart boundary f p p pair_style lj/cut 13.5 #read_data temp.init -read_data post_eq.init +read_data post_eq.init lattice fcc 5.405 origin 0.25 0.25 0.25 # create atoms, NOTE commented out for restart -#region mdRegion block -8 8 -3 3 -3 3 -#boundary f p p -#create_box 2 mdRegion -#create_atoms 1 region mdRegion -#mass * 39.95 +#region mdRegion block -8 8 -3 3 -3 3 +#boundary f p p +#create_box 2 mdRegion +#create_atoms 1 region mdRegion +#mass * 39.95 # specify interal/ghost atoms -#region mdInternal block -6 6 -3 3 -3 3 -#region mdGhost block -6 6 -3 3 -3 3 side out +#region mdInternal block -6 6 -3 3 -3 3 +#region mdGhost block -6 6 -3 3 -3 3 side out #create_atoms 1 region mdGhost #lattice fcc 6.5 origin 0.25 0.25 0.25 -#create_atoms 2 region mdInternal -group internal type 2 -group ghost type 1 +#create_atoms 2 region mdInternal +group internal type 2 +group ghost type 1 # velocities have Vcm = 0, NOTE next four lines commented out for restart -#velocity internal create 100. 87287 mom yes loop geom -#pair_style lj/cut 13.5 -##pair_coeff 1 1 0.010323166 3.405 13.5 -#pair_coeff * * .238 3.405 13.5 +#velocity internal create 100. 87287 mom yes loop geom +#pair_style lj/cut 13.5 +##pair_coeff 1 1 0.010323166 3.405 13.5 +#pair_coeff * * .238 3.405 13.5 #write_restart tinit.dat -neighbor 5. bin -neigh_modify every 10 delay 0 check no +neighbor 5. bin +neigh_modify every 10 delay 0 check no # equilibrate MD field variable xdof equal 3*count(ghost) -compute_modify thermo_temp extra ${xdof} +compute_modify thermo_temp extra/dof ${xdof} thermo_style custom step cpu etotal pe temp thermo_modify format 1 %6i format 2 %7.2g #fix NVT internal nvt temp 100 100 10 drag 0.2 @@ -49,28 +49,28 @@ timestep 2 # ID group atc PhysicsType ParameterFile lattice fcc 5.405 origin 0.25 0.25 0.25 -region atcRegion block -6.25 6.25 -3 3 -3 3 +region atcRegion block -6.25 6.25 -3 3 -3 3 fix AtC internal atc shear Ar_viscosity.mat # ID part keywords nx ny nz region periodicity fix_modify AtC mesh create 6 1 1 atcRegion f p p #fix_modify AtC time_integration fractional_step -##fix_modify AtC atom_element_map eulerian 10 # NOTE this introduces a minor amount of time integration error tracking the atomic temperature +##fix_modify AtC atom_element_map eulerian 10 # NOTE this introduces a minor amount of time integration error tracking the atomic temperature fix_modify AtC internal_quadrature off -#fix_modify AtC mass_matrix fe +#fix_modify AtC mass_matrix fe # add nodesets # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax fix_modify AtC mesh create_elementset rbc 4.12 6.3 -INF INF -INF INF #used for restarting -fix_modify AtC consistent_fe_initialization on +fix_modify AtC consistent_fe_initialization on #fix_modify AtC initial velocity x all 0. # turn on kinetostat reset_timestep 0 -fix_modify AtC reset_time -fix_modify AtC source velocity y rbc .0000001 +fix_modify AtC reset_time +fix_modify AtC source velocity y rbc .0000001 fix_modify AtC control momentum flux no_boundary -fix_modify AtC control tolerance 1.e-14 -fix_modify AtC control localized_lambda on +fix_modify AtC control tolerance 1.e-14 +fix_modify AtC control localized_lambda on #fix_modify AtC filter type exponential #fix_modify AtC filter scale 1000.0 #fix_modify AtC filter on @@ -78,7 +78,7 @@ fix_modify AtC control localized_lambda on # output commands fix_modify AtC output shear_flowFE 100 text #binary #undump D1 -#dump D1 all custom 100 shear_flow.dmp id type xs ys zs vx vy vz +#dump D1 all custom 100 shear_flow.dmp id type xs ys zs vx vy vz # set-up non-equilibrium IC -thermo 100 -run 2000 +thermo 100 +run 2000 diff --git a/examples/PACKAGES/atc/hardy/in.eshelby_static b/examples/PACKAGES/atc/hardy/in.eshelby_static index b0ccc94af5..b00dcd1185 100644 --- a/examples/PACKAGES/atc/hardy/in.eshelby_static +++ b/examples/PACKAGES/atc/hardy/in.eshelby_static @@ -1,4 +1,4 @@ -# This test calculates the J-integral for a sequence of different loads +# This test calculates the J-integral for a sequence of different loads # for a system with a crack tip. # # loops around crack and one around undefected material @@ -7,17 +7,17 @@ # loop 2 - medium contour around left crack tip # loop 3 - largest contour around left crack tip # loop 4 - medium contour around right crack tip -#for Lennard-Jones potential for gold: -# surface energy (gamma) of 0.1599 eV/Å^2 = 2.56191 J/m2. +#for Lennard-Jones potential for gold: +# surface energy (gamma) of 0.1599 eV/Å^2 = 2.56191 J/m2. # 2*gamma = 0.3198 eV/Å^2 = 5.12382 J/m2 -# using the internal nktv2p conversion factor, +# using the internal nktv2p conversion factor, # the units of eshelby_stress are eV/Å^3, and # the resulting boundary integral is eV/Å since we also include thickness (a # boundary surface area rather than a periphery). If we multiply the 2*gamma # quantity times the thickness t = 3*4.08 = 12.24 Å, we obtain 2*gamma*t = -# 3.914352 eV/Å, which agrees with the mesh calculation. +# 3.914352 eV/Å, which agrees with the mesh calculation. echo both -log eshelby_static.log +log eshelby_static.log units metal dimension 3 boundary p p p @@ -29,12 +29,12 @@ lattice fcc 4.08 origin 0.25 0.25 0.25 region SYSTEM block -10 10 -10 10 0 3 region UPPER block -10 10 0 10 0 3 region LOWER block -10 0 -10 10 0 3 -create_box 1 SYSTEM +create_box 1 SYSTEM create_atoms 1 region SYSTEM mass 1 63.55 -group internal region SYSTEM -group upper region UPPER -group lower region LOWER +group internal region SYSTEM +group upper region UPPER +group lower region LOWER #pair_style eam #pair_coeff * * ../../../../potentials/Cu_u3.eam #pair_style lj/smooth 8.0 10.0 @@ -42,27 +42,27 @@ group lower region LOWER pair_style lj/smooth/linear 5.456108274435118 pair_coeff * * 0.7242785984051078 2.598146797350056 # define region -region abovecrack block -2.01 2.01 0 8 INF INF units lattice +region abovecrack block -2.01 2.01 0 8 INF INF units lattice group abovecrack region abovecrack -region belowcrack block -2.01 2.01 -8 0 INF INF units lattice +region belowcrack block -2.01 2.01 -8 0 INF INF units lattice group belowcrack region belowcrack neighbor 1.0 bin neigh_modify delay 1000000 -neigh_modify exclude group abovecrack belowcrack +neigh_modify exclude group abovecrack belowcrack thermo 10 -compute_modify thermo_temp extra 0 +compute_modify thermo_temp extra/dof 0 region FORCECHECK block -6 0 6 10 0 3 group FORCECHECK region FORCECHECK compute fxsum FORCECHECK reduce sum fx compute fysum FORCECHECK reduce sum fy compute fzsum FORCECHECK reduce sum fz thermo_style custom step ke pe press c_fxsum c_fysum c_fzsum -thermo_modify format 1 %4i format 2 %3.1g format 3 %20.16g +thermo_modify format 1 %4i format 2 %3.1g format 3 %20.16g timestep 0.0 # (1) minimize the system to get a relaxed configuration min_modify line quadratic variable tol equal 1.e-11 -minimize 0.0 ${tol} 100000 1000000 +minimize 0.0 ${tol} 100000 1000000 write_restart eshelby.restart # (2) pull crack apart reset_timestep 0 @@ -70,13 +70,13 @@ fix PK1 internal atc field # NOTE tune this relative to lattice size fix_modify PK1 mesh create 10 10 1 SYSTEM p f p fix_modify PK1 fields none -fix_modify PK1 fields add mass_density internal_energy temperature stress displacement -fix_modify PK1 fields add eshelby_stress transformed_stress -fix_modify PK1 gradients add displacement +fix_modify PK1 fields add mass_density internal_energy temperature stress displacement +fix_modify PK1 fields add eshelby_stress transformed_stress +fix_modify PK1 gradients add displacement fix_modify PK1 set reference_potential_energy fix_modify PK1 output eshelby_staticFE 1 text binary tensor_components -#fix_modify PK1 on_the_fly -#-- make concentric loops around one/both of the crack tips +#fix_modify PK1 on_the_fly +#-- make concentric loops around one/both of the crack tips #-- & another around undefected material (loop0) fix_modify PK1 mesh create_faceset loop0 box -6 0 6 10 -INF INF outward fix_modify PK1 output boundary_integral eshelby_stress faceset loop0 diff --git a/examples/PACKAGES/atc/hardy/in.nvt b/examples/PACKAGES/atc/hardy/in.nvt index 68ba2eba17..c6de0842f9 100644 --- a/examples/PACKAGES/atc/hardy/in.nvt +++ b/examples/PACKAGES/atc/hardy/in.nvt @@ -5,12 +5,12 @@ atom_style atomic echo both dimension 3 boundary p p p -lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1 -region box block 0 5 0 5 0 5 -read_data nvt.init +lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1 +region box block 0 5 0 5 0 5 +read_data nvt.init pair_style lj/cut 13.0 -pair_coeff 1 1 0.2381 3.405 -group internal region box +pair_coeff 1 1 0.2381 3.405 +group internal region box fix ATC internal atc field fix_modify ATC mesh create 1 1 1 box p p p @@ -27,12 +27,12 @@ fix_modify PP atom_element_map eulerian 100 fix_modify PP fields add mass_density energy stress temperature kinetic_temperature fix_modify PP fields add velocity thermal_energy kinetic_energy fix_modify PP output nvtPP 100 text -thermo 100 -compute_modify thermo_temp extra 0 -thermo_style custom step temp etotal ke pe press vol -timestep 4.0 -reset_timestep 0 +thermo 100 +compute_modify thermo_temp extra/dof 0 +thermo_style custom step temp etotal ke pe press vol +timestep 4.0 +reset_timestep 0 # NOTE fixes performing time integration (init_integrate/final_integrate) should be defined after atc -fix NVT all nvt temp 30 30 10.0 drag 0.2 tchain 1 -log nvt.log -run 1000 +fix NVT all nvt temp 30 30 10.0 drag 0.2 tchain 1 +log nvt.log +run 1000 diff --git a/examples/PACKAGES/atc/thermal/in.bar1d b/examples/PACKAGES/atc/thermal/in.bar1d index 3f70577ec3..9fe5617ec3 100644 --- a/examples/PACKAGES/atc/thermal/in.bar1d +++ b/examples/PACKAGES/atc/thermal/in.bar1d @@ -1,38 +1,38 @@ #AtC Thermal Coupling # This benchmark tests heat conducting into and out of the MD region. The # temperature is initially 20 everywhere and the left boundary BC is fixed at 40. -# The result should show heat diffusing through the FEM to the MD and back out -# to the FEM on the right. Insufficient time is captured to reach the linear +# The result should show heat diffusing through the FEM to the MD and back out +# to the FEM on the right. Insufficient time is captured to reach the linear # steady state, but heat crossing both boundaries should be observed. - -units real -atom_style atomic + +units real +atom_style atomic echo both # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) # NOTE following 3 lines added for restart boundary f p p pair_style lj/cut 13.5 read_data temp.init lattice fcc 5.405 origin 0.25 0.25 0.25 -region simRegion block -12 12 -3 3 -3 3 +region simRegion block -12 12 -3 3 -3 3 # create atoms, NOTE commented out for restart -#region mdRegion block -5 5 -3 3 -3 3 -#boundary f p p -#create_box 1 mdRegion -#create_atoms 1 region mdRegion -#mass 1 39.95 +#region mdRegion block -5 5 -3 3 -3 3 +#boundary f p p +#create_box 1 mdRegion +#create_atoms 1 region mdRegion +#mass 1 39.95 # specify interal/ghost atoms -region mdInternal block -4 4 -3 3 -3 3 -group internal region mdInternal -group ghost subtract all internal +region mdInternal block -4 4 -3 3 -3 3 +group internal region mdInternal +group ghost subtract all internal # velocities have Vcm = 0, NOTE next four lines commented out for restart -#velocity internal create 40. 87287 mom yes loop geom -#pair_style lj/cut 13.5 -##pair_coeff 1 1 0.010323166 3.405 13.5 -#pair_coeff 1 1 .238 3.405 13.5 -neighbor 5. bin -neigh_modify every 10 delay 0 check no +#velocity internal create 40. 87287 mom yes loop geom +#pair_style lj/cut 13.5 +##pair_coeff 1 1 0.010323166 3.405 13.5 +#pair_coeff 1 1 .238 3.405 13.5 +neighbor 5. bin +neigh_modify every 10 delay 0 check no # ID group atc PhysicsType ParameterFile fix AtC internal atc thermal Ar_thermal.mat fix_modify AtC boundary ghost @@ -40,26 +40,26 @@ fix_modify AtC boundary ghost fix_modify AtC mesh create 12 1 1 simRegion f p p fix_modify AtC internal_quadrature off # fix a temperature -fix_modify AtC fix temperature all 20. +fix_modify AtC fix temperature all 20. # turn on thermostat -fix_modify AtC control thermal rescale 10 +fix_modify AtC control thermal rescale 10 # equilibrate MD field #dump D1 all atom 100 dump.bar1d #fix_modify AtC output bar1dfe 100 -timestep 5 +timestep 5 variable xdof equal 3*count(ghost) -compute_modify thermo_temp extra ${xdof} -thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] +compute_modify thermo_temp extra/dof ${xdof} +thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_modify format 1 %6i format 2 %7.2g -thermo 100 -run 400 +thermo 100 +run 400 # change thermostat to hoover -fix_modify AtC unfix temperature all -fix_modify AtC control thermal hoover -#fix_modify AtC localized_lambda on -fix_modify AtC filter type exponential -fix_modify AtC filter scale 10000.0 -fix_modify AtC filter on +fix_modify AtC unfix temperature all +fix_modify AtC control thermal hoover +#fix_modify AtC localized_lambda on +fix_modify AtC filter type exponential +fix_modify AtC filter scale 10000.0 +fix_modify AtC filter on # add nodesets # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF @@ -67,13 +67,13 @@ fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF fix_modify AtC fix temperature lbc 40. fix_modify AtC fix temperature rbc 20. # initialize filter -thermo 1 -run 100 +thermo 1 +run 100 # set up output, should be before a "run" fix_modify AtC output bar1dFE 100 text binary # output command #dump D1 all atom 1000 dump.bar1d # run with FE reset_timestep 0 -thermo 100 -run 10000 +thermo 100 +run 10000 diff --git a/examples/PACKAGES/atc/thermal/in.bar1d_all_atoms b/examples/PACKAGES/atc/thermal/in.bar1d_all_atoms index 2219b803ec..1faf24427d 100644 --- a/examples/PACKAGES/atc/thermal/in.bar1d_all_atoms +++ b/examples/PACKAGES/atc/thermal/in.bar1d_all_atoms @@ -4,33 +4,33 @@ # 40.# The result should show heat diffusing through the FEM to the MD and back # out # to the FEM on the right. Insufficient time is captured to reach the # linear # steady state, but heat crossing both boundaries should be observed. -units real -atom_style atomic +units real +atom_style atomic # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) # NOTE following 3 lines added for restart boundary f p p pair_style lj/cut 13.5 read_data all_atoms.init lattice fcc 5.405 origin 0.25 0.25 0.25 -region simRegion block -7 7 -3 3 -3 3 +region simRegion block -7 7 -3 3 -3 3 # create atoms, NOTE commented out for restart -#boundary f p p -#create_box 1 simRegion -#create_atoms 1 region simRegion -#mass 1 39.95 +#boundary f p p +#create_box 1 simRegion +#create_atoms 1 region simRegion +#mass 1 39.95 # specify interal/ghost atoms -region mdInternal block -6 6 -3 3 -3 3 -group internal region mdInternal -group ghost subtract all internal +region mdInternal block -6 6 -3 3 -3 3 +group internal region mdInternal +group ghost subtract all internal # velocities have Vcm = 0, NOTE next four lines commented out for restart -#velocity internal create 40. 87287 mom yes loop geom -#pair_style lj/cut 13.5 -##pair_coeff 1 1 0.010323166 3.405 13.5 -#pair_coeff 1 1 .238 3.405 13.5 -#write_restart all_atoms.init -neighbor 5. bin -neigh_modify every 10 delay 0 check no +#velocity internal create 40. 87287 mom yes loop geom +#pair_style lj/cut 13.5 +##pair_coeff 1 1 0.010323166 3.405 13.5 +#pair_coeff 1 1 .238 3.405 13.5 +#write_restart all_atoms.init +neighbor 5. bin +neigh_modify every 10 delay 0 check no # ID group atc PhysicsType ParameterFile fix AtC internal atc thermal Ar_thermal.mat # ID part keywords nx ny nz region @@ -39,34 +39,34 @@ fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF out fix_modify AtC mesh create_faceset lbndy box -6.0 16.0 -INF INF -INF INF outward fix_modify AtC mesh create_faceset rbndy box -16.0 6.0 -INF INF -INF INF outward # fix a temperature -fix_modify AtC fix temperature all 20. +fix_modify AtC fix temperature all 20. # turn on thermostat -fix_modify AtC control thermal rescale 10 +fix_modify AtC control thermal rescale 10 fix_modify AtC internal_quadrature off # equilibrate MD field #dump D1 all atom 100 dump.bar1d #fix_modify AtC output bar1dfe 100 -#fix_modify AtC time_integration frac_step -timestep 5 +#fix_modify AtC time_integration frac_step +timestep 5 variable xdof equal 3*count(ghost) -compute_modify thermo_temp extra ${xdof} +compute_modify thermo_temp extra/dof ${xdof} thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_modify format 1 %6i format 2 %7.2g -thermo 100 -run 400 +thermo 100 +run 400 # change thermostat to hoover -fix_modify AtC control thermal hoover -#fix_modify AtC thermal control flux interpolate -#fix_modify AtC thermal control flux faceset obndy -fix_modify AtC filter scale 1000.0 -#fix_modify AtC filter equilibrate -#fix_modify AtC filter on -#fix_modify AtC localized_lambda on +fix_modify AtC control thermal hoover +#fix_modify AtC thermal control flux interpolate +#fix_modify AtC thermal control flux faceset obndy +fix_modify AtC filter scale 1000.0 +#fix_modify AtC filter equilibrate +#fix_modify AtC filter on +#fix_modify AtC localized_lambda on fix_modify AtC boundary_faceset is obndy # initialize filter #fix_modify AtC output bar1d_all_atoms_preqFE 1 reset_timestep 0 -thermo 1 +thermo 1 #run 5000 # add nodesets and ramp temperature # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax @@ -76,26 +76,26 @@ thermo 1 #fix_modify AtC fix temperature rbc 20. # initialize filter #fix_modify AtC output bar1d_all_atoms_eqFE 200 -reset_timestep 0 -fix_modify AtC reset_time +reset_timestep 0 +fix_modify AtC reset_time #run 5000 # release and let run -#fix_modify AtC filter on -fix_modify AtC unfix temperature all +#fix_modify AtC filter on +fix_modify AtC unfix temperature all #fix_modify AtC localized_lambda on -fix_modify AtC control lumped_lambda_solve on +fix_modify AtC control lumped_lambda_solve on # dirichlet boundaries #fix_modify AtC fix temperature lbc 40. #fix_modify AtC fix temperature rbc 20. # neumann boundaries fix_modify AtC control thermal flux no_boundary -fix_modify AtC fix_flux temperature lbndy 0.0000000001 +fix_modify AtC fix_flux temperature lbndy 0.0000000001 fix_modify AtC fix_flux temperature rbndy -0.0000000001 # set up output, should be before a "run" fix_modify AtC output bar1d_all_atomsFE 200 text binary # output command #dump D1 all atom 1000 dump.bar1d # run with FE -reset_timestep 0 -thermo 200 -run 5000 +reset_timestep 0 +thermo 200 +run 5000 diff --git a/examples/PACKAGES/atc/thermal/in.bar1d_combined b/examples/PACKAGES/atc/thermal/in.bar1d_combined index 70dafe72be..23b01139f2 100644 --- a/examples/PACKAGES/atc/thermal/in.bar1d_combined +++ b/examples/PACKAGES/atc/thermal/in.bar1d_combined @@ -6,62 +6,62 @@ # linear # steady state, but heat crossing the boundaries should be observed, # as should the interaction of the two themostat types. #echo both -units real -atom_style atomic +units real +atom_style atomic # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) # NOTE following 3 lines added for restart -boundary f p p -pair_style lj/cut 13.5 +boundary f p p +pair_style lj/cut 13.5 read_data temp.init lattice fcc 5.405 origin 0.25 0.25 0.25 -region simRegion block -16 4 -3 3 -3 3 +region simRegion block -16 4 -3 3 -3 3 # create atoms, NOTE commented out for restart -#region mdRegion block -5 5 -3 3 -3 3 -#boundary f p p -#create_box 1 mdRegion -#create_atoms 1 region mdRegion -#mass 1 39.95 +#region mdRegion block -5 5 -3 3 -3 3 +#boundary f p p +#create_box 1 mdRegion +#create_atoms 1 region mdRegion +#mass 1 39.95 # specify interal/ghost atoms -region mdInternal block -4 4 -3 3 -3 3 -group internal region mdInternal -region mdGhost block -5 -4 -3 3 -3 3 -group ghost region mdGhost +region mdInternal block -4 4 -3 3 -3 3 +group internal region mdInternal +region mdGhost block -5 -4 -3 3 -3 3 +group ghost region mdGhost # velocities have Vcm = 0, NOTE next four lines commented out for restart -#velocity internal create 40. 87287 mom yes loop geom -#pair_style lj/cut 13.5 -##pair_coeff 1 1 0.010323166 3.405 13.5 -#pair_coeff 1 1 .238 3.405 13.5 -neighbor 5. bin -neigh_modify every 10 delay 0 check no -#write_restart tinit.dat +#velocity internal create 40. 87287 mom yes loop geom +#pair_style lj/cut 13.5 +##pair_coeff 1 1 0.010323166 3.405 13.5 +#pair_coeff 1 1 .238 3.405 13.5 +neighbor 5. bin +neigh_modify every 10 delay 0 check no +#write_restart tinit.dat # ID group atc PhysicsType ParameterFile fix AtC internal atc thermal Ar_thermal.mat fix_modify AtC boundary ghost fix_modify AtC time_integration fractional_step -fix_modify AtC internal_quadrature off +fix_modify AtC internal_quadrature off # ID part keywords nx ny nz region fix_modify AtC mesh create 10 1 1 simRegion f p p fix_modify AtC mesh create_faceset ibndy box -4.0 40.0 -INF INF -INF INF in fix_modify AtC mesh create_faceset obndy box -4.0 40.0 -INF INF -INF INF outward # fix a temperature -fix_modify AtC fix temperature all 20. +fix_modify AtC fix temperature all 20. # turn on thermostat -fix_modify AtC control thermal rescale 10 +fix_modify AtC control thermal rescale 10 variable xdof equal 3*count(ghost) -compute_modify thermo_temp extra ${xdof} +compute_modify thermo_temp extra/dof ${xdof} thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_modify format 1 %6i format 2 %7.2g # equilibrate MD field #fix_modify AtC output bar1dfe_combined_init 100 -timestep 5 -thermo 10 -run 400 +timestep 5 +thermo 10 +run 400 # change thermostat to flux -fix_modify AtC unfix temperature all -fix_modify AtC control thermal flux faceset obndy -#fix_modify AtC control thermal hoover -fix_modify AtC control localized_lambda on +fix_modify AtC unfix temperature all +fix_modify AtC control thermal flux faceset obndy +#fix_modify AtC control thermal hoover +fix_modify AtC control localized_lambda on #fix_modify AtC control tolerance 1.e-16 # this tolerance seems necessary to prevent noticeable drift # add nodesets # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax @@ -74,8 +74,8 @@ fix_modify AtC fix temperature rbc 20. fix_modify AtC filter type exponential fix_modify AtC filter scale 1000.0 #fix_modify AtC filter on -thermo 100 -#run 100 +thermo 100 +#run 100 # set up output, should be before a "run" fix_modify AtC output bar1d_combinedFE 100 text @@ -83,5 +83,5 @@ fix_modify AtC output bar1d_combinedFE 100 text #dump D1 all atom 100 dump.bar1d_combined # run with FE reset_timestep 0 -thermo 100 -run 5000 +thermo 100 +run 5000 diff --git a/examples/PACKAGES/atc/thermal/in.bar1d_flux b/examples/PACKAGES/atc/thermal/in.bar1d_flux index 2b79aa6339..6f7fdcca21 100644 --- a/examples/PACKAGES/atc/thermal/in.bar1d_flux +++ b/examples/PACKAGES/atc/thermal/in.bar1d_flux @@ -5,34 +5,34 @@ # out # to the FEM on the right. Insufficient time is captured to reach the # linear # steady state, but heat crossing both boundaries should be observed. #echo both -units real -atom_style atomic +units real +atom_style atomic # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) # NOTE following 3 lines added for restart -boundary f p p -pair_style lj/cut 13.5 +boundary f p p +pair_style lj/cut 13.5 read_data temp.init lattice fcc 5.405 origin 0.25 0.25 0.25 -region simRegion block -12 12 -3 3 -3 3 +region simRegion block -12 12 -3 3 -3 3 # create atoms, NOTE commented out for restart -#region mdRegion block -5 5 -3 3 -3 3 -#boundary f p p -#create_box 1 mdRegion -#create_atoms 1 region mdRegion -#mass 1 39.95 +#region mdRegion block -5 5 -3 3 -3 3 +#boundary f p p +#create_box 1 mdRegion +#create_atoms 1 region mdRegion +#mass 1 39.95 # specify interal/ghost atoms -region mdInternal block -4 4 -3 3 -3 3 -group internal region mdInternal -group ghost subtract all internal +region mdInternal block -4 4 -3 3 -3 3 +group internal region mdInternal +group ghost subtract all internal # velocities have Vcm = 0, NOTE next four lines commented out for restart -#velocity internal create 40. 87287 mom yes loop geom -#pair_style lj/cut 13.5 -##pair_coeff 1 1 0.010323166 3.405 13.5 -#pair_coeff 1 1 .238 3.405 13.5 -neighbor 5. bin -neigh_modify every 10 delay 0 check no -#write_restart tinit.dat +#velocity internal create 40. 87287 mom yes loop geom +#pair_style lj/cut 13.5 +##pair_coeff 1 1 0.010323166 3.405 13.5 +#pair_coeff 1 1 .238 3.405 13.5 +neighbor 5. bin +neigh_modify every 10 delay 0 check no +#write_restart tinit.dat # ID group atc PhysicsType ParameterFile fix AtC internal atc thermal Ar_thermal.mat fix_modify AtC boundary ghost @@ -42,25 +42,25 @@ fix_modify AtC mesh create 12 1 1 simRegion f p p fix_modify AtC mesh create_faceset ibndy box -4.0 4.0 -INF INF -INF INF in fix_modify AtC mesh create_faceset obndy box -4.0 4.0 -INF INF -INF INF outward # fix a temperature -fix_modify AtC fix temperature all 20. -#fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30. +fix_modify AtC fix temperature all 20. +#fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30. # turn on thermostat -fix_modify AtC control thermal rescale 10 +fix_modify AtC control thermal rescale 10 variable xdof equal 3*count(ghost) -compute_modify thermo_temp extra ${xdof} +compute_modify thermo_temp extra/dof ${xdof} thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_modify format 1 %6i format 2 %7.2g # equilibrate MD field #fix_modify AtC output bar1dfe_flux_init 100 -timestep 5 -thermo 10 -run 400 +timestep 5 +thermo 10 +run 400 # change thermostat to hoover -fix_modify AtC unfix temperature all -fix_modify AtC control thermal flux faceset obndy +fix_modify AtC unfix temperature all +fix_modify AtC control thermal flux faceset obndy fix_modify AtC filter type exponential -fix_modify AtC filter scale 10000.0 -#fix_modify AtC filter on +fix_modify AtC filter scale 10000.0 +#fix_modify AtC filter on # add nodesets # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF @@ -68,12 +68,12 @@ fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF fix_modify AtC fix temperature lbc 40. fix_modify AtC fix temperature rbc 20. # initialize filter -run 100 +run 100 # set up output, should be before a "run" fix_modify AtC output bar1d_fluxFE 100 text binary # output command #dump D1 all atom 1000 dump.bar1d # run with FE reset_timestep 0 -thermo 100 -run 10000 +thermo 100 +run 10000 diff --git a/examples/PACKAGES/atc/thermal/in.bar1d_frac_step b/examples/PACKAGES/atc/thermal/in.bar1d_frac_step index e8540d9151..09295cab24 100644 --- a/examples/PACKAGES/atc/thermal/in.bar1d_frac_step +++ b/examples/PACKAGES/atc/thermal/in.bar1d_frac_step @@ -4,33 +4,33 @@ # 40.# The result should show heat diffusing through the FEM to the MD and back # out # to the FEM on the right. Insufficient time is captured to reach the # linear # steady state, but heat crossing both boundaries should be observed. -units real -atom_style atomic +units real +atom_style atomic # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) # NOTE following 3 lines added for restart boundary f p p pair_style lj/cut 13.5 read_data temp.init lattice fcc 5.405 origin 0.25 0.25 0.25 -region simRegion block -12 12 -3 3 -3 3 +region simRegion block -12 12 -3 3 -3 3 # create atoms, NOTE commented out for restart -#region mdRegion block -5 5 -3 3 -3 3 -#boundary f p p -#create_box 1 mdRegion -#create_atoms 1 region mdRegion -#mass 1 39.95 +#region mdRegion block -5 5 -3 3 -3 3 +#boundary f p p +#create_box 1 mdRegion +#create_atoms 1 region mdRegion +#mass 1 39.95 # specify interal/ghost atoms -region mdInternal block -4 4 -3 3 -3 3 -group internal region mdInternal -group ghost subtract all internal +region mdInternal block -4 4 -3 3 -3 3 +group internal region mdInternal +group ghost subtract all internal # velocities have Vcm = 0, NOTE next four lines commented out for restart -#velocity internal create 40. 87287 mom yes loop geom -#pair_style lj/cut 13.5 -##pair_coeff 1 1 0.010323166 3.405 13.5 -#pair_coeff 1 1 .238 3.405 13.5 -neighbor 5. bin -neigh_modify every 10 delay 0 check no +#velocity internal create 40. 87287 mom yes loop geom +#pair_style lj/cut 13.5 +##pair_coeff 1 1 0.010323166 3.405 13.5 +#pair_coeff 1 1 .238 3.405 13.5 +neighbor 5. bin +neigh_modify every 10 delay 0 check no # ID group atc PhysicsType ParameterFile fix AtC internal atc thermal Ar_thermal.mat # ID part keywords nx ny nz region @@ -40,7 +40,7 @@ fix_modify AtC internal_atom_integrate off fix iNVE internal nve fix_modify AtC internal_quadrature off # fix a temperature -fix_modify AtC fix temperature all 20. +fix_modify AtC fix temperature all 20. # add nodesets # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax fix_modify AtC mesh create_nodeset lbc -4.1 -3.9 -INF INF -INF INF @@ -48,25 +48,25 @@ fix_modify AtC mesh create_nodeset rbc 3.9 4.1 -INF INF -INF INF fix_modify AtC fix temperature lbc 40. fix_modify AtC fix temperature rbc 20. # turn on thermostat -fix_modify AtC control thermal rescale 10 +fix_modify AtC control thermal rescale 10 # equilibrate MD field #dump D1 all atom 100 dump.bar1d #fix_modify AtC output bar1dfe 100 text -timestep 5 +timestep 5 variable xdof equal 3*count(ghost) -compute_modify thermo_temp extra ${xdof} +compute_modify thermo_temp extra/dof ${xdof} thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_modify format 1 %6i format 2 %7.2g -thermo 100 -run 400 +thermo 100 +run 400 # change thermostat to hoover fix_modify AtC unfix temperature all fix_modify AtC fix temperature lbc 40. fix_modify AtC fix temperature rbc 20. fix_modify AtC control thermal flux no_boundary -fix_modify AtC control tolerance 1.e-9 # this is to remove looser benchmark tolerance because the lambda solution was reacting to numerical noise, but it results in a slight drift in the constraints -#fix_modify AtC thermal control none -fix_modify AtC control localized_lambda on +fix_modify AtC control tolerance 1.e-9 # this is to remove looser benchmark tolerance because the lambda solution was reacting to numerical noise, but it results in a slight drift in the constraints +#fix_modify AtC thermal control none +fix_modify AtC control localized_lambda on fix_modify AtC filter type exponential fix_modify AtC filter scale 1000.0 fix_modify AtC filter on @@ -76,5 +76,5 @@ fix_modify AtC output bar1d_frac_stepFE 200 text #dump D1 all atom 1000 dump.bar1d # run with FE reset_timestep 0 -thermo 100 -run 10000 +thermo 100 +run 10000 diff --git a/examples/PACKAGES/atc/thermal/in.bar1d_hoover b/examples/PACKAGES/atc/thermal/in.bar1d_hoover index 2f0518d0d2..477a2bf08d 100644 --- a/examples/PACKAGES/atc/thermal/in.bar1d_hoover +++ b/examples/PACKAGES/atc/thermal/in.bar1d_hoover @@ -4,35 +4,35 @@ # 40.# The result should show heat diffusing through the FEM to the MD and back # out # to the FEM on the right. Insufficient time is captured to reach the # linear # steady state, but heat crossing both boundaries should be observed. -units real -atom_style atomic +units real +atom_style atomic log bar1d_hoover.log # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) # NOTE following 3 lines added for restart boundary f p p pair_style lj/cut 13.5 read_data all_atoms.init lattice fcc 5.405 origin 0.25 0.25 0.25 -region simRegion block -7 7 -3 3 -3 3 +region simRegion block -7 7 -3 3 -3 3 # create atoms, NOTE commented out for restart -#boundary f p p -#create_box 1 simRegion -#create_atoms 1 region simRegion -#mass 1 39.95 -#atom_modify sort 0 0 +#boundary f p p +#create_box 1 simRegion +#create_atoms 1 region simRegion +#mass 1 39.95 +#atom_modify sort 0 0 # specify interal/ghost atoms -region mdInternal block -6 6 -3 3 -3 3 -group internal region mdInternal -group ghost subtract all internal +region mdInternal block -6 6 -3 3 -3 3 +group internal region mdInternal +group ghost subtract all internal # velocities have Vcm = 0, NOTE next four lines commented out for restart -#velocity internal create 40. 87287 mom yes loop geom -#pair_style lj/cut 13.5 -##pair_coeff 1 1 0.010323166 3.405 13.5 -#pair_coeff 1 1 .238 3.405 13.5 -#write_restart all_atoms.init -neighbor 5. bin -neigh_modify every 10 delay 0 check no +#velocity internal create 40. 87287 mom yes loop geom +#pair_style lj/cut 13.5 +##pair_coeff 1 1 0.010323166 3.405 13.5 +#pair_coeff 1 1 .238 3.405 13.5 +#write_restart all_atoms.init +neighbor 5. bin +neigh_modify every 10 delay 0 check no # ID group atc PhysicsType ParameterFile fix AtC internal atc thermal Ar_thermal.mat # ID part keywords nx ny nz region @@ -40,9 +40,9 @@ fix AtC internal atc thermal Ar_thermal.mat # switch depending on application of BCs or coupling #variable nEls equal 6 # for boundary conditions variable nEls equal 12 # for coupling -fix_modify AtC boundary ghost # for coupling +fix_modify AtC boundary ghost # for coupling -region atcRegion block -${nEls} ${nEls} -3 3 -3 3 +region atcRegion block -${nEls} ${nEls} -3 3 -3 3 fix_modify AtC mesh create ${nEls} 1 1 atcRegion f p p fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward fix_modify AtC mesh create_faceset lbndy box -6.0 16.0 -INF INF -INF INF outward @@ -50,39 +50,39 @@ fix_modify AtC mesh create_faceset rbndy box -16.0 6.0 -INF INF -INF INF ou variable tol equal 0.1 variable uBnd equal ${nEls}+${tol} variable lBnd equal ${nEls}-${tol} -fix_modify AtC mesh create_nodeset lbc -${uBnd} -${lBnd} -INF INF -INF INF +fix_modify AtC mesh create_nodeset lbc -${uBnd} -${lBnd} -INF INF -INF INF fix_modify AtC mesh create_nodeset rbc ${lBnd} ${uBnd} -INF INF -INF INF # fix a temperature -fix_modify AtC fix temperature all 20. -#fix_modify AtC initial temperature all 20. -#fix_modify AtC consistent_fe_initialization on +fix_modify AtC fix temperature all 20. +#fix_modify AtC initial temperature all 20. +#fix_modify AtC consistent_fe_initialization on # turn on thermostat -fix_modify AtC control thermal rescale 10 +fix_modify AtC control thermal rescale 10 fix_modify AtC internal_quadrature off # equilibrate MD field #dump D1 all atom 100 dump.bar1d_hoover_init #fix_modify AtC output bar1d_hoover_init 100 text binary -fix_modify AtC time_integration fractional_step -fix_modify AtC temperature_definition total -timestep 5 +fix_modify AtC time_integration fractional_step +fix_modify AtC temperature_definition total +timestep 5 variable xdof equal 3*count(ghost) -compute_modify thermo_temp extra ${xdof} +compute_modify thermo_temp extra/dof ${xdof} thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_modify format 1 %6i format 2 %7.2g -thermo 100 -run 400 +thermo 100 +run 400 -fix_modify AtC unfix temperature all +fix_modify AtC unfix temperature all -fix_modify AtC filter type exponential +fix_modify AtC filter type exponential fix_modify AtC filter scale 1000.0 fix_modify AtC filter on # boundary conditions------------------------ # dirichlet with ramp (unstable when filtered due to instantaneous change in rate) -#fix_modify AtC fix temperature lbc temporal_ramp 20. 40. 25000. -#fix_modify AtC fix temperature rbc 20. +#fix_modify AtC fix temperature lbc temporal_ramp 20. 40. 25000. +#fix_modify AtC fix temperature rbc 20. #fix_modify AtC localized_lambda on #fix_modify AtC control thermal flux no_boundary #fix_modify AtC output test_rampFE 200 text binary @@ -94,7 +94,7 @@ fix_modify AtC filter on #fix_modify AtC fix temperature lbc 40. # dirichlet with rescaling -#fix_modify AtC filter off +#fix_modify AtC filter off #fix_modify AtC fix temperature all 20. #fix_modify AtC fix temperature lbc 40. #fix_modify AtC output test_rampFE 200 text binary @@ -126,13 +126,13 @@ fix_modify AtC fix temperature rbc 20. #fix_modify AtC lumped_lambda_solve on # hoover -fix_modify AtC control thermal hoover +fix_modify AtC control thermal hoover fix_modify AtC control localized_lambda on -fix_modify AtC control tolerance 1.e-14 +fix_modify AtC control tolerance 1.e-14 fix_modify AtC output bar1d_hooverFE 200 text binary #dump D1 all atom 200 dump.bar1d_hoover reset_timestep 0 fix_modify AtC reset_time -thermo 100 +thermo 100 run 5000 diff --git a/examples/PACKAGES/atc/thermal/in.bar1d_interpolate b/examples/PACKAGES/atc/thermal/in.bar1d_interpolate index 0333bf117d..7e1d6295b4 100644 --- a/examples/PACKAGES/atc/thermal/in.bar1d_interpolate +++ b/examples/PACKAGES/atc/thermal/in.bar1d_interpolate @@ -4,65 +4,65 @@ # 40.# The result should show heat diffusing through the FEM to the MD and back # out # to the FEM on the right. Insufficient time is captured to reach the # linear # steady state, but heat crossing both boundaries should be observed. -units real -atom_style atomic +units real +atom_style atomic # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) # NOTE following 3 lines added for restart boundary f p p pair_style lj/cut 13.5 read_data temp.init lattice fcc 5.405 origin 0.25 0.25 0.25 -region simRegion block -12 12 -3 3 -3 3 +region simRegion block -12 12 -3 3 -3 3 # create atoms, NOTE commented out for restart -#region mdRegion block -5 5 -3 3 -3 3 -#boundary f p p -#create_box 1 mdRegion -#create_atoms 1 region mdRegion -#mass 1 39.95 +#region mdRegion block -5 5 -3 3 -3 3 +#boundary f p p +#create_box 1 mdRegion +#create_atoms 1 region mdRegion +#mass 1 39.95 # specify interal/ghost atoms -region mdInternal block -4 4 -3 3 -3 3 -group internal region mdInternal -group ghost subtract all internal +region mdInternal block -4 4 -3 3 -3 3 +group internal region mdInternal +group ghost subtract all internal # velocities have Vcm = 0, NOTE next three lines commented out for restart -#velocity internal create 40. 87287 mom yes loop geom -#pair_style lj/cut 13.5 -#pair_coeff 1 1 .238 3.405 13.5 -neighbor 5. bin -neigh_modify every 10 delay 0 check no +#velocity internal create 40. 87287 mom yes loop geom +#pair_style lj/cut 13.5 +#pair_coeff 1 1 .238 3.405 13.5 +neighbor 5. bin +neigh_modify every 10 delay 0 check no # ID group atc PhysicsType ParameterFile fix AtC internal atc thermal Ar_thermal.mat fix_modify AtC boundary ghost # numerical parameters -fix_modify AtC time_integration fractional_step +fix_modify AtC time_integration fractional_step # ID part keywords nx ny nz region fix_modify AtC mesh create 12 1 1 simRegion f p p fix_modify AtC mesh create_faceset ibndy box -4.0 4.0 -INF INF -INF INF in fix_modify AtC mesh create_faceset obndy box -4.0 4.0 -INF INF -INF INF outward # fix a temperature -fix_modify AtC fix temperature all 20. -#fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30. -#fix_modify AtC fix temperature all quadratic 0 0 0 -0.154 0 0 30. 0.01 0.0 0.0 0 0 0 +fix_modify AtC fix temperature all 20. +#fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30. +#fix_modify AtC fix temperature all quadratic 0 0 0 -0.154 0 0 30. 0.01 0.0 0.0 0 0 0 # turn on thermostat -fix_modify AtC control thermal rescale 10 +fix_modify AtC control thermal rescale 10 # equilibrate MD field #fix_modify AtC output bar1dfe_flux_init 100 -timestep 5 +timestep 5 variable xdof equal 3*count(ghost) -compute_modify thermo_temp extra ${xdof} +compute_modify thermo_temp extra/dof ${xdof} thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_modify format 1 %6i format 2 %7.2g -thermo 100 -run 400 +thermo 100 +run 400 # change thermostat to hoover -fix_modify AtC unfix temperature all -fix_modify AtC control thermal none -fix_modify AtC control thermal flux interpolate -fix_modify AtC control localized_lambda on -#fix_modify AtC thermal control flux faceset obndy +fix_modify AtC unfix temperature all +fix_modify AtC control thermal none +fix_modify AtC control thermal flux interpolate +fix_modify AtC control localized_lambda on +#fix_modify AtC thermal control flux faceset obndy fix_modify AtC filter type exponential -fix_modify AtC filter scale 10000.0 -fix_modify AtC filter on +fix_modify AtC filter scale 10000.0 +fix_modify AtC filter on # add nodesets # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF @@ -70,11 +70,11 @@ fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF fix_modify AtC fix temperature lbc 40. fix_modify AtC fix temperature rbc 20. # initialize filter -run 100 +run 100 # set up output, should be before a "run" fix_modify AtC output bar1d_interpolateFE 100 text # run with FE reset_timestep 0 -thermo 100 -#run 10 -run 10000 +thermo 100 +#run 10 +run 10000 diff --git a/examples/PACKAGES/atc/thermal/in.bar1d_lumped b/examples/PACKAGES/atc/thermal/in.bar1d_lumped index 153f7b632d..5321c45eb4 100644 --- a/examples/PACKAGES/atc/thermal/in.bar1d_lumped +++ b/examples/PACKAGES/atc/thermal/in.bar1d_lumped @@ -5,32 +5,32 @@ # out # to the FEM on the right. Insufficient time is captured to reach the # linear # steady state, but heat crossing both boundaries should be observed. echo both -units real -atom_style atomic +units real +atom_style atomic # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) # NOTE following 3 lines added for restart boundary f p p pair_style lj/cut 13.5 read_data temp.init lattice fcc 5.405 origin 0.25 0.25 0.25 -region simRegion block -12 12 -3 3 -3 3 +region simRegion block -12 12 -3 3 -3 3 # create atoms, NOTE commented out for restart -#region mdRegion block -5 5 -3 3 -3 3 -#boundary f p p -#create_box 1 mdRegion -#create_atoms 1 region mdRegion -#mass 1 39.95 +#region mdRegion block -5 5 -3 3 -3 3 +#boundary f p p +#create_box 1 mdRegion +#create_atoms 1 region mdRegion +#mass 1 39.95 # specify interal/ghost atoms -region mdInternal block -4 4 -3 3 -3 3 -group internal region mdInternal -group ghost subtract all internal +region mdInternal block -4 4 -3 3 -3 3 +group internal region mdInternal +group ghost subtract all internal # velocities have Vcm = 0, NOTE next three lines commented out for restart -#velocity internal create 40. 87287 mom yes loop geom -#pair_style lj/cut 13.5 -#pair_coeff 1 1 .238 3.405 13.5 -neighbor 5. bin -neigh_modify every 10 delay 0 check no +#velocity internal create 40. 87287 mom yes loop geom +#pair_style lj/cut 13.5 +#pair_coeff 1 1 .238 3.405 13.5 +neighbor 5. bin +neigh_modify every 10 delay 0 check no # ID group atc PhysicsType ParameterFile fix AtC internal atc thermal Ar_thermal.mat fix_modify AtC boundary ghost @@ -42,30 +42,30 @@ fix_modify AtC mesh create 12 1 1 simRegion f p p fix_modify AtC mesh create_faceset ibndy box -4.0 4.0 -INF INF -INF INF in fix_modify AtC mesh create_faceset obndy box -4.0 4.0 -INF INF -INF INF outward # fix a temperature -fix_modify AtC fix temperature all 20. -#fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30. -#fix_modify AtC fix temperature all quadratic 0 0 0 -0.154 0 0 30. 0.01 0.0 0.0 0 0 0 +fix_modify AtC fix temperature all 20. +#fix_modify AtC fix temperature all linear 0 0 0 -0.154 0 0 30. +#fix_modify AtC fix temperature all quadratic 0 0 0 -0.154 0 0 30. 0.01 0.0 0.0 0 0 0 # turn on thermostat -fix_modify AtC control thermal rescale 10 +fix_modify AtC control thermal rescale 10 # output -thermo 100 +thermo 100 variable xdof equal 3*count(ghost) -compute_modify thermo_temp extra ${xdof} +compute_modify thermo_temp extra/dof ${xdof} thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_modify format 1 %6i format 2 %7.2g # equilibrate MD field #fix_modify AtC output bar1d_lumped_initFE 1 text -timestep 5 -run 400 -#run 100 +timestep 5 +run 400 +#run 100 # change thermostat to hoover -fix_modify AtC unfix temperature all -#fix_modify AtC thermal control flux interpolate -fix_modify AtC control thermal flux faceset obndy -fix_modify AtC control localized_lambda on +fix_modify AtC unfix temperature all +#fix_modify AtC thermal control flux interpolate +fix_modify AtC control thermal flux faceset obndy +fix_modify AtC control localized_lambda on fix_modify AtC filter type exponential -fix_modify AtC filter scale 10000.0 -fix_modify AtC filter on +fix_modify AtC filter scale 10000.0 +fix_modify AtC filter on # add nodesets # ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF @@ -73,13 +73,13 @@ fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF fix_modify AtC fix temperature lbc 80. fix_modify AtC fix temperature rbc 80. # initialize -thermo 10 -run 100 +thermo 10 +run 100 # relax fix_modify AtC unfix temperature all # output fix_modify AtC output bar1d_lumpedFE 100 text # run with FE reset_timestep 0 -thermo 100 -run 10000 +thermo 100 +run 10000 diff --git a/examples/PACKAGES/atc/two_temperature/in.uniform_heating b/examples/PACKAGES/atc/two_temperature/in.uniform_heating index 0565fe8449..81a649e847 100644 --- a/examples/PACKAGES/atc/two_temperature/in.uniform_heating +++ b/examples/PACKAGES/atc/two_temperature/in.uniform_heating @@ -1,41 +1,41 @@ # needs description #AtC Thermal Coupling echo both -units real -atom_style atomic -boundary f p p +units real +atom_style atomic +boundary f p p # create domain -#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) -pair_style lj/cut 13.5 -read_data uniform_heating.init +#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70) +pair_style lj/cut 13.5 +read_data uniform_heating.init lattice fcc 5.405 origin 0.25 0.25 0.25 -region mdRegion block -8 8 -3 3 -3 3 -region mdInternal block -6 6 -3 3 -3 3 -group internal region mdInternal -neighbor 5. bin -neigh_modify every 10 delay 0 check no +region mdRegion block -8 8 -3 3 -3 3 +region mdInternal block -6 6 -3 3 -3 3 +group internal region mdInternal +neighbor 5. bin +neigh_modify every 10 delay 0 check no # ID group atc PhysicsType ParameterFile fix AtC internal atc two_temperature Ar_ttm.mat # ID part keywords nx ny nz region fix_modify AtC mesh create 6 1 1 mdInternal f p p fix_modify AtC internal_quadrature on # fix a temperature -fix_modify AtC initial temperature all 20. -fix_modify AtC fix temperature all 20. -fix_modify AtC initial electron_temperature all 20. -fix_modify AtC fix electron_temperature all 20. +fix_modify AtC initial temperature all 20. +fix_modify AtC fix temperature all 20. +fix_modify AtC initial electron_temperature all 20. +fix_modify AtC fix electron_temperature all 20. # turn on thermostat -fix_modify AtC control thermal rescale 10 +fix_modify AtC control thermal rescale 10 # output thermo_style custom step cpu pe etotal temp f_AtC[1] f_AtC[2] -thermo 100 +thermo 100 log uniform_heating.log # make thermo output the correct temperature by removing ghost dof # variable xdof equal 3*count(ghost) -# compute_modify thermo_temp extra ${xdof} +# compute_modify thermo_temp extra/dof ${xdof} # equilibrate MD field -timestep 5 -run 400 +timestep 5 +run 400 # change thermostat fix_modify AtC output uniform_heatingFE 100 text fix_modify AtC unfix temperature all @@ -50,4 +50,4 @@ fix_modify AtC fix temperature rbc 20. fix_modify AtC source temperature all 6.3363e-10 # run with FE reset_timestep 0 -run 1000 +run 1000 diff --git a/examples/PACKAGES/charge_regulation/in.chreg-acid b/examples/PACKAGES/charge_regulation/in.chreg-acid index 68ef5e1b7c..30ae13c6da 100644 --- a/examples/PACKAGES/charge_regulation/in.chreg-acid +++ b/examples/PACKAGES/charge_regulation/in.chreg-acid @@ -25,7 +25,7 @@ pair_modify shift yes ######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ########### fix fnve all nve compute dtemp all temp -compute_modify dtemp dynamic yes +compute_modify dtemp dynamic/dof yes fix fT all langevin 1.0 1.0 1.0 123 fix_modify fT temp dtemp diff --git a/examples/PACKAGES/charge_regulation/in.chreg-acid-real b/examples/PACKAGES/charge_regulation/in.chreg-acid-real index d7225f33ea..361027c596 100644 --- a/examples/PACKAGES/charge_regulation/in.chreg-acid-real +++ b/examples/PACKAGES/charge_regulation/in.chreg-acid-real @@ -6,12 +6,12 @@ neighbor 10.0 bin read_data data.chreg-acid-real #real units -variable sigma equal 7.2 # particle diameter 0.72 nm -variable temperature equal 298 # temperature 298 K +variable sigma equal 7.2 # particle diameter 0.72 nm +variable temperature equal 298 # temperature 298 K variable kb index 0.0019872067 # kB in Kcal/mol/K -variable epsilon equal ${kb}*${temperature} -variable tunit equal 2000 # time unit is 2000 fs -variable timestep equal 0.005*${tunit} +variable epsilon equal ${kb}*${temperature} +variable tunit equal 2000 # time unit is 2000 fs +variable timestep equal 0.005*${tunit} variable cut_long equal 12.5*${sigma} variable nevery equal 100 @@ -27,13 +27,13 @@ velocity all create ${temperature} 8008 loop geom pair_style lj/cut/coul/long ${cut_lj} ${cut_long} pair_coeff * * ${epsilon} ${sigma} kspace_style pppm 1.0e-3 -dielectric 78 +dielectric 78 pair_modify shift yes ######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ########### fix fnve all nve compute dtemp all temp -compute_modify dtemp dynamic yes +compute_modify dtemp dynamic/dof yes fix fT all langevin $(v_temperature) $(v_temperature) $(v_tunit) 123 fix_modify fT temp dtemp diff --git a/examples/PACKAGES/charge_regulation/in.chreg-polymer b/examples/PACKAGES/charge_regulation/in.chreg-polymer index 055032c018..068fe35c90 100644 --- a/examples/PACKAGES/charge_regulation/in.chreg-polymer +++ b/examples/PACKAGES/charge_regulation/in.chreg-polymer @@ -17,7 +17,7 @@ dielectric 1.0 ######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ########### fix fnve all nve compute dtemp all temp -compute_modify dtemp dynamic yes +compute_modify dtemp dynamic/dof yes fix fT all langevin 1.0 1.0 1.0 123 fix_modify fT temp dtemp diff --git a/examples/mc/in.gcmc.lj b/examples/mc/in.gcmc.lj index a1c7c6eb10..5f007fbf40 100644 --- a/examples/mc/in.gcmc.lj +++ b/examples/mc/in.gcmc.lj @@ -3,35 +3,35 @@ # rho ~ 0.5 # p ~ 1.5 # mu_ex ~ 0.0 -# comparable to Frenkel and Smit GCMC Case Study, Figure 5.8 +# comparable to Frenkel and Smit GCMC Case Study, Figure 5.8 # variables modifiable using -var command line switch variable mu index -1.25 variable temp index 2.0 -variable disp index 1.0 +variable disp index 1.0 variable lbox index 5.0 # global model settings units lj atom_style atomic -pair_style lj/cut 3.0 -pair_modify tail no # turn of to avoid triggering full_energy +pair_style lj/cut 3.0 +pair_modify tail no # turn of to avoid triggering full_energy # box -region box block 0 ${lbox} 0 ${lbox} 0 ${lbox} -create_box 1 box +region box block 0 ${lbox} 0 ${lbox} 0 ${lbox} +create_box 1 box # lj parameters -pair_coeff * * 1.0 1.0 -mass * 1.0 +pair_coeff * * 1.0 1.0 +mass * 1.0 # we recommend setting up a dedicated group for gcmc -group gcmcgroup type 1 +group gcmcgroup type 1 # gcmc @@ -39,29 +39,29 @@ fix mygcmc gcmcgroup gcmc 1 100 100 1 29494 ${temp} ${mu} ${disp} # atom count -variable type1 atom "type==1" -group type1 dynamic gcmcgroup var type1 +variable type1 atom "type==1" +group type1 dynamic gcmcgroup var type1 variable n1 equal count(type1) # averaging -variable rho equal density -variable p equal press -variable nugget equal 1.0e-8 +variable rho equal density +variable p equal press +variable nugget equal 1.0e-8 variable lambda equal 1.0 -variable muex equal ${mu}-${temp}*ln(density*${lambda}+${nugget}) -fix ave all ave/time 10 100 1000 v_rho v_p v_muex v_n1 ave one file rho_vs_p.dat -variable rhoav equal f_ave[1] -variable pav equal f_ave[2] -variable muexav equal f_ave[3] -variable n1av equal f_ave[4] +variable muex equal ${mu}-${temp}*ln(density*${lambda}+${nugget}) +fix ave all ave/time 10 100 1000 v_rho v_p v_muex v_n1 ave one file rho_vs_p.dat +variable rhoav equal f_ave[1] +variable pav equal f_ave[2] +variable muexav equal f_ave[3] +variable n1av equal f_ave[4] # output -variable tacc equal f_mygcmc[2]/(f_mygcmc[1]+${nugget}) -variable iacc equal f_mygcmc[4]/(f_mygcmc[3]+${nugget}) -variable dacc equal f_mygcmc[6]/(f_mygcmc[5]+${nugget}) -compute_modify thermo_temp dynamic yes +variable tacc equal f_mygcmc[2]/(f_mygcmc[1]+${nugget}) +variable iacc equal f_mygcmc[4]/(f_mygcmc[3]+${nugget}) +variable dacc equal f_mygcmc[6]/(f_mygcmc[5]+${nugget}) +compute_modify thermo_temp dynamic/dof yes thermo_style custom step temp press pe ke density atoms v_iacc v_dacc v_tacc v_rhoav v_pav v_muexav v_n1av thermo 1000 From 900c6cf545fe74bacb3adfa0721fa87c9ec5b2db Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 1 Jul 2023 18:27:35 -0400 Subject: [PATCH 054/247] remove unused variable --- src/REACTION/fix_bond_react.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/REACTION/fix_bond_react.cpp b/src/REACTION/fix_bond_react.cpp index 83442ecb25..cf99efd099 100644 --- a/src/REACTION/fix_bond_react.cpp +++ b/src/REACTION/fix_bond_react.cpp @@ -2223,7 +2223,7 @@ note: currently uses global rxnID and onemol variables double FixBondReact::get_totalcharge() { - int j,jj,ilocal; + int j,jj; double *q = atom->q; double sim_total_charge = 0.0; for (j = 0; j < onemol->natoms; j++) { From 5878040f26b273c7ff9f56fe6c70c6d194b5d80c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 1 Jul 2023 18:44:57 -0400 Subject: [PATCH 055/247] skip undesired 'make install' targets from bundled Kokkos library --- cmake/Modules/Packages/KOKKOS.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Modules/Packages/KOKKOS.cmake b/cmake/Modules/Packages/KOKKOS.cmake index 8b695667ae..795b087bcb 100644 --- a/cmake/Modules/Packages/KOKKOS.cmake +++ b/cmake/Modules/Packages/KOKKOS.cmake @@ -88,7 +88,7 @@ else() if(CMAKE_REQUEST_PIC) set(CMAKE_POSITION_INDEPENDENT_CODE ON) endif() - add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR}) + add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR} EXCLUDE_FROM_ALL) set(Kokkos_INCLUDE_DIRS ${LAMMPS_LIB_KOKKOS_SRC_DIR}/core/src ${LAMMPS_LIB_KOKKOS_SRC_DIR}/containers/src From b7bfc86eaf6cdd354553cd76b670b4ae0d7fdece Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 2 Jul 2023 07:07:12 -0400 Subject: [PATCH 056/247] remove unused files still available and used in download-build-jpeg-png branch --- cmake/CMakeLists.jpeg | 615 ----------------------------------- cmake/CMakeLists.png | 741 ------------------------------------------ cmake/CMakeLists.zlib | 195 ----------- 3 files changed, 1551 deletions(-) delete mode 100644 cmake/CMakeLists.jpeg delete mode 100644 cmake/CMakeLists.png delete mode 100644 cmake/CMakeLists.zlib diff --git a/cmake/CMakeLists.jpeg b/cmake/CMakeLists.jpeg deleted file mode 100644 index f0bd85a90d..0000000000 --- a/cmake/CMakeLists.jpeg +++ /dev/null @@ -1,615 +0,0 @@ -cmake_minimum_required(VERSION 3.10) -# When using CMake 3.4 and later, don't export symbols from executables unless -# the CMAKE_ENABLE_EXPORTS variable is set. -if(POLICY CMP0065) - cmake_policy(SET CMP0065 NEW) -endif() -if (POLICY CMP0077) - cmake_policy(SET CMP0077 NEW) -endif() -if(CMAKE_EXECUTABLE_SUFFIX) - set(CMAKE_EXECUTABLE_SUFFIX_TMP ${CMAKE_EXECUTABLE_SUFFIX}) -endif() - -project(libjpeg-turbo C) -set(VERSION 2.1.3) -set(COPYRIGHT_YEAR "1991-2022") -string(REPLACE "." ";" VERSION_TRIPLET ${VERSION}) -list(GET VERSION_TRIPLET 0 VERSION_MAJOR) -list(GET VERSION_TRIPLET 1 VERSION_MINOR) -list(GET VERSION_TRIPLET 2 VERSION_REVISION) -function(pad_number NUMBER OUTPUT_LEN) - string(LENGTH "${${NUMBER}}" INPUT_LEN) - if(INPUT_LEN LESS OUTPUT_LEN) - math(EXPR ZEROES "${OUTPUT_LEN} - ${INPUT_LEN} - 1") - set(NUM ${${NUMBER}}) - foreach(C RANGE ${ZEROES}) - set(NUM "0${NUM}") - endforeach() - set(${NUMBER} ${NUM} PARENT_SCOPE) - endif() -endfunction() -pad_number(VERSION_MINOR 3) -pad_number(VERSION_REVISION 3) -set(LIBJPEG_TURBO_VERSION_NUMBER ${VERSION_MAJOR}${VERSION_MINOR}${VERSION_REVISION}) - -# CMake 3.14 and later sets CMAKE_MACOSX_BUNDLE to TRUE by default when -# CMAKE_SYSTEM_NAME is iOS, tvOS, or watchOS, which breaks the libjpeg-turbo -# build. (Specifically, when CMAKE_MACOSX_BUNDLE is TRUE, executables for -# Apple platforms are built as application bundles, which causes CMake to -# complain that our install() directives for executables do not specify a -# BUNDLE DESTINATION. Even if CMake did not complain, building executables as -# application bundles would break our iOS packages.) -set(CMAKE_MACOSX_BUNDLE FALSE) - -string(TIMESTAMP DEFAULT_BUILD "%Y%m%d") -set(BUILD ${DEFAULT_BUILD} CACHE STRING "Build string (default: ${DEFAULT_BUILD})") - -# NOTE: On Windows, this does nothing except when using MinGW or Cygwin. -# CMAKE_BUILD_TYPE has no meaning in Visual Studio, and it always defaults to -# Debug when using NMake. -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) -endif() -message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}") - -message(STATUS "VERSION = ${VERSION}, BUILD = ${BUILD}") - -include(cmakescripts/PackageInfo.cmake) - -# Detect CPU type and whether we're building 64-bit or 32-bit code -math(EXPR BITS "${CMAKE_SIZEOF_VOID_P} * 8") -string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR_LC) -set(COUNT 1) -foreach(ARCH ${CMAKE_OSX_ARCHITECTURES}) - if(COUNT GREATER 1) - message(FATAL_ERROR "The libjpeg-turbo build system does not support multiple values in CMAKE_OSX_ARCHITECTURES.") - endif() - math(EXPR COUNT "${COUNT}+1") -endforeach() -if(CMAKE_SYSTEM_PROCESSOR_LC MATCHES "x86_64" OR - CMAKE_SYSTEM_PROCESSOR_LC MATCHES "amd64" OR - CMAKE_SYSTEM_PROCESSOR_LC MATCHES "i[0-9]86" OR - CMAKE_SYSTEM_PROCESSOR_LC MATCHES "x86" OR - CMAKE_SYSTEM_PROCESSOR_LC MATCHES "ia32") - if(BITS EQUAL 64 OR CMAKE_C_COMPILER_ABI MATCHES "ELF X32") - set(CPU_TYPE x86_64) - else() - set(CPU_TYPE i386) - endif() - if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL ${CPU_TYPE}) - set(CMAKE_SYSTEM_PROCESSOR ${CPU_TYPE}) - endif() -elseif(CMAKE_SYSTEM_PROCESSOR_LC STREQUAL "aarch64" OR - CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^arm") - if(BITS EQUAL 64) - set(CPU_TYPE arm64) - else() - set(CPU_TYPE arm) - endif() -elseif(CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^ppc" OR - CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^powerpc") - set(CPU_TYPE powerpc) -else() - set(CPU_TYPE ${CMAKE_SYSTEM_PROCESSOR_LC}) -endif() -if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR - CMAKE_OSX_ARCHITECTURES MATCHES "arm64" OR - CMAKE_OSX_ARCHITECTURES MATCHES "i386") - set(CPU_TYPE ${CMAKE_OSX_ARCHITECTURES}) -endif() -if(CMAKE_OSX_ARCHITECTURES MATCHES "ppc") - set(CPU_TYPE powerpc) -endif() -if(MSVC_IDE AND CMAKE_GENERATOR_PLATFORM MATCHES "arm64") - set(CPU_TYPE arm64) -endif() - -message(STATUS "${BITS}-bit build (${CPU_TYPE})") - -macro(report_directory var) - if(CMAKE_INSTALL_${var} STREQUAL CMAKE_INSTALL_FULL_${var}) - message(STATUS "CMAKE_INSTALL_${var} = ${CMAKE_INSTALL_${var}}") - else() - message(STATUS "CMAKE_INSTALL_${var} = ${CMAKE_INSTALL_${var}} (${CMAKE_INSTALL_FULL_${var}})") - endif() - mark_as_advanced(CLEAR CMAKE_INSTALL_${var}) -endmacro() - -set(DIRLIST "BINDIR;DATAROOTDIR;DOCDIR;INCLUDEDIR;LIBDIR") -if(UNIX) - list(APPEND DIRLIST "MANDIR") -endif() -foreach(dir ${DIRLIST}) - report_directory(${dir}) -endforeach() - - -############################################################################### -# CONFIGURATION OPTIONS -############################################################################### - -macro(boolean_number var) - if(${var}) - set(${var} 1 ${ARGN}) - else() - set(${var} 0 ${ARGN}) - endif() -endmacro() - -option(ENABLE_SHARED "Build shared libraries" FALSE) -boolean_number(ENABLE_SHARED) -option(ENABLE_STATIC "Build static libraries" TRUE) -boolean_number(ENABLE_STATIC) -option(REQUIRE_SIMD "Generate a fatal error if SIMD extensions are not available for this platform (default is to fall back to a non-SIMD build)" FALSE) -boolean_number(REQUIRE_SIMD) -option(WITH_12BIT "Encode/decode JPEG images with 12-bit samples (implies WITH_ARITH_DEC=0 WITH_ARITH_ENC=0 WITH_JAVA=0 WITH_SIMD=0 WITH_TURBOJPEG=0 )" FALSE) -boolean_number(WITH_12BIT) -option(WITH_ARITH_DEC "Include arithmetic decoding support when emulating the libjpeg v6b API/ABI" TRUE) -boolean_number(WITH_ARITH_DEC) -option(WITH_ARITH_ENC "Include arithmetic encoding support when emulating the libjpeg v6b API/ABI" TRUE) -boolean_number(WITH_ARITH_ENC) -if(CMAKE_C_COMPILER_ABI MATCHES "ELF X32") - set(WITH_JAVA 0) -else() - option(WITH_JAVA "Build Java wrapper for the TurboJPEG API library (implies ENABLE_SHARED=1)" FALSE) - boolean_number(WITH_JAVA) -endif() -option(WITH_JPEG7 "Emulate libjpeg v7 API/ABI (this makes ${CMAKE_PROJECT_NAME} backward-incompatible with libjpeg v6b)" FALSE) -boolean_number(WITH_JPEG7) -option(WITH_JPEG8 "Emulate libjpeg v8 API/ABI (this makes ${CMAKE_PROJECT_NAME} backward-incompatible with libjpeg v6b)" FALSE) -boolean_number(WITH_JPEG8) -option(WITH_MEM_SRCDST "Include in-memory source/destination manager functions when emulating the libjpeg v6b or v7 API/ABI" TRUE) -boolean_number(WITH_MEM_SRCDST) -option(WITH_SIMD "Include SIMD extensions, if available for this platform" FALSE) -boolean_number(WITH_SIMD) -option(WITH_TURBOJPEG "Include the TurboJPEG API library and associated test programs" FALSE) -boolean_number(WITH_TURBOJPEG) -option(WITH_FUZZ "Build fuzz targets" FALSE) - -macro(report_option var desc) - if(${var}) - message(STATUS "${desc} enabled (${var} = ${${var}})") - else() - message(STATUS "${desc} disabled (${var} = ${${var}})") - endif() -endmacro() - -if(WITH_JAVA) - set(ENABLE_SHARED 1) -endif() - -# Explicitly setting CMAKE_POSITION_INDEPENDENT_CODE=FALSE disables PIC for all -# targets, which will cause the shared library builds to fail. Thus, if shared -# libraries are enabled and CMAKE_POSITION_INDEPENDENT_CODE is explicitly set -# to FALSE, we need to unset it, thus restoring the default behavior -# (automatically using PIC for shared library targets.) -if(DEFINED CMAKE_POSITION_INDEPENDENT_CODE AND - NOT CMAKE_POSITION_INDEPENDENT_CODE AND ENABLE_SHARED) - unset(CMAKE_POSITION_INDEPENDENT_CODE CACHE) -endif() - -report_option(ENABLE_SHARED "Shared libraries") -report_option(ENABLE_STATIC "Static libraries") - -if(ENABLE_SHARED) - set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}) -endif() - -if(WITH_JPEG8 OR WITH_JPEG7) - set(WITH_ARITH_ENC 1) - set(WITH_ARITH_DEC 1) -endif() -if(WITH_JPEG8) - set(WITH_MEM_SRCDST 0) -endif() - -if(WITH_12BIT) - set(WITH_ARITH_DEC 0) - set(WITH_ARITH_ENC 0) - set(WITH_JAVA 0) - set(WITH_SIMD 0) - set(WITH_TURBOJPEG 0) - set(BITS_IN_JSAMPLE 12) -else() - set(BITS_IN_JSAMPLE 8) -endif() -report_option(WITH_12BIT "12-bit JPEG support") - -if(WITH_ARITH_DEC) - set(D_ARITH_CODING_SUPPORTED 1) -endif() -if(NOT WITH_12BIT) - report_option(WITH_ARITH_DEC "Arithmetic decoding support") -endif() - -if(WITH_ARITH_ENC) - set(C_ARITH_CODING_SUPPORTED 1) -endif() -if(NOT WITH_12BIT) - report_option(WITH_ARITH_ENC "Arithmetic encoding support") -endif() - -if(NOT WITH_12BIT) - report_option(WITH_TURBOJPEG "TurboJPEG API library") - report_option(WITH_JAVA "TurboJPEG Java wrapper") -endif() - -if(WITH_MEM_SRCDST) - set(MEM_SRCDST_SUPPORTED 1) - set(MEM_SRCDST_FUNCTIONS "global: jpeg_mem_dest; jpeg_mem_src;") -endif() -if(NOT WITH_JPEG8) - report_option(WITH_MEM_SRCDST "In-memory source/destination managers") -endif() - -set(SO_AGE 2) -if(WITH_MEM_SRCDST) - set(SO_AGE 3) -endif() - -if(WITH_JPEG8) - set(JPEG_LIB_VERSION 80) -elseif(WITH_JPEG7) - set(JPEG_LIB_VERSION 70) -else() - set(JPEG_LIB_VERSION 62) -endif() - -math(EXPR JPEG_LIB_VERSION_DIV10 "${JPEG_LIB_VERSION} / 10") -math(EXPR JPEG_LIB_VERSION_MOD10 "${JPEG_LIB_VERSION} % 10") -if(JPEG_LIB_VERSION STREQUAL "62") - set(DEFAULT_SO_MAJOR_VERSION ${JPEG_LIB_VERSION}) -else() - set(DEFAULT_SO_MAJOR_VERSION ${JPEG_LIB_VERSION_DIV10}) -endif() -if(JPEG_LIB_VERSION STREQUAL "80") - set(DEFAULT_SO_MINOR_VERSION 2) -else() - set(DEFAULT_SO_MINOR_VERSION 0) -endif() - -# This causes SO_MAJOR_VERSION/SO_MINOR_VERSION to reset to defaults if -# WITH_JPEG7 or WITH_JPEG8 has changed. -if((DEFINED WITH_JPEG7_INT AND NOT WITH_JPEG7 EQUAL WITH_JPEG7_INT) OR - (DEFINED WITH_JPEG8_INT AND NOT WITH_JPEG8 EQUAL WITH_JPEG8_INT)) - set(FORCE_SO_VERSION "FORCE") -endif() -set(WITH_JPEG7_INT ${WITH_JPEG7} CACHE INTERNAL "") -set(WITH_JPEG8_INT ${WITH_JPEG8} CACHE INTERNAL "") - -set(SO_MAJOR_VERSION ${DEFAULT_SO_MAJOR_VERSION} CACHE STRING - "Major version of the libjpeg API shared library (default: ${DEFAULT_SO_MAJOR_VERSION})" - ${FORCE_SO_VERSION}) -set(SO_MINOR_VERSION ${DEFAULT_SO_MINOR_VERSION} CACHE STRING - "Minor version of the libjpeg API shared library (default: ${DEFAULT_SO_MINOR_VERSION})" - ${FORCE_SO_VERSION}) - -set(JPEG_LIB_VERSION_DECIMAL "${JPEG_LIB_VERSION_DIV10}.${JPEG_LIB_VERSION_MOD10}") -message(STATUS "Emulating libjpeg API/ABI v${JPEG_LIB_VERSION_DECIMAL} (WITH_JPEG7 = ${WITH_JPEG7}, WITH_JPEG8 = ${WITH_JPEG8})") -message(STATUS "libjpeg API shared library version = ${SO_MAJOR_VERSION}.${SO_AGE}.${SO_MINOR_VERSION}") - -# Because the TurboJPEG API library uses versioned symbols and changes the -# names of functions whenever they are modified in a backward-incompatible -# manner, it is always backward-ABI-compatible with itself, so the major and -# minor SO versions don't change. However, we increase the middle number (the -# SO "age") whenever functions are added to the API. -set(TURBOJPEG_SO_MAJOR_VERSION 0) -set(TURBOJPEG_SO_AGE 2) -set(TURBOJPEG_SO_VERSION 0.${TURBOJPEG_SO_AGE}.0) - - -############################################################################### -# COMPILER SETTINGS -############################################################################### - -if(MSVC) - option(WITH_CRT_DLL - "Link all ${CMAKE_PROJECT_NAME} libraries and executables with the C run-time DLL (msvcr*.dll) instead of the static C run-time library (libcmt*.lib.) The default is to use the C run-time DLL only with the libraries and executables that need it." - FALSE) - if(NOT WITH_CRT_DLL) - # Use the static C library for all build types - foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE - CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) - if(${var} MATCHES "/MD") - string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}") - endif() - endforeach() - endif() - add_definitions(-D_CRT_NONSTDC_NO_WARNINGS) -endif() - -if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang") - # Use the maximum optimization level for release builds - foreach(var CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO) - if(${var} MATCHES "-O2") - string(REGEX REPLACE "-O2" "-O3" ${var} "${${var}}") - endif() - endforeach() -endif() - -if(CMAKE_SYSTEM_NAME STREQUAL "SunOS") - if(CMAKE_C_COMPILER_ID MATCHES "SunPro") - # Use the maximum optimization level for release builds - foreach(var CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO) - if(${var} MATCHES "-xO3") - string(REGEX REPLACE "-xO3" "-xO5" ${var} "${${var}}") - endif() - if(${var} MATCHES "-xO2") - string(REGEX REPLACE "-xO2" "-xO5" ${var} "${${var}}") - endif() - endforeach() - endif() -endif() - -string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UC) - -set(EFFECTIVE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UC}}") -message(STATUS "Compiler flags = ${EFFECTIVE_C_FLAGS}") - -set(EFFECTIVE_LD_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE_UC}}") -message(STATUS "Linker flags = ${EFFECTIVE_LD_FLAGS}") - -include(CheckCSourceCompiles) -include(CheckIncludeFiles) -include(CheckTypeSize) - -check_type_size("size_t" SIZE_T) -check_type_size("unsigned long" UNSIGNED_LONG) - -if(SIZE_T EQUAL UNSIGNED_LONG) - check_c_source_compiles("int main(int argc, char **argv) { unsigned long a = argc; return __builtin_ctzl(a); }" - HAVE_BUILTIN_CTZL) -endif() -if(MSVC) - check_include_files("intrin.h" HAVE_INTRIN_H) -endif() - -if(UNIX) - if(CMAKE_CROSSCOMPILING) - set(RIGHT_SHIFT_IS_UNSIGNED 0) - else() - include(CheckCSourceRuns) - check_c_source_runs(" - #include - #include - int is_shifting_signed (long arg) { - long res = arg >> 4; - if (res == -0x7F7E80CL) - return 1; /* right shift is signed */ - /* see if unsigned-shift hack will fix it. */ - /* we can't just test exact value since it depends on width of long... */ - res |= (~0L) << (32-4); - if (res == -0x7F7E80CL) - return 0; /* right shift is unsigned */ - printf(\"Right shift isn't acting as I expect it to.\\\\n\"); - printf(\"I fear the JPEG software will not work at all.\\\\n\\\\n\"); - return 0; /* try it with unsigned anyway */ - } - int main (void) { - exit(is_shifting_signed(-0x7F7E80B1L)); - }" RIGHT_SHIFT_IS_UNSIGNED) - endif() -endif() - -if(MSVC) - set(INLINE_OPTIONS "__inline;inline") -else() - set(INLINE_OPTIONS "__inline__;inline") -endif() -option(FORCE_INLINE "Force function inlining" TRUE) -boolean_number(FORCE_INLINE) -if(FORCE_INLINE) - if(MSVC) - list(INSERT INLINE_OPTIONS 0 "__forceinline") - else() - list(INSERT INLINE_OPTIONS 0 "inline __attribute__((always_inline))") - list(INSERT INLINE_OPTIONS 0 "__inline__ __attribute__((always_inline))") - endif() -endif() -foreach(inline ${INLINE_OPTIONS}) - check_c_source_compiles("${inline} static int foo(void) { return 0; } int main(void) { return foo(); }" - INLINE_WORKS) - if(INLINE_WORKS) - set(INLINE ${inline}) - break() - endif() -endforeach() -if(NOT INLINE_WORKS) - message(FATAL_ERROR "Could not determine how to inline functions.") -endif() -message(STATUS "INLINE = ${INLINE} (FORCE_INLINE = ${FORCE_INLINE})") - -if(WITH_TURBOJPEG) - if(MSVC) - set(THREAD_LOCAL "__declspec(thread)") - else() - set(THREAD_LOCAL "__thread") - endif() - check_c_source_compiles("${THREAD_LOCAL} int i; int main(void) { i = 0; return i; }" HAVE_THREAD_LOCAL) - if(HAVE_THREAD_LOCAL) - message(STATUS "THREAD_LOCAL = ${THREAD_LOCAL}") - else() - message(WARNING "Thread-local storage is not available. The TurboJPEG API library's global error handler will not be thread-safe.") - unset(THREAD_LOCAL) - endif() -endif() - -if(UNIX AND NOT APPLE) - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map "VERS_1 { global: *; };") - set(CMAKE_REQUIRED_FLAGS - "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/conftest.map") - check_c_source_compiles("int main(void) { return 0; }" HAVE_VERSION_SCRIPT) - set(CMAKE_REQUIRED_FLAGS) - file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map) - if(HAVE_VERSION_SCRIPT) - message(STATUS "Linker supports GNU-style version scripts") - set(MAPFLAG "-Wl,--version-script,") - set(TJMAPFLAG "-Wl,--version-script,") - else() - message(STATUS "Linker does not support GNU-style version scripts") - if(CMAKE_SYSTEM_NAME STREQUAL "SunOS") - # The Solaris linker doesn't like our version script for the libjpeg API - # library, but the version script for the TurboJPEG API library should - # still work. - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map - "VERS_1 { global: foo; local: *; }; VERS_2 { global: foo2; } VERS_1;") - set(CMAKE_REQUIRED_FLAGS "-Wl,-M,${CMAKE_CURRENT_BINARY_DIR}/conftest.map -shared") - check_c_source_compiles("int foo() { return 0; } int foo2() { return 2; }" - HAVE_MAPFILE) - set(CMAKE_REQUIRED_FLAGS) - file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map) - if(HAVE_MAPFILE) - message(STATUS "Linker supports mapfiles") - set(TJMAPFLAG "-Wl,-M,") - else() - message(STATUS "Linker does not support mapfiles") - endif() - endif() - endif() -endif() - -# Generate files -if(WIN32) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/win/jconfig.h.in jconfig.h) -else() - configure_file(jconfig.h.in jconfig.h) -endif() -configure_file(jconfigint.h.in jconfigint.h) -configure_file(jversion.h.in jversion.h) -if(UNIX) - configure_file(libjpeg.map.in libjpeg.map) -endif() - -# Include directories and compiler definitions -include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) - - -############################################################################### -# TARGETS -############################################################################### - -if(CMAKE_EXECUTABLE_SUFFIX_TMP) - set(CMAKE_EXECUTABLE_SUFFIX ${CMAKE_EXECUTABLE_SUFFIX_TMP}) -endif() -message(STATUS "CMAKE_EXECUTABLE_SUFFIX = ${CMAKE_EXECUTABLE_SUFFIX}") - -set(JPEG_SOURCES jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c - jcicc.c jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c - jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdatadst.c - jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdicc.c jdinput.c - jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c jdpostct.c jdsample.c - jdtrans.c jerror.c jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c - jidctint.c jidctred.c jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c) - -if(WITH_ARITH_ENC OR WITH_ARITH_DEC) - set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c) -endif() - -if(WITH_ARITH_ENC) - set(JPEG_SOURCES ${JPEG_SOURCES} jcarith.c) -endif() - -if(WITH_ARITH_DEC) - set(JPEG_SOURCES ${JPEG_SOURCES} jdarith.c) -endif() - -if(WITH_SIMD) - add_subdirectory(simd) - if(NEON_INTRINSICS) - add_definitions(-DNEON_INTRINSICS) - endif() -elseif(NOT WITH_12BIT) - message(STATUS "SIMD extensions: None (WITH_SIMD = ${WITH_SIMD})") -endif() -if(WITH_SIMD) - message(STATUS "SIMD extensions: ${CPU_TYPE} (WITH_SIMD = ${WITH_SIMD})") - if(MSVC_IDE OR XCODE) - set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1) - endif() -else() - add_library(simd OBJECT jsimd_none.c) - if(NOT WIN32 AND (CMAKE_POSITION_INDEPENDENT_CODE OR ENABLE_SHARED)) - set_target_properties(simd PROPERTIES POSITION_INDEPENDENT_CODE 1) - endif() -endif() - -if(WITH_JAVA) - add_subdirectory(java) -endif() - -if(ENABLE_SHARED) - add_subdirectory(sharedlib) -endif() - -if(ENABLE_STATIC) - add_library(jpeg-static STATIC ${JPEG_SOURCES} $ - ${SIMD_OBJS}) - if(NOT MSVC) - set_target_properties(jpeg-static PROPERTIES OUTPUT_NAME jpeg) - endif() -endif() - -if(WITH_TURBOJPEG) - if(ENABLE_SHARED) - set(TURBOJPEG_SOURCES ${JPEG_SOURCES} $ ${SIMD_OBJS} - turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c rdbmp.c rdppm.c - wrbmp.c wrppm.c) - set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile) - if(WITH_JAVA) - set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c) - include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) - set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile.jni) - endif() - if(MSVC) - configure_file(${CMAKE_SOURCE_DIR}/win/turbojpeg.rc.in - ${CMAKE_BINARY_DIR}/win/turbojpeg.rc) - set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} - ${CMAKE_BINARY_DIR}/win/turbojpeg.rc) - endif() - add_library(turbojpeg SHARED ${TURBOJPEG_SOURCES}) - set_property(TARGET turbojpeg PROPERTY COMPILE_FLAGS - "-DBMP_SUPPORTED -DPPM_SUPPORTED") - if(WIN32) - set_target_properties(turbojpeg PROPERTIES DEFINE_SYMBOL DLLDEFINE) - endif() - if(MINGW) - set_target_properties(turbojpeg PROPERTIES LINK_FLAGS -Wl,--kill-at) - endif() - if(APPLE AND (NOT CMAKE_OSX_DEPLOYMENT_TARGET OR - CMAKE_OSX_DEPLOYMENT_TARGET VERSION_GREATER 10.4)) - if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG) - set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") - endif() - set_target_properties(turbojpeg PROPERTIES MACOSX_RPATH 1) - endif() - set_target_properties(turbojpeg PROPERTIES - SOVERSION ${TURBOJPEG_SO_MAJOR_VERSION} VERSION ${TURBOJPEG_SO_VERSION}) - if(TJMAPFLAG) - set_target_properties(turbojpeg PROPERTIES - LINK_FLAGS "${TJMAPFLAG}${TJMAPFILE}") - endif() - endif() - - if(ENABLE_STATIC) - add_library(turbojpeg-static STATIC ${JPEG_SOURCES} $ - ${SIMD_OBJS} turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c rdbmp.c - rdppm.c wrbmp.c wrppm.c) - set_property(TARGET turbojpeg-static PROPERTY COMPILE_FLAGS - "-DBMP_SUPPORTED -DPPM_SUPPORTED") - if(NOT MSVC) - set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg) - endif() - endif() -endif() - -if(WIN32) - set(USE_SETMODE "-DUSE_SETMODE") -endif() -if(WITH_12BIT) - set(COMPILE_FLAGS "-DGIF_SUPPORTED -DPPM_SUPPORTED ${USE_SETMODE}") -else() - set(COMPILE_FLAGS "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED ${USE_SETMODE}") - set(CJPEG_BMP_SOURCES rdbmp.c rdtarga.c) - set(DJPEG_BMP_SOURCES wrbmp.c wrtarga.c) -endif() \ No newline at end of file diff --git a/cmake/CMakeLists.png b/cmake/CMakeLists.png deleted file mode 100644 index 2521ab41be..0000000000 --- a/cmake/CMakeLists.png +++ /dev/null @@ -1,741 +0,0 @@ -# CMakeLists.txt - -# Copyright (C) 2018 Cosmin Truta -# Copyright (C) 2007,2009-2018 Glenn Randers-Pehrson -# Written by Christian Ehrlicher, 2007 -# Revised by Roger Lowman, 2009-2010 -# Revised by Clifford Yapp, 2011-2012,2017 -# Revised by Roger Leigh, 2016 -# Revised by Andreas Franek, 2016 -# Revised by Sam Serrels, 2017 -# Revised by Vadim Barkov, 2017 -# Revised by Vicky Pfau, 2018 -# Revised by Cameron Cawley, 2018 -# Revised by Cosmin Truta, 2018 -# Revised by Kyle Bentley, 2018 - -# This code is released under the libpng license. -# For conditions of distribution and use, see the disclaimer -# and license in png.h - -cmake_minimum_required(VERSION 3.10) -cmake_policy(VERSION 3.1) -# When using CMake 3.4 and later, don't export symbols from executables unless -# the CMAKE_ENABLE_EXPORTS variable is set. -if(POLICY CMP0065) - cmake_policy(SET CMP0065 NEW) -endif() -if (POLICY CMP0077) - cmake_policy(SET CMP0077 NEW) -endif() -set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) - -project(libpng C ASM) -enable_testing() - -set(PNGLIB_MAJOR 1) -set(PNGLIB_MINOR 6) -set(PNGLIB_RELEASE 37) -set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR}) -set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE}) - -include(GNUInstallDirs) - -# needed packages - -# Allow users to specify location of Zlib. -# Useful if zlib is being built alongside this as a sub-project. -option(PNG_BUILD_ZLIB "Custom zlib Location, else find_package is used" ON) - -if(NOT PNG_BUILD_ZLIB) - find_package(ZLIB REQUIRED) - include_directories(${ZLIB_INCLUDE_DIR}) -endif() - -if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU) - find_library(M_LIBRARY m) -else() - # libm is not needed and/or not available - set(M_LIBRARY "") -endif() - -# COMMAND LINE OPTIONS -option(PNG_SHARED "Build shared lib" OFF) -option(PNG_STATIC "Build static lib" ON) -option(PNG_TESTS "Build libpng tests" OFF) - -# Many more configuration options could be added here -option(PNG_FRAMEWORK "Build OS X framework" OFF) -option(PNG_DEBUG "Build with debug output" OFF) -option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations" OFF) - -set(PNG_PREFIX "" CACHE STRING "Prefix to add to the API function names") -set(DFA_XTRA "" CACHE FILEPATH "File containing extra configuration settings") - -if(PNG_HARDWARE_OPTIMIZATIONS) - -# set definitions and sources for arm -if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") - set(PNG_ARM_NEON_POSSIBLE_VALUES check on off) - set(PNG_ARM_NEON "check" CACHE STRING "Enable ARM NEON optimizations: - check: (default) use internal checking code; - off: disable the optimizations; - on: turn on unconditionally.") - set_property(CACHE PNG_ARM_NEON PROPERTY STRINGS - ${PNG_ARM_NEON_POSSIBLE_VALUES}) - list(FIND PNG_ARM_NEON_POSSIBLE_VALUES ${PNG_ARM_NEON} index) - if(index EQUAL -1) - message(FATAL_ERROR - "PNG_ARM_NEON must be one of [${PNG_ARM_NEON_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_ARM_NEON} STREQUAL "off") - set(libpng_arm_sources - arm/arm_init.c - arm/filter_neon.S - arm/filter_neon_intrinsics.c - arm/palette_neon_intrinsics.c) - - if(${PNG_ARM_NEON} STREQUAL "on") - add_definitions(-DPNG_ARM_NEON_OPT=2) - elseif(${PNG_ARM_NEON} STREQUAL "check") - add_definitions(-DPNG_ARM_NEON_CHECK_SUPPORTED) - endif() - else() - add_definitions(-DPNG_ARM_NEON_OPT=0) - endif() -endif() - -# set definitions and sources for powerpc -if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*") - set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off) - set(PNG_POWERPC_VSX "on" CACHE STRING "Enable POWERPC VSX optimizations: - off: disable the optimizations.") - set_property(CACHE PNG_POWERPC_VSX PROPERTY STRINGS - ${PNG_POWERPC_VSX_POSSIBLE_VALUES}) - list(FIND PNG_POWERPC_VSX_POSSIBLE_VALUES ${PNG_POWERPC_VSX} index) - if(index EQUAL -1) - message(FATAL_ERROR - "PNG_POWERPC_VSX must be one of [${PNG_POWERPC_VSX_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_POWERPC_VSX} STREQUAL "off") - set(libpng_powerpc_sources - powerpc/powerpc_init.c - powerpc/filter_vsx_intrinsics.c) - if(${PNG_POWERPC_VSX} STREQUAL "on") - add_definitions(-DPNG_POWERPC_VSX_OPT=2) - endif() - else() - add_definitions(-DPNG_POWERPC_VSX_OPT=0) - endif() -endif() - -# set definitions and sources for intel -if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*") - set(PNG_INTEL_SSE_POSSIBLE_VALUES on off) - set(PNG_INTEL_SSE "on" CACHE STRING "Enable INTEL_SSE optimizations: - off: disable the optimizations") - set_property(CACHE PNG_INTEL_SSE PROPERTY STRINGS - ${PNG_INTEL_SSE_POSSIBLE_VALUES}) - list(FIND PNG_INTEL_SSE_POSSIBLE_VALUES ${PNG_INTEL_SSE} index) - if(index EQUAL -1) - message(FATAL_ERROR - "PNG_INTEL_SSE must be one of [${PNG_INTEL_SSE_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_INTEL_SSE} STREQUAL "off") - set(libpng_intel_sources - intel/intel_init.c - intel/filter_sse2_intrinsics.c) - if(${PNG_INTEL_SSE} STREQUAL "on") - add_definitions(-DPNG_INTEL_SSE_OPT=1) - endif() - else() - add_definitions(-DPNG_INTEL_SSE_OPT=0) - endif() -endif() - -# set definitions and sources for MIPS -if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*") - set(PNG_MIPS_MSA_POSSIBLE_VALUES on off) - set(PNG_MIPS_MSA "on" CACHE STRING "Enable MIPS_MSA optimizations: - off: disable the optimizations") - set_property(CACHE PNG_MIPS_MSA PROPERTY STRINGS - ${PNG_MIPS_MSA_POSSIBLE_VALUES}) - list(FIND PNG_MIPS_MSA_POSSIBLE_VALUES ${PNG_MIPS_MSA} index) - if(index EQUAL -1) - message(FATAL_ERROR - "PNG_MIPS_MSA must be one of [${PNG_MIPS_MSA_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_MIPS_MSA} STREQUAL "off") - set(libpng_mips_sources - mips/mips_init.c - mips/filter_msa_intrinsics.c) - if(${PNG_MIPS_MSA} STREQUAL "on") - add_definitions(-DPNG_MIPS_MSA_OPT=2) - endif() - else() - add_definitions(-DPNG_MIPS_MSA_OPT=0) - endif() -endif() - -else(PNG_HARDWARE_OPTIMIZATIONS) - -# set definitions and sources for arm -if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") - add_definitions(-DPNG_ARM_NEON_OPT=0) -endif() - -# set definitions and sources for powerpc -if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*") - add_definitions(-DPNG_POWERPC_VSX_OPT=0) -endif() - -# set definitions and sources for intel -if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*") - add_definitions(-DPNG_INTEL_SSE_OPT=0) -endif() - -# set definitions and sources for MIPS -if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*") - add_definitions(-DPNG_MIPS_MSA_OPT=0) -endif() - -endif(PNG_HARDWARE_OPTIMIZATIONS) - -# SET LIBNAME -set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR}) - -# to distinguish between debug and release lib -set(CMAKE_DEBUG_POSTFIX "d") - -include(CheckCSourceCompiles) -option(ld-version-script "Enable linker version script" ON) -if(ld-version-script AND NOT APPLE) - # Check if LD supports linker scripts. - file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/conftest.map" "VERS_1 { - global: sym; - local: *; -}; - -VERS_2 { - global: sym2; - main; -} VERS_1; -") - set(CMAKE_REQUIRED_FLAGS_SAVE ${CMAKE_REQUIRED_FLAGS}) - set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS} "-Wl,--version-script='${CMAKE_CURRENT_BINARY_DIR}/conftest.map'") - check_c_source_compiles("void sym(void) {} -void sym2(void) {} -int main(void) {return 0;} -" HAVE_LD_VERSION_SCRIPT) - if(NOT HAVE_LD_VERSION_SCRIPT) - set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_SAVE} "-Wl,-M -Wl,${CMAKE_CURRENT_BINARY_DIR}/conftest.map") - check_c_source_compiles("void sym(void) {} -void sym2(void) {} -int main(void) {return 0;} -" HAVE_SOLARIS_LD_VERSION_SCRIPT) - endif() - set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_SAVE}) - file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/conftest.map") -endif() - -# Find symbol prefix. Likely obsolete and unnecessary with recent -# toolchains (it's not done in many other projects). -function(symbol_prefix) - set(SYMBOL_PREFIX) - - execute_process(COMMAND "${CMAKE_C_COMPILER}" "-E" "-" - INPUT_FILE /dev/null - OUTPUT_VARIABLE OUT - RESULT_VARIABLE STATUS) - - if(CPP_FAIL) - message(WARNING "Failed to run the C preprocessor") - endif() - - string(REPLACE "\n" ";" OUT "${OUT}") - foreach(line ${OUT}) - string(REGEX MATCH "^PREFIX=" found_match "${line}") - if(found_match) - string(REGEX REPLACE "^PREFIX=(.*\)" "\\1" prefix "${line}") - string(REGEX MATCH "__USER_LABEL_PREFIX__" found_match "${prefix}") - if(found_match) - string(REGEX REPLACE "(.*)__USER_LABEL_PREFIX__(.*)" "\\1\\2" prefix "${prefix}") - endif() - set(SYMBOL_PREFIX "${prefix}") - endif() - endforeach() - - message(STATUS "Symbol prefix: ${SYMBOL_PREFIX}") - set(SYMBOL_PREFIX "${SYMBOL_PREFIX}" PARENT_SCOPE) -endfunction() - -if(UNIX) - symbol_prefix() -endif() - -find_program(AWK NAMES gawk awk) - -include_directories(${CMAKE_CURRENT_BINARY_DIR}) - -if(NOT AWK OR ANDROID) - # No awk available to generate sources; use pre-built pnglibconf.h - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt - ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h) - add_custom_target(genfiles) # Dummy -else() - include(CMakeParseArguments) - # Generate .chk from .out with awk - # generate_chk(INPUT inputfile OUTPUT outputfile [DEPENDS dep1 [dep2...]]) - function(generate_chk) - set(options) - set(oneValueArgs INPUT OUTPUT) - set(multiValueArgs DEPENDS) - cmake_parse_arguments(_GC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if(NOT _GC_INPUT) - message(FATAL_ERROR "generate_chk: Missing INPUT argument") - endif() - if(NOT _GC_OUTPUT) - message(FATAL_ERROR "generate_chk: Missing OUTPUT argument") - endif() - - add_custom_command(OUTPUT "${_GC_OUTPUT}" - COMMAND "${CMAKE_COMMAND}" - "-DINPUT=${_GC_INPUT}" - "-DOUTPUT=${_GC_OUTPUT}" - -P "${CMAKE_CURRENT_BINARY_DIR}/scripts/genchk.cmake" - DEPENDS "${_GC_INPUT}" ${_GC_DEPENDS} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - endfunction() - - # Generate .out from .c with awk - # generate_out(INPUT inputfile OUTPUT outputfile [DEPENDS dep1 [dep2...]]) - function(generate_out) - set(options) - set(oneValueArgs INPUT OUTPUT) - set(multiValueArgs DEPENDS) - cmake_parse_arguments(_GO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if(NOT _GO_INPUT) - message(FATAL_ERROR "generate_out: Missing INPUT argument") - endif() - if(NOT _GO_OUTPUT) - message(FATAL_ERROR "generate_out: Missing OUTPUT argument") - endif() - - add_custom_command(OUTPUT "${_GO_OUTPUT}" - COMMAND "${CMAKE_COMMAND}" - "-DINPUT=${_GO_INPUT}" - "-DOUTPUT=${_GO_OUTPUT}" - -P "${CMAKE_CURRENT_BINARY_DIR}/scripts/genout.cmake" - DEPENDS "${_GO_INPUT}" ${_GO_DEPENDS} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - endfunction() - - # Generate specific source file with awk - # generate_source(OUTPUT outputfile [DEPENDS dep1 [dep2...]]) - function(generate_source) - set(options) - set(oneValueArgs OUTPUT) - set(multiValueArgs DEPENDS) - cmake_parse_arguments(_GSO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if(NOT _GSO_OUTPUT) - message(FATAL_ERROR "generate_source: Missing OUTPUT argument") - endif() - - add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_GSO_OUTPUT}" - COMMAND "${CMAKE_COMMAND}" - "-DOUTPUT=${_GSO_OUTPUT}" - -P "${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake" - DEPENDS ${_GSO_DEPENDS} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - endfunction() - - # Copy file - function(generate_copy source destination) - add_custom_command(OUTPUT "${destination}" - COMMAND "${CMAKE_COMMAND}" -E remove "${destination}" - COMMAND "${CMAKE_COMMAND}" -E copy "${source}" - "${destination}" - DEPENDS "${source}") - endfunction() - - # Generate scripts/pnglibconf.h - generate_source(OUTPUT "scripts/pnglibconf.c" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.dfa" - "${CMAKE_CURRENT_SOURCE_DIR}/scripts/options.awk" - "${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h") - - # Generate pnglibconf.c - generate_source(OUTPUT "pnglibconf.c" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.dfa" - "${CMAKE_CURRENT_SOURCE_DIR}/scripts/options.awk" - "${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h") - - if(PNG_PREFIX) - set(PNGLIBCONF_H_EXTRA_DEPENDS - "${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out" - "${CMAKE_CURRENT_SOURCE_DIR}/scripts/macro.lst") - set(PNGPREFIX_H_EXTRA_DEPENDS - "${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out") - endif() - - generate_out(INPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.c" - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out") - - # Generate pnglibconf.h - generate_source(OUTPUT "pnglibconf.h" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out" - ${PNGLIBCONF_H_EXTRA_DEPENDS}) - - generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/intprefix.c" - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h") - - generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/prefix.c" - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h" - "${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h" - "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out") - - # Generate pngprefix.h - generate_source(OUTPUT "pngprefix.h" - DEPENDS ${PNGPREFIX_H_EXTRA_DEPENDS}) - - generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/sym.c" - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h") - - generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/symbols.c" - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h" - "${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h" - "${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt") - - generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/vers.c" - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h" - "${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h" - "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h") - - generate_chk(INPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out" - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/checksym.awk" - "${CMAKE_CURRENT_SOURCE_DIR}/scripts/symbols.def") - - add_custom_target(symbol-check DEPENDS - "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk") - - generate_copy("${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out" - "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym") - generate_copy("${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out" - "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers") - - add_custom_target(genvers DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers") - add_custom_target(gensym DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym") - - add_custom_target("genprebuilt" - COMMAND "${CMAKE_COMMAND}" - "-DOUTPUT=scripts/pnglibconf.h.prebuilt" - -P "${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - - # A single target handles generation of all generated files. If - # they are depended upon separately by multiple targets, this - # confuses parallel make (it would require a separate top-level - # target for each file to track the dependencies properly). - add_custom_target(genfiles DEPENDS - "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym" - "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers" - "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.c" - "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h" - "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out" - "${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h" - "${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out" - "${CMAKE_CURRENT_BINARY_DIR}/scripts/pnglibconf.c" - "${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out" - "${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out" - "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk" - "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out" - "${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out") -endif(NOT AWK OR ANDROID) - -# OUR SOURCES -set(libpng_public_hdrs - png.h - pngconf.h - "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h" -) -set(libpng_private_hdrs - pngpriv.h - pngdebug.h - pnginfo.h - pngstruct.h -) -if(AWK AND NOT ANDROID) - list(APPEND libpng_private_hdrs "${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h") -endif() -set(libpng_sources - ${libpng_public_hdrs} - ${libpng_private_hdrs} - png.c - pngerror.c - pngget.c - pngmem.c - pngpread.c - pngread.c - pngrio.c - pngrtran.c - pngrutil.c - pngset.c - pngtrans.c - pngwio.c - pngwrite.c - pngwtran.c - pngwutil.c - ${libpng_arm_sources} - ${libpng_intel_sources} - ${libpng_mips_sources} - ${libpng_powerpc_sources} -) -set(pngtest_sources - pngtest.c -) -set(pngvalid_sources - contrib/libtests/pngvalid.c -) -set(pngstest_sources - contrib/libtests/pngstest.c -) -set(pngunknown_sources - contrib/libtests/pngunknown.c -) -set(pngimage_sources - contrib/libtests/pngimage.c -) -set(pngfix_sources - contrib/tools/pngfix.c -) -set(png_fix_itxt_sources - contrib/tools/png-fix-itxt.c -) - -if(MSVC) - add_definitions(-D_CRT_SECURE_NO_DEPRECATE) -endif() - -if(PNG_DEBUG) - add_definitions(-DPNG_DEBUG) -endif() - -# NOW BUILD OUR TARGET -include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR}) - -unset(PNG_LIB_TARGETS) - -if(PNG_STATIC) - # does not work without changing name - set(PNG_LIB_NAME_STATIC png_static) - add_library(png_static STATIC ${libpng_sources}) - add_dependencies(png_static genfiles) - # MSVC doesn't use a different file extension for shared vs. static - # libs. We are able to change OUTPUT_NAME to remove the _static - # for all other platforms. - if(NOT MSVC) - set_target_properties(png_static PROPERTIES - OUTPUT_NAME "${PNG_LIB_NAME}" - CLEAN_DIRECT_OUTPUT 1) - else() - set_target_properties(png_static PROPERTIES - OUTPUT_NAME "${PNG_LIB_NAME}_static" - CLEAN_DIRECT_OUTPUT 1) - endif() - list(APPEND PNG_LIB_TARGETS png_static) - if(MSVC) - # msvc does not append 'lib' - do it here to have consistent name - set_target_properties(png_static PROPERTIES PREFIX "lib") - endif() - target_link_libraries(png_static ${M_LIBRARY}) -endif() - -if(NOT PNG_LIB_TARGETS) - message(SEND_ERROR - "No library variant selected to build. " - "Please enable at least one of the following options: " - "PNG_STATIC, PNG_SHARED, PNG_FRAMEWORK") -endif() - -# Set a variable with CMake code which: -# Creates a symlink from src to dest (if possible) or alternatively -# copies if different. -include(CMakeParseArguments) - -function(create_symlink DEST_FILE) - - cmake_parse_arguments(S "" "FILE;TARGET" "" ${ARGN}) - - if(NOT S_TARGET AND NOT S_FILE) - message(FATAL_ERROR "create_symlink: Missing TARGET or FILE argument") - endif() - - if(S_TARGET AND S_FILE) - message(FATAL_ERROR "create_symlink: Both source file ${S_FILE} and build target ${S_TARGET} arguments are present; can only have one.") - endif() - - if(S_FILE) - # If we don't need to symlink something that's coming from a build target, - # we can go ahead and symlink/copy at configure time. - if(CMAKE_HOST_WIN32 AND NOT CYGWIN) - execute_process( - COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${S_FILE} ${DEST_FILE} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - else() - execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink ${S_FILE} ${DEST_FILE} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - endif() - endif() - - if(S_TARGET) - # We need to use generator expressions, which can be a bit tricky, so for - # simplicity make the symlink a POST_BUILD step and use the TARGET - # signature of add_custom_command. - if(CMAKE_HOST_WIN32 AND NOT CYGWIN) - add_custom_command(TARGET ${S_TARGET} POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E copy_if_different $ $/${DEST_FILE}) - else() - add_custom_command(TARGET ${S_TARGET} POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E create_symlink $ $/${DEST_FILE}) - endif() - endif() - -endfunction() - -# Create source generation scripts. -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/genchk.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/scripts/genchk.cmake @ONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/genout.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/scripts/genout.cmake @ONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/gensrc.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake @ONLY) - -# libpng is a library so default to 'lib' -if(NOT DEFINED CMAKE_INSTALL_LIBDIR) - set(CMAKE_INSTALL_LIBDIR lib) -endif() - -# CREATE PKGCONFIG FILES -# We use the same files like ./configure, so we have to set its vars. -# Only do this on Windows for Cygwin - the files don't make much sense outside -# of a UNIX look-alike. -if(NOT WIN32 OR CYGWIN OR MINGW) - set(prefix ${CMAKE_INSTALL_PREFIX}) - set(exec_prefix ${CMAKE_INSTALL_PREFIX}) - set(libdir ${CMAKE_INSTALL_FULL_LIBDIR}) - set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR}) - set(LIBS "-lz -lm") - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in - ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY) - create_symlink(libpng.pc FILE ${PNGLIB_NAME}.pc) - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in - ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY) - create_symlink(libpng-config FILE ${PNGLIB_NAME}-config) -endif() - -# SET UP LINKS -if(PNG_SHARED) - set_target_properties(png PROPERTIES -# VERSION 16.${PNGLIB_RELEASE}.1.6.37 - VERSION 16.${PNGLIB_RELEASE}.0 - SOVERSION 16 - CLEAN_DIRECT_OUTPUT 1) -endif() - -# INSTALL -if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) - install(TARGETS ${PNG_LIB_TARGETS} - EXPORT libpng - RUNTIME DESTINATION bin - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}) - - if(PNG_SHARED) - # Create a symlink for libpng.dll.a => libpng16.dll.a on Cygwin - if(CYGWIN OR MINGW) - create_symlink(libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} TARGET png) - install(FILES $/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} - DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() - - if(NOT WIN32) - create_symlink(libpng${CMAKE_SHARED_LIBRARY_SUFFIX} TARGET png) - install(FILES $/libpng${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() - endif() - - if(PNG_STATIC) - if(NOT WIN32 OR CYGWIN OR MINGW) - create_symlink(libpng${CMAKE_STATIC_LIBRARY_SUFFIX} TARGET png_static) - install(FILES $/libpng${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() - endif() -endif() - -if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL) - install(FILES ${libpng_public_hdrs} DESTINATION include) - install(FILES ${libpng_public_hdrs} DESTINATION include/${PNGLIB_NAME}) -endif() -if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL) - if(NOT WIN32 OR CYGWIN OR MINGW) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config DESTINATION bin) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config DESTINATION bin) - endif() -endif() - -if(NOT SKIP_INSTALL_PROGRAMS AND NOT SKIP_INSTALL_ALL) - install(TARGETS ${PNG_BIN_TARGETS} - RUNTIME DESTINATION bin) -endif() - -if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL) - # Install man pages - if(NOT PNG_MAN_DIR) - set(PNG_MAN_DIR "share/man") - endif() - install(FILES libpng.3 libpngpf.3 DESTINATION ${PNG_MAN_DIR}/man3) - install(FILES png.5 DESTINATION ${PNG_MAN_DIR}/man5) - # Install pkg-config files - if(NOT CMAKE_HOST_WIN32 OR CYGWIN OR MINGW) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc - DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config - DESTINATION bin) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc - DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config - DESTINATION bin) - endif() -endif() - -# Create an export file that CMake users can include() to import our targets. -if(NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL) - install(EXPORT libpng DESTINATION lib/libpng FILE lib${PNG_LIB_NAME}.cmake) -endif() - -# what's with libpng-manual.txt and all the extra files? - -# UNINSTALL -# do we need this? - -# DIST -# do we need this? - -# to create msvc import lib for mingw compiled shared lib -# pexports libpng.dll > libpng.def -# lib /def:libpng.def /machine:x86 diff --git a/cmake/CMakeLists.zlib b/cmake/CMakeLists.zlib deleted file mode 100644 index a33f14ce64..0000000000 --- a/cmake/CMakeLists.zlib +++ /dev/null @@ -1,195 +0,0 @@ -cmake_minimum_required(VERSION 3.10) -# When using CMake 3.4 and later, don't export symbols from executables unless -# the CMAKE_ENABLE_EXPORTS variable is set. -if(POLICY CMP0065) - cmake_policy(SET CMP0065 NEW) -endif() -if (POLICY CMP0077) - cmake_policy(SET CMP0077 NEW) -endif() -set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) - -project(zlib C) - -set(VERSION "1.2.11") - -option(ASM686 "Enable building i686 assembly implementation" OFF) -option(AMD64 "Enable building amd64 assembly implementation" OFF) - -set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") -set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") -set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") -set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages") -set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") - -include(CheckTypeSize) -include(CheckFunctionExists) -include(CheckIncludeFile) -include(CheckCSourceCompiles) - -check_include_file(sys/types.h HAVE_SYS_TYPES_H) -check_include_file(stdint.h HAVE_STDINT_H) -check_include_file(stddef.h HAVE_STDDEF_H) - -# -# Check to see if we have large file support -# -set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) -# We add these other definitions here because CheckTypeSize.cmake -# in CMake 2.4.x does not automatically do so and we want -# compatibility with CMake 2.4.x. -if(HAVE_SYS_TYPES_H) - list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H) -endif() -if(HAVE_STDINT_H) - list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H) -endif() -if(HAVE_STDDEF_H) - list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H) -endif() -check_type_size(off64_t OFF64_T) -check_type_size(off64_t OFF64_T) -if(HAVE_OFF64_T) - add_definitions(-D_LARGEFILE64_SOURCE=1) -endif() -set(CMAKE_REQUIRED_DEFINITIONS) # clear variable - -# -# Check for fseeko -# -check_function_exists(fseeko HAVE_FSEEKO) -if(NOT HAVE_FSEEKO) - add_definitions(-DNO_FSEEKO) -endif() - -# -# Check for unistd.h -# -check_include_file(unistd.h Z_HAVE_UNISTD_H) - -if(MSVC) - set(CMAKE_DEBUG_POSTFIX "d") - add_definitions(-D_CRT_SECURE_NO_DEPRECATE) - add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -endif() - -if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) - # If we're doing an out of source build and the user has a zconf.h - # in their source tree... - if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h) - file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included) - endif() -endif() - -set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) -configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein - ${ZLIB_PC} @ONLY) -configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein - ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) -include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) - - -#============================================================================ -# zlib -#============================================================================ - -set(ZLIB_PUBLIC_HDRS - ${CMAKE_CURRENT_BINARY_DIR}/zconf.h - zlib.h -) -set(ZLIB_PRIVATE_HDRS - crc32.h - deflate.h - gzguts.h - inffast.h - inffixed.h - inflate.h - inftrees.h - trees.h - zutil.h -) -set(ZLIB_SRCS - adler32.c - compress.c - crc32.c - deflate.c - gzclose.c - gzlib.c - gzread.c - gzwrite.c - inflate.c - infback.c - inftrees.c - inffast.c - trees.c - uncompr.c - zutil.c -) - -if(NOT MINGW) - set(ZLIB_DLL_SRCS - win32/zlib1.rc # If present will override custom build rule below. - ) -endif() - -if(CMAKE_COMPILER_IS_GNUCC) - if(ASM686) - set(ZLIB_ASMS contrib/asm686/match.S) - elseif (AMD64) - set(ZLIB_ASMS contrib/amd64/amd64-match.S) - endif () - - if(ZLIB_ASMS) - add_definitions(-DASMV) - set_source_files_properties(${ZLIB_ASMS} PROPERTIES LANGUAGE C COMPILE_FLAGS -DNO_UNDERLINE) - endif() -endif() - -if(MSVC) - if(ASM686) - ENABLE_LANGUAGE(ASM_MASM) - set(ZLIB_ASMS - contrib/masmx86/inffas32.asm - contrib/masmx86/match686.asm - ) - elseif (AMD64) - ENABLE_LANGUAGE(ASM_MASM) - set(ZLIB_ASMS - contrib/masmx64/gvmat64.asm - contrib/masmx64/inffasx64.asm - ) - endif() - - if(ZLIB_ASMS) - add_definitions(-DASMV -DASMINF) - endif() -endif() - -# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION -file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents) -string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*" - "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents}) - -if(MINGW) - # This gets us DLL resource information when compiling on MinGW. - if(NOT CMAKE_RC_COMPILER) - set(CMAKE_RC_COMPILER windres.exe) - endif() - - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj - COMMAND ${CMAKE_RC_COMPILER} - -D GCC_WINDRES - -I ${CMAKE_CURRENT_SOURCE_DIR} - -I ${CMAKE_CURRENT_BINARY_DIR} - -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj - -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc) - set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) -endif(MINGW) - -add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) - -if(UNIX) - # On unix-like platforms the library is almost always called libz - set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z) -endif() \ No newline at end of file From d23cebf9f16908ba8d7a587f203570b7ce90b44a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 3 Jul 2023 09:53:59 -0400 Subject: [PATCH 057/247] must copy wheel to olddir when -w flag is not given --- python/install.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/install.py b/python/install.py index 25784791b4..853479e9f6 100644 --- a/python/install.py +++ b/python/install.py @@ -11,7 +11,7 @@ independently and used to build the wheel without installing it. """ from __future__ import print_function -import sys,os,shutil,glob,subprocess +import sys, os, shutil, glob, subprocess from argparse import ArgumentParser parser = ArgumentParser(prog='install.py', @@ -105,12 +105,12 @@ os.system(sys.executable + ' makewheel.py') for wheel in glob.glob('lammps-*.whl'): if args.wheeldir: shutil.copy(wheel, args.wheeldir) - -print('wheel = ', wheel) + else: + shutil.copy(wheel, olddir) # remove temporary folders and files os.chdir(olddir) -shutil.rmtree('build-python',True) +shutil.rmtree('build-python', True) # stop here if we were asked not to install the wheel we created if args.noinstall: From 268faf935b050097cf873f1e233c9405998466b6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 3 Jul 2023 10:32:24 -0400 Subject: [PATCH 058/247] avoid overeager flagging of errors for arguments to derived classes --- src/dump_custom.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index bdbc8ec185..dba72c7478 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -1464,10 +1464,14 @@ int DumpCustom::parse_fields(int narg, char **arg) switch (argi.get_type()) { case ArgInfo::UNKNOWN: - case ArgInfo::NONE: error->all(FLERR,"Invalid attribute {} in dump {} command",arg[iarg],style); break; + case ArgInfo::NONE: + // ignore because this may be a valid argument for a derived dump style class + return iarg; + break; + // compute value = c_ID // if no trailing [], then arg is set to 0, else arg is int between [] From 677ff15740c5e993b2a8305d173c1f34db3d75b3 Mon Sep 17 00:00:00 2001 From: "Dan S. Bolintineanu" Date: Mon, 3 Jul 2023 11:52:41 -0600 Subject: [PATCH 059/247] Gran/heat changes --- doc/src/pair_granular.rst | 31 +++++++++++++++++++++++----- src/GRANULAR/fix_heat_flow.cpp | 20 ++++++++---------- src/GRANULAR/gran_sub_mod_heat.cpp | 33 +++++++++++++++++++++++++++--- src/GRANULAR/gran_sub_mod_heat.h | 15 +++++++++++++- 4 files changed, 79 insertions(+), 20 deletions(-) diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index 37ff8fcbfe..fb5d5c6338 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -641,22 +641,36 @@ The optional *heat* keyword enables heat conduction. The options currently supported are: 1. *none* -2. *area* : :math:`k_{s}` +2. *radius* : :math:`k_{s}` +3. *area* : :math:`h_{s}` If the *heat* keyword is not specified, the model defaults to *none*. +For *heat* *radius*, the heat +:math:`Q` conducted between two particles is given by + +.. math:: + + Q = 2 k_{s} a \Delta T + +where :math:`\Delta T` is the difference in the two particles' temperature, +:math:`k_{s}` is a non-negative numeric value for the conductivity (in units +of power/(length*temperature)), and :math:`a` is the radius of the contact and +depends on the normal force model. This is the model proposed by +:ref:`Vargas and McCarthy ` + For *heat* *area*, the heat :math:`Q` conducted between two particles is given by .. math:: - Q = k_{s} A \Delta T - + Q = h_{s} A \Delta T where :math:`\Delta T` is the difference in the two particles' temperature, -:math:`k_{s}` is a non-negative numeric value for the conductivity, and -:math:`A` is the area of the contact and depends on the normal force model. +:math:`h_{s}` is a non-negative numeric value for the heat transfer +coefficient (in units of power/(area*temperature)), and :math:`A=\pi a^2` is +the area of the contact and depends on the normal force model. Note that the option *none* must either be used in all or none of of the *pair_coeff* calls. See :doc:`fix heat/flow ` and @@ -894,3 +908,10 @@ J. Appl. Mech., ASME 20, 327-344. **(Agnolin and Roux 2007)** Agnolin, I. & Roux, J-N. (2007). Internal states of model isotropic granular packings. I. Assembling process, geometry, and contact networks. Phys. Rev. E, 76, 061302. + +.. _VargasMcCarthy2001: + +**(Vargas and McCarthy 2001)** Vargas, W.L. and McCarthy, J.J. (2001). +Heat conduction in granular materials. +AIChE Journal, 47(5), 1052-1059. + diff --git a/src/GRANULAR/fix_heat_flow.cpp b/src/GRANULAR/fix_heat_flow.cpp index a9c110a2e7..16f7755d44 100644 --- a/src/GRANULAR/fix_heat_flow.cpp +++ b/src/GRANULAR/fix_heat_flow.cpp @@ -89,23 +89,21 @@ void FixHeatFlow::init() void FixHeatFlow::setup(int /*vflag*/) { - // Identify whether this is the first instance of fix heat/flow - first_flag = 0; - - int i = 0; - auto fixlist = modify->get_fix_by_style("heat/flow"); - for (const auto &ifix : fixlist) { - if (strcmp(ifix->id, id) == 0) break; - i++; - } - - if (i == 0) first_flag = 1; } /* ---------------------------------------------------------------------- */ void FixHeatFlow::setup_pre_force(int /*vflag*/) { + // Identify whether this is the first instance of fix heat/flow + first_flag = 0; + int i = 0; + auto fixlist = modify->get_fix_by_style("heat/flow"); + for (const auto &ifix : fixlist) { + if (strcmp(ifix->id, id) == 0) break; + i++; + } + if (i == 0) first_flag = 1; pre_force(0); } diff --git a/src/GRANULAR/gran_sub_mod_heat.cpp b/src/GRANULAR/gran_sub_mod_heat.cpp index 75dcd30b73..dc6d50f7ec 100644 --- a/src/GRANULAR/gran_sub_mod_heat.cpp +++ b/src/GRANULAR/gran_sub_mod_heat.cpp @@ -41,6 +41,33 @@ double GranSubModHeatNone::calculate_heat() return 0.0; } +/* ---------------------------------------------------------------------- + Radius-based heat conduction +------------------------------------------------------------------------- */ + +GranSubModHeatRadius::GranSubModHeatRadius(GranularModel *gm, LAMMPS *lmp) : GranSubModHeat(gm, lmp) +{ + num_coeffs = 1; + contact_radius_flag = 1; +} + +/* ---------------------------------------------------------------------- */ + +void GranSubModHeatRadius::coeffs_to_local() +{ + conductivity = coeffs[0]; + + if (conductivity < 0.0) error->all(FLERR, "Illegal radius heat model"); +} + +/* ---------------------------------------------------------------------- */ + +double GranSubModHeatRadius::calculate_heat() +{ + return 2 * conductivity * gm->contact_radius * (gm->Tj - gm->Ti); +} + + /* ---------------------------------------------------------------------- Area-based heat conduction ------------------------------------------------------------------------- */ @@ -55,14 +82,14 @@ GranSubModHeatArea::GranSubModHeatArea(GranularModel *gm, LAMMPS *lmp) : GranSub void GranSubModHeatArea::coeffs_to_local() { - conductivity = coeffs[0]; + heat_transfer_coeff = coeffs[0]; - if (conductivity < 0.0) error->all(FLERR, "Illegal area heat model"); + if (heat_transfer_coeff < 0.0) error->all(FLERR, "Illegal area heat model"); } /* ---------------------------------------------------------------------- */ double GranSubModHeatArea::calculate_heat() { - return conductivity * MY_PI * gm->contact_radius * gm->contact_radius * (gm->Tj - gm->Ti); + return heat_transfer_coeff * MY_PI * gm->contact_radius * gm->contact_radius * (gm->Tj - gm->Ti); } diff --git a/src/GRANULAR/gran_sub_mod_heat.h b/src/GRANULAR/gran_sub_mod_heat.h index 8e5dc2693d..1098a0aa78 100644 --- a/src/GRANULAR/gran_sub_mod_heat.h +++ b/src/GRANULAR/gran_sub_mod_heat.h @@ -14,6 +14,7 @@ #ifdef GRAN_SUB_MOD_CLASS // clang-format off GranSubModStyle(none,GranSubModHeatNone,HEAT); +GranSubModStyle(radius,GranSubModHeatRadius,HEAT); GranSubModStyle(area,GranSubModHeatArea,HEAT); // clang-format on #else @@ -39,6 +40,18 @@ namespace Granular_NS { GranSubModHeatNone(class GranularModel *, class LAMMPS *); double calculate_heat() override; }; + + /* ---------------------------------------------------------------------- */ + + class GranSubModHeatRadius : public GranSubModHeat { + public: + GranSubModHeatRadius(class GranularModel *, class LAMMPS *); + void coeffs_to_local() override; + double calculate_heat() override; + + protected: + double conductivity; + }; /* ---------------------------------------------------------------------- */ @@ -49,7 +62,7 @@ namespace Granular_NS { double calculate_heat() override; protected: - double conductivity; + double heat_transfer_coeff; }; } // namespace Granular_NS From 9dd5ceaf4eee1a81bdd824952368dddcdef2a491 Mon Sep 17 00:00:00 2001 From: Stan Gerald Moore Date: Mon, 3 Jul 2023 15:06:23 -0600 Subject: [PATCH 060/247] Kokkos Makefiles --- ...le.spock_kokkos => Makefile.aurora_kokkos} | 25 ++++++++----------- ...rusher_kokkos => Makefile.frontier_kokkos} | 4 +-- 2 files changed, 11 insertions(+), 18 deletions(-) rename src/MAKE/MACHINES/{Makefile.spock_kokkos => Makefile.aurora_kokkos} (82%) rename src/MAKE/MACHINES/{Makefile.crusher_kokkos => Makefile.frontier_kokkos} (94%) diff --git a/src/MAKE/MACHINES/Makefile.spock_kokkos b/src/MAKE/MACHINES/Makefile.aurora_kokkos similarity index 82% rename from src/MAKE/MACHINES/Makefile.spock_kokkos rename to src/MAKE/MACHINES/Makefile.aurora_kokkos index 8f7e5bd63d..a263d4cb8c 100644 --- a/src/MAKE/MACHINES/Makefile.spock_kokkos +++ b/src/MAKE/MACHINES/Makefile.aurora_kokkos @@ -1,4 +1,4 @@ -# spock_kokkos = KOKKOS/HIP, AMD MI100 GPU and AMD EPYC 7662 "Rome" CPU, Cray MPICH, hipcc compiler, hipFFT +# aurora_kokkos = KOKKOS/SYCL, Intel Data Center Max (Ponte Vecchio) GPU, Intel Sapphire Rapids CPU, mpicxx compiler SHELL = /bin/sh @@ -6,14 +6,12 @@ SHELL = /bin/sh # compiler/linker settings # specify flags and libraries needed for your compiler -KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd) - -CC = hipcc -CCFLAGS = -g -O3 -DNDEBUG -DKOKKOS_ENABLE_HIP_MULTIPLE_KERNEL_INSTANTIATIONS +CC = mpicxx +CCFLAGS = -g -O3 -DNDEBUG SHFLAGS = -fPIC DEPFLAGS = -M -LINK = hipcc +LINK = mpicxx LINKFLAGS = -g -O3 LIB = SIZE = size @@ -21,8 +19,8 @@ SIZE = size ARCHIVE = ar ARFLAGS = -rc SHLIBFLAGS = -shared -KOKKOS_DEVICES = HIP -KOKKOS_ARCH = Zen2,Vega908 +KOKKOS_DEVICES = SYCL +KOKKOS_ARCH = PVC,SPR # --------------------------------------------------------------------- # LAMMPS-specific settings, all OPTIONAL @@ -43,9 +41,9 @@ LMP_INC = -DLAMMPS_GZIP # PATH = path for MPI library # LIB = name of MPI library -MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -I${MPICH_DIR}/include +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 MPI_PATH = -MPI_LIB = -L${MPICH_DIR}/lib -lmpi -L${CRAY_MPICH_ROOTDIR}/gtl/lib -lmpi_gtl_hsa +MPI_LIB = # FFT library # see discussion in Section 3.5.2 of manual @@ -54,12 +52,9 @@ MPI_LIB = -L${MPICH_DIR}/lib -lmpi -L${CRAY_MPICH_ROOTDIR}/gtl/lib -lmpi_gtl_hsa # PATH = path for FFT library # LIB = name of FFT library -MY_HIP_EXE = $(shell which hipcc) -MY_HIP_PATH = $(dir ${MY_HIP_EXE}) - -FFT_INC = -DFFT_HIPFFT +FFT_INC = FFT_PATH = -FFT_LIB = -L${MY_HIP_PATH}../lib -lhipfft +FFT_LIB = # JPEG and/or PNG library # see discussion in Section 3.5.4 of manual diff --git a/src/MAKE/MACHINES/Makefile.crusher_kokkos b/src/MAKE/MACHINES/Makefile.frontier_kokkos similarity index 94% rename from src/MAKE/MACHINES/Makefile.crusher_kokkos rename to src/MAKE/MACHINES/Makefile.frontier_kokkos index d6332805f7..ade90e6ffb 100644 --- a/src/MAKE/MACHINES/Makefile.crusher_kokkos +++ b/src/MAKE/MACHINES/Makefile.frontier_kokkos @@ -1,4 +1,4 @@ -# crusher_kokkos = KOKKOS/HIP, AMD MI250X GPU and AMD EPYC 7A53 "Optimized 3rd Gen EPYC" CPU, Cray MPICH, hipcc compiler, hipFFT +# frontier_kokkos = KOKKOS/HIP, AMD MI250X GPU and AMD EPYC 7A53 "Optimized 3rd Gen EPYC" CPU, Cray MPICH, hipcc compiler, hipFFT SHELL = /bin/sh @@ -6,8 +6,6 @@ SHELL = /bin/sh # compiler/linker settings # specify flags and libraries needed for your compiler -KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd) - CC = hipcc CCFLAGS = -g -O3 -munsafe-fp-atomics -DNDEBUG -DKOKKOS_ENABLE_HIP_MULTIPLE_KERNEL_INSTANTIATIONS SHFLAGS = -fPIC From 9031d7979161afd541f27b268416176158f04d3c Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 3 Jul 2023 21:47:47 +0000 Subject: [PATCH 061/247] Add Makefile for Perlmutter --- src/MAKE/MACHINES/Makefile.frontier_kokkos | 2 +- src/MAKE/MACHINES/Makefile.perlmutter_kokkos | 128 +++++++++++++++++++ 2 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 src/MAKE/MACHINES/Makefile.perlmutter_kokkos diff --git a/src/MAKE/MACHINES/Makefile.frontier_kokkos b/src/MAKE/MACHINES/Makefile.frontier_kokkos index ade90e6ffb..86cddd12b7 100644 --- a/src/MAKE/MACHINES/Makefile.frontier_kokkos +++ b/src/MAKE/MACHINES/Makefile.frontier_kokkos @@ -20,7 +20,7 @@ ARCHIVE = ar ARFLAGS = -rc SHLIBFLAGS = -shared KOKKOS_DEVICES = HIP -KOKKOS_ARCH = Zen3,Vega90A +KOKKOS_ARCH = Vega90A,Zen3 # --------------------------------------------------------------------- # LAMMPS-specific settings, all OPTIONAL diff --git a/src/MAKE/MACHINES/Makefile.perlmutter_kokkos b/src/MAKE/MACHINES/Makefile.perlmutter_kokkos new file mode 100644 index 0000000000..2882fb6260 --- /dev/null +++ b/src/MAKE/MACHINES/Makefile.perlmutter_kokkos @@ -0,0 +1,128 @@ +# perlmutter_kokkos = KOKKOS/CUDA, NVIDIA A100 GPU and AMD EPYC 7763 (Milan) CPU, Cray MPICH, nvcc compiler with gcc + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd) + +CC = $(KOKKOS_ABSOLUTE_PATH)/bin/nvcc_wrapper +CCFLAGS = -g -O3 -DNDEBUG -Xcudafe --diag_suppress=unrecognized_pragma +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = $(KOKKOS_ABSOLUTE_PATH)/bin/nvcc_wrapper +LINKFLAGS = -g -O3 +LIB = +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared +KOKKOS_DEVICES = Cuda +KOKKOS_ARCH = Ampere80,Zen3 + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 3.5 of the manual + +LMP_INC = -DLAMMPS_GZIP + +# MPI library +# see discussion in Section 3.4 of the manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -I${MPICH_DIR}/include +MPI_PATH = +MPI_LIB = -L${MPICH_DIR}/lib -lmpi -L${CRAY_MPICH_ROOTDIR}/gtl/lib -lmpi_gtl_cuda + +# FFT library +# see discussion in Section 3.5.2 of manual +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_CUFFT +FFT_PATH = +FFT_LIB = -lcufft + +# JPEG and/or PNG library +# see discussion in Section 3.5.4 of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = + +# library for loading shared objects (defaults to -ldl, should be empty on Windows) +# uncomment to change the default + +# override DYN_LIB = + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) $(DYN_LIB) +EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) +EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ + +# Library targets + +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + @rm -f ../$(ARLIB) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) + +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +depend : fastdep.exe $(SRC) + @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 + +fastdep.exe: ../DEPEND/fastdep.c + cc -O -o $@ $< + +sinclude .depend From d57e1be9420699863dce18491fae67842f933285 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 4 Jul 2023 08:13:06 -0400 Subject: [PATCH 062/247] avoid division by zero in angle style dipole --- src/DIPOLE/angle_dipole.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/DIPOLE/angle_dipole.cpp b/src/DIPOLE/angle_dipole.cpp index f6508022db..6ad4a0fb4c 100644 --- a/src/DIPOLE/angle_dipole.cpp +++ b/src/DIPOLE/angle_dipole.cpp @@ -31,6 +31,8 @@ using namespace LAMMPS_NS; using namespace MathConst; +static constexpr double SMALL = 1.0e-100; + /* ---------------------------------------------------------------------- */ AngleDipole::AngleDipole(LAMMPS *lmp) : Angle(lmp) @@ -72,7 +74,7 @@ void AngleDipole::compute(int eflag, int vflag) double **f = atom->f; double delTx, delTy, delTz; - double fx, fy, fz, fmod, fmod_sqrtff; + double fx, fy, fz, fmod, fmod_len, len; if (!newton_bond) error->all(FLERR, "'newton' flag for bonded interactions must be 'on'"); @@ -87,6 +89,7 @@ void AngleDipole::compute(int eflag, int vflag) delz = x[iRef][2] - x[iDip][2]; r = sqrt(delx * delx + dely * dely + delz * delz); + if (r < SMALL) continue; rmu = r * mu[iDip][3]; cosGamma = (mu[iDip][0] * delx + mu[iDip][1] * dely + mu[iDip][2] * delz) / rmu; @@ -111,11 +114,13 @@ void AngleDipole::compute(int eflag, int vflag) fz = delx * delTy - dely * delTx; fmod = sqrt(delTx * delTx + delTy * delTy + delTz * delTz) / r; // magnitude - fmod_sqrtff = fmod / sqrt(fx * fx + fy * fy + fz * fz); + len = sqrt(fx * fx + fy * fy + fz * fz); + if (len < SMALL) continue; + fmod_len = fmod / len; - fi[0] = fx * fmod_sqrtff; - fi[1] = fy * fmod_sqrtff; - fi[2] = fz * fmod_sqrtff; + fi[0] = fx * fmod_len; + fi[1] = fy * fmod_len; + fi[2] = fz * fmod_len; fj[0] = -fi[0]; fj[1] = -fi[1]; @@ -249,6 +254,8 @@ double AngleDipole::single(int type, int iRef, int iDip, int /*iDummy*/) domain->minimum_image(delx, dely, delz); double r = sqrt(delx * delx + dely * dely + delz * delz); + if (r < SMALL) return 0.0; + double rmu = r * mu[iDip][3]; double cosGamma = (mu[iDip][0] * delx + mu[iDip][1] * dely + mu[iDip][2] * delz) / rmu; double deltaGamma = cosGamma - cos(gamma0[type]); From fcf30f4c582003ad6f0fef5b096158694330469d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Jul 2023 09:16:58 -0400 Subject: [PATCH 063/247] modernize example for dumping ellipsoid info to visualize with OVITO --- examples/ASPHERE/ellipsoid/in.ellipsoid | 127 +++++++++++---------- examples/ASPHERE/ellipsoid/in.ellipsoid.mp | 127 +++++++++++---------- 2 files changed, 132 insertions(+), 122 deletions(-) diff --git a/examples/ASPHERE/ellipsoid/in.ellipsoid b/examples/ASPHERE/ellipsoid/in.ellipsoid index 5e9a20f6e0..2dda95a029 100644 --- a/examples/ASPHERE/ellipsoid/in.ellipsoid +++ b/examples/ASPHERE/ellipsoid/in.ellipsoid @@ -1,23 +1,23 @@ # SRD diffusion demo - ellipsoids -units lj -atom_style ellipsoid -atom_modify first big -dimension 2 +units lj +atom_style ellipsoid +atom_modify first big +dimension 2 # create big ellipsoidal particles -lattice sq 0.14 -region box block 0 10 0 10 -0.5 0.5 -create_box 2 box -create_atoms 1 region box +lattice sq 0.14 +region box block 0 10 0 10 -0.5 0.5 +create_box 2 box +create_atoms 1 region box -set type 1 mass 1.0 -set type 1 shape 3.0 1.0 1.0 -group big type 1 -set group big quat/random 29898 +set type 1 mass 1.0 +set type 1 shape 3.0 1.0 1.0 +group big type 1 +set group big quat/random 29898 -velocity big create 1.44 87287 loop geom +velocity big create 1.44 87287 loop geom # equilibrate big particles @@ -26,57 +26,60 @@ pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1 pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0 pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0 -neighbor 0.3 bin -neigh_modify delay 0 every 1 check yes +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes -fix 1 big nve/asphere -fix 2 all enforce2d +fix 1 big nve/asphere +fix 2 all enforce2d -compute rot big temp/asphere +compute rot big temp/asphere +compute 0 all property/atom quatw quati quatj quatk shapex shapey shapez -#dump 1 all custom 10 dump.ellipsoid.equil id type x y z & -# quatw quati quatj quatk +#dump 1 all custom 10 dump.ellipsoid.equil id type x y z & +# c_0[1] c_0[2] c_0[3] c_0[4] c_0[5] c_0[6] c_0[7] +#dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk & +# colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez -thermo_style custom step temp c_rot epair etotal press -thermo 100 +thermo_style custom step temp c_rot epair etotal press +thermo 100 -run 1000 +run 1000 -#undump 1 -unfix 1 -unfix 2 +#undump 1 +unfix 1 +unfix 2 # add small particles as hi density lattice -region plane block INF INF INF INF -0.001 0.001 units box -lattice sq 120.0 -create_atoms 2 region plane +region plane block INF INF INF INF -0.001 0.001 units box +lattice sq 120.0 +create_atoms 2 region plane -set type 2 mass 0.01 -group small type 2 -velocity small create 1.0 593849 loop geom +set type 2 mass 0.01 +group small type 2 +velocity small create 1.0 593849 loop geom # delete overlaps # must set 1-2 cutoff to non-zero value -pair_style lj/cut 2.5 -pair_coeff 1 1 1.0 1.0 -pair_coeff 2 2 0.0 1.0 0.0 -pair_coeff 1 2 0.0 1.0 2.0 +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 +pair_coeff 2 2 0.0 1.0 0.0 +pair_coeff 1 2 0.0 1.0 2.0 -neigh_modify one 10000 +neigh_modify one 10000 -delete_atoms overlap 1.6 small big +delete_atoms overlap 1.6 small big # SRD run -reset_timestep 0 +reset_timestep 0 -neighbor 0.3 multi -neigh_modify delay 0 every 1 check yes +neighbor 0.3 multi +neigh_modify delay 0 every 1 check yes -comm_modify mode multi group big vel yes -neigh_modify include big +comm_modify mode multi group big vel yes +neigh_modify include big # no pairwise interactions with small particles @@ -88,29 +91,31 @@ pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0 # use fix SRD to push small particles out from inside big ones # if comment out, big particles won't see SRD particles -timestep 0.0005 +timestep 0.0005 -fix 1 big nve/asphere -fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 & - collision noslip search 0.2 inside ignore exact no bounce 50 -fix 3 all enforce2d +fix 1 big nve/asphere +fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 & + collision noslip search 0.2 inside ignore exact no bounce 50 +fix 3 all enforce2d # diagnostics -compute tbig big temp/asphere -variable pebig equal pe*atoms/count(big) -variable ebig equal etotal*atoms/count(big) -thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press & - f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] & - f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12] +compute tbig big temp/asphere +variable pebig equal pe*atoms/count(big) +variable ebig equal etotal*atoms/count(big) +thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press & + f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] & + f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12] -thermo_modify temp tbig -thermo 1000 +thermo_modify temp tbig +thermo 1000 -#dump 1 all custom 1000 dump.ellipsoid id type x y z & -# quatw quati quatj quatk +#dump 1 all custom 1000 dump.ellipsoid id type x y z & +# c_0[1] c_0[2] c_0[3] c_0[4] c_0[5] c_0[6] c_0[7] +#dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk & +# colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez -#dump 1 all image 1000 image.*.jpg type type zoom 1.6 -#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2 +#dump 2 all image 1000 image.*.jpg type type zoom 1.6 +#dump_modify 2 pad 6 adiam 1 1 adiam 2 0.2 -run 100000 +run 100000 diff --git a/examples/ASPHERE/ellipsoid/in.ellipsoid.mp b/examples/ASPHERE/ellipsoid/in.ellipsoid.mp index 7ce01ad4e1..e950cc86f5 100644 --- a/examples/ASPHERE/ellipsoid/in.ellipsoid.mp +++ b/examples/ASPHERE/ellipsoid/in.ellipsoid.mp @@ -1,23 +1,23 @@ # SRD viscosity demo - ellipsoids -units lj -atom_style ellipsoid -atom_modify first big -dimension 2 +units lj +atom_style ellipsoid +atom_modify first big +dimension 2 # create big ellipsoidal particles -lattice sq 0.14 -region box block 0 10 0 10 -0.5 0.5 -create_box 2 box -create_atoms 1 region box +lattice sq 0.14 +region box block 0 10 0 10 -0.5 0.5 +create_box 2 box +create_atoms 1 region box -set type 1 mass 1.0 -set type 1 shape 3.0 1.0 1.0 -group big type 1 -set group big quat/random 29898 +set type 1 mass 1.0 +set type 1 shape 3.0 1.0 1.0 +group big type 1 +set group big quat/random 29898 -velocity big create 1.44 87287 loop geom +velocity big create 1.44 87287 loop geom # equilibrate big particles @@ -26,57 +26,60 @@ pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1 pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0 pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0 -neighbor 0.3 bin -neigh_modify delay 0 every 1 check yes +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes -fix 1 big nve/asphere -fix 2 all enforce2d +fix 1 big nve/asphere +fix 2 all enforce2d -compute rot big temp/asphere +compute rot big temp/asphere +compute 0 all property/atom quatw quati quatj quatk shapex shapey shapez -#dump 1 all custom 10 dump.ellipsoid.equil id type x y z & -# quatw quati quatj quatk +#dump 1 all custom 10 dump.ellipsoid.equil id type x y z & +# c_0[1] c_0[2] c_0[3] c_0[4] c_0[5] c_0[6] c_0[7] +#dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk & +# colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez -thermo_style custom step temp c_rot epair etotal press -thermo 100 +thermo_style custom step temp c_rot epair etotal press +thermo 100 -run 1000 +run 1000 -#undump 1 -unfix 1 -unfix 2 +#undump 1 +unfix 1 +unfix 2 # add small particles as hi density lattice -region plane block INF INF INF INF -0.001 0.001 units box -lattice sq 120.0 -create_atoms 2 region plane +region plane block INF INF INF INF -0.001 0.001 units box +lattice sq 120.0 +create_atoms 2 region plane -set type 2 mass 0.01 -group small type 2 -velocity small create 1.0 593849 loop geom +set type 2 mass 0.01 +group small type 2 +velocity small create 1.0 593849 loop geom # delete overlaps # must set 1-2 cutoff to non-zero value -pair_style lj/cut 2.5 -pair_coeff 1 1 1.0 1.0 -pair_coeff 2 2 0.0 1.0 0.0 -pair_coeff 1 2 0.0 1.0 2.0 +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 +pair_coeff 2 2 0.0 1.0 0.0 +pair_coeff 1 2 0.0 1.0 2.0 -neigh_modify one 10000 +neigh_modify one 10000 -delete_atoms overlap 1.6 small big +delete_atoms overlap 1.6 small big # SRD run -reset_timestep 0 +reset_timestep 0 -neighbor 0.3 multi -neigh_modify delay 0 every 1 check yes +neighbor 0.3 multi +neigh_modify delay 0 every 1 check yes -comm_modify mode multi group big vel yes -neigh_modify include big +comm_modify mode multi group big vel yes +neigh_modify include big # no pairwise interactions with small particles @@ -88,30 +91,32 @@ pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0 # use fix SRD to push small particles out from inside big ones # if comment out, big particles won't see SRD particles -timestep 0.0005 +timestep 0.0005 -fix 1 big nve/asphere -fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 & +fix 1 big nve/asphere +fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 & collision noslip search 0.2 inside ignore exact no bounce 50 -fix 3 small viscosity 20 x y 50 -fix 4 all enforce2d +fix 3 small viscosity 20 x y 50 +fix 4 all enforce2d # diagnostics -compute tbig big temp/asphere -variable pebig equal pe*atoms/count(big) -variable ebig equal etotal*atoms/count(big) -thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press & - f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] & - f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12] +compute tbig big temp/asphere +variable pebig equal pe*atoms/count(big) +variable ebig equal etotal*atoms/count(big) +thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press & + f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] & + f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12] -thermo_modify temp tbig -thermo 1000 +thermo_modify temp tbig +thermo 1000 -#dump 1 all custom 500 dump.ellipsoid.mp id type x y z & -# quatw quati quatj quatk +#dump 1 all custom 500 dump.ellipsoid id type x y z & +# c_0[1] c_0[2] c_0[3] c_0[4] c_0[5] c_0[6] c_0[7] +#dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk & +# colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez -#dump 1 all image 500 image.*.jpg type type zoom 1.6 -#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2 +#dump 1 all image 500 image.*.jpg type type zoom 1.6 +#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2 -run 50000 +run 50000 From 8ae5ab57fcac05783a82c674ce9727ac1c819b56 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Jul 2023 09:17:27 -0400 Subject: [PATCH 064/247] non-ellipsoid particles you have a 1,0,0,0 quaternion and 1,1,1 shape --- src/compute_property_atom.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compute_property_atom.cpp b/src/compute_property_atom.cpp index fc7089fa01..fbb9129b6e 100644 --- a/src/compute_property_atom.cpp +++ b/src/compute_property_atom.cpp @@ -1268,7 +1268,7 @@ void ComputePropertyAtom::pack_shapex(int n) for (int i = 0; i < nlocal; i++) { if ((mask[i] & groupbit) && ellipsoid[i] >= 0) buf[n] = 2.0*bonus[ellipsoid[i]].shape[0]; - else buf[n] = 0.0; + else buf[n] = 1.0; n += nvalues; } } @@ -1285,7 +1285,7 @@ void ComputePropertyAtom::pack_shapey(int n) for (int i = 0; i < nlocal; i++) { if ((mask[i] & groupbit) && ellipsoid[i] >= 0) buf[n] = 2.0*bonus[ellipsoid[i]].shape[1]; - else buf[n] = 0.0; + else buf[n] = 1.0; n += nvalues; } } @@ -1302,7 +1302,7 @@ void ComputePropertyAtom::pack_shapez(int n) for (int i = 0; i < nlocal; i++) { if ((mask[i] & groupbit) && ellipsoid[i] >= 0) buf[n] = 2.0*bonus[ellipsoid[i]].shape[2]; - else buf[n] = 0.0; + else buf[n] = 1.0; n += nvalues; } } @@ -1320,7 +1320,7 @@ void ComputePropertyAtom::pack_quatw(int n) for (int i = 0; i < nlocal; i++) { if ((mask[i] & groupbit) && ellipsoid[i] >= 0) buf[n] = bonus[ellipsoid[i]].quat[0]; - else buf[n] = 0.0; + else buf[n] = 1.0; n += nvalues; } From 02845483d2038b42aecd77d327028d7a0fed9d09 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Thu, 6 Jul 2023 09:08:15 -0700 Subject: [PATCH 065/247] add gravity keyword info to fix rigid doc page --- doc/src/fix_rigid.rst | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/doc/src/fix_rigid.rst b/doc/src/fix_rigid.rst index 884d883f5a..098b900050 100644 --- a/doc/src/fix_rigid.rst +++ b/doc/src/fix_rigid.rst @@ -610,10 +610,12 @@ such attributes: the total mass of the rigid body, its center-of-mass position, its 6 moments of inertia, its center-of-mass velocity, and the 3 image flags of the center-of-mass position. For rigid bodies consisting of point particles or non-overlapping finite-size -particles, LAMMPS can compute these values accurately. However, for -rigid bodies consisting of finite-size particles which overlap each -other, LAMMPS will ignore the overlaps when computing these 4 -attributes. The amount of error this induces depends on the amount of +particles, LAMMPS can compute these values accurately. + +However, for rigid bodies consisting of finite-size particles which +overlap each other, LAMMPS will ignore the overlaps when computing +these 4 attributes, which means the dynamics of the bodies will be +incorrect. The amount of error this induces depends on the amount of overlap. To avoid this issue, the values can be pre-computed (e.g. using Monte Carlo integration). @@ -677,6 +679,28 @@ cross periodic boundaries during the simulation. auxiliary file will contain one line for every rigid body, even if the original file only listed a subset of the rigid bodies. +If the system has rigid bodies with finite-size overlapping particles +and the model uses the :doc:`fix gravity ` command to +apply a gravitational force to the rigid bodies, then the *gravity* +keyword should be used in the following manner. + +First, the group specified for the :doc:`fix gravity ` +command should not include any atoms in rigid bodies which have +overlapping particles. It can be empty (see the :doc:`group empty +` command) or only contain single particles not in rigid +bodies, e.g. background particles. + +Second, the *infile* keyword should be used to specify the total mass +and other properties of the rigid bodies with overlaps, so that their +dyamics will be modeled correctly, as explained above. + +Third, the *gravity* keyword should be used the with the ID of the +:doc:`fix gravity ` command as its argument. The rigid +fixes will access gravity fix to extract the current direction of the +gravity vector at each timestep (which can be static or dynamic). A +gravity force will then be applied to each rigid body at its +center-of-mass position using its total mass. + ---------- If you use a :doc:`temperature compute ` with a group that From 6e41ac7ead41188a9660ddd8074aa76a9f1d342c Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Thu, 6 Jul 2023 09:14:00 -0700 Subject: [PATCH 066/247] fix typo --- doc/src/fix_rigid.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/fix_rigid.rst b/doc/src/fix_rigid.rst index 098b900050..7650822626 100644 --- a/doc/src/fix_rigid.rst +++ b/doc/src/fix_rigid.rst @@ -696,9 +696,9 @@ dyamics will be modeled correctly, as explained above. Third, the *gravity* keyword should be used the with the ID of the :doc:`fix gravity ` command as its argument. The rigid -fixes will access gravity fix to extract the current direction of the -gravity vector at each timestep (which can be static or dynamic). A -gravity force will then be applied to each rigid body at its +fixes will access the gravity fix to extract the current direction of +the gravity vector at each timestep (which can be static or dynamic). +A gravity force will then be applied to each rigid body at its center-of-mass position using its total mass. ---------- From cac82473836961e7fddbdc068e3848939a07ae29 Mon Sep 17 00:00:00 2001 From: "Dan S. Bolintineanu" Date: Thu, 6 Jul 2023 11:19:22 -0600 Subject: [PATCH 067/247] Modified doc page for pair granular to include flux as extra pairwise quantity --- doc/src/pair_granular.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index fb5d5c6338..730eff9eee 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -763,15 +763,17 @@ The single() function of these pair styles returns 0.0 for the energy of a pairwise interaction, since energy is not conserved in these dissipative potentials. It also returns only the normal component of the pairwise interaction force. However, the single() function also -calculates 12 extra pairwise quantities. The first 3 are the +calculates 13 extra pairwise quantities. The first 3 are the components of the tangential force between particles I and J, acting on particle I. The fourth is the magnitude of this tangential force. The next 3 (5-7) are the components of the rolling torque acting on particle I. The next entry (8) is the magnitude of the rolling torque. The next entry (9) is the magnitude of the twisting torque acting about the vector connecting the two particle centers. -The last 3 (10-12) are the components of the vector connecting -the centers of the two particles (x_I - x_J). +The next 3 (10-12) are the components of the vector connecting +the centers of the two particles (x_I - x_J). The last quantity (13) +is the heat flow between the two particles, set to 0 if no heat model +is active. These extra quantities can be accessed by the :doc:`compute pair/local ` command, as *p1*, *p2*, ..., *p12*\ . From b66a5cd225e7a8b020cf3d5518f43e722acbb1c5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Jul 2023 13:31:00 -0400 Subject: [PATCH 068/247] fix another typo --- doc/src/fix_rigid.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/fix_rigid.rst b/doc/src/fix_rigid.rst index 7650822626..b6c2c99071 100644 --- a/doc/src/fix_rigid.rst +++ b/doc/src/fix_rigid.rst @@ -692,7 +692,7 @@ bodies, e.g. background particles. Second, the *infile* keyword should be used to specify the total mass and other properties of the rigid bodies with overlaps, so that their -dyamics will be modeled correctly, as explained above. +dynamics will be modeled correctly, as explained above. Third, the *gravity* keyword should be used the with the ID of the :doc:`fix gravity ` command as its argument. The rigid From 55b7b3d9992a22522bd85553389b5eda16a8ad65 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Jul 2023 14:03:07 -0400 Subject: [PATCH 069/247] whitespace fixes --- doc/src/pair_granular.rst | 10 +++++----- src/GRANULAR/gran_sub_mod_heat.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index 730eff9eee..c54df44d95 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -655,8 +655,8 @@ For *heat* *radius*, the heat where :math:`\Delta T` is the difference in the two particles' temperature, :math:`k_{s}` is a non-negative numeric value for the conductivity (in units -of power/(length*temperature)), and :math:`a` is the radius of the contact and -depends on the normal force model. This is the model proposed by +of power/(length*temperature)), and :math:`a` is the radius of the contact and +depends on the normal force model. This is the model proposed by :ref:`Vargas and McCarthy ` For *heat* *area*, the heat @@ -668,7 +668,7 @@ For *heat* *area*, the heat where :math:`\Delta T` is the difference in the two particles' temperature, -:math:`h_{s}` is a non-negative numeric value for the heat transfer +:math:`h_{s}` is a non-negative numeric value for the heat transfer coefficient (in units of power/(area*temperature)), and :math:`A=\pi a^2` is the area of the contact and depends on the normal force model. @@ -913,7 +913,7 @@ I. Assembling process, geometry, and contact networks. Phys. Rev. E, 76, 061302. .. _VargasMcCarthy2001: -**(Vargas and McCarthy 2001)** Vargas, W.L. and McCarthy, J.J. (2001). -Heat conduction in granular materials. +**(Vargas and McCarthy 2001)** Vargas, W.L. and McCarthy, J.J. (2001). +Heat conduction in granular materials. AIChE Journal, 47(5), 1052-1059. diff --git a/src/GRANULAR/gran_sub_mod_heat.h b/src/GRANULAR/gran_sub_mod_heat.h index 1098a0aa78..5f264cb913 100644 --- a/src/GRANULAR/gran_sub_mod_heat.h +++ b/src/GRANULAR/gran_sub_mod_heat.h @@ -40,7 +40,7 @@ namespace Granular_NS { GranSubModHeatNone(class GranularModel *, class LAMMPS *); double calculate_heat() override; }; - + /* ---------------------------------------------------------------------- */ class GranSubModHeatRadius : public GranSubModHeat { From 3e4b66378a4a31b243249cc2893efa54360b496a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Jul 2023 14:06:31 -0400 Subject: [PATCH 070/247] typo --- doc/src/pair_granular.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index c54df44d95..bc469412d9 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -657,7 +657,7 @@ where :math:`\Delta T` is the difference in the two particles' temperature, :math:`k_{s}` is a non-negative numeric value for the conductivity (in units of power/(length*temperature)), and :math:`a` is the radius of the contact and depends on the normal force model. This is the model proposed by -:ref:`Vargas and McCarthy ` +:ref:`Vargas and McCarthy `. For *heat* *area*, the heat :math:`Q` conducted between two particles is given by From bf0372280e42d46f02d12d392fc30a3d97a29d71 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Jul 2023 14:59:09 -0400 Subject: [PATCH 071/247] remove dead code --- src/GRANULAR/fix_heat_flow.cpp | 6 ------ src/GRANULAR/fix_heat_flow.h | 1 - 2 files changed, 7 deletions(-) diff --git a/src/GRANULAR/fix_heat_flow.cpp b/src/GRANULAR/fix_heat_flow.cpp index 16f7755d44..e948e5454f 100644 --- a/src/GRANULAR/fix_heat_flow.cpp +++ b/src/GRANULAR/fix_heat_flow.cpp @@ -87,12 +87,6 @@ void FixHeatFlow::init() /* ---------------------------------------------------------------------- */ -void FixHeatFlow::setup(int /*vflag*/) -{ -} - -/* ---------------------------------------------------------------------- */ - void FixHeatFlow::setup_pre_force(int /*vflag*/) { // Identify whether this is the first instance of fix heat/flow diff --git a/src/GRANULAR/fix_heat_flow.h b/src/GRANULAR/fix_heat_flow.h index 5a06eed4d3..89fabc5a4d 100644 --- a/src/GRANULAR/fix_heat_flow.h +++ b/src/GRANULAR/fix_heat_flow.h @@ -30,7 +30,6 @@ class FixHeatFlow : public Fix { int setmask() override; void init() override; - void setup(int) override; void setup_pre_force(int) override; void pre_force(int) override; void final_integrate() override; From 6d8f5a38ea44270cad55d208076ddd3a149b7f90 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Jul 2023 15:03:38 -0400 Subject: [PATCH 072/247] improve error messages --- src/GRANULAR/fix_heat_flow.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/GRANULAR/fix_heat_flow.cpp b/src/GRANULAR/fix_heat_flow.cpp index e948e5454f..519b7f731d 100644 --- a/src/GRANULAR/fix_heat_flow.cpp +++ b/src/GRANULAR/fix_heat_flow.cpp @@ -33,7 +33,7 @@ enum {NONE, CONSTANT, TYPE}; FixHeatFlow::FixHeatFlow(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { - if (narg < 4) error->all(FLERR,"Illegal fix command"); + if (narg < 4) utils::missing_cmd_args(FLERR,"fix heat/flow", error); cp_style = NONE; comm_forward = 1; @@ -41,24 +41,24 @@ FixHeatFlow::FixHeatFlow(LAMMPS *lmp, int narg, char **arg) : int ntypes = atom->ntypes; if (strcmp(arg[3],"constant") == 0) { - if (narg != 5) error->all(FLERR,"Illegal fix command"); + if (narg != 5) error->all(FLERR,"Illegal fix heat/flow constant command"); cp_style = CONSTANT; cp = utils::numeric(FLERR,arg[4],false,lmp); - if (cp < 0.0) error->all(FLERR,"Illegal fix command"); + if (cp < 0.0) error->all(FLERR,"Illegal fix heat/flow constant command value"); } else if (strcmp(arg[3],"type") == 0) { - if (narg != 4 + ntypes) error->all(FLERR,"Illegal fix command"); + if (narg != 4 + ntypes) error->all(FLERR,"Illegal fix heat/flow type command"); cp_style = TYPE; - memory->create(cp_type,ntypes+1,"fix/temp/integrate:cp_type"); + memory->create(cp_type,ntypes+1,"fix_heat_flow:cp_type"); for (int i = 1; i <= ntypes; i++) { cp_type[i] = utils::numeric(FLERR,arg[3+i],false,lmp); - if (cp_type[i] < 0.0) error->all(FLERR,"Illegal fix command"); + if (cp_type[i] < 0.0) error->all(FLERR,"Illegal fix heat/flow type command value"); } } else { - error->all(FLERR,"Illegal fix command"); + error->all(FLERR,"Unknown fix heat/flow keyword {}", arg[3]); } if (cp_style == NONE) - error->all(FLERR, "Must specify specific heat in fix temp/integrate"); + error->all(FLERR, "Must specify specific heat in fix heat/flow"); dynamic_group_allow = 1; } @@ -80,9 +80,9 @@ void FixHeatFlow::init() dt = update->dt; if (!atom->temperature_flag) - error->all(FLERR,"Fix temp/integrate requires atom style with temperature property"); + error->all(FLERR,"Fix heat/flow requires atom style with temperature property"); if (!atom->heatflow_flag) - error->all(FLERR,"Fix temp/integrate requires atom style with heatflow property"); + error->all(FLERR,"Fix heat/flow requires atom style with heatflow property"); } /* ---------------------------------------------------------------------- */ From 6f289df9806de41c8c0231067bef45510f0c9b4a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Jul 2023 15:05:36 -0400 Subject: [PATCH 073/247] enable and apply clang-format --- src/GRANULAR/fix_heat_flow.cpp | 53 ++++++++++++++-------------------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/src/GRANULAR/fix_heat_flow.cpp b/src/GRANULAR/fix_heat_flow.cpp index 519b7f731d..d0d7a73ce6 100644 --- a/src/GRANULAR/fix_heat_flow.cpp +++ b/src/GRANULAR/fix_heat_flow.cpp @@ -1,4 +1,3 @@ -// clang-format off /* -*- c++ -*- ---------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -26,39 +25,37 @@ using namespace LAMMPS_NS; using namespace FixConst; -enum {NONE, CONSTANT, TYPE}; +enum { NONE, CONSTANT, TYPE }; /* ---------------------------------------------------------------------- */ -FixHeatFlow::FixHeatFlow(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg) +FixHeatFlow::FixHeatFlow(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { - if (narg < 4) utils::missing_cmd_args(FLERR,"fix heat/flow", error); + if (narg < 4) utils::missing_cmd_args(FLERR, "fix heat/flow", error); cp_style = NONE; comm_forward = 1; comm_reverse = 1; int ntypes = atom->ntypes; - if (strcmp(arg[3],"constant") == 0) { - if (narg != 5) error->all(FLERR,"Illegal fix heat/flow constant command"); + if (strcmp(arg[3], "constant") == 0) { + if (narg != 5) error->all(FLERR, "Illegal fix heat/flow constant command"); cp_style = CONSTANT; - cp = utils::numeric(FLERR,arg[4],false,lmp); - if (cp < 0.0) error->all(FLERR,"Illegal fix heat/flow constant command value"); - } else if (strcmp(arg[3],"type") == 0) { - if (narg != 4 + ntypes) error->all(FLERR,"Illegal fix heat/flow type command"); + cp = utils::numeric(FLERR, arg[4], false, lmp); + if (cp < 0.0) error->all(FLERR, "Illegal fix heat/flow constant command value"); + } else if (strcmp(arg[3], "type") == 0) { + if (narg != 4 + ntypes) error->all(FLERR, "Illegal fix heat/flow type command"); cp_style = TYPE; - memory->create(cp_type,ntypes+1,"fix_heat_flow:cp_type"); + memory->create(cp_type, ntypes + 1, "fix_heat_flow:cp_type"); for (int i = 1; i <= ntypes; i++) { - cp_type[i] = utils::numeric(FLERR,arg[3+i],false,lmp); - if (cp_type[i] < 0.0) error->all(FLERR,"Illegal fix heat/flow type command value"); + cp_type[i] = utils::numeric(FLERR, arg[3 + i], false, lmp); + if (cp_type[i] < 0.0) error->all(FLERR, "Illegal fix heat/flow type command value"); } } else { - error->all(FLERR,"Unknown fix heat/flow keyword {}", arg[3]); + error->all(FLERR, "Unknown fix heat/flow keyword {}", arg[3]); } - if (cp_style == NONE) - error->all(FLERR, "Must specify specific heat in fix heat/flow"); + if (cp_style == NONE) error->all(FLERR, "Must specify specific heat in fix heat/flow"); dynamic_group_allow = 1; } @@ -80,9 +77,9 @@ void FixHeatFlow::init() dt = update->dt; if (!atom->temperature_flag) - error->all(FLERR,"Fix heat/flow requires atom style with temperature property"); + error->all(FLERR, "Fix heat/flow requires atom style with temperature property"); if (!atom->heatflow_flag) - error->all(FLERR,"Fix heat/flow requires atom style with heatflow property"); + error->all(FLERR, "Fix heat/flow requires atom style with heatflow property"); } /* ---------------------------------------------------------------------- */ @@ -130,19 +127,14 @@ void FixHeatFlow::final_integrate() if (igroup == atom->firstgroup) nlocal = atom->nfirst; // add ghost contributions to heatflow if first instance of fix - if (first_flag) - comm->reverse_comm(this); + if (first_flag) comm->reverse_comm(this); if (rmass) { for (int i = 0; i < nlocal; i++) - if (mask[i] & groupbit) { - temperature[i] += dt * heatflow[i] / (calc_cp(i) * rmass[i]); - } + if (mask[i] & groupbit) temperature[i] += dt * heatflow[i] / (calc_cp(i) * rmass[i]); } else { for (int i = 0; i < nlocal; i++) - if (mask[i] & groupbit) { - temperature[i] += dt * heatflow[i] / (calc_cp(i) * mass[type[i]]); - } + if (mask[i] & groupbit) temperature[i] += dt * heatflow[i] / (calc_cp(i) * mass[type[i]]); } } @@ -211,9 +203,7 @@ int FixHeatFlow::pack_reverse_comm(int n, int first, double *buf) int last = first + n; double *heatflow = atom->heatflow; - for (int i = first; i < last; i++) { - buf[m++] = heatflow[i]; - } + for (int i = first; i < last; i++) { buf[m++] = heatflow[i]; } return m; } @@ -225,6 +215,5 @@ void FixHeatFlow::unpack_reverse_comm(int n, int *list, double *buf) int m = 0; double *heatflow = atom->heatflow; - for (int i = 0; i < n; i++) - heatflow[list[i]] += buf[m++]; + for (int i = 0; i < n; i++) heatflow[list[i]] += buf[m++]; } From a3b9914f62423731607a5d7f5d7e2b41658656b4 Mon Sep 17 00:00:00 2001 From: jbcouli Date: Thu, 6 Jul 2023 17:48:49 -0600 Subject: [PATCH 074/247] make error messages consistent with keyword values yes/no. Allow coul weight for 1-2 bonds to be zero for break no to eliminate bonded atoms from neighbor list when bonds cannot break --- doc/src/Howto_bpm.rst | 6 +++++- doc/src/bond_bpm_rotational.rst | 4 ++-- doc/src/bond_bpm_spring.rst | 4 ++-- src/BPM/bond_bpm.cpp | 18 +++++++++--------- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/doc/src/Howto_bpm.rst b/doc/src/Howto_bpm.rst index 8b84e96b99..1c30b177e7 100644 --- a/doc/src/Howto_bpm.rst +++ b/doc/src/Howto_bpm.rst @@ -107,7 +107,11 @@ bond lists is expensive. By setting the lj weight for 1-2 bonds to zero, this turns off pairwise interactions. Even though there are no charges in BPM models, setting a nonzero coul weight for 1-2 bonds ensures all bonded neighbors are still included in the neighbor list -in case bonds break between neighbor list builds. +in case bonds break between neighbor list builds. If bond breakage is +disabled during a simulation run by setting the *break* keyword to *no*, +a zero coul weight for 1-2 bonds can be used to exclude bonded neighbors +from the neighbor list builds. This can be useful for post-processing, +or to determine pair interaction properties between distinct bonded particles. To monitor the fracture of bonds in the system, all BPM bond styles have the ability to record instances of bond breakage to output using diff --git a/doc/src/bond_bpm_rotational.rst b/doc/src/bond_bpm_rotational.rst index cfacfde2cd..7459d491d6 100644 --- a/doc/src/bond_bpm_rotational.rst +++ b/doc/src/bond_bpm_rotational.rst @@ -234,8 +234,8 @@ This bond style is part of the BPM package. It is only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. -By default if pair interactions are to be disabled, this bond style -requires setting +By default if pair interactions between bonded atoms are to be disabled, +this bond style requires setting .. code-block:: LAMMPS diff --git a/doc/src/bond_bpm_spring.rst b/doc/src/bond_bpm_spring.rst index 2376b8e077..04ff4d5991 100644 --- a/doc/src/bond_bpm_spring.rst +++ b/doc/src/bond_bpm_spring.rst @@ -191,8 +191,8 @@ This bond style is part of the BPM package. It is only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. -By default if pair interactions are to be disabled, this bond style -requires setting +By default if pair interactions between bonded atoms are to be disabled, +this bond style requires setting .. code-block:: LAMMPS diff --git a/src/BPM/bond_bpm.cpp b/src/BPM/bond_bpm.cpp index d965a19067..4f3577b2ca 100644 --- a/src/BPM/bond_bpm.cpp +++ b/src/BPM/bond_bpm.cpp @@ -96,7 +96,7 @@ void BondBPM::init_style() if (overlay_flag) { if (force->special_lj[1] != 1.0) error->all(FLERR, - "With overlay/pair, BPM bond styles require special_bonds weight of 1.0 for " + "With overlay/pair yes, BPM bond styles require special_bonds weight of 1.0 for " "first neighbors"); if (id_fix_update) { modify->delete_fix(id_fix_update); @@ -106,18 +106,18 @@ void BondBPM::init_style() } else { // Require atoms know about all of their bonds and if they break if (force->newton_bond && break_flag) - error->all(FLERR, "Without overlay/pair or break/no, BPM bond styles require Newton bond off"); + error->all(FLERR, "With overlay/pair no, or break no, BPM bond styles require Newton bond off"); // special lj must be 0 1 1 to censor pair forces between bonded particles - // special coulomb must be 1 1 1 to ensure all pairs are included in the - // neighbor list and 1-3 and 1-4 special bond lists are skipped if (force->special_lj[1] != 0.0 || force->special_lj[2] != 1.0 || force->special_lj[3] != 1.0) error->all(FLERR, - "Without overlay/pair, BPM bond styles requires special LJ weights = 0,1,1"); - if (force->special_coul[1] != 1.0 || force->special_coul[2] != 1.0 || - force->special_coul[3] != 1.0) + "With overlay/pair no, BPM bond styles require special LJ weights = 0,1,1"); + // if bonds can break, special coulomb must be 1 1 1 to ensure all pairs are included in the + // neighbor list and 1-3 and 1-4 special bond lists are skipped + if (break_flag && (force->special_coul[1] != 1.0 || force->special_coul[2] != 1.0 || + force->special_coul[3] != 1.0)) error->all(FLERR, - "Without overlay/pair, BPM bond styles requires special Coulomb weights = 1,1,1"); + "With overlay/pair no, and break yes, BPM bond styles requires special Coulomb weights = 1,1,1"); if (id_fix_dummy && break_flag) { id_fix_update = utils::strdup("BPM_UPDATE_SPECIAL_BONDS"); @@ -335,7 +335,7 @@ void BondBPM::read_restart(FILE *fp) void BondBPM::process_broken(int i, int j) { if (!break_flag) - error->one(FLERR, "BPM bond broke with break/no option"); + error->one(FLERR, "BPM bond broke with break no option"); if (fix_store_local) { for (int n = 0; n < nvalues; n++) (this->*pack_choice[n])(n, i, j); From 651ed1960d19de9c88b4822630b59d346cae8d64 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 7 Jul 2023 18:29:28 -0400 Subject: [PATCH 075/247] add per-atom data bugfix from Stan for fix ave/histo and fix ave/histo/weight --- src/fix_ave_histo.cpp | 2 +- src/fix_ave_histo_weight.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fix_ave_histo.cpp b/src/fix_ave_histo.cpp index 157e43610a..0a2975bb2e 100644 --- a/src/fix_ave_histo.cpp +++ b/src/fix_ave_histo.cpp @@ -590,7 +590,7 @@ void FixAveHisto::end_of_step() } else if (kind == PERATOM) { if (j == 0) bin_atoms(val.val.f->vector_atom,1); else if (val.val.f->array_atom) - bin_atoms(val.val.f->array_atom[j-1],val.val.f->size_peratom_cols); + bin_atoms(&val.val.f->array_atom[0][j-1],val.val.f->size_peratom_cols); } else if (kind == LOCAL) { if (j == 0) bin_vector(val.val.f->size_local_rows,val.val.f->vector_local,1); diff --git a/src/fix_ave_histo_weight.cpp b/src/fix_ave_histo_weight.cpp index 17dd00440e..181aa2a79d 100644 --- a/src/fix_ave_histo_weight.cpp +++ b/src/fix_ave_histo_weight.cpp @@ -212,7 +212,7 @@ void FixAveHistoWeight::end_of_step() weights = val.val.f->vector_atom; stride = 1; } else if (val.val.f->array_atom) { - weights = val.val.f->array_atom[j-1]; + weights = &val.val.f->array_atom[0][j-1]; stride = val.val.f->size_peratom_cols; } } else if (kind == LOCAL) { @@ -339,7 +339,7 @@ void FixAveHistoWeight::end_of_step() if (j == 0) bin_atoms_weights(val.val.f->vector_atom,1,weights,stride); else if (val.val.f->array_atom) - bin_atoms_weights(val.val.f->array_atom[j-1],val.val.f->size_peratom_cols, + bin_atoms_weights(&val.val.f->array_atom[0][j-1],val.val.f->size_peratom_cols, weights,stride); From d6412dc97b86c0dc95a8f9a014ab75796bd6c12f Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 8 Jul 2023 00:50:19 -0500 Subject: [PATCH 076/247] Attempted to resolve issues with switching from acctyp4 to acctyp3 in tep, fieldp since the changes in PR #3675, noting some changes with Intel OCL PR #3663 --- lib/gpu/lal_base_amoeba.cpp | 5 +++++ lib/gpu/lal_base_amoeba.h | 2 +- lib/gpu/lal_hippo.cpp | 16 ++++++++++------ src/GPU/pair_amoeba_gpu.cpp | 30 +++++++++++++++--------------- src/GPU/pair_hippo_gpu.cpp | 30 +++++++++++++++--------------- 5 files changed, 46 insertions(+), 37 deletions(-) diff --git a/lib/gpu/lal_base_amoeba.cpp b/lib/gpu/lal_base_amoeba.cpp index 0821a33b06..c41c66fb5f 100644 --- a/lib/gpu/lal_base_amoeba.cpp +++ b/lib/gpu/lal_base_amoeba.cpp @@ -420,6 +420,11 @@ void BaseAmoebaT::compute_udirect2b(int *host_amtype, int *host_amgroup, double cast_extra_data(host_amtype, host_amgroup, host_rpole, host_uind, host_uinp, host_pval); atom->add_extra_data(); + if (_max_tep_size>_max_fieldp_size) { + _max_fieldp_size = _max_tep_size; + _fieldp.resize(_max_fieldp_size*6); + } + *fieldp_ptr=_fieldp.host.begin(); // specify the correct cutoff and alpha values diff --git a/lib/gpu/lal_base_amoeba.h b/lib/gpu/lal_base_amoeba.h index 0eaaafeb1e..f415b30334 100644 --- a/lib/gpu/lal_base_amoeba.h +++ b/lib/gpu/lal_base_amoeba.h @@ -203,7 +203,7 @@ class BaseAmoeba { virtual void update_fieldp(void **fieldp_ptr) { *fieldp_ptr=_fieldp.host.begin(); // _fieldp store both arrays, one after another - _fieldp.update_host(_max_fieldp_size*8,false); + _fieldp.update_host(_max_fieldp_size*6,false); } /// setup a plan for FFT, where size is the number of elements diff --git a/lib/gpu/lal_hippo.cpp b/lib/gpu/lal_hippo.cpp index 24ffae8de2..8d6ad5dfb2 100644 --- a/lib/gpu/lal_hippo.cpp +++ b/lib/gpu/lal_hippo.cpp @@ -211,7 +211,7 @@ void HippoT::compute_repulsion(const int /*ago*/, const int inum_full, if (inum_full>this->_max_tep_size) { this->_max_tep_size=static_cast(static_cast(inum_full)*1.10); - this->_tep.resize(this->_max_tep_size*4); + this->_tep.resize(this->_max_tep_size*3); } *tep_ptr=this->_tep.host.begin(); @@ -226,7 +226,7 @@ void HippoT::compute_repulsion(const int /*ago*/, const int inum_full, repulsion(this->_eflag,this->_vflag); // copy tep from device to host - this->_tep.update_host(this->_max_tep_size*4,false); + this->_tep.update_host(this->_max_tep_size*3,false); } // --------------------------------------------------------------------------- @@ -366,7 +366,7 @@ void HippoT::compute_multipole_real(const int /*ago*/, const int inum_full, if (inum_full>this->_max_tep_size) { this->_max_tep_size=static_cast(static_cast(inum_full)*1.10); - this->_tep.resize(this->_max_tep_size*4); + this->_tep.resize(this->_max_tep_size*3); } *tep_ptr=this->_tep.host.begin(); @@ -376,7 +376,7 @@ void HippoT::compute_multipole_real(const int /*ago*/, const int inum_full, multipole_real(this->_eflag,this->_vflag); // copy tep from device to host - this->_tep.update_host(this->_max_tep_size*4,false); + this->_tep.update_host(this->_max_tep_size*3,false); } // --------------------------------------------------------------------------- @@ -434,6 +434,10 @@ void HippoT::compute_udirect2b(int * /*host_amtype*/, int * /*host_amgroup*/, do this->cast_extra_data(nullptr, nullptr, nullptr, host_uind, host_uinp, host_pval); this->atom->add_extra_data(); + if (this->_max_tep_size>this->_max_fieldp_size) { + this->_max_fieldp_size = this->_max_tep_size; + this->_fieldp.resize(this->_max_fieldp_size*6); + } *fieldp_ptr=this->_fieldp.host.begin(); this->_off2_polar = off2_polar; @@ -442,7 +446,7 @@ void HippoT::compute_udirect2b(int * /*host_amtype*/, int * /*host_amgroup*/, do // copy field and fieldp from device to host (_fieldp store both arrays, one after another) - this->_fieldp.update_host(this->_max_fieldp_size*8,false); + this->_fieldp.update_host(this->_max_fieldp_size*6,false); } // --------------------------------------------------------------------------- @@ -580,7 +584,7 @@ void HippoT::compute_polar_real(int * /*host_amtype*/, int * /*host_amgroup*/, d this->device->add_ans_object(this->ans); // copy tep from device to host - this->_tep.update_host(this->_max_tep_size*4,false); + this->_tep.update_host(this->_max_tep_size*3,false); } // --------------------------------------------------------------------------- diff --git a/src/GPU/pair_amoeba_gpu.cpp b/src/GPU/pair_amoeba_gpu.cpp index b7e1f8e118..8b3cf2cfea 100644 --- a/src/GPU/pair_amoeba_gpu.cpp +++ b/src/GPU/pair_amoeba_gpu.cpp @@ -745,15 +745,15 @@ void PairAmoebaGPU::udirect2b(double **field, double **fieldp) auto field_ptr = (float *)fieldp_pinned; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; field[i][0] += field_ptr[idx]; field[i][1] += field_ptr[idx+1]; field[i][2] += field_ptr[idx+2]; } - field_ptr += 4*inum; + field_ptr += 3*inum; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; fieldp[i][0] += field_ptr[idx]; fieldp[i][1] += field_ptr[idx+1]; fieldp[i][2] += field_ptr[idx+2]; @@ -762,15 +762,15 @@ void PairAmoebaGPU::udirect2b(double **field, double **fieldp) auto field_ptr = (double *)fieldp_pinned; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; field[i][0] += field_ptr[idx]; field[i][1] += field_ptr[idx+1]; field[i][2] += field_ptr[idx+2]; } - field_ptr += 4*inum; + field_ptr += 3*inum; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; fieldp[i][0] += field_ptr[idx]; fieldp[i][1] += field_ptr[idx+1]; fieldp[i][2] += field_ptr[idx+2]; @@ -976,15 +976,15 @@ void PairAmoebaGPU::ufield0c(double **field, double **fieldp) auto field_ptr = (float *)fieldp_pinned; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; field[i][0] += field_ptr[idx]; field[i][1] += field_ptr[idx+1]; field[i][2] += field_ptr[idx+2]; } - field_ptr += 4*inum; + field_ptr += 3*inum; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; fieldp[i][0] += field_ptr[idx]; fieldp[i][1] += field_ptr[idx+1]; fieldp[i][2] += field_ptr[idx+2]; @@ -993,15 +993,15 @@ void PairAmoebaGPU::ufield0c(double **field, double **fieldp) auto field_ptr = (double *)fieldp_pinned; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; field[i][0] += field_ptr[idx]; field[i][1] += field_ptr[idx+1]; field[i][2] += field_ptr[idx+2]; } - field_ptr += 4*inum; + field_ptr += 3*inum; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; fieldp[i][0] += field_ptr[idx]; fieldp[i][1] += field_ptr[idx+1]; fieldp[i][2] += field_ptr[idx+2]; @@ -2029,9 +2029,9 @@ void PairAmoebaGPU::compute_force_from_torque(const numtyp* tq_ptr, int nlocal = atom->nlocal; for (i = 0; i < nlocal; i++) { - _tq[0] = tq_ptr[4*i]; - _tq[1] = tq_ptr[4*i+1]; - _tq[2] = tq_ptr[4*i+2]; + _tq[0] = tq_ptr[3*i]; + _tq[1] = tq_ptr[3*i+1]; + _tq[2] = tq_ptr[3*i+2]; torque2force(i,_tq,fix,fiy,fiz,force_comp); iz = zaxis2local[i]; diff --git a/src/GPU/pair_hippo_gpu.cpp b/src/GPU/pair_hippo_gpu.cpp index f87676ec08..256b4088d8 100644 --- a/src/GPU/pair_hippo_gpu.cpp +++ b/src/GPU/pair_hippo_gpu.cpp @@ -859,15 +859,15 @@ void PairHippoGPU::udirect2b(double **field, double **fieldp) auto field_ptr = (float *)fieldp_pinned; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; field[i][0] += field_ptr[idx]; field[i][1] += field_ptr[idx+1]; field[i][2] += field_ptr[idx+2]; } - field_ptr += 4*inum; + field_ptr += 3*inum; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; fieldp[i][0] += field_ptr[idx]; fieldp[i][1] += field_ptr[idx+1]; fieldp[i][2] += field_ptr[idx+2]; @@ -877,15 +877,15 @@ void PairHippoGPU::udirect2b(double **field, double **fieldp) auto field_ptr = (double *)fieldp_pinned; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; field[i][0] += field_ptr[idx]; field[i][1] += field_ptr[idx+1]; field[i][2] += field_ptr[idx+2]; } - field_ptr += 4*inum; + field_ptr += 3*inum; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; fieldp[i][0] += field_ptr[idx]; fieldp[i][1] += field_ptr[idx+1]; fieldp[i][2] += field_ptr[idx+2]; @@ -1087,15 +1087,15 @@ void PairHippoGPU::ufield0c(double **field, double **fieldp) auto *field_ptr = (float *)fieldp_pinned; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; field[i][0] += field_ptr[idx]; field[i][1] += field_ptr[idx+1]; field[i][2] += field_ptr[idx+2]; } - field_ptr += 4*inum; + field_ptr += 3*inum; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; fieldp[i][0] += field_ptr[idx]; fieldp[i][1] += field_ptr[idx+1]; fieldp[i][2] += field_ptr[idx+2]; @@ -1105,15 +1105,15 @@ void PairHippoGPU::ufield0c(double **field, double **fieldp) auto *field_ptr = (double *)fieldp_pinned; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; field[i][0] += field_ptr[idx]; field[i][1] += field_ptr[idx+1]; field[i][2] += field_ptr[idx+2]; } - field_ptr += 4*inum; + field_ptr += 3*inum; for (int i = 0; i < nlocal; i++) { - int idx = 4*i; + int idx = 3*i; fieldp[i][0] += field_ptr[idx]; fieldp[i][1] += field_ptr[idx+1]; fieldp[i][2] += field_ptr[idx+2]; @@ -1456,9 +1456,9 @@ void PairHippoGPU::compute_force_from_torque(const numtyp* tq_ptr, int nlocal = atom->nlocal; for (i = 0; i < nlocal; i++) { - _tq[0] = tq_ptr[4*i]; - _tq[1] = tq_ptr[4*i+1]; - _tq[2] = tq_ptr[4*i+2]; + _tq[0] = tq_ptr[3*i]; + _tq[1] = tq_ptr[3*i+1]; + _tq[2] = tq_ptr[3*i+2]; torque2force(i,_tq,fix,fiy,fiz,force_comp); iz = zaxis2local[i]; From 75a2557e826eab29aaf277f2960b9bb7f438173e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jul 2023 15:41:39 -0400 Subject: [PATCH 077/247] fix bugs where an Atom::tag value was stored in an int and not a tagint --- src/MANYBODY/pair_gw.cpp | 3 ++- src/MGPT/pair_mgpt.cpp | 3 +-- src/OPENMP/npair_half_nsq_newton_omp.cpp | 4 ++-- src/OPENMP/npair_half_respa_nsq_newton_omp.cpp | 4 ++-- src/OPENMP/npair_half_size_nsq_newton_omp.cpp | 4 ++-- src/npair_half_respa_nsq_newton.cpp | 4 ++-- src/npair_half_size_nsq_newton.cpp | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/MANYBODY/pair_gw.cpp b/src/MANYBODY/pair_gw.cpp index be2a1e41f3..1fd98b80f0 100644 --- a/src/MANYBODY/pair_gw.cpp +++ b/src/MANYBODY/pair_gw.cpp @@ -73,7 +73,8 @@ PairGW::~PairGW() void PairGW::compute(int eflag, int vflag) { int i,j,k,ii,jj,kk,inum,jnum; - int itag,jtag,itype,jtype,ktype,iparam_ij,iparam_ijk; + int itype,jtype,ktype,iparam_ij,iparam_ijk; + tagint itag,jtag; double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; double rsq,rsq1,rsq2; double delr1[3],delr2[3],fi[3],fj[3],fk[3]; diff --git a/src/MGPT/pair_mgpt.cpp b/src/MGPT/pair_mgpt.cpp index 5c4b889f8a..c924cbea84 100644 --- a/src/MGPT/pair_mgpt.cpp +++ b/src/MGPT/pair_mgpt.cpp @@ -589,8 +589,7 @@ void PairMGPT::compute_x(const int *nnei,const int * const *nlist, double *e_s,double *e_p,double *e_t,double *e_q, int evflag,int newton_pair) { Hash bond_hash(100000); - int i,j,k,m,ix,jx,kx,mx,itag,jtag,p; - + int i,j,k,m,ix,jx,kx,mx,p; double e_single,e_pair,e_triplet,e_triplet_c,e_quad; double volvir2; diff --git a/src/OPENMP/npair_half_nsq_newton_omp.cpp b/src/OPENMP/npair_half_nsq_newton_omp.cpp index cb08cb7f7a..5996cd2013 100644 --- a/src/OPENMP/npair_half_nsq_newton_omp.cpp +++ b/src/OPENMP/npair_half_nsq_newton_omp.cpp @@ -49,8 +49,8 @@ void NPairHalfNsqNewtonOmp::build(NeighList *list) #endif NPAIR_OMP_SETUP(nlocal); - int i,j,n,itype,jtype,itag,jtag,which,imol,iatom; - tagint tagprev; + int i,j,n,itype,jtype,which,imol,iatom; + tagint itag,jtag,tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *neighptr; diff --git a/src/OPENMP/npair_half_respa_nsq_newton_omp.cpp b/src/OPENMP/npair_half_respa_nsq_newton_omp.cpp index 6604861f74..61d9165b1e 100644 --- a/src/OPENMP/npair_half_respa_nsq_newton_omp.cpp +++ b/src/OPENMP/npair_half_respa_nsq_newton_omp.cpp @@ -55,8 +55,8 @@ void NPairHalfRespaNsqNewtonOmp::build(NeighList *list) #endif NPAIR_OMP_SETUP(nlocal); - int i,j,n,itype,jtype,itag,jtag,n_inner,n_middle,imol,iatom; - tagint tagprev; + int i,j,n,itype,jtype,n_inner,n_middle,imol,iatom; + tagint itag,jtag,tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *neighptr,*neighptr_inner,*neighptr_middle; diff --git a/src/OPENMP/npair_half_size_nsq_newton_omp.cpp b/src/OPENMP/npair_half_size_nsq_newton_omp.cpp index 35dc42ec5b..fe2a1be3da 100644 --- a/src/OPENMP/npair_half_size_nsq_newton_omp.cpp +++ b/src/OPENMP/npair_half_size_nsq_newton_omp.cpp @@ -58,8 +58,8 @@ void NPairHalfSizeNsqNewtonOmp::build(NeighList *list) #endif NPAIR_OMP_SETUP(nlocal); - int i,j,jh,n,itag,jtag,which,imol,iatom; - tagint tagprev; + int i,j,jh,n,which,imol,iatom; + tagint itag,jtag,tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; double radi,radsum,cutsq; int *neighptr; diff --git a/src/npair_half_respa_nsq_newton.cpp b/src/npair_half_respa_nsq_newton.cpp index 77d6af141f..d231cddb87 100644 --- a/src/npair_half_respa_nsq_newton.cpp +++ b/src/npair_half_respa_nsq_newton.cpp @@ -38,9 +38,9 @@ NPairHalfRespaNsqNewton::NPairHalfRespaNsqNewton(LAMMPS *lmp) : NPair(lmp) {} void NPairHalfRespaNsqNewton::build(NeighList *list) { - int i,j,n,itype,jtype,itag,jtag,n_inner,n_middle,bitmask; + int i,j,n,itype,jtype,n_inner,n_middle,bitmask; int imol,iatom,moltemplate; - tagint tagprev; + tagint itag,jtag,tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *neighptr,*neighptr_inner,*neighptr_middle; diff --git a/src/npair_half_size_nsq_newton.cpp b/src/npair_half_size_nsq_newton.cpp index 8b596e6968..93d65c7a45 100644 --- a/src/npair_half_size_nsq_newton.cpp +++ b/src/npair_half_size_nsq_newton.cpp @@ -39,8 +39,8 @@ NPairHalfSizeNsqNewton::NPairHalfSizeNsqNewton(LAMMPS *lmp) : NPair(lmp) {} void NPairHalfSizeNsqNewton::build(NeighList *list) { - int i,j,jh,n,itag,jtag,bitmask,which,imol,iatom,moltemplate; - tagint tagprev; + int i,j,jh,n,bitmask,which,imol,iatom,moltemplate; + tagint itag,jtag,tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; double radi,radsum,cutsq; int *neighptr; From 0718114a67cdf5ff970965a4a457c280cd1f59d6 Mon Sep 17 00:00:00 2001 From: jbcouli Date: Sun, 9 Jul 2023 17:43:39 -0600 Subject: [PATCH 078/247] fix typo for broken links in doc --- doc/src/fix_ave_grid.rst | 4 ++-- doc/src/variable.rst | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/src/fix_ave_grid.rst b/doc/src/fix_ave_grid.rst index 5760bb4508..da0d1f957b 100644 --- a/doc/src/fix_ave_grid.rst +++ b/doc/src/fix_ave_grid.rst @@ -129,12 +129,12 @@ overlays the simulation box. For 2d simulations, *Nz* must be 1. The very coarse compared to the particle count, or very fine. If one or more of the values = 1, then bins are 2d planes or 1d slices of the simulation domain. Note that if the total number of grid cells is -small, it may be more efficient to use the doc:`fix ave/chunk +small, it may be more efficient to use the :doc:`fix ave/chunk ` command which can treat a grid defined by the :doc:`compute chunk/atom ` command as a global grid where each processor owns a copy of all the grid cells. If *Nx* = *Ny* = *Nz* = 1 is used, the same calculation would be more -efficiently performed by the doc:`fix ave/atom ` +efficiently performed by the :doc:`fix ave/atom ` command. If the simulation box size or shape changes during a simulation, the diff --git a/doc/src/variable.rst b/doc/src/variable.rst index 67600af62d..a9d21bab9b 100644 --- a/doc/src/variable.rst +++ b/doc/src/variable.rst @@ -1441,7 +1441,7 @@ timestep that the variable needs the tallies. An input script can also request variables be evaluated before or after or in between runs, e.g. by including them in a :doc:`print ` command. -LAMMPS keeps track of all of this as it performs a doc:`run ` or +LAMMPS keeps track of all of this as it performs a :doc:`run ` or :doc:`minimize ` simulation, as well as in between simulations. An error will be generated if you attempt to evaluate a variable when LAMMPS knows it cannot produce accurate values. For @@ -1453,7 +1453,7 @@ command, then an error will occur. However, there are two special cases to be aware when a variable requires invocation of a compute (directly or indirectly). The first -is if the variable is evaluated before the first doc:`run ` or +is if the variable is evaluated before the first :doc:`run ` or :doc:`minimize ` command in the input script. In this case, LAMMPS will generate an error. This is because many computes require initializations which have not yet taken place. One example is the @@ -1463,10 +1463,10 @@ energy or virial quantities; these values are not tallied until the first simulation begins. The second special case is when a variable that depends on a compute -is evaluated in between doc:`run ` or :doc:`minimize ` +is evaluated in between :doc:`run ` or :doc:`minimize ` commands. It is possible for other input script commands issued following the previous run, but before the variable is evaluated, to -change the system. For example, the doc:`delete_atoms ` +change the system. For example, the :doc:`delete_atoms ` command could be used to remove atoms. Since the compute will not re-initialize itself until the next simulation or it may depend on energy/virial computations performed before the system was changed, it From 60b45f97661a6d6506f771602f716620a39d1ce3 Mon Sep 17 00:00:00 2001 From: jbcouli Date: Sun, 9 Jul 2023 18:01:19 -0600 Subject: [PATCH 079/247] correct error message --- doc/src/Howto_bpm.rst | 2 +- src/BPM/bond_bpm.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Howto_bpm.rst b/doc/src/Howto_bpm.rst index 1c30b177e7..448a43a654 100644 --- a/doc/src/Howto_bpm.rst +++ b/doc/src/Howto_bpm.rst @@ -109,7 +109,7 @@ charges in BPM models, setting a nonzero coul weight for 1-2 bonds ensures all bonded neighbors are still included in the neighbor list in case bonds break between neighbor list builds. If bond breakage is disabled during a simulation run by setting the *break* keyword to *no*, -a zero coul weight for 1-2 bonds can be used to exclude bonded neighbors +a zero coul weight for 1-2 bonds can be used to exclude bonded atoms from the neighbor list builds. This can be useful for post-processing, or to determine pair interaction properties between distinct bonded particles. diff --git a/src/BPM/bond_bpm.cpp b/src/BPM/bond_bpm.cpp index 4f3577b2ca..023988b64d 100644 --- a/src/BPM/bond_bpm.cpp +++ b/src/BPM/bond_bpm.cpp @@ -106,7 +106,7 @@ void BondBPM::init_style() } else { // Require atoms know about all of their bonds and if they break if (force->newton_bond && break_flag) - error->all(FLERR, "With overlay/pair no, or break no, BPM bond styles require Newton bond off"); + error->all(FLERR, "With overlay/pair no, or break yes, BPM bond styles require Newton bond off"); // special lj must be 0 1 1 to censor pair forces between bonded particles if (force->special_lj[1] != 0.0 || force->special_lj[2] != 1.0 || force->special_lj[3] != 1.0) From 91b16c59452c64e7df22864c6fd3ad74442fb554 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jul 2023 21:10:44 -0400 Subject: [PATCH 080/247] make certain conductivity class member is always initialized --- src/GRANULAR/gran_sub_mod_heat.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/GRANULAR/gran_sub_mod_heat.cpp b/src/GRANULAR/gran_sub_mod_heat.cpp index 75dcd30b73..c3dd9ea5dc 100644 --- a/src/GRANULAR/gran_sub_mod_heat.cpp +++ b/src/GRANULAR/gran_sub_mod_heat.cpp @@ -49,6 +49,7 @@ GranSubModHeatArea::GranSubModHeatArea(GranularModel *gm, LAMMPS *lmp) : GranSub { num_coeffs = 1; contact_radius_flag = 1; + conductivity = 0.0; } /* ---------------------------------------------------------------------- */ From 2607212363d2697a7d5d82f3f8615254b6fde20a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jul 2023 21:21:39 -0400 Subject: [PATCH 081/247] update for upstream changes --- src/GRANULAR/gran_sub_mod_heat.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/GRANULAR/gran_sub_mod_heat.cpp b/src/GRANULAR/gran_sub_mod_heat.cpp index 9dffdfa7d7..5378a72fd4 100644 --- a/src/GRANULAR/gran_sub_mod_heat.cpp +++ b/src/GRANULAR/gran_sub_mod_heat.cpp @@ -49,6 +49,7 @@ GranSubModHeatRadius::GranSubModHeatRadius(GranularModel *gm, LAMMPS *lmp) : Gra { num_coeffs = 1; contact_radius_flag = 1; + conductivity = 0.0; } /* ---------------------------------------------------------------------- */ @@ -76,7 +77,7 @@ GranSubModHeatArea::GranSubModHeatArea(GranularModel *gm, LAMMPS *lmp) : GranSub { num_coeffs = 1; contact_radius_flag = 1; - conductivity = 0.0; + heat_transfer_coeff = 0.0; } /* ---------------------------------------------------------------------- */ From 55343d715c3597ff11d50a583a04d1e2d3b7dd00 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jul 2023 21:39:51 -0400 Subject: [PATCH 082/247] update URL --- doc/src/Bibliography.rst | 2 +- doc/src/fix_electron_stopping.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Bibliography.rst b/doc/src/Bibliography.rst index 2d27d2e6f9..e9ea8b0925 100644 --- a/doc/src/Bibliography.rst +++ b/doc/src/Bibliography.rst @@ -203,7 +203,7 @@ Bibliography A Caro, DA Crowson, M Caro; Phys Rev Lett, 95, 075702 (2005) **(CasP)** - CasP webpage: https://www.helmholtz-berlin.de/people/gregor-schiwietz/casp_en.html + CasP webpage: http://www.casp-program.org/ **(Cawkwell2012)** A.\ M. N. Niklasson, M. J. Cawkwell, Phys. Rev. B, 86 (17), 174308 (2012). diff --git a/doc/src/fix_electron_stopping.rst b/doc/src/fix_electron_stopping.rst index fa0fc763f5..a90d0932ee 100644 --- a/doc/src/fix_electron_stopping.rst +++ b/doc/src/fix_electron_stopping.rst @@ -204,7 +204,7 @@ The default is no limitation by region, and minneigh = 1. .. _CasP: -**(CasP)** CasP webpage: https://www.helmholtz-berlin.de/people/gregor-schiwietz/casp_en.html +**(CasP)** CasP webpage: http://www.casp-program.org/ .. _PASS: From a4b3306b7cf1fccff293a6b75403c7036f98aac5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Jul 2023 18:48:13 -0400 Subject: [PATCH 083/247] fix error message --- src/compute_property_atom.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compute_property_atom.cpp b/src/compute_property_atom.cpp index fbb9129b6e..c3c101b995 100644 --- a/src/compute_property_atom.cpp +++ b/src/compute_property_atom.cpp @@ -376,7 +376,7 @@ ComputePropertyAtom::ComputePropertyAtom(LAMMPS *lmp, int narg, char **arg) : index[i] = atom->avec->property_atom(arg[iarg]); if (index[i] < 0) error->all(FLERR,"Invalid keyword {} for atom style {} in compute property/atom command ", - atom->get_style(), arg[iarg]); + arg[iarg], atom->get_style()); pack_choice[i] = &ComputePropertyAtom::pack_atom_style; } } From c63c9711d5942c6eea177bbb04f94713d28d3ca0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Jul 2023 19:42:48 -0400 Subject: [PATCH 084/247] update remaining ellipsoid example dump output for OVITO compatibility --- examples/ASPHERE/ellipsoid/in.ellipsoid | 6 +-- examples/ASPHERE/ellipsoid/in.ellipsoid.mp | 6 +-- examples/ellipse/in.ellipse.gayberne | 53 ++++++++++---------- examples/ellipse/in.ellipse.resquared | 56 ++++++++++++---------- 4 files changed, 61 insertions(+), 60 deletions(-) diff --git a/examples/ASPHERE/ellipsoid/in.ellipsoid b/examples/ASPHERE/ellipsoid/in.ellipsoid index 2dda95a029..1ee59597da 100644 --- a/examples/ASPHERE/ellipsoid/in.ellipsoid +++ b/examples/ASPHERE/ellipsoid/in.ellipsoid @@ -35,8 +35,7 @@ fix 2 all enforce2d compute rot big temp/asphere compute 0 all property/atom quatw quati quatj quatk shapex shapey shapez -#dump 1 all custom 10 dump.ellipsoid.equil id type x y z & -# c_0[1] c_0[2] c_0[3] c_0[4] c_0[5] c_0[6] c_0[7] +#dump 1 all custom 10 dump.ellipsoid.equil id type x y z c_0[*] #dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk & # colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez @@ -110,8 +109,7 @@ thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press & thermo_modify temp tbig thermo 1000 -#dump 1 all custom 1000 dump.ellipsoid id type x y z & -# c_0[1] c_0[2] c_0[3] c_0[4] c_0[5] c_0[6] c_0[7] +#dump 1 all custom 1000 dump.ellipsoid id type x y z c_0[*] #dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk & # colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez diff --git a/examples/ASPHERE/ellipsoid/in.ellipsoid.mp b/examples/ASPHERE/ellipsoid/in.ellipsoid.mp index e950cc86f5..31fe79eb58 100644 --- a/examples/ASPHERE/ellipsoid/in.ellipsoid.mp +++ b/examples/ASPHERE/ellipsoid/in.ellipsoid.mp @@ -35,8 +35,7 @@ fix 2 all enforce2d compute rot big temp/asphere compute 0 all property/atom quatw quati quatj quatk shapex shapey shapez -#dump 1 all custom 10 dump.ellipsoid.equil id type x y z & -# c_0[1] c_0[2] c_0[3] c_0[4] c_0[5] c_0[6] c_0[7] +#dump 1 all custom 10 dump.ellipsoid.equil id type x y z c_0[*] #dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk & # colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez @@ -111,8 +110,7 @@ thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press & thermo_modify temp tbig thermo 1000 -#dump 1 all custom 500 dump.ellipsoid id type x y z & -# c_0[1] c_0[2] c_0[3] c_0[4] c_0[5] c_0[6] c_0[7] +#dump 1 all custom 500 dump.ellipsoid id type x y z c_0[*] #dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk & # colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez diff --git a/examples/ellipse/in.ellipse.gayberne b/examples/ellipse/in.ellipse.gayberne index fe783ac6de..0e6b21797a 100644 --- a/examples/ellipse/in.ellipse.gayberne +++ b/examples/ellipse/in.ellipse.gayberne @@ -1,23 +1,23 @@ # GayBerne ellipsoids in LJ background fluid -units lj +units lj atom_style ellipsoid dimension 2 -lattice sq 0.02 -region box block 0 20 0 20 -0.5 0.5 +lattice sq 0.02 +region box block 0 20 0 20 -0.5 0.5 create_box 2 box create_atoms 1 box -set group all type/fraction 2 0.1 95392 -set type 1 mass 1.0 -set type 2 mass 1.5 -set type 1 shape 1 1 1 -set type 2 shape 3 1 1 -set group all quat/random 18238 +set group all type/fraction 2 0.1 95392 +set type 1 mass 1.0 +set type 2 mass 1.5 +set type 1 shape 1 1 1 +set type 2 shape 3 1 1 +set group all quat/random 18238 -compute rot all temp/asphere -group spheroid type 1 +compute rot all temp/asphere +group spheroid type 1 variable dof equal count(spheroid)+2 compute_modify rot extra/dof ${dof} @@ -31,36 +31,37 @@ pair_coeff 2 2 1.0 1.0 1 1 0.2 0 0 0 neighbor 0.8 bin thermo_style custom step c_rot epair etotal press vol -thermo 100 +thermo 100 timestep 0.002 -compute q all property/atom quatw quati quatj quatk +compute 0 all property/atom quatw quati quatj quatk shapex shapey shapez -#dump 1 all custom 100 dump.ellipse.gayberne & -# id type x y z c_q[1] c_q[2] c_q[3] c_q[4] +dump 1 all custom 100 dump.ellipse.gayberne id type x y z c_0[*] +dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk & + colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez -#dump 2 all image 100 image.*.jpg type type & -# zoom 1.6 center d 0.5 0.5 0.5 +#dump 2 all image 100 image.*.jpg type type & +# zoom 1.6 center d 0.5 0.5 0.5 #dump_modify 2 pad 4 adiam 1 1.0 adiam 2 2.0 -#dump 3 all movie 100 movie.mpg type type & -# zoom 1.6 center d 0.5 0.5 0.5 +#dump 3 all movie 100 movie.mpg type type & +# zoom 1.6 center d 0.5 0.5 0.5 #dump_modify 3 pad 4 adiam 1 1.0 adiam 2 2.0 -fix 1 all npt/asphere temp 2.0 2.0 0.1 iso 0.0 1.0 1.0 & - mtk no pchain 0 tchain 1 -fix 2 all enforce2d +fix 1 all npt/asphere temp 2.0 2.0 0.1 iso 0.0 1.0 1.0 & + mtk no pchain 0 tchain 1 +fix 2 all enforce2d compute_modify 1_temp extra/dof ${dof} # equilibrate to shrink box around dilute system -run 2000 +run 2000 # run dynamics on dense system -unfix 1 -fix 1 all nve/asphere +unfix 1 +fix 1 all nve/asphere -run 2000 +run 2000 diff --git a/examples/ellipse/in.ellipse.resquared b/examples/ellipse/in.ellipse.resquared index 82398987f8..d5bc8897cb 100644 --- a/examples/ellipse/in.ellipse.resquared +++ b/examples/ellipse/in.ellipse.resquared @@ -1,23 +1,23 @@ # RESquared ellipsoids in LJ background fluid -units lj +units lj atom_style ellipsoid dimension 2 -lattice sq 0.02 -region box block 0 20 0 20 -0.5 0.5 +lattice sq 0.02 +region box block 0 20 0 20 -0.5 0.5 create_box 2 box create_atoms 1 box -set group all type/fraction 2 0.1 95392 -set type 1 mass 1.0 -set type 2 mass 1.5 -set type 1 shape 1 1 1 -set type 2 shape 3 1 1 -set group all quat/random 18238 +set group all type/fraction 2 0.1 95392 +set type 1 mass 1.0 +set type 2 mass 1.5 +set type 1 shape 1 1 1 +set type 2 shape 3 1 1 +set group all quat/random 18238 -compute rot all temp/asphere -group spheroid type 1 +compute rot all temp/asphere +group spheroid type 1 variable dof equal count(spheroid)+2 compute_modify rot extra/dof ${dof} @@ -31,36 +31,40 @@ pair_coeff 2 2 1.0 1 1 1 0.2 0 0 0 neighbor 0.8 bin thermo_style custom step c_rot epair etotal press vol -thermo 100 +thermo 100 timestep 0.002 -compute q all property/atom quatw quati quatj quatk +compute 0 all property/atom quatw quati quatj quatk shapex shapey shapez -#dump 1 all custom 100 dump.ellipse.resquared & -# id type x y z c_q[1] c_q[2] c_q[3] c_q[4] +dump 1 all custom 100 dump.ellipse.resquared id type x y z c_0[*] +dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk & + colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez -#dump 2 all image 100 image.*.jpg type type & -# zoom 1.6 center d 0.5 0.5 0.5 +#dump 1 all custom 100 dump.ellipse.resquared & +# id type x y z c_q[1] c_q[2] c_q[3] c_q[4] + +#dump 2 all image 100 image.*.jpg type type & +# zoom 1.6 center d 0.5 0.5 0.5 #dump_modify 2 pad 4 adiam 1 1.0 adiam 2 2.0 -#dump 3 all movie 100 movie.mpg type type & -# zoom 1.6 center d 0.5 0.5 0.5 +#dump 3 all movie 100 movie.mpg type type & +# zoom 1.6 center d 0.5 0.5 0.5 #dump_modify 3 pad 4 adiam 1 1.0 adiam 2 2.0 -fix 1 all npt/asphere temp 2.0 2.0 0.1 iso 0.0 1.0 1.0 & - mtk no pchain 0 tchain 1 -fix 2 all enforce2d +fix 1 all npt/asphere temp 2.0 2.0 0.1 iso 0.0 1.0 1.0 & + mtk no pchain 0 tchain 1 +fix 2 all enforce2d compute_modify 1_temp extra/dof ${dof} # equilibrate to shrink box around dilute system -run 2000 +run 2000 # run dynamics on dense system -unfix 1 -fix 1 all nve/asphere +unfix 1 +fix 1 all nve/asphere -run 2000 +run 2000 From 4d8ef552c4e4f2d894be6458054d186f246a0f3f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Jul 2023 22:42:49 -0400 Subject: [PATCH 085/247] remove dead code, trim namespace imports --- src/DIELECTRIC/fix_polarize_bem_gmres.cpp | 1 - src/DIELECTRIC/fix_polarize_functional.cpp | 9 +++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/DIELECTRIC/fix_polarize_bem_gmres.cpp b/src/DIELECTRIC/fix_polarize_bem_gmres.cpp index 3945b76641..40f7d0c853 100644 --- a/src/DIELECTRIC/fix_polarize_bem_gmres.cpp +++ b/src/DIELECTRIC/fix_polarize_bem_gmres.cpp @@ -350,7 +350,6 @@ void FixPolarizeBEMGMRES::compute_induced_charges() double *ed = atom->ed; double *em = atom->em; double *epsilon = atom->epsilon; - int *mask = atom->mask; int nlocal = atom->nlocal; int eflag = 1; int vflag = 0; diff --git a/src/DIELECTRIC/fix_polarize_functional.cpp b/src/DIELECTRIC/fix_polarize_functional.cpp index ab039f9c48..dd0c0eb648 100644 --- a/src/DIELECTRIC/fix_polarize_functional.cpp +++ b/src/DIELECTRIC/fix_polarize_functional.cpp @@ -55,9 +55,9 @@ using namespace LAMMPS_NS; using namespace FixConst; -using namespace MathExtra; -using namespace MathConst; -using namespace MathSpecial; +using MathConst::MY_PI; +using MathConst::MY_PIS; +using MathSpecial::square; //#define _POLARIZE_DEBUG @@ -378,10 +378,7 @@ void FixPolarizeFunctional::update_induced_charges() // assign charges to the particles in the group double *q_scaled = atom->q_scaled; - double *q = atom->q; - double *epsilon = atom->epsilon; int nlocal = atom->nlocal; - double tmp = 0; for (int i = 0; i < nlocal; i++) { if (induced_charge_idx[i] < 0) continue; From 564a8e88c127926ae1ce84a75cbf1d4c129acf6a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 11 Jul 2023 10:31:16 -0400 Subject: [PATCH 086/247] use blanks on both sides of comparison operators not only one, remove blanks next to parenthesis --- purge-workflows.py | 22 +++++++++++++++++++ src/EFF/pair_eff_cut.cpp | 4 ++-- src/EXTRA-DUMP/dump_xtc.cpp | 2 +- src/EXTRA-FIX/fix_wall_reflect_stochastic.cpp | 2 +- src/EXTRA-PAIR/pair_lj_relres.cpp | 2 +- src/INTEL/fix_intel.cpp | 2 +- src/INTERLAYER/pair_ilp_tmd.cpp | 4 ++-- src/KIM/pair_kim.cpp | 3 +-- src/KOKKOS/mliap_so3_kokkos.cpp | 2 +- src/KOKKOS/neigh_bond_kokkos.cpp | 4 ++-- src/MANYBODY/pair_comb3.cpp | 6 ++--- src/MANYBODY/pair_lcbop.cpp | 2 +- src/MISC/fix_ipi.cpp | 12 +++++----- src/MISC/pair_agni.cpp | 2 +- src/OPENMP/npair_full_bin_ghost_omp.cpp | 2 +- src/OPENMP/npair_full_bin_omp.cpp | 2 +- src/OPENMP/npair_full_nsq_ghost_omp.cpp | 2 +- src/OPENMP/npair_full_nsq_omp.cpp | 2 +- .../npair_half_bin_newtoff_ghost_omp.cpp | 2 +- src/OPENMP/npair_half_bin_newtoff_omp.cpp | 2 +- src/OPENMP/npair_half_bin_newton_omp.cpp | 4 ++-- src/OPENMP/npair_half_bin_newton_tri_omp.cpp | 2 +- .../npair_half_multi_old_newtoff_omp.cpp | 2 +- .../npair_half_multi_old_newton_omp.cpp | 4 ++-- .../npair_half_multi_old_newton_tri_omp.cpp | 2 +- .../npair_half_nsq_newtoff_ghost_omp.cpp | 2 +- src/OPENMP/npair_half_nsq_newtoff_omp.cpp | 2 +- src/OPENMP/npair_half_nsq_newton_omp.cpp | 2 +- .../npair_half_respa_bin_newtoff_omp.cpp | 2 +- .../npair_half_respa_bin_newton_omp.cpp | 4 ++-- .../npair_half_respa_bin_newton_tri_omp.cpp | 2 +- .../npair_half_respa_nsq_newtoff_omp.cpp | 2 +- .../npair_half_respa_nsq_newton_omp.cpp | 2 +- .../npair_half_size_bin_newtoff_omp.cpp | 2 +- src/OPENMP/npair_half_size_bin_newton_omp.cpp | 4 ++-- .../npair_half_size_bin_newton_tri_omp.cpp | 2 +- .../npair_half_size_multi_newtoff_omp.cpp | 4 ++-- .../npair_half_size_multi_newton_omp.cpp | 4 ++-- .../npair_half_size_multi_newton_tri_omp.cpp | 2 +- .../npair_half_size_multi_old_newtoff_omp.cpp | 2 +- .../npair_half_size_multi_old_newton_omp.cpp | 4 ++-- ...air_half_size_multi_old_newton_tri_omp.cpp | 2 +- .../npair_half_size_nsq_newtoff_omp.cpp | 2 +- src/OPENMP/npair_half_size_nsq_newton_omp.cpp | 2 +- src/PHONON/dynamical_matrix.cpp | 2 +- src/PHONON/third_order.cpp | 2 +- src/REACTION/fix_bond_react.cpp | 6 ++--- src/REAXFF/fix_reaxff_bonds.cpp | 2 +- src/SMTBQ/pair_smtbq.cpp | 16 +++++++------- src/VTK/dump_vtk.cpp | 2 +- src/atom.cpp | 8 +++---- src/library.cpp | 20 ++++++++--------- src/read_restart.cpp | 14 ++++++------ src/variable.cpp | 6 ++--- 54 files changed, 121 insertions(+), 100 deletions(-) create mode 100644 purge-workflows.py diff --git a/purge-workflows.py b/purge-workflows.py new file mode 100644 index 0000000000..73b7d22f7a --- /dev/null +++ b/purge-workflows.py @@ -0,0 +1,22 @@ +from yaml import load +import subprocess +try: + from yaml import CLoader as Loader +except ImportError: + from yaml import Loader + +runs = subprocess.check_output('gh api repos/lammps/lammps/actions/runs',shell=True) +data = load(runs,Loader=Loader) +while data['total_count'] > 3: + print('remaining: ', data['total_count']) + num=1 + for d in data['workflow_runs']: + print(num, d['id'],d['name'],d['run_number']) + num += 1 + if num > 4: + subprocess.call('gh api -X DELETE repos/lammps/lammps/actions/runs/' + str(d['id']), shell=True) + #print('gh api -X DELETE repos/lammps/lammps/actions/runs/' + str(d['id'])) + else: + print('skip') + runs = subprocess.check_output('gh api repos/lammps/lammps/actions/runs',shell=True) + data = load(runs,Loader=Loader) diff --git a/src/EFF/pair_eff_cut.cpp b/src/EFF/pair_eff_cut.cpp index 1cfe5cd1dd..5f32de9912 100644 --- a/src/EFF/pair_eff_cut.cpp +++ b/src/EFF/pair_eff_cut.cpp @@ -921,13 +921,13 @@ void PairEffCut::coeff(int narg, char **arg) } else { int ecp; ecp = utils::inumeric(FLERR,arg[0],false,lmp); - if (strcmp(arg[1],"s") ==0) { + if (strcmp(arg[1],"s") == 0) { PAULI_CORE_A[ecp_type[ecp]] = utils::numeric(FLERR,arg[2],false,lmp); PAULI_CORE_B[ecp_type[ecp]] = utils::numeric(FLERR,arg[3],false,lmp); PAULI_CORE_C[ecp_type[ecp]] = utils::numeric(FLERR,arg[4],false,lmp); PAULI_CORE_D[ecp_type[ecp]] = 0.0; PAULI_CORE_E[ecp_type[ecp]] = 0.0; - } else if (strcmp(arg[1],"p") ==0) { + } else if (strcmp(arg[1],"p") == 0) { PAULI_CORE_A[ecp_type[ecp]] = utils::numeric(FLERR,arg[2],false,lmp); PAULI_CORE_B[ecp_type[ecp]] = utils::numeric(FLERR,arg[3],false,lmp); PAULI_CORE_C[ecp_type[ecp]] = utils::numeric(FLERR,arg[4],false,lmp); diff --git a/src/EXTRA-DUMP/dump_xtc.cpp b/src/EXTRA-DUMP/dump_xtc.cpp index ba3f740cf7..798bdcb391 100644 --- a/src/EXTRA-DUMP/dump_xtc.cpp +++ b/src/EXTRA-DUMP/dump_xtc.cpp @@ -740,7 +740,7 @@ static void receiveints(int buf[], const int num_of_ints, int num_of_bits, } for (i = num_of_ints-1; i > 0; i--) { num = 0; - for (j = num_of_bytes-1; j >=0; j--) { + for (j = num_of_bytes-1; j >= 0; j--) { num = (num << 8) | bytes[j]; p = num / sizes[i]; bytes[j] = p; diff --git a/src/EXTRA-FIX/fix_wall_reflect_stochastic.cpp b/src/EXTRA-FIX/fix_wall_reflect_stochastic.cpp index c0b44530e8..c435cc14ae 100644 --- a/src/EXTRA-FIX/fix_wall_reflect_stochastic.cpp +++ b/src/EXTRA-FIX/fix_wall_reflect_stochastic.cpp @@ -109,7 +109,7 @@ FixWallReflectStochastic(LAMMPS *lmp, int narg, char **arg) : for (int dir = 0; dir < 3; dir++) { wallvel[nwall][dir]= utils::numeric(FLERR,arg[iarg+dir+3],false,lmp); int dim = wallwhich[nwall] / 2; - if ((wallvel[nwall][dir] !=0) & (dir == dim)) + if ((wallvel[nwall][dir] != 0) & (dir == dim)) error->all(FLERR,"The wall velocity must be tangential"); // DIFFUSIVE = no accommodation coeffs diff --git a/src/EXTRA-PAIR/pair_lj_relres.cpp b/src/EXTRA-PAIR/pair_lj_relres.cpp index 85d0a04bf9..1826f3f1db 100644 --- a/src/EXTRA-PAIR/pair_lj_relres.cpp +++ b/src/EXTRA-PAIR/pair_lj_relres.cpp @@ -453,7 +453,7 @@ double PairLJRelRes::init_one(int i, int j) offset[i][j] = 0.0; } - if (epsilonf[i][j] != 0 ) { // fg (cut=cutf coefficients) + if (epsilonf[i][j] != 0) { // fg (cut=cutf coefficients) ljf1[i][j] = 48.0 * epsilonf[i][j] * pow(sigmaf[i][j],12.0); ljf2[i][j] = 24.0 * epsilonf[i][j] * pow(sigmaf[i][j],6.0); ljf3[i][j] = 4.0 * epsilonf[i][j] * pow(sigmaf[i][j],12.0); diff --git a/src/INTEL/fix_intel.cpp b/src/INTEL/fix_intel.cpp index 4c46608677..0a3d27a978 100644 --- a/src/INTEL/fix_intel.cpp +++ b/src/INTEL/fix_intel.cpp @@ -430,7 +430,7 @@ void FixIntel::pair_init_check(const bool cdmessage) double *time1 = off_watch_pair(); double *time2 = off_watch_neighbor(); int *overflow = get_off_overflow_flag(); - if (_offload_balance !=0.0) { + if (_offload_balance != 0.0) { #pragma offload_transfer target(mic:_cop) \ nocopy(time1,time2:length(1) alloc_if(1) free_if(0)) \ in(overflow:length(5) alloc_if(1) free_if(0)) diff --git a/src/INTERLAYER/pair_ilp_tmd.cpp b/src/INTERLAYER/pair_ilp_tmd.cpp index fd3a2f8c6f..8b08de39c0 100644 --- a/src/INTERLAYER/pair_ilp_tmd.cpp +++ b/src/INTERLAYER/pair_ilp_tmd.cpp @@ -481,11 +481,11 @@ void PairILPTMD::calc_normal() jH2 = atom->map(tag[i] - 2); iH1 = map[type[jH1]]; iH2 = map[type[jH2]]; - if (strcmp(elements[iH1], "Ow") == 0 ) { + if (strcmp(elements[iH1], "Ow") == 0) { vect[0][0] = x[jH1][0] - xtp; vect[0][1] = x[jH1][1] - ytp; vect[0][2] = x[jH1][2] - ztp; - } else if (strcmp(elements[iH2], "Ow") == 0 ) { + } else if (strcmp(elements[iH2], "Ow") == 0) { vect[0][0] = x[jH2][0] - xtp; vect[0][1] = x[jH2][1] - ytp; vect[0][2] = x[jH2][2] - ztp; diff --git a/src/KIM/pair_kim.cpp b/src/KIM/pair_kim.cpp index 8ac6fe1f75..e0fc90ea46 100644 --- a/src/KIM/pair_kim.cpp +++ b/src/KIM/pair_kim.cpp @@ -198,8 +198,7 @@ PairKIM::~PairKIM() void PairKIM::set_contributing() { int const nall = atom->nlocal + atom->nghost; - for (int i = 0; i < nall; ++i) - kim_particleContributing[i] = ( (i < atom->nlocal) ? 1 : 0 ); + for (int i = 0; i < nall; ++i) kim_particleContributing[i] = (i < atom->nlocal) ? 1 : 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/KOKKOS/mliap_so3_kokkos.cpp b/src/KOKKOS/mliap_so3_kokkos.cpp index 128e0f0a0c..bfdf4af0aa 100644 --- a/src/KOKKOS/mliap_so3_kokkos.cpp +++ b/src/KOKKOS/mliap_so3_kokkos.cpp @@ -856,7 +856,7 @@ void MLIAP_SO3Kokkos::spectrum_dxdr(int nlocal, DAT::tdual_int_1d nu memoryKK->create_kokkos(m_clisttot_i, nlocal, m_nmax, m_numYlms, "MLIAP_SO3Kokkos:m_clisttot_i"); int num_of_temp = std::min(nlocal, m_chunk_size); int delta=num_of_temp-m_ulist_r.extent(0); - if (delta > 0 ){ + if (delta > 0){ memoryKK->destroy_kokkos(m_ulist_r); memoryKK->create_kokkos(m_ulist_r, num_of_temp, m_idxu_count, "MLIAP_SO3Kokkos:m_ulist_r"); memoryKK->destroy_kokkos(m_ulist_i); diff --git a/src/KOKKOS/neigh_bond_kokkos.cpp b/src/KOKKOS/neigh_bond_kokkos.cpp index 9067284426..4cfe440b1f 100644 --- a/src/KOKKOS/neigh_bond_kokkos.cpp +++ b/src/KOKKOS/neigh_bond_kokkos.cpp @@ -266,7 +266,7 @@ void NeighBondKokkos::bond_all() int all; MPI_Allreduce(&nmissing,&all,1,MPI_INT,MPI_SUM,world); - if (all && me ==0) + if (all && me == 0) error->warning(FLERR,"Bond atoms missing at step {}", update->ntimestep); k_bondlist.modify(); @@ -345,7 +345,7 @@ void NeighBondKokkos::bond_partial() int all; MPI_Allreduce(&nmissing,&all,1,MPI_INT,MPI_SUM,world); - if (all && me ==0) + if (all && me == 0) error->warning(FLERR,"Bond atoms missing at step {}", update->ntimestep); k_bondlist.modify(); diff --git a/src/MANYBODY/pair_comb3.cpp b/src/MANYBODY/pair_comb3.cpp index ac1ac0ea62..a6a6ed37fd 100644 --- a/src/MANYBODY/pair_comb3.cpp +++ b/src/MANYBODY/pair_comb3.cpp @@ -593,9 +593,9 @@ void PairComb3::read_file(char *file) if (params[nparams].lambda < 0.0 || params[nparams].powern < 0.0 || params[nparams].beta < 0.0 || params[nparams].alpha1 < 0.0 || - params[nparams].bigB1< 0.0 || params[nparams].bigA< 0.0 || - params[nparams].bigB2< 0.0 || params[nparams].alpha2 <0.0 || - params[nparams].bigB3< 0.0 || params[nparams].alpha3 <0.0 || + params[nparams].bigB1 < 0.0 || params[nparams].bigA < 0.0 || + params[nparams].bigB2 < 0.0 || params[nparams].alpha2 < 0.0 || + params[nparams].bigB3 < 0.0 || params[nparams].alpha3 < 0.0 || params[nparams].bigr < 0.0 || params[nparams].bigd < 0.0 || params[nparams].bigd > params[nparams].bigr || params[nparams].powerm - params[nparams].powermint != 0.0 || diff --git a/src/MANYBODY/pair_lcbop.cpp b/src/MANYBODY/pair_lcbop.cpp index 65191ae85e..ed085c4b98 100644 --- a/src/MANYBODY/pair_lcbop.cpp +++ b/src/MANYBODY/pair_lcbop.cpp @@ -115,7 +115,7 @@ void PairLCBOP::allocate() ------------------------------------------------------------------------- */ void PairLCBOP::settings(int narg, char **/*arg*/) { - if (narg != 0 ) error->all(FLERR,"Illegal pair_style command"); + if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } /* ---------------------------------------------------------------------- diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index 9411fa763d..69e0f2a7f3 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -284,17 +284,17 @@ void FixIPI::initial_integrate(int /*vflag*/) // while i-PI just asks for status, signal we are ready and wait readbuffer(ipisock, header, MSGLEN, error); header[MSGLEN]=0; - if (strcmp(header,"STATUS ") == 0 ) + if (strcmp(header,"STATUS ") == 0) writebuffer(ipisock,"READY ",MSGLEN, error); else break; } - if (strcmp(header,"EXIT ") == 0 ) + if (strcmp(header,"EXIT ") == 0) error->one(FLERR, "Got EXIT message from i-PI. Now leaving!"); // when i-PI signals it has positions to evaluate new forces, // read positions and cell data - if (strcmp(header,"POSDATA ") == 0 ) { + if (strcmp(header,"POSDATA ") == 0) { readbuffer(ipisock, (char*) cellh, 9*8, error); readbuffer(ipisock, (char*) cellih, 9*8, error); readbuffer(ipisock, (char*) &nat, 4, error); @@ -454,15 +454,15 @@ void FixIPI::final_integrate() while (true) { readbuffer(ipisock, header, MSGLEN, error); header[MSGLEN]=0; - if (strcmp(header,"STATUS ") == 0 ) + if (strcmp(header,"STATUS ") == 0) writebuffer(ipisock,"HAVEDATA ",MSGLEN, error); else break; } - if (strcmp(header,"EXIT ") == 0 ) + if (strcmp(header,"EXIT ") == 0) error->one(FLERR, "Got EXIT message from i-PI. Now leaving!"); - if (strcmp(header,"GETFORCE ") == 0 ) { + if (strcmp(header,"GETFORCE ") == 0) { writebuffer(ipisock,"FORCEREADY ",MSGLEN, error); writebuffer(ipisock,(char*) &pot,8, error); writebuffer(ipisock,(char*) &nat,4, error); diff --git a/src/MISC/pair_agni.cpp b/src/MISC/pair_agni.cpp index 539c0ca00f..8597e5db93 100644 --- a/src/MISC/pair_agni.cpp +++ b/src/MISC/pair_agni.cpp @@ -347,7 +347,7 @@ void PairAGNI::read_file(char *filename) curparam = -1; } else error->warning(FLERR,"Ignoring unknown tag '{}' in AGNI potential file.",tag); } else { - if (params && wantdata >=0) { + if (params && wantdata >= 0) { if ((int)values.count() == params[wantdata].numeta + 2) { for (k = 0; k < params[wantdata].numeta; ++k) params[wantdata].xU[k][fp_counter] = values.next_double(); diff --git a/src/OPENMP/npair_full_bin_ghost_omp.cpp b/src/OPENMP/npair_full_bin_ghost_omp.cpp index 5723a418f5..0825d61b49 100644 --- a/src/OPENMP/npair_full_bin_ghost_omp.cpp +++ b/src/OPENMP/npair_full_bin_ghost_omp.cpp @@ -114,7 +114,7 @@ void NPairFullBinGhostOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_full_bin_omp.cpp b/src/OPENMP/npair_full_bin_omp.cpp index 94668002a9..65af519850 100644 --- a/src/OPENMP/npair_full_bin_omp.cpp +++ b/src/OPENMP/npair_full_bin_omp.cpp @@ -108,7 +108,7 @@ void NPairFullBinOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_full_nsq_ghost_omp.cpp b/src/OPENMP/npair_full_nsq_ghost_omp.cpp index 05f402a99d..c1270d9fdc 100644 --- a/src/OPENMP/npair_full_nsq_ghost_omp.cpp +++ b/src/OPENMP/npair_full_nsq_ghost_omp.cpp @@ -108,7 +108,7 @@ void NPairFullNsqGhostOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_full_nsq_omp.cpp b/src/OPENMP/npair_full_nsq_omp.cpp index 6349906771..695cb1bc48 100644 --- a/src/OPENMP/npair_full_nsq_omp.cpp +++ b/src/OPENMP/npair_full_nsq_omp.cpp @@ -108,7 +108,7 @@ void NPairFullNsqOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_bin_newtoff_ghost_omp.cpp b/src/OPENMP/npair_half_bin_newtoff_ghost_omp.cpp index 2255033204..e10d181a8c 100644 --- a/src/OPENMP/npair_half_bin_newtoff_ghost_omp.cpp +++ b/src/OPENMP/npair_half_bin_newtoff_ghost_omp.cpp @@ -122,7 +122,7 @@ void NPairHalfBinNewtoffGhostOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_bin_newtoff_omp.cpp b/src/OPENMP/npair_half_bin_newtoff_omp.cpp index 36997d9bcb..9d32cc7e2b 100644 --- a/src/OPENMP/npair_half_bin_newtoff_omp.cpp +++ b/src/OPENMP/npair_half_bin_newtoff_omp.cpp @@ -113,7 +113,7 @@ void NPairHalfBinNewtoffOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_bin_newton_omp.cpp b/src/OPENMP/npair_half_bin_newton_omp.cpp index 1663a2f14c..d2da12962c 100644 --- a/src/OPENMP/npair_half_bin_newton_omp.cpp +++ b/src/OPENMP/npair_half_bin_newton_omp.cpp @@ -114,7 +114,7 @@ void NPairHalfBinNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); @@ -145,7 +145,7 @@ void NPairHalfBinNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_bin_newton_tri_omp.cpp b/src/OPENMP/npair_half_bin_newton_tri_omp.cpp index e754456ef1..4d93d06d75 100644 --- a/src/OPENMP/npair_half_bin_newton_tri_omp.cpp +++ b/src/OPENMP/npair_half_bin_newton_tri_omp.cpp @@ -119,7 +119,7 @@ void NPairHalfBinNewtonTriOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_multi_old_newtoff_omp.cpp b/src/OPENMP/npair_half_multi_old_newtoff_omp.cpp index ac5e9dae04..4447b4414e 100644 --- a/src/OPENMP/npair_half_multi_old_newtoff_omp.cpp +++ b/src/OPENMP/npair_half_multi_old_newtoff_omp.cpp @@ -120,7 +120,7 @@ void NPairHalfMultiOldNewtoffOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_multi_old_newton_omp.cpp b/src/OPENMP/npair_half_multi_old_newton_omp.cpp index baa9dd0724..29c551f17d 100644 --- a/src/OPENMP/npair_half_multi_old_newton_omp.cpp +++ b/src/OPENMP/npair_half_multi_old_newton_omp.cpp @@ -116,7 +116,7 @@ void NPairHalfMultiOldNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); @@ -153,7 +153,7 @@ void NPairHalfMultiOldNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_multi_old_newton_tri_omp.cpp b/src/OPENMP/npair_half_multi_old_newton_tri_omp.cpp index e4895ff1a9..1d906b1fa5 100644 --- a/src/OPENMP/npair_half_multi_old_newton_tri_omp.cpp +++ b/src/OPENMP/npair_half_multi_old_newton_tri_omp.cpp @@ -129,7 +129,7 @@ void NPairHalfMultiOldNewtonTriOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_nsq_newtoff_ghost_omp.cpp b/src/OPENMP/npair_half_nsq_newtoff_ghost_omp.cpp index 388e51e1af..54de8b9607 100644 --- a/src/OPENMP/npair_half_nsq_newtoff_ghost_omp.cpp +++ b/src/OPENMP/npair_half_nsq_newtoff_ghost_omp.cpp @@ -117,7 +117,7 @@ void NPairHalfNsqNewtoffGhostOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_nsq_newtoff_omp.cpp b/src/OPENMP/npair_half_nsq_newtoff_omp.cpp index 002ea37e6b..54a90d9f2b 100644 --- a/src/OPENMP/npair_half_nsq_newtoff_omp.cpp +++ b/src/OPENMP/npair_half_nsq_newtoff_omp.cpp @@ -109,7 +109,7 @@ void NPairHalfNsqNewtoffOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_nsq_newton_omp.cpp b/src/OPENMP/npair_half_nsq_newton_omp.cpp index 5996cd2013..c010a3b024 100644 --- a/src/OPENMP/npair_half_nsq_newton_omp.cpp +++ b/src/OPENMP/npair_half_nsq_newton_omp.cpp @@ -127,7 +127,7 @@ void NPairHalfNsqNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_respa_bin_newtoff_omp.cpp b/src/OPENMP/npair_half_respa_bin_newtoff_omp.cpp index c6be04419d..e1d4ee59b1 100644 --- a/src/OPENMP/npair_half_respa_bin_newtoff_omp.cpp +++ b/src/OPENMP/npair_half_respa_bin_newtoff_omp.cpp @@ -144,7 +144,7 @@ void NPairHalfRespaBinNewtoffOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_respa_bin_newton_omp.cpp b/src/OPENMP/npair_half_respa_bin_newton_omp.cpp index 51fc7a2ed8..ce8a103170 100644 --- a/src/OPENMP/npair_half_respa_bin_newton_omp.cpp +++ b/src/OPENMP/npair_half_respa_bin_newton_omp.cpp @@ -146,7 +146,7 @@ void NPairHalfRespaBinNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); @@ -190,7 +190,7 @@ void NPairHalfRespaBinNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_respa_bin_newton_tri_omp.cpp b/src/OPENMP/npair_half_respa_bin_newton_tri_omp.cpp index c998f71290..73f2102dba 100644 --- a/src/OPENMP/npair_half_respa_bin_newton_tri_omp.cpp +++ b/src/OPENMP/npair_half_respa_bin_newton_tri_omp.cpp @@ -151,7 +151,7 @@ void NPairHalfRespaBinNewtonTriOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_respa_nsq_newtoff_omp.cpp b/src/OPENMP/npair_half_respa_nsq_newtoff_omp.cpp index 1167a7601b..428ca778e8 100644 --- a/src/OPENMP/npair_half_respa_nsq_newtoff_omp.cpp +++ b/src/OPENMP/npair_half_respa_nsq_newtoff_omp.cpp @@ -141,7 +141,7 @@ void NPairHalfRespaNsqNewtoffOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_respa_nsq_newton_omp.cpp b/src/OPENMP/npair_half_respa_nsq_newton_omp.cpp index 61d9165b1e..4bcba0fbef 100644 --- a/src/OPENMP/npair_half_respa_nsq_newton_omp.cpp +++ b/src/OPENMP/npair_half_respa_nsq_newton_omp.cpp @@ -159,7 +159,7 @@ void NPairHalfRespaNsqNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_bin_newtoff_omp.cpp b/src/OPENMP/npair_half_size_bin_newtoff_omp.cpp index c205b67539..478e28a5f4 100644 --- a/src/OPENMP/npair_half_size_bin_newtoff_omp.cpp +++ b/src/OPENMP/npair_half_size_bin_newtoff_omp.cpp @@ -125,7 +125,7 @@ void NPairHalfSizeBinNewtoffOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_bin_newton_omp.cpp b/src/OPENMP/npair_half_size_bin_newton_omp.cpp index 628057d41d..dba392781e 100644 --- a/src/OPENMP/npair_half_size_bin_newton_omp.cpp +++ b/src/OPENMP/npair_half_size_bin_newton_omp.cpp @@ -126,7 +126,7 @@ void NPairHalfSizeBinNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); @@ -161,7 +161,7 @@ void NPairHalfSizeBinNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_bin_newton_tri_omp.cpp b/src/OPENMP/npair_half_size_bin_newton_tri_omp.cpp index c320296442..160cf64194 100644 --- a/src/OPENMP/npair_half_size_bin_newton_tri_omp.cpp +++ b/src/OPENMP/npair_half_size_bin_newton_tri_omp.cpp @@ -132,7 +132,7 @@ void NPairHalfSizeBinNewtonTriOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_multi_newtoff_omp.cpp b/src/OPENMP/npair_half_size_multi_newtoff_omp.cpp index 73564a150c..ba0dfc16be 100644 --- a/src/OPENMP/npair_half_size_multi_newtoff_omp.cpp +++ b/src/OPENMP/npair_half_size_multi_newtoff_omp.cpp @@ -124,7 +124,7 @@ void NPairHalfSizeMultiNewtoffOmp::build(NeighList *list) for (k = 0; k < ns; k++) { js = binhead_multi[jcollection][jbin + s[k]]; - for (j = js; j >=0; j = bins[j]) { + for (j = js; j >= 0; j = bins[j]) { if (j <= i) continue; jtype = type[j]; @@ -145,7 +145,7 @@ void NPairHalfSizeMultiNewtoffOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_multi_newton_omp.cpp b/src/OPENMP/npair_half_size_multi_newton_omp.cpp index 0ed843ea0b..4bc17f911c 100644 --- a/src/OPENMP/npair_half_size_multi_newton_omp.cpp +++ b/src/OPENMP/npair_half_size_multi_newton_omp.cpp @@ -155,7 +155,7 @@ void NPairHalfSizeMultiNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); @@ -198,7 +198,7 @@ void NPairHalfSizeMultiNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_multi_newton_tri_omp.cpp b/src/OPENMP/npair_half_size_multi_newton_tri_omp.cpp index 9a0ead482b..73e11a2745 100644 --- a/src/OPENMP/npair_half_size_multi_newton_tri_omp.cpp +++ b/src/OPENMP/npair_half_size_multi_newton_tri_omp.cpp @@ -160,7 +160,7 @@ void NPairHalfSizeMultiNewtonTriOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_multi_old_newtoff_omp.cpp b/src/OPENMP/npair_half_size_multi_old_newtoff_omp.cpp index c368e71095..e4169482bc 100644 --- a/src/OPENMP/npair_half_size_multi_old_newtoff_omp.cpp +++ b/src/OPENMP/npair_half_size_multi_old_newtoff_omp.cpp @@ -132,7 +132,7 @@ void NPairHalfSizeMultiOldNewtoffOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_multi_old_newton_omp.cpp b/src/OPENMP/npair_half_size_multi_old_newton_omp.cpp index 187efe04d1..7d6a3de871 100644 --- a/src/OPENMP/npair_half_size_multi_old_newton_omp.cpp +++ b/src/OPENMP/npair_half_size_multi_old_newton_omp.cpp @@ -127,7 +127,7 @@ void NPairHalfSizeMultiOldNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); @@ -170,7 +170,7 @@ void NPairHalfSizeMultiOldNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_multi_old_newton_tri_omp.cpp b/src/OPENMP/npair_half_size_multi_old_newton_tri_omp.cpp index c74b191f66..caa993ed38 100644 --- a/src/OPENMP/npair_half_size_multi_old_newton_tri_omp.cpp +++ b/src/OPENMP/npair_half_size_multi_old_newton_tri_omp.cpp @@ -140,7 +140,7 @@ void NPairHalfSizeMultiOldNewtonTriOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_nsq_newtoff_omp.cpp b/src/OPENMP/npair_half_size_nsq_newtoff_omp.cpp index 020551bd8e..2982586a18 100644 --- a/src/OPENMP/npair_half_size_nsq_newtoff_omp.cpp +++ b/src/OPENMP/npair_half_size_nsq_newtoff_omp.cpp @@ -122,7 +122,7 @@ void NPairHalfSizeNsqNewtoffOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/OPENMP/npair_half_size_nsq_newton_omp.cpp b/src/OPENMP/npair_half_size_nsq_newton_omp.cpp index fe2a1be3da..0a80da9422 100644 --- a/src/OPENMP/npair_half_size_nsq_newton_omp.cpp +++ b/src/OPENMP/npair_half_size_nsq_newton_omp.cpp @@ -140,7 +140,7 @@ void NPairHalfSizeNsqNewtonOmp::build(NeighList *list) if (molecular != Atom::ATOMIC) { if (!moltemplate) which = find_special(special[i],nspecial[i],tag[j]); - else if (imol >=0) + else if (imol >= 0) which = find_special(onemols[imol]->special[iatom], onemols[imol]->nspecial[iatom], tag[j]-tagprev); diff --git a/src/PHONON/dynamical_matrix.cpp b/src/PHONON/dynamical_matrix.cpp index 8e4f8557a2..c2ba34c4c2 100644 --- a/src/PHONON/dynamical_matrix.cpp +++ b/src/PHONON/dynamical_matrix.cpp @@ -365,7 +365,7 @@ void DynamicalMatrix::calculateMatrix() delete [] fdynmat[i]; delete [] fdynmat; - if (screen && me ==0 ) fprintf(screen,"Finished Calculating Dynamical Matrix\n"); + if (screen && me == 0) fprintf(screen,"Finished Calculating Dynamical Matrix\n"); } /* ---------------------------------------------------------------------- diff --git a/src/PHONON/third_order.cpp b/src/PHONON/third_order.cpp index 4a8948de77..c31aae0086 100644 --- a/src/PHONON/third_order.cpp +++ b/src/PHONON/third_order.cpp @@ -412,7 +412,7 @@ void ThirdOrder::calculateMatrix() delete [] dynmat; delete [] fdynmat; - if (screen && me ==0) + if (screen && me == 0) fprintf(screen,"Finished Calculating Third Order Tensor\n"); } diff --git a/src/REACTION/fix_bond_react.cpp b/src/REACTION/fix_bond_react.cpp index cf99efd099..d124b06dc2 100644 --- a/src/REACTION/fix_bond_react.cpp +++ b/src/REACTION/fix_bond_react.cpp @@ -412,7 +412,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"modify_create") == 0) { if (iarg++ > narg) error->all(FLERR,"Illegal fix bond/react command: " "'modify_create' has too few arguments"); - while (iarg < narg && strcmp(arg[iarg],"react") != 0 ) { + while (iarg < narg && strcmp(arg[iarg],"react") != 0) { if (strcmp(arg[iarg],"fit") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " "'modify_create' has too few arguments"); @@ -1394,7 +1394,7 @@ void FixBondReact::superimpose_algorithm() } for (int i = 0; i < onemol->natoms; i++) { - if (glove[i][0] !=0 && pioneer_count[i] < onemol_nxspecial[i][0] && edge[i][rxnID] == 0) { + if (glove[i][0] != 0 && pioneer_count[i] < onemol_nxspecial[i][0] && edge[i][rxnID] == 0) { pioneers[i] = 1; } } @@ -1837,7 +1837,7 @@ void FixBondReact::inner_crosscheck_loop() for (int i=1; i < num_choices; ++i) { tagint hold = tag_choices[i]; int j = i - 1; - while ((j >=0) && (tag_choices[j] > hold)) { + while ((j >= 0) && (tag_choices[j] > hold)) { tag_choices[j+1] = tag_choices[j]; --j; } diff --git a/src/REAXFF/fix_reaxff_bonds.cpp b/src/REAXFF/fix_reaxff_bonds.cpp index 393e22930f..8bd7ed0020 100644 --- a/src/REAXFF/fix_reaxff_bonds.cpp +++ b/src/REAXFF/fix_reaxff_bonds.cpp @@ -295,7 +295,7 @@ void FixReaxFFBonds::RecvBuffer(double *buf, int nbuf, int nbuf_local, MPI_Isend(&buf[0],nbuf_local,MPI_DOUBLE,0,0,world,&irequest2); MPI_Wait(&irequest2,MPI_STATUS_IGNORE); } - if (me ==0) fputs("# \n",fp); + if (me == 0) fputs("# \n",fp); } diff --git a/src/SMTBQ/pair_smtbq.cpp b/src/SMTBQ/pair_smtbq.cpp index fdef0b6043..4f924a6fca 100644 --- a/src/SMTBQ/pair_smtbq.cpp +++ b/src/SMTBQ/pair_smtbq.cpp @@ -446,7 +446,7 @@ void PairSMTBQ::read_file(char *file) params[i].chi = values.next_double(); params[i].dj = values.next_double(); - if (strcmp(params[i].nom, "O") !=0) { + if (strcmp(params[i].nom, "O") != 0) { params[i].R = values.next_double(); if ((comm->me == 0) && VERBOSE) utils::logmesg(lmp, " {} {} {} {} {}\n",label,params[i].ne,params[i].chi, @@ -782,7 +782,7 @@ void PairSMTBQ::read_file(char *file) if (intparams[m].intsm == 0) continue; intparams[m].neig_cut = 1.2*intparams[m].r0; - if (strcmp(intparams[m].typepot,"second_moment") == 0 ) + if (strcmp(intparams[m].typepot,"second_moment") == 0) if ((comm->me == 0) && VERBOSE) utils::logmesg(lmp, " Rc 1er voisin, typepot {} -> {} Ang\n", intparams[m].typepot,intparams[m].neig_cut); @@ -1020,7 +1020,7 @@ void PairSMTBQ::compute(int eflag, int vflag) // ---------------------------------------------- if ( strcmp(intparams[m].typepot,"buck") == 0 || - strcmp(intparams[m].typepot,"buckPlusAttr") ==0) { + strcmp(intparams[m].typepot,"buckPlusAttr") == 0) { // ---------------------------------------------- evdwl = 0.0; fpair =0.0; @@ -1070,7 +1070,7 @@ void PairSMTBQ::compute(int eflag, int vflag) // ----------------------------------------------------------------- - if (strcmp(intparams[m].typepot,"second_moment") != 0 ) continue; + if (strcmp(intparams[m].typepot,"second_moment") != 0) continue; // ----------------------------------------------------------------- @@ -2575,7 +2575,7 @@ void PairSMTBQ::Charge() if (me == 0 && strcmp(Bavard,"false") != 0) { for (gp = 0; gp < nteam+1; gp++) { printf (" ++++ Groupe %d - Nox %d Ncat %d\n",gp,nQEqaall[gp],nQEqcall[gp]); - if (nQEqcall[gp] !=0 && nQEqaall[gp] !=0 ) + if (nQEqcall[gp] != 0 && nQEqaall[gp] !=0 ) printf (" neutralite des charges %f\n qtotc %f qtota %f\n", qtotll,qtotcll[gp]/nQEqcall[gp],qtotall[gp]/nQEqaall[gp]); printf (" ---------------------------- \n");} @@ -2641,7 +2641,7 @@ void PairSMTBQ::Charge() for (i = 0; i < nteam+1; i++) { - if (nQEqall[i] !=0) TransfAll[i] /= static_cast(nQEqall[i]); + if (nQEqall[i] != 0) TransfAll[i] /= static_cast(nQEqall[i]); enegchk[i] = enegmax[i] = 0.0; } @@ -2665,7 +2665,7 @@ void PairSMTBQ::Charge() for (gp = 0; gp < nteam+1; gp++) { - if (nQEqall[gp] !=0) { + if (nQEqall[gp] != 0) { enegchk[gp] = enegchkall[gp]/static_cast(nQEqall[gp]); enegmax[gp] = enegmaxall[gp]; } @@ -2729,7 +2729,7 @@ void PairSMTBQ::Charge() // Statistique (ecart type) // ------------------------ for (i=0; i(nQEqcall[i]) ; TransfAll[i+2*cluster] /= static_cast(nQEqaall[i]) ;} sigmaa[i] = sigmac[i] = 0.0; diff --git a/src/VTK/dump_vtk.cpp b/src/VTK/dump_vtk.cpp index 3667180bc9..a77f5b2e11 100644 --- a/src/VTK/dump_vtk.cpp +++ b/src/VTK/dump_vtk.cpp @@ -1933,7 +1933,7 @@ void DumpVTK::identify_vectors() // assume components are grouped together and in correct order if (name.count(it->first + 1) && name.count(it->first + 2)) { // more attributes? if (it->second.compare(0,it->second.length()-3,name[it->first + 1],0,it->second.length()-3) == 0 && // same attributes? - it->second.compare(0,it->second.length()-3,name[it->first + 2],0,it->second.length()-3) == 0 ) + it->second.compare(0,it->second.length()-3,name[it->first + 2],0,it->second.length()-3) == 0) { it->second.erase(it->second.length()-1); std::ostringstream oss; diff --git a/src/atom.cpp b/src/atom.cpp index 08e9639440..6b014fc9c8 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -966,10 +966,10 @@ void Atom::bonus_check() bigint local_bodies = 0, num_global; for (int i = 0; i < nlocal; ++i) { - if (ellipsoid && (ellipsoid[i] >=0)) ++local_ellipsoids; - if (line && (line[i] >=0)) ++local_lines; - if (tri && (tri[i] >=0)) ++local_tris; - if (body && (body[i] >=0)) ++local_bodies; + if (ellipsoid && (ellipsoid[i] >= 0)) ++local_ellipsoids; + if (line && (line[i] >= 0)) ++local_lines; + if (tri && (tri[i] >= 0)) ++local_tris; + if (body && (body[i] >= 0)) ++local_bodies; } MPI_Allreduce(&local_ellipsoids,&num_global,1,MPI_LMP_BIGINT,MPI_SUM,world); diff --git a/src/library.cpp b/src/library.cpp index 872b59693f..8cec7c4505 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -2328,7 +2328,7 @@ void *lammps_extract_variable(void *handle, const char *name, const char *group) } else if (lmp->input->variable->vectorstyle(ivar)) { double *values = nullptr; int nvector = lmp->input->variable->compute_vector(ivar, &values); - if ( group != nullptr && strcmp(group,"LMP_SIZE_VECTOR") == 0 ) { + if (group != nullptr && strcmp(group,"LMP_SIZE_VECTOR") == 0) { int* nvecptr = (int *) malloc(sizeof(int)); *nvecptr = nvector; return (void *) nvecptr; @@ -2372,7 +2372,7 @@ int lammps_extract_variable_datatype(void *handle, const char *name) BEGIN_CAPTURE { int ivar = lmp->input->variable->find(name); - if ( ivar < 0 ) return -1; + if (ivar < 0) return -1; if (lmp->input->variable->equalstyle(ivar)) return LMP_VAR_EQUAL; @@ -5199,7 +5199,7 @@ int lammps_find_pair_neighlist(void *handle, const char *style, int exact, int n // find neigh list for (int i = 0; i < lmp->neighbor->nlist; i++) { NeighList *list = lmp->neighbor->lists[i]; - if ( (list->requestor_type == NeighList::PAIR) + if ((list->requestor_type == NeighList::PAIR) && (pair == list->requestor) && (list->id == reqid) ) return i; } @@ -5229,7 +5229,7 @@ int lammps_find_fix_neighlist(void *handle, const char *id, int reqid) { // find neigh list for (int i = 0; i < lmp->neighbor->nlist; i++) { NeighList *list = lmp->neighbor->lists[i]; - if ( (list->requestor_type == NeighList::FIX) + if ((list->requestor_type == NeighList::FIX) && (fix == list->requestor) && (list->id == reqid) ) return i; } @@ -5258,7 +5258,7 @@ int lammps_find_compute_neighlist(void *handle, const char *id, int reqid) { // find neigh list for (int i = 0; i < lmp->neighbor->nlist; i++) { NeighList * list = lmp->neighbor->lists[i]; - if ( (list->requestor_type == NeighList::COMPUTE) + if ((list->requestor_type == NeighList::COMPUTE) && (compute == list->requestor) && (list->id == reqid) ) return i; } @@ -5709,7 +5709,7 @@ int lammps_style_name(void *handle, const char *category, int idx, Info info(lmp); auto styles = info.get_available_styles(category); - if ((idx >=0) && (idx < (int) styles.size())) { + if ((idx >= 0) && (idx < (int) styles.size())) { strncpy(buffer, styles[idx].c_str(), buf_size); return 1; } @@ -5844,23 +5844,23 @@ int lammps_id_name(void *handle, const char *category, int idx, char *buffer, in return 1; } } else if (strcmp(category,"group") == 0) { - if ((idx >=0) && (idx < lmp->group->ngroup)) { + if ((idx >= 0) && (idx < lmp->group->ngroup)) { strncpy(buffer, lmp->group->names[idx], buf_size); return 1; } } else if (strcmp(category,"molecule") == 0) { - if ((idx >=0) && (idx < lmp->atom->nmolecule)) { + if ((idx >= 0) && (idx < lmp->atom->nmolecule)) { strncpy(buffer, lmp->atom->molecules[idx]->id, buf_size); return 1; } } else if (strcmp(category,"region") == 0) { auto regions = lmp->domain->get_region_list(); - if ((idx >=0) && (idx < (int) regions.size())) { + if ((idx >= 0) && (idx < (int) regions.size())) { strncpy(buffer, regions[idx]->id, buf_size); return 1; } } else if (strcmp(category,"variable") == 0) { - if ((idx >=0) && (idx < lmp->input->variable->nvar)) { + if ((idx >= 0) && (idx < lmp->input->variable->nvar)) { strncpy(buffer, lmp->input->variable->names[idx], buf_size); return 1; } diff --git a/src/read_restart.cpp b/src/read_restart.cpp index aa9f5fe8ee..0de36ebe1e 100644 --- a/src/read_restart.cpp +++ b/src/read_restart.cpp @@ -768,7 +768,7 @@ void ReadRestart::header() for (int i = 0; i < nargcopy; i++) argcopy[i] = read_string(); atom->create_avec(style,nargcopy,argcopy,1); - if (comm->me ==0) + if (comm->me == 0) utils::logmesg(lmp," restoring atom style {} from restart\n",atom->atom_style); for (int i = 0; i < nargcopy; i++) delete[] argcopy[i]; delete[] argcopy; @@ -921,14 +921,14 @@ void ReadRestart::force_fields() style = read_string(); force->create_pair(style,1); delete[] style; - if (comm->me ==0) + if (comm->me == 0) utils::logmesg(lmp," restoring pair style {} from restart\n", force->pair_style); force->pair->read_restart(fp); } else if (flag == NO_PAIR) { style = read_string(); - if (comm->me ==0) + if (comm->me == 0) utils::logmesg(lmp," pair style {} stores no restart info\n", style); force->create_pair("none",0); force->pair_restart = style; @@ -937,7 +937,7 @@ void ReadRestart::force_fields() style = read_string(); force->create_bond(style,1); delete[] style; - if (comm->me ==0) + if (comm->me == 0) utils::logmesg(lmp," restoring bond style {} from restart\n", force->bond_style); force->bond->read_restart(fp); @@ -946,7 +946,7 @@ void ReadRestart::force_fields() style = read_string(); force->create_angle(style,1); delete[] style; - if (comm->me ==0) + if (comm->me == 0) utils::logmesg(lmp," restoring angle style {} from restart\n", force->angle_style); force->angle->read_restart(fp); @@ -955,7 +955,7 @@ void ReadRestart::force_fields() style = read_string(); force->create_dihedral(style,1); delete[] style; - if (comm->me ==0) + if (comm->me == 0) utils::logmesg(lmp," restoring dihedral style {} from restart\n", force->dihedral_style); force->dihedral->read_restart(fp); @@ -964,7 +964,7 @@ void ReadRestart::force_fields() style = read_string(); force->create_improper(style,1); delete[] style; - if (comm->me ==0) + if (comm->me == 0) utils::logmesg(lmp," restoring improper style {} from restart\n", force->improper_style); force->improper->read_restart(fp); diff --git a/src/variable.cpp b/src/variable.cpp index 4d07a9e3c2..3264cfa1ee 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -2726,7 +2726,7 @@ double Variable::collapse_tree(Tree *tree) if (tree->first->type != VALUE || tree->second->type != VALUE || tree->extra[0]->type != VALUE) return 0.0; tree->type = VALUE; - if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0 ) + if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0) error->all(FLERR,"Invalid math function in variable formula"); if (update->ntimestep < ivalue1) tree->value = ivalue1; else { @@ -3097,7 +3097,7 @@ double Variable::eval_tree(Tree *tree, int i) auto ivalue1 = static_cast (eval_tree(tree->first,i)); auto ivalue2 = static_cast (eval_tree(tree->second,i)); auto ivalue3 = static_cast (eval_tree(tree->extra[0],i)); - if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0 ) + if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0) error->all(FLERR,"Invalid math function in variable formula"); if (update->ntimestep < ivalue1) arg = ivalue1; else { @@ -3628,7 +3628,7 @@ int Variable::math_function(char *word, char *contents, Tree **tree, Tree **tree auto ivalue1 = static_cast (value1); auto ivalue2 = static_cast (value2); auto ivalue3 = static_cast (values[0]); - if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0 ) + if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0) print_var_error(FLERR,"Invalid math function in variable formula",ivar); double value; if (update->ntimestep < ivalue1) value = ivalue1; From 0f89a8b2caf50226c002b2a958d5eb18e41dc39d Mon Sep 17 00:00:00 2001 From: jbcouli Date: Tue, 11 Jul 2023 10:42:26 -0600 Subject: [PATCH 087/247] explicit special_bonds commands for 1-2 coul weight equal to zero --- doc/src/Howto_bpm.rst | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/src/Howto_bpm.rst b/doc/src/Howto_bpm.rst index 448a43a654..380c114866 100644 --- a/doc/src/Howto_bpm.rst +++ b/doc/src/Howto_bpm.rst @@ -110,8 +110,14 @@ ensures all bonded neighbors are still included in the neighbor list in case bonds break between neighbor list builds. If bond breakage is disabled during a simulation run by setting the *break* keyword to *no*, a zero coul weight for 1-2 bonds can be used to exclude bonded atoms -from the neighbor list builds. This can be useful for post-processing, -or to determine pair interaction properties between distinct bonded particles. +from the neighbor list builds + + .. code-block:: LAMMPS + + special_bonds lj 0 1 1 coul 0 1 1 + +This can be useful for post-processing, or to determine pair interaction +properties between distinct bonded particles. To monitor the fracture of bonds in the system, all BPM bond styles have the ability to record instances of bond breakage to output using From 6123883324c95190713bba64b543a5449eef253a Mon Sep 17 00:00:00 2001 From: Karl Hammond Date: Tue, 11 Jul 2023 17:57:22 -0500 Subject: [PATCH 088/247] Replaced parsed-literal:: with code-block:: LAMMPS under "Syntax" --- doc/src/atc_add_molecule.rst | 2 +- doc/src/atc_add_species.rst | 2 +- doc/src/atc_atom_element_map.rst | 2 +- doc/src/atc_atom_weight.rst | 2 +- doc/src/atc_atomic_charge.rst | 2 +- doc/src/atc_boundary_dynamics.rst | 2 +- doc/src/atc_boundary_faceset.rst | 2 +- doc/src/atc_boundary_type.rst | 2 +- doc/src/atc_consistent_fe_initialization.rst | 2 +- doc/src/atc_control_localized_lambda.rst | 2 +- doc/src/atc_control_momentum.rst | 2 +- doc/src/atc_control_thermal.rst | 2 +- doc/src/atc_decomposition.rst | 2 +- doc/src/atc_electron_integration.rst | 2 +- doc/src/atc_equilibrium_start.rst | 2 +- doc/src/atc_extrinsic_exchange.rst | 2 +- doc/src/atc_fe_md_boundary.rst | 2 +- doc/src/atc_filter_scale.rst | 2 +- doc/src/atc_filter_type.rst | 2 +- doc/src/atc_fix.rst | 2 +- doc/src/atc_fix_flux.rst | 2 +- doc/src/atc_hardy_computes.rst | 2 +- doc/src/atc_hardy_fields.rst | 2 +- doc/src/atc_hardy_gradients.rst | 2 +- doc/src/atc_hardy_kernel.rst | 2 +- doc/src/atc_hardy_on_the_fly.rst | 2 +- doc/src/atc_hardy_rates.rst | 2 +- doc/src/atc_initial.rst | 2 +- doc/src/atc_internal_element_set.rst | 2 +- doc/src/atc_internal_quadrature.rst | 2 +- doc/src/atc_kernel_bandwidth.rst | 2 +- doc/src/atc_lumped_lambda_solve.rst | 2 +- doc/src/atc_mask_direction.rst | 2 +- doc/src/atc_mass_matrix.rst | 2 +- doc/src/atc_material.rst | 2 +- doc/src/atc_mesh_add_to_nodeset.rst | 2 +- doc/src/atc_mesh_create.rst | 2 +- doc/src/atc_mesh_create_elementset.rst | 2 +- doc/src/atc_mesh_create_faceset_box.rst | 2 +- doc/src/atc_mesh_create_faceset_plane.rst | 2 +- doc/src/atc_mesh_create_nodeset.rst | 2 +- doc/src/atc_mesh_delete_elements.rst | 2 +- doc/src/atc_mesh_nodeset_to_elementset.rst | 2 +- doc/src/atc_mesh_output.rst | 2 +- doc/src/atc_mesh_quadrature.rst | 2 +- doc/src/atc_mesh_read.rst | 2 +- doc/src/atc_mesh_write.rst | 2 +- doc/src/atc_output.rst | 2 +- doc/src/atc_output_boundary_integral.rst | 2 +- doc/src/atc_output_contour_integral.rst | 2 +- doc/src/atc_output_nodeset.rst | 2 +- doc/src/atc_output_volume_integral.rst | 2 +- doc/src/atc_pair_interactions.rst | 2 +- doc/src/atc_poisson_solver.rst | 2 +- doc/src/atc_read_restart.rst | 2 +- doc/src/atc_remove_molecule.rst | 2 +- doc/src/atc_remove_source.rst | 2 +- doc/src/atc_remove_species.rst | 2 +- doc/src/atc_reset_atomic_reference.rst | 2 +- doc/src/atc_reset_time.rst | 2 +- doc/src/atc_sample_frequency.rst | 2 +- doc/src/atc_set_reference_pe.rst | 2 +- doc/src/atc_source.rst | 2 +- doc/src/atc_source_integration.rst | 2 +- doc/src/atc_temperature_definition.rst | 2 +- doc/src/atc_time_filter.rst | 2 +- doc/src/atc_time_integration.rst | 2 +- doc/src/atc_track_displacement.rst | 2 +- doc/src/atc_unfix.rst | 2 +- doc/src/atc_unfix_flux.rst | 2 +- doc/src/atc_write_atom_weights.rst | 2 +- doc/src/atc_write_restart.rst | 2 +- doc/src/compute_property_grid.rst | 2 +- doc/src/compute_reduce_chunk.rst | 2 +- doc/src/compute_saed.rst | 2 +- doc/src/compute_slice.rst | 2 +- doc/src/compute_smd_contact_radius.rst | 2 +- doc/src/compute_smd_damage.rst | 2 +- doc/src/compute_smd_hourglass_error.rst | 2 +- doc/src/compute_smd_internal_energy.rst | 2 +- doc/src/compute_smd_plastic_strain.rst | 2 +- doc/src/compute_smd_plastic_strain_rate.rst | 2 +- doc/src/compute_smd_rho.rst | 2 +- doc/src/compute_smd_tlsph_defgrad.rst | 2 +- doc/src/compute_smd_tlsph_dt.rst | 2 +- doc/src/compute_smd_tlsph_num_neighs.rst | 2 +- doc/src/compute_smd_tlsph_shape.rst | 2 +- doc/src/compute_smd_tlsph_strain.rst | 2 +- doc/src/compute_smd_tlsph_strain_rate.rst | 2 +- doc/src/compute_smd_tlsph_stress.rst | 2 +- doc/src/compute_smd_triangle_vertices.rst | 2 +- doc/src/compute_smd_vol.rst | 2 +- doc/src/compute_sna_atom.rst | 2 +- doc/src/compute_sph_e_atom.rst | 2 +- doc/src/compute_sph_rho_atom.rst | 2 +- doc/src/compute_sph_t_atom.rst | 2 +- doc/src/dump_image.rst | 2 +- doc/src/dump_molfile.rst | 2 +- doc/src/dump_netcdf.rst | 2 +- doc/src/fitpod_command.rst | 2 +- doc/src/fix_alchemy.rst | 2 +- doc/src/fix_ave_grid.rst | 2 +- doc/src/fix_bond_swap.rst | 2 +- doc/src/fix_box_relax.rst | 2 +- doc/src/fix_charge_regulation.rst | 4 ++-- doc/src/fix_cmap.rst | 2 +- doc/src/fix_colvars.rst | 2 +- doc/src/fix_controller.rst | 2 +- doc/src/fix_damping_cundall.rst | 2 +- doc/src/fix_deform.rst | 2 +- doc/src/fix_deposit.rst | 2 +- doc/src/fix_dpd_energy.rst | 2 +- doc/src/fix_dpd_source.rst | 2 +- doc/src/fix_drag.rst | 2 +- doc/src/fix_drude.rst | 2 +- doc/src/fix_drude_transform.rst | 2 +- doc/src/fix_dt_reset.rst | 2 +- doc/src/fix_efield.rst | 2 +- doc/src/fix_ehex.rst | 2 +- doc/src/fix_electron_stopping.rst | 2 +- doc/src/fix_enforce2d.rst | 2 +- doc/src/fix_eos_cv.rst | 2 +- doc/src/fix_eos_table.rst | 2 +- doc/src/fix_eos_table_rx.rst | 2 +- doc/src/fix_evaporate.rst | 2 +- doc/src/fix_external.rst | 2 +- doc/src/fix_ffl.rst | 2 +- doc/src/fix_filter_corotate.rst | 2 +- doc/src/fix_flow_gauss.rst | 2 +- doc/src/fix_freeze.rst | 2 +- doc/src/fix_gcmc.rst | 2 +- doc/src/fix_gld.rst | 2 +- doc/src/fix_gle.rst | 2 +- doc/src/fix_gravity.rst | 2 +- doc/src/fix_grem.rst | 2 +- doc/src/fix_halt.rst | 2 +- doc/src/fix_heat.rst | 2 +- doc/src/fix_heat_flow.rst | 2 +- doc/src/fix_hyper_global.rst | 2 +- doc/src/fix_hyper_local.rst | 2 +- doc/src/fix_imd.rst | 2 +- doc/src/fix_indent.rst | 2 +- doc/src/fix_ipi.rst | 2 +- doc/src/fix_langevin.rst | 2 +- doc/src/fix_langevin_drude.rst | 2 +- doc/src/fix_langevin_eff.rst | 2 +- doc/src/fix_langevin_spin.rst | 2 +- doc/src/fix_lb_fluid.rst | 2 +- doc/src/fix_lb_momentum.rst | 2 +- doc/src/fix_lb_viscous.rst | 2 +- doc/src/fix_lineforce.rst | 2 +- doc/src/fix_manifoldforce.rst | 2 +- doc/src/fix_mdi_qm.rst | 2 +- doc/src/fix_mdi_qmmm.rst | 2 +- doc/src/fix_meso_move.rst | 2 +- doc/src/fix_mol_swap.rst | 2 +- doc/src/fix_momentum.rst | 2 +- doc/src/fix_move.rst | 2 +- doc/src/fix_mscg.rst | 2 +- doc/src/fix_msst.rst | 2 +- doc/src/fix_mvv_dpd.rst | 2 +- doc/src/fix_neb.rst | 2 +- doc/src/fix_neb_spin.rst | 2 +- doc/src/fix_nh.rst | 2 +- doc/src/fix_nh_eff.rst | 2 +- doc/src/fix_nh_uef.rst | 2 +- doc/src/fix_nph_asphere.rst | 2 +- doc/src/fix_nph_body.rst | 2 +- doc/src/fix_nph_sphere.rst | 2 +- doc/src/fix_nphug.rst | 2 +- doc/src/fix_npt_asphere.rst | 2 +- doc/src/fix_npt_body.rst | 2 +- doc/src/fix_npt_cauchy.rst | 2 +- doc/src/fix_npt_sphere.rst | 2 +- doc/src/fix_numdiff.rst | 2 +- doc/src/fix_numdiff_virial.rst | 2 +- doc/src/fix_nve.rst | 2 +- doc/src/fix_nve_asphere.rst | 2 +- doc/src/fix_nve_asphere_noforce.rst | 2 +- doc/src/fix_nve_awpmd.rst | 2 +- doc/src/fix_nve_body.rst | 2 +- doc/src/fix_nve_bpm_sphere.rst | 2 +- doc/src/fix_nve_dot.rst | 2 +- doc/src/fix_nve_dotc_langevin.rst | 2 +- doc/src/fix_nve_eff.rst | 2 +- doc/src/fix_nve_limit.rst | 2 +- doc/src/fix_nve_line.rst | 2 +- doc/src/fix_nve_manifold_rattle.rst | 2 +- doc/src/fix_nve_noforce.rst | 2 +- doc/src/fix_nve_sphere.rst | 2 +- doc/src/fix_nve_spin.rst | 2 +- doc/src/fix_nve_tri.rst | 2 +- doc/src/fix_nvk.rst | 2 +- doc/src/fix_nvt_asphere.rst | 2 +- doc/src/fix_nvt_body.rst | 2 +- doc/src/fix_nvt_manifold_rattle.rst | 2 +- doc/src/fix_nvt_sllod.rst | 2 +- doc/src/fix_nvt_sllod_eff.rst | 2 +- doc/src/fix_nvt_sphere.rst | 2 +- doc/src/fix_oneway.rst | 2 +- doc/src/fix_orient.rst | 2 +- doc/src/fix_pafi.rst | 2 +- doc/src/fix_pair.rst | 2 +- doc/src/fix_phonon.rst | 2 +- doc/src/fix_pimd.rst | 2 +- doc/src/fix_planeforce.rst | 2 +- doc/src/fix_plumed.rst | 2 +- doc/src/fix_poems.rst | 2 +- doc/src/fix_polarize.rst | 2 +- doc/src/fix_pour.rst | 2 +- doc/src/fix_press_berendsen.rst | 2 +- doc/src/fix_print.rst | 2 +- doc/src/fix_propel_self.rst | 2 +- doc/src/fix_property_atom.rst | 2 +- doc/src/fix_python_invoke.rst | 2 +- doc/src/fix_python_move.rst | 2 +- doc/src/fix_qbmsst.rst | 2 +- doc/src/fix_qeq.rst | 2 +- doc/src/fix_qeq_comb.rst | 2 +- doc/src/fix_qeq_reaxff.rst | 2 +- doc/src/fix_qmmm.rst | 2 +- doc/src/fix_qtb.rst | 2 +- doc/src/fix_reaxff_bonds.rst | 2 +- doc/src/fix_reaxff_species.rst | 2 +- doc/src/fix_recenter.rst | 2 +- doc/src/fix_rhok.rst | 2 +- doc/src/fix_rigid.rst | 2 +- doc/src/fix_rigid_meso.rst | 2 +- doc/src/fix_rx.rst | 2 +- doc/src/fix_saed_vtk.rst | 2 +- doc/src/fix_setforce.rst | 2 +- doc/src/fix_sgcmc.rst | 2 +- doc/src/fix_shake.rst | 2 +- doc/src/fix_shardlow.rst | 2 +- doc/src/fix_smd.rst | 2 +- doc/src/fix_smd_setvel.rst | 2 +- doc/src/fix_sph.rst | 2 +- doc/src/fix_sph_stationary.rst | 2 +- doc/src/fix_spring.rst | 2 +- doc/src/fix_spring_chunk.rst | 2 +- doc/src/fix_spring_rg.rst | 2 +- doc/src/fix_spring_self.rst | 2 +- doc/src/fix_srd.rst | 2 +- doc/src/fix_store_force.rst | 2 +- doc/src/fix_store_state.rst | 2 +- doc/src/fix_temp_berendsen.rst | 2 +- doc/src/fix_temp_csvr.rst | 2 +- doc/src/fix_temp_rescale.rst | 2 +- doc/src/fix_temp_rescale_eff.rst | 2 +- doc/src/fix_tfmc.rst | 2 +- doc/src/fix_tgnh_drude.rst | 2 +- doc/src/fix_thermal_conductivity.rst | 2 +- doc/src/fix_ti_spring.rst | 2 +- doc/src/fix_tmd.rst | 2 +- doc/src/fix_ttm.rst | 2 +- doc/src/fix_tune_kspace.rst | 2 +- doc/src/fix_vector.rst | 2 +- doc/src/fix_viscosity.rst | 2 +- doc/src/fix_viscous.rst | 2 +- doc/src/fix_viscous_sphere.rst | 2 +- doc/src/fix_wall.rst | 2 +- doc/src/fix_wall_body_polygon.rst | 2 +- doc/src/fix_wall_body_polyhedron.rst | 2 +- doc/src/fix_wall_ees.rst | 2 +- doc/src/fix_wall_gran.rst | 2 +- doc/src/fix_wall_gran_region.rst | 2 +- doc/src/fix_wall_piston.rst | 2 +- doc/src/fix_wall_reflect.rst | 2 +- doc/src/fix_wall_reflect_stochastic.rst | 2 +- doc/src/fix_wall_region.rst | 2 +- doc/src/fix_wall_srd.rst | 2 +- doc/src/fix_widom.rst | 2 +- doc/src/group2ndx.rst | 2 +- doc/src/hyper.rst | 2 +- doc/src/include.rst | 2 +- doc/src/info.rst | 2 +- doc/src/jump.rst | 2 +- doc/src/label.rst | 2 +- doc/src/lattice.rst | 2 +- doc/src/log.rst | 2 +- doc/src/mass.rst | 2 +- doc/src/min_style.rst | 2 +- doc/src/minimize.rst | 2 +- doc/src/molecule.rst | 2 +- doc/src/neb.rst | 2 +- doc/src/neb_spin.rst | 2 +- doc/src/neighbor.rst | 2 +- doc/src/newton.rst | 2 +- doc/src/next.rst | 2 +- doc/src/package.rst | 2 +- doc/src/partition.rst | 2 +- doc/src/plugin.rst | 2 +- doc/src/prd.rst | 2 +- doc/src/print.rst | 2 +- doc/src/processors.rst | 2 +- doc/src/python.rst | 2 +- doc/src/quit.rst | 2 +- doc/src/region.rst | 2 +- doc/src/replicate.rst | 2 +- doc/src/rerun.rst | 2 +- doc/src/restart.rst | 2 +- doc/src/run.rst | 2 +- doc/src/set.rst | 2 +- doc/src/shell.rst | 2 +- doc/src/suffix.rst | 2 +- doc/src/tad.rst | 2 +- doc/src/temper.rst | 2 +- doc/src/temper_grem.rst | 2 +- doc/src/temper_npt.rst | 2 +- doc/src/thermo.rst | 2 +- doc/src/timer.rst | 2 +- doc/src/timestep.rst | 2 +- doc/src/uncompute.rst | 2 +- doc/src/undump.rst | 2 +- doc/src/unfix.rst | 2 +- doc/src/units.rst | 2 +- doc/src/variable.rst | 2 +- doc/src/velocity.rst | 2 +- 318 files changed, 319 insertions(+), 319 deletions(-) diff --git a/doc/src/atc_add_molecule.rst b/doc/src/atc_add_molecule.rst index dc0f0318ac..68330da256 100644 --- a/doc/src/atc_add_molecule.rst +++ b/doc/src/atc_add_molecule.rst @@ -6,7 +6,7 @@ fix_modify AtC add_molecule command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify add_molecule diff --git a/doc/src/atc_add_species.rst b/doc/src/atc_add_species.rst index 0b39379e62..3fc2bcb2d3 100644 --- a/doc/src/atc_add_species.rst +++ b/doc/src/atc_add_species.rst @@ -6,7 +6,7 @@ fix_modify AtC add_species command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify add_species diff --git a/doc/src/atc_atom_element_map.rst b/doc/src/atc_atom_element_map.rst index 96895acc8e..f614e8f350 100644 --- a/doc/src/atc_atom_element_map.rst +++ b/doc/src/atc_atom_element_map.rst @@ -6,7 +6,7 @@ fix_modify AtC atom_element_map command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify atom_element_map [] diff --git a/doc/src/atc_atom_weight.rst b/doc/src/atc_atom_weight.rst index 50e7ea146d..1e1d771ef1 100644 --- a/doc/src/atc_atom_weight.rst +++ b/doc/src/atc_atom_weight.rst @@ -6,7 +6,7 @@ fix_modify AtC atom_weight command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify atom_weight diff --git a/doc/src/atc_atomic_charge.rst b/doc/src/atc_atomic_charge.rst index 4b3d34b815..1207043324 100644 --- a/doc/src/atc_atomic_charge.rst +++ b/doc/src/atc_atomic_charge.rst @@ -6,7 +6,7 @@ fix_modify AtC atomic_charge command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify atomic_charge diff --git a/doc/src/atc_boundary_dynamics.rst b/doc/src/atc_boundary_dynamics.rst index 696d091094..6b571f53d0 100644 --- a/doc/src/atc_boundary_dynamics.rst +++ b/doc/src/atc_boundary_dynamics.rst @@ -6,7 +6,7 @@ fix_modify AtC boundary_dynamics command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify boundary_dynamics diff --git a/doc/src/atc_boundary_faceset.rst b/doc/src/atc_boundary_faceset.rst index c33239b833..7c0654cc00 100644 --- a/doc/src/atc_boundary_faceset.rst +++ b/doc/src/atc_boundary_faceset.rst @@ -6,7 +6,7 @@ fix_modify AtC boundary_faceset command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify boundary_faceset diff --git a/doc/src/atc_boundary_type.rst b/doc/src/atc_boundary_type.rst index 26b40e5a12..a43c17a658 100644 --- a/doc/src/atc_boundary_type.rst +++ b/doc/src/atc_boundary_type.rst @@ -6,7 +6,7 @@ fix_modify AtC boundary type command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify boundary type diff --git a/doc/src/atc_consistent_fe_initialization.rst b/doc/src/atc_consistent_fe_initialization.rst index 3241752262..78f7699906 100644 --- a/doc/src/atc_consistent_fe_initialization.rst +++ b/doc/src/atc_consistent_fe_initialization.rst @@ -6,7 +6,7 @@ fix_modify AtC consistent_fe_initialization command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify consistent_fe_initialization diff --git a/doc/src/atc_control_localized_lambda.rst b/doc/src/atc_control_localized_lambda.rst index eb286756b7..ca0bba30d5 100644 --- a/doc/src/atc_control_localized_lambda.rst +++ b/doc/src/atc_control_localized_lambda.rst @@ -6,7 +6,7 @@ fix_modify AtC control localized_lambda command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify control localized_lambda diff --git a/doc/src/atc_control_momentum.rst b/doc/src/atc_control_momentum.rst index e87bd789b9..fcc3570e06 100644 --- a/doc/src/atc_control_momentum.rst +++ b/doc/src/atc_control_momentum.rst @@ -6,7 +6,7 @@ fix_modify AtC control momentum command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify control fix_modify AtC control momentum none diff --git a/doc/src/atc_control_thermal.rst b/doc/src/atc_control_thermal.rst index 7a17701c5c..c14e52ac8f 100644 --- a/doc/src/atc_control_thermal.rst +++ b/doc/src/atc_control_thermal.rst @@ -6,7 +6,7 @@ fix_modify AtC control thermal command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify control fix_modify control thermal diff --git a/doc/src/atc_decomposition.rst b/doc/src/atc_decomposition.rst index 50d11bf52f..182a27d915 100644 --- a/doc/src/atc_decomposition.rst +++ b/doc/src/atc_decomposition.rst @@ -6,7 +6,7 @@ fix_modify AtC decomposition command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify decomposition diff --git a/doc/src/atc_electron_integration.rst b/doc/src/atc_electron_integration.rst index 2f3fd9eee2..b3cd858e3d 100644 --- a/doc/src/atc_electron_integration.rst +++ b/doc/src/atc_electron_integration.rst @@ -6,7 +6,7 @@ fix_modify AtC extrinsic electron_integration command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify extrinsic electron_integration [] diff --git a/doc/src/atc_equilibrium_start.rst b/doc/src/atc_equilibrium_start.rst index 0068dc02c3..b1ef99dc11 100644 --- a/doc/src/atc_equilibrium_start.rst +++ b/doc/src/atc_equilibrium_start.rst @@ -6,7 +6,7 @@ fix_modify AtC equilibrium_start command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify equilibrium_start diff --git a/doc/src/atc_extrinsic_exchange.rst b/doc/src/atc_extrinsic_exchange.rst index 03d794115b..55aa4115b5 100644 --- a/doc/src/atc_extrinsic_exchange.rst +++ b/doc/src/atc_extrinsic_exchange.rst @@ -6,7 +6,7 @@ fix_modify AtC extrinsic exchange command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify extrinsic exchange diff --git a/doc/src/atc_fe_md_boundary.rst b/doc/src/atc_fe_md_boundary.rst index ad66bf6d49..ebc783c333 100644 --- a/doc/src/atc_fe_md_boundary.rst +++ b/doc/src/atc_fe_md_boundary.rst @@ -6,7 +6,7 @@ fix_modify AtC fe_md_boundary command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify fe_md_boundary diff --git a/doc/src/atc_filter_scale.rst b/doc/src/atc_filter_scale.rst index ce62a589eb..100906d9f7 100644 --- a/doc/src/atc_filter_scale.rst +++ b/doc/src/atc_filter_scale.rst @@ -6,7 +6,7 @@ fix_modify AtC filter scale command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify filter scale diff --git a/doc/src/atc_filter_type.rst b/doc/src/atc_filter_type.rst index 5e2da80755..605c84c192 100644 --- a/doc/src/atc_filter_type.rst +++ b/doc/src/atc_filter_type.rst @@ -6,7 +6,7 @@ fix_modify AtC filter type command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify filter type diff --git a/doc/src/atc_fix.rst b/doc/src/atc_fix.rst index d3ba972508..77bc37ccef 100644 --- a/doc/src/atc_fix.rst +++ b/doc/src/atc_fix.rst @@ -6,7 +6,7 @@ fix_modify AtC fix command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify fix diff --git a/doc/src/atc_fix_flux.rst b/doc/src/atc_fix_flux.rst index 12699e9163..71513eb1f9 100644 --- a/doc/src/atc_fix_flux.rst +++ b/doc/src/atc_fix_flux.rst @@ -6,7 +6,7 @@ fix_modify AtC fix_flux command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify fix_flux diff --git a/doc/src/atc_hardy_computes.rst b/doc/src/atc_hardy_computes.rst index 609740fe99..fe42a6265f 100644 --- a/doc/src/atc_hardy_computes.rst +++ b/doc/src/atc_hardy_computes.rst @@ -6,7 +6,7 @@ fix_modify AtC computes command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify computes diff --git a/doc/src/atc_hardy_fields.rst b/doc/src/atc_hardy_fields.rst index bef051bbe8..0159bb55ab 100644 --- a/doc/src/atc_hardy_fields.rst +++ b/doc/src/atc_hardy_fields.rst @@ -6,7 +6,7 @@ fix_modify AtC fields command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify fields fix_modify fields diff --git a/doc/src/atc_hardy_gradients.rst b/doc/src/atc_hardy_gradients.rst index 2e7649d73c..52d05eac7c 100644 --- a/doc/src/atc_hardy_gradients.rst +++ b/doc/src/atc_hardy_gradients.rst @@ -6,7 +6,7 @@ fix_modify AtC gradients command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify gradients diff --git a/doc/src/atc_hardy_kernel.rst b/doc/src/atc_hardy_kernel.rst index 74316ec8b2..b3a10e8e99 100644 --- a/doc/src/atc_hardy_kernel.rst +++ b/doc/src/atc_hardy_kernel.rst @@ -6,7 +6,7 @@ fix_modify AtC kernel command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify kernel diff --git a/doc/src/atc_hardy_on_the_fly.rst b/doc/src/atc_hardy_on_the_fly.rst index fe7c688387..4635d72d13 100644 --- a/doc/src/atc_hardy_on_the_fly.rst +++ b/doc/src/atc_hardy_on_the_fly.rst @@ -6,7 +6,7 @@ fix_modify AtC on_the_fly command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify on_the_fly diff --git a/doc/src/atc_hardy_rates.rst b/doc/src/atc_hardy_rates.rst index 56166087d7..0c23e211ba 100644 --- a/doc/src/atc_hardy_rates.rst +++ b/doc/src/atc_hardy_rates.rst @@ -6,7 +6,7 @@ fix_modify AtC rates command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify rates diff --git a/doc/src/atc_initial.rst b/doc/src/atc_initial.rst index 7d62251c6c..721f0f3538 100644 --- a/doc/src/atc_initial.rst +++ b/doc/src/atc_initial.rst @@ -6,7 +6,7 @@ fix_modify AtC initial command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify initial diff --git a/doc/src/atc_internal_element_set.rst b/doc/src/atc_internal_element_set.rst index 4a376f55a3..e50463feed 100644 --- a/doc/src/atc_internal_element_set.rst +++ b/doc/src/atc_internal_element_set.rst @@ -6,7 +6,7 @@ fix_modify AtC internal_element_set command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify internal_element_set diff --git a/doc/src/atc_internal_quadrature.rst b/doc/src/atc_internal_quadrature.rst index b171914021..d8e241572c 100644 --- a/doc/src/atc_internal_quadrature.rst +++ b/doc/src/atc_internal_quadrature.rst @@ -6,7 +6,7 @@ fix_modify AtC internal_quadrature command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify internal_quadrature [region] diff --git a/doc/src/atc_kernel_bandwidth.rst b/doc/src/atc_kernel_bandwidth.rst index 02707cfd30..f166a063e3 100644 --- a/doc/src/atc_kernel_bandwidth.rst +++ b/doc/src/atc_kernel_bandwidth.rst @@ -6,7 +6,7 @@ fix_modify AtC kernel_bandwidth command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify kernel_bandwidth diff --git a/doc/src/atc_lumped_lambda_solve.rst b/doc/src/atc_lumped_lambda_solve.rst index e777116da5..b64ffb2d01 100644 --- a/doc/src/atc_lumped_lambda_solve.rst +++ b/doc/src/atc_lumped_lambda_solve.rst @@ -6,7 +6,7 @@ fix_modify AtC control lumped_lambda_solve command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify control lumped_lambda_solve diff --git a/doc/src/atc_mask_direction.rst b/doc/src/atc_mask_direction.rst index ed5c605834..0e55cc7190 100644 --- a/doc/src/atc_mask_direction.rst +++ b/doc/src/atc_mask_direction.rst @@ -6,7 +6,7 @@ fix_modify AtC control mask_direction command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify control mask_direction diff --git a/doc/src/atc_mass_matrix.rst b/doc/src/atc_mass_matrix.rst index eb586b933b..7763044ec8 100644 --- a/doc/src/atc_mass_matrix.rst +++ b/doc/src/atc_mass_matrix.rst @@ -6,7 +6,7 @@ fix_modify AtC mass_matrix command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mass_matrix diff --git a/doc/src/atc_material.rst b/doc/src/atc_material.rst index 471bffffb2..eef5dbdd0e 100644 --- a/doc/src/atc_material.rst +++ b/doc/src/atc_material.rst @@ -6,7 +6,7 @@ fix_modify AtC material command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify material diff --git a/doc/src/atc_mesh_add_to_nodeset.rst b/doc/src/atc_mesh_add_to_nodeset.rst index f9f6f575fe..0944a51099 100644 --- a/doc/src/atc_mesh_add_to_nodeset.rst +++ b/doc/src/atc_mesh_add_to_nodeset.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh add_to_nodeset command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh add_to_nodeset diff --git a/doc/src/atc_mesh_create.rst b/doc/src/atc_mesh_create.rst index b17bb8ac0d..289c0e5c56 100644 --- a/doc/src/atc_mesh_create.rst +++ b/doc/src/atc_mesh_create.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh create command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh create diff --git a/doc/src/atc_mesh_create_elementset.rst b/doc/src/atc_mesh_create_elementset.rst index 3cb406e7bc..35086b0fc9 100644 --- a/doc/src/atc_mesh_create_elementset.rst +++ b/doc/src/atc_mesh_create_elementset.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh create_elementset command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh create_elementset diff --git a/doc/src/atc_mesh_create_faceset_box.rst b/doc/src/atc_mesh_create_faceset_box.rst index 09b099d179..29dcfa69ad 100644 --- a/doc/src/atc_mesh_create_faceset_box.rst +++ b/doc/src/atc_mesh_create_faceset_box.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh create_faceset box command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh create_faceset box [units] diff --git a/doc/src/atc_mesh_create_faceset_plane.rst b/doc/src/atc_mesh_create_faceset_plane.rst index 035e584044..e36990de40 100644 --- a/doc/src/atc_mesh_create_faceset_plane.rst +++ b/doc/src/atc_mesh_create_faceset_plane.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh create_faceset plane command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh create_faceset plane [units] diff --git a/doc/src/atc_mesh_create_nodeset.rst b/doc/src/atc_mesh_create_nodeset.rst index a2f9d74d07..943d1c7d19 100644 --- a/doc/src/atc_mesh_create_nodeset.rst +++ b/doc/src/atc_mesh_create_nodeset.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh create_nodeset command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh create_nodeset diff --git a/doc/src/atc_mesh_delete_elements.rst b/doc/src/atc_mesh_delete_elements.rst index 9785f0adf6..2c9d83d506 100644 --- a/doc/src/atc_mesh_delete_elements.rst +++ b/doc/src/atc_mesh_delete_elements.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh delete_elements command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh delete_elements diff --git a/doc/src/atc_mesh_nodeset_to_elementset.rst b/doc/src/atc_mesh_nodeset_to_elementset.rst index d8721cc295..1838aa120f 100644 --- a/doc/src/atc_mesh_nodeset_to_elementset.rst +++ b/doc/src/atc_mesh_nodeset_to_elementset.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh nodeset_to_elementset command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh nodeset_to_elementset diff --git a/doc/src/atc_mesh_output.rst b/doc/src/atc_mesh_output.rst index 63756df98e..237b88eff6 100644 --- a/doc/src/atc_mesh_output.rst +++ b/doc/src/atc_mesh_output.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh output command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh output diff --git a/doc/src/atc_mesh_quadrature.rst b/doc/src/atc_mesh_quadrature.rst index 0c9bd4b30f..4cc94d77e2 100644 --- a/doc/src/atc_mesh_quadrature.rst +++ b/doc/src/atc_mesh_quadrature.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh quadrature command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh quatrature diff --git a/doc/src/atc_mesh_read.rst b/doc/src/atc_mesh_read.rst index 9848e12b07..dcc999166f 100644 --- a/doc/src/atc_mesh_read.rst +++ b/doc/src/atc_mesh_read.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh read command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh read diff --git a/doc/src/atc_mesh_write.rst b/doc/src/atc_mesh_write.rst index dbb8f9c219..2636f51fc5 100644 --- a/doc/src/atc_mesh_write.rst +++ b/doc/src/atc_mesh_write.rst @@ -6,7 +6,7 @@ fix_modify AtC mesh write command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify mesh write diff --git a/doc/src/atc_output.rst b/doc/src/atc_output.rst index 5003817daa..13df4c7d58 100644 --- a/doc/src/atc_output.rst +++ b/doc/src/atc_output.rst @@ -6,7 +6,7 @@ fix_modify AtC output command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify output [text|full_text|binary|vector_components|tensor_components] fix_modify output index [step|time] diff --git a/doc/src/atc_output_boundary_integral.rst b/doc/src/atc_output_boundary_integral.rst index 71a3e03ac2..65ad6e835e 100644 --- a/doc/src/atc_output_boundary_integral.rst +++ b/doc/src/atc_output_boundary_integral.rst @@ -6,7 +6,7 @@ fix_modify AtC output boundary_integral command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify output boundary_integral faceset [name] diff --git a/doc/src/atc_output_contour_integral.rst b/doc/src/atc_output_contour_integral.rst index 24678ef6cc..fa6ab8c9d1 100644 --- a/doc/src/atc_output_contour_integral.rst +++ b/doc/src/atc_output_contour_integral.rst @@ -6,7 +6,7 @@ fix_modify AtC output contour_integral command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify output contour_integral faceset [axis [x|y|z]] diff --git a/doc/src/atc_output_nodeset.rst b/doc/src/atc_output_nodeset.rst index eb12a2344e..e5d1580274 100644 --- a/doc/src/atc_output_nodeset.rst +++ b/doc/src/atc_output_nodeset.rst @@ -6,7 +6,7 @@ fix_modify AtC output nodeset command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify output nodeset diff --git a/doc/src/atc_output_volume_integral.rst b/doc/src/atc_output_volume_integral.rst index 464d43cbce..a740c56e8b 100644 --- a/doc/src/atc_output_volume_integral.rst +++ b/doc/src/atc_output_volume_integral.rst @@ -6,7 +6,7 @@ fix_modify AtC output volume_integral command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify output volume_integral diff --git a/doc/src/atc_pair_interactions.rst b/doc/src/atc_pair_interactions.rst index 73ada09001..d8de219d89 100644 --- a/doc/src/atc_pair_interactions.rst +++ b/doc/src/atc_pair_interactions.rst @@ -9,7 +9,7 @@ fix_modify AtC bond_interactions command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify pair_interactions fix_modify bond_interactions diff --git a/doc/src/atc_poisson_solver.rst b/doc/src/atc_poisson_solver.rst index d37f214b97..e203c3dc51 100644 --- a/doc/src/atc_poisson_solver.rst +++ b/doc/src/atc_poisson_solver.rst @@ -6,7 +6,7 @@ fix_modify AtC poisson_solver command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify poisson_solver mesh create diff --git a/doc/src/atc_read_restart.rst b/doc/src/atc_read_restart.rst index 11ba4519a4..32badbd3a8 100644 --- a/doc/src/atc_read_restart.rst +++ b/doc/src/atc_read_restart.rst @@ -6,7 +6,7 @@ fix_modify AtC read_restart command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify read_restart diff --git a/doc/src/atc_remove_molecule.rst b/doc/src/atc_remove_molecule.rst index a654cd5c1d..13c0856307 100644 --- a/doc/src/atc_remove_molecule.rst +++ b/doc/src/atc_remove_molecule.rst @@ -6,7 +6,7 @@ fix_modify AtC remove_molecule command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify remove_molecule diff --git a/doc/src/atc_remove_source.rst b/doc/src/atc_remove_source.rst index d98b7933da..253166cd3c 100644 --- a/doc/src/atc_remove_source.rst +++ b/doc/src/atc_remove_source.rst @@ -6,7 +6,7 @@ fix_modify AtC remove_source command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify remove_source diff --git a/doc/src/atc_remove_species.rst b/doc/src/atc_remove_species.rst index 5c4fd771ba..b7718a6874 100644 --- a/doc/src/atc_remove_species.rst +++ b/doc/src/atc_remove_species.rst @@ -6,7 +6,7 @@ fix_modify AtC remove_species command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify remove_species diff --git a/doc/src/atc_reset_atomic_reference.rst b/doc/src/atc_reset_atomic_reference.rst index 8f53cbfbe9..43acc9b4b2 100644 --- a/doc/src/atc_reset_atomic_reference.rst +++ b/doc/src/atc_reset_atomic_reference.rst @@ -6,7 +6,7 @@ fix_modify AtC reset_atomic_reference_positions command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify reset_atomic_reference_positions diff --git a/doc/src/atc_reset_time.rst b/doc/src/atc_reset_time.rst index 147a6ab910..f02c723011 100644 --- a/doc/src/atc_reset_time.rst +++ b/doc/src/atc_reset_time.rst @@ -6,7 +6,7 @@ fix_modify AtC reset_time command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify reset_time diff --git a/doc/src/atc_sample_frequency.rst b/doc/src/atc_sample_frequency.rst index 5b0da6d9dd..e61e9fd6ed 100644 --- a/doc/src/atc_sample_frequency.rst +++ b/doc/src/atc_sample_frequency.rst @@ -6,7 +6,7 @@ fix_modify AtC sample_frequency command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify sample_frequency diff --git a/doc/src/atc_set_reference_pe.rst b/doc/src/atc_set_reference_pe.rst index 8053a1df98..f85e3f7ebc 100644 --- a/doc/src/atc_set_reference_pe.rst +++ b/doc/src/atc_set_reference_pe.rst @@ -6,7 +6,7 @@ fix_modify AtC set reference_potential_energy command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify set reference_potential_energy [] diff --git a/doc/src/atc_source.rst b/doc/src/atc_source.rst index 6df4b67d1c..ce712c8186 100644 --- a/doc/src/atc_source.rst +++ b/doc/src/atc_source.rst @@ -6,7 +6,7 @@ fix_modify AtC source command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify source diff --git a/doc/src/atc_source_integration.rst b/doc/src/atc_source_integration.rst index b10e6c7e2a..a145a7c9f1 100644 --- a/doc/src/atc_source_integration.rst +++ b/doc/src/atc_source_integration.rst @@ -6,7 +6,7 @@ fix_modify AtC source_integration command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify source_integration diff --git a/doc/src/atc_temperature_definition.rst b/doc/src/atc_temperature_definition.rst index b5a27467ca..0194e38314 100644 --- a/doc/src/atc_temperature_definition.rst +++ b/doc/src/atc_temperature_definition.rst @@ -6,7 +6,7 @@ fix_modify AtC temperature_definition command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify temperature_definition diff --git a/doc/src/atc_time_filter.rst b/doc/src/atc_time_filter.rst index 0a97c83259..76163a77b5 100644 --- a/doc/src/atc_time_filter.rst +++ b/doc/src/atc_time_filter.rst @@ -6,7 +6,7 @@ fix_modify AtC filter command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify filter diff --git a/doc/src/atc_time_integration.rst b/doc/src/atc_time_integration.rst index cf746dde0d..3eae147a6e 100644 --- a/doc/src/atc_time_integration.rst +++ b/doc/src/atc_time_integration.rst @@ -6,7 +6,7 @@ fix_modify AtC time_integration command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify time_integration diff --git a/doc/src/atc_track_displacement.rst b/doc/src/atc_track_displacement.rst index 043f42ea9c..f5a2d1742c 100644 --- a/doc/src/atc_track_displacement.rst +++ b/doc/src/atc_track_displacement.rst @@ -6,7 +6,7 @@ fix_modify AtC track_displacement command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify track_displacement diff --git a/doc/src/atc_unfix.rst b/doc/src/atc_unfix.rst index 12ee37bbde..c6ada6dcca 100644 --- a/doc/src/atc_unfix.rst +++ b/doc/src/atc_unfix.rst @@ -6,7 +6,7 @@ fix_modify AtC unfix command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify unfix diff --git a/doc/src/atc_unfix_flux.rst b/doc/src/atc_unfix_flux.rst index da9d1b4aba..73ef5b17af 100644 --- a/doc/src/atc_unfix_flux.rst +++ b/doc/src/atc_unfix_flux.rst @@ -6,7 +6,7 @@ fix_modify AtC unfix_flux command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify unfix_flux diff --git a/doc/src/atc_write_atom_weights.rst b/doc/src/atc_write_atom_weights.rst index ecb69b5deb..40af619356 100644 --- a/doc/src/atc_write_atom_weights.rst +++ b/doc/src/atc_write_atom_weights.rst @@ -6,7 +6,7 @@ fix_modify AtC write_atom_weights command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify write_atom_weights diff --git a/doc/src/atc_write_restart.rst b/doc/src/atc_write_restart.rst index e4f19dea10..75945e1715 100644 --- a/doc/src/atc_write_restart.rst +++ b/doc/src/atc_write_restart.rst @@ -6,7 +6,7 @@ fix_modify AtC write_restart command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix_modify write_restart diff --git a/doc/src/compute_property_grid.rst b/doc/src/compute_property_grid.rst index e65e822516..44389320d6 100644 --- a/doc/src/compute_property_grid.rst +++ b/doc/src/compute_property_grid.rst @@ -6,7 +6,7 @@ compute property/grid command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID property/grid Nx Ny Nz input1 input2 ... diff --git a/doc/src/compute_reduce_chunk.rst b/doc/src/compute_reduce_chunk.rst index 43fee39cf2..8ec19ade66 100644 --- a/doc/src/compute_reduce_chunk.rst +++ b/doc/src/compute_reduce_chunk.rst @@ -6,7 +6,7 @@ compute reduce/chunk command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID reduce/chunk chunkID mode input1 input2 ... diff --git a/doc/src/compute_saed.rst b/doc/src/compute_saed.rst index deb6a61f7c..9ec455d03b 100644 --- a/doc/src/compute_saed.rst +++ b/doc/src/compute_saed.rst @@ -6,7 +6,7 @@ compute saed command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID saed lambda type1 type2 ... typeN keyword value ... diff --git a/doc/src/compute_slice.rst b/doc/src/compute_slice.rst index 9b4e7df626..0da7c99573 100644 --- a/doc/src/compute_slice.rst +++ b/doc/src/compute_slice.rst @@ -6,7 +6,7 @@ compute slice command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID slice Nstart Nstop Nskip input1 input2 ... diff --git a/doc/src/compute_smd_contact_radius.rst b/doc/src/compute_smd_contact_radius.rst index 4911ac4e27..2ac039a3b5 100644 --- a/doc/src/compute_smd_contact_radius.rst +++ b/doc/src/compute_smd_contact_radius.rst @@ -6,7 +6,7 @@ compute smd/contact/radius command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/contact/radius diff --git a/doc/src/compute_smd_damage.rst b/doc/src/compute_smd_damage.rst index fe5d94fa83..72307bc184 100644 --- a/doc/src/compute_smd_damage.rst +++ b/doc/src/compute_smd_damage.rst @@ -6,7 +6,7 @@ compute smd/damage command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/damage diff --git a/doc/src/compute_smd_hourglass_error.rst b/doc/src/compute_smd_hourglass_error.rst index 7e0aadd6d2..533c0f03c0 100644 --- a/doc/src/compute_smd_hourglass_error.rst +++ b/doc/src/compute_smd_hourglass_error.rst @@ -6,7 +6,7 @@ compute smd/hourglass/error command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/hourglass/error diff --git a/doc/src/compute_smd_internal_energy.rst b/doc/src/compute_smd_internal_energy.rst index 36bd816e8f..91c671c6a1 100644 --- a/doc/src/compute_smd_internal_energy.rst +++ b/doc/src/compute_smd_internal_energy.rst @@ -6,7 +6,7 @@ compute smd/internal/energy command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/internal/energy diff --git a/doc/src/compute_smd_plastic_strain.rst b/doc/src/compute_smd_plastic_strain.rst index 00c6cb9a4a..b1e5719249 100644 --- a/doc/src/compute_smd_plastic_strain.rst +++ b/doc/src/compute_smd_plastic_strain.rst @@ -6,7 +6,7 @@ compute smd/plastic/strain command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/plastic/strain diff --git a/doc/src/compute_smd_plastic_strain_rate.rst b/doc/src/compute_smd_plastic_strain_rate.rst index 681573be9b..bf9b3b23f4 100644 --- a/doc/src/compute_smd_plastic_strain_rate.rst +++ b/doc/src/compute_smd_plastic_strain_rate.rst @@ -6,7 +6,7 @@ compute smd/plastic/strain/rate command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/plastic/strain/rate diff --git a/doc/src/compute_smd_rho.rst b/doc/src/compute_smd_rho.rst index 605dd5b79c..8ecb09f318 100644 --- a/doc/src/compute_smd_rho.rst +++ b/doc/src/compute_smd_rho.rst @@ -6,7 +6,7 @@ compute smd/rho command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/rho diff --git a/doc/src/compute_smd_tlsph_defgrad.rst b/doc/src/compute_smd_tlsph_defgrad.rst index 399e54d055..aceecc1722 100644 --- a/doc/src/compute_smd_tlsph_defgrad.rst +++ b/doc/src/compute_smd_tlsph_defgrad.rst @@ -6,7 +6,7 @@ compute smd/tlsph/defgrad command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/tlsph/defgrad diff --git a/doc/src/compute_smd_tlsph_dt.rst b/doc/src/compute_smd_tlsph_dt.rst index 9490f7da14..1cafecdb7c 100644 --- a/doc/src/compute_smd_tlsph_dt.rst +++ b/doc/src/compute_smd_tlsph_dt.rst @@ -6,7 +6,7 @@ compute smd/tlsph/dt command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/tlsph/dt diff --git a/doc/src/compute_smd_tlsph_num_neighs.rst b/doc/src/compute_smd_tlsph_num_neighs.rst index ef8c19d49c..8bf244a8db 100644 --- a/doc/src/compute_smd_tlsph_num_neighs.rst +++ b/doc/src/compute_smd_tlsph_num_neighs.rst @@ -6,7 +6,7 @@ compute smd/tlsph/num/neighs command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/tlsph/num/neighs diff --git a/doc/src/compute_smd_tlsph_shape.rst b/doc/src/compute_smd_tlsph_shape.rst index 4a5abd868b..b682e72fdd 100644 --- a/doc/src/compute_smd_tlsph_shape.rst +++ b/doc/src/compute_smd_tlsph_shape.rst @@ -6,7 +6,7 @@ compute smd/tlsph/shape command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/tlsph/shape diff --git a/doc/src/compute_smd_tlsph_strain.rst b/doc/src/compute_smd_tlsph_strain.rst index 053488886b..89b9bee132 100644 --- a/doc/src/compute_smd_tlsph_strain.rst +++ b/doc/src/compute_smd_tlsph_strain.rst @@ -6,7 +6,7 @@ compute smd/tlsph/strain command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/tlsph/strain diff --git a/doc/src/compute_smd_tlsph_strain_rate.rst b/doc/src/compute_smd_tlsph_strain_rate.rst index 2f3d561cee..83797edd49 100644 --- a/doc/src/compute_smd_tlsph_strain_rate.rst +++ b/doc/src/compute_smd_tlsph_strain_rate.rst @@ -6,7 +6,7 @@ compute smd/tlsph/strain/rate command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/tlsph/strain/rate diff --git a/doc/src/compute_smd_tlsph_stress.rst b/doc/src/compute_smd_tlsph_stress.rst index 4f0473f30a..12539ffda7 100644 --- a/doc/src/compute_smd_tlsph_stress.rst +++ b/doc/src/compute_smd_tlsph_stress.rst @@ -6,7 +6,7 @@ compute smd/tlsph/stress command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/tlsph/stress diff --git a/doc/src/compute_smd_triangle_vertices.rst b/doc/src/compute_smd_triangle_vertices.rst index 309c4260e9..2e7dd0cfd0 100644 --- a/doc/src/compute_smd_triangle_vertices.rst +++ b/doc/src/compute_smd_triangle_vertices.rst @@ -6,7 +6,7 @@ compute smd/triangle/vertices command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/triangle/vertices diff --git a/doc/src/compute_smd_vol.rst b/doc/src/compute_smd_vol.rst index d31eb53785..94372c23ce 100644 --- a/doc/src/compute_smd_vol.rst +++ b/doc/src/compute_smd_vol.rst @@ -6,7 +6,7 @@ compute smd/vol command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID smd/vol diff --git a/doc/src/compute_sna_atom.rst b/doc/src/compute_sna_atom.rst index d604ca9d29..8d06868f3d 100644 --- a/doc/src/compute_sna_atom.rst +++ b/doc/src/compute_sna_atom.rst @@ -26,7 +26,7 @@ compute sna/grid/local command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID sna/atom rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ... compute ID group-ID snad/atom rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ... diff --git a/doc/src/compute_sph_e_atom.rst b/doc/src/compute_sph_e_atom.rst index 5e6706fa27..d557eb7920 100644 --- a/doc/src/compute_sph_e_atom.rst +++ b/doc/src/compute_sph_e_atom.rst @@ -6,7 +6,7 @@ compute sph/e/atom command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID sph/e/atom diff --git a/doc/src/compute_sph_rho_atom.rst b/doc/src/compute_sph_rho_atom.rst index 7fcec0c9da..6e8579476a 100644 --- a/doc/src/compute_sph_rho_atom.rst +++ b/doc/src/compute_sph_rho_atom.rst @@ -6,7 +6,7 @@ compute sph/rho/atom command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID sph/rho/atom diff --git a/doc/src/compute_sph_t_atom.rst b/doc/src/compute_sph_t_atom.rst index 702d81027d..3383c26145 100644 --- a/doc/src/compute_sph_t_atom.rst +++ b/doc/src/compute_sph_t_atom.rst @@ -6,7 +6,7 @@ compute sph/t/atom command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS compute ID group-ID sph/t/atom diff --git a/doc/src/dump_image.rst b/doc/src/dump_image.rst index dd3354faaa..25d1efff7d 100644 --- a/doc/src/dump_image.rst +++ b/doc/src/dump_image.rst @@ -98,7 +98,7 @@ dump_modify options for dump image/movie Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS dump_modify dump-ID keyword values ... diff --git a/doc/src/dump_molfile.rst b/doc/src/dump_molfile.rst index ffc0b443e0..2878bc7b73 100644 --- a/doc/src/dump_molfile.rst +++ b/doc/src/dump_molfile.rst @@ -6,7 +6,7 @@ dump molfile command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS dump ID group-ID molfile N file format path diff --git a/doc/src/dump_netcdf.rst b/doc/src/dump_netcdf.rst index 296b725e20..f7495e29a8 100644 --- a/doc/src/dump_netcdf.rst +++ b/doc/src/dump_netcdf.rst @@ -10,7 +10,7 @@ dump netcdf/mpiio command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS dump ID group-ID netcdf N file args dump ID group-ID netcdf/mpiio N file args diff --git a/doc/src/fitpod_command.rst b/doc/src/fitpod_command.rst index fc21caec70..28afb990ff 100644 --- a/doc/src/fitpod_command.rst +++ b/doc/src/fitpod_command.rst @@ -6,7 +6,7 @@ fitpod command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fitpod Ta_param.pod Ta_data.pod diff --git a/doc/src/fix_alchemy.rst b/doc/src/fix_alchemy.rst index 4f0ad06fd4..14273d65c4 100644 --- a/doc/src/fix_alchemy.rst +++ b/doc/src/fix_alchemy.rst @@ -6,7 +6,7 @@ fix alchemy command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID alchemy v_name diff --git a/doc/src/fix_ave_grid.rst b/doc/src/fix_ave_grid.rst index da0d1f957b..a79a6cf486 100644 --- a/doc/src/fix_ave_grid.rst +++ b/doc/src/fix_ave_grid.rst @@ -6,7 +6,7 @@ fix ave/grid command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID ave/grid Nevery Nrepeat Nfreq Nx Ny Nz value1 value2 ... keyword args ... diff --git a/doc/src/fix_bond_swap.rst b/doc/src/fix_bond_swap.rst index c7535c21b1..6448dd6e1c 100644 --- a/doc/src/fix_bond_swap.rst +++ b/doc/src/fix_bond_swap.rst @@ -6,7 +6,7 @@ fix bond/swap command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID bond/swap Nevery fraction cutoff seed diff --git a/doc/src/fix_box_relax.rst b/doc/src/fix_box_relax.rst index 5efbfcab1b..9f1dade765 100644 --- a/doc/src/fix_box_relax.rst +++ b/doc/src/fix_box_relax.rst @@ -6,7 +6,7 @@ fix box/relax command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID box/relax keyword value ... diff --git a/doc/src/fix_charge_regulation.rst b/doc/src/fix_charge_regulation.rst index 203d40951d..bc2651a55b 100644 --- a/doc/src/fix_charge_regulation.rst +++ b/doc/src/fix_charge_regulation.rst @@ -7,7 +7,7 @@ fix charge/regulation command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID charge/regulation cation_type anion_type keyword value(s) @@ -45,10 +45,10 @@ Syntax Examples """""""" + .. code-block:: LAMMPS fix chareg all charge/regulation 1 2 acid_type 3 base_type 4 pKa 5.0 pKb 6.0 pH 7.0 pIp 3.0 pIm 3.0 nevery 200 nmc 200 seed 123 tempfixid fT - fix chareg all charge/regulation 1 2 pIp 3 pIm 3 onlysalt yes 2 -1 seed 123 tag yes temp 1.0 Description diff --git a/doc/src/fix_cmap.rst b/doc/src/fix_cmap.rst index 19d8cd2d52..316ad5d038 100644 --- a/doc/src/fix_cmap.rst +++ b/doc/src/fix_cmap.rst @@ -6,7 +6,7 @@ fix cmap command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID cmap filename diff --git a/doc/src/fix_colvars.rst b/doc/src/fix_colvars.rst index 77a90cc54f..5acd79ba34 100644 --- a/doc/src/fix_colvars.rst +++ b/doc/src/fix_colvars.rst @@ -6,7 +6,7 @@ fix colvars command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID colvars configfile keyword values ... diff --git a/doc/src/fix_controller.rst b/doc/src/fix_controller.rst index d03d9a123c..fc8186ef29 100644 --- a/doc/src/fix_controller.rst +++ b/doc/src/fix_controller.rst @@ -6,7 +6,7 @@ fix controller command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID controller Nevery alpha Kp Ki Kd pvar setpoint cvar diff --git a/doc/src/fix_damping_cundall.rst b/doc/src/fix_damping_cundall.rst index 262291c0b8..5c532f08d0 100644 --- a/doc/src/fix_damping_cundall.rst +++ b/doc/src/fix_damping_cundall.rst @@ -6,7 +6,7 @@ fix damping/cundall command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID damping/cundall gamma_l gamma_a keyword values ... diff --git a/doc/src/fix_deform.rst b/doc/src/fix_deform.rst index 9adf5b4aa2..ee010f5645 100644 --- a/doc/src/fix_deform.rst +++ b/doc/src/fix_deform.rst @@ -9,7 +9,7 @@ Accelerator Variants: *deform/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID deform N parameter args ... keyword value ... diff --git a/doc/src/fix_deposit.rst b/doc/src/fix_deposit.rst index c8746bcf9c..7d2d28bfa9 100644 --- a/doc/src/fix_deposit.rst +++ b/doc/src/fix_deposit.rst @@ -6,7 +6,7 @@ fix deposit command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID deposit N type M seed keyword values ... diff --git a/doc/src/fix_dpd_energy.rst b/doc/src/fix_dpd_energy.rst index d6e8dd7230..ef5a5ed073 100644 --- a/doc/src/fix_dpd_energy.rst +++ b/doc/src/fix_dpd_energy.rst @@ -9,7 +9,7 @@ Accelerator Variants: *dpd/energy/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID dpd/energy diff --git a/doc/src/fix_dpd_source.rst b/doc/src/fix_dpd_source.rst index 71894161f1..8ec5163854 100644 --- a/doc/src/fix_dpd_source.rst +++ b/doc/src/fix_dpd_source.rst @@ -10,7 +10,7 @@ fix tdpd/source command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID edpd/source keyword values ... fix ID group-ID tdpd/source cc_index keyword values ... diff --git a/doc/src/fix_drag.rst b/doc/src/fix_drag.rst index 3bfc5420de..9e29762cf5 100644 --- a/doc/src/fix_drag.rst +++ b/doc/src/fix_drag.rst @@ -6,7 +6,7 @@ fix drag command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID drag x y z fmag delta diff --git a/doc/src/fix_drude.rst b/doc/src/fix_drude.rst index 5300d1f490..679d6eb4bf 100644 --- a/doc/src/fix_drude.rst +++ b/doc/src/fix_drude.rst @@ -6,7 +6,7 @@ fix drude command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID drude flag1 flag2 ... flagN diff --git a/doc/src/fix_drude_transform.rst b/doc/src/fix_drude_transform.rst index bd63a411be..399bf2dd45 100644 --- a/doc/src/fix_drude_transform.rst +++ b/doc/src/fix_drude_transform.rst @@ -10,7 +10,7 @@ fix drude/transform/inverse command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style keyword value ... diff --git a/doc/src/fix_dt_reset.rst b/doc/src/fix_dt_reset.rst index 5757f0ec99..03b07776e6 100644 --- a/doc/src/fix_dt_reset.rst +++ b/doc/src/fix_dt_reset.rst @@ -9,7 +9,7 @@ Accelerator Variants: *dt/reset/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID dt/reset N Tmin Tmax Xmax keyword values ... diff --git a/doc/src/fix_efield.rst b/doc/src/fix_efield.rst index e38e1e6894..2958d89794 100644 --- a/doc/src/fix_efield.rst +++ b/doc/src/fix_efield.rst @@ -10,7 +10,7 @@ fix efield/tip4p command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style ex ey ez keyword value ... diff --git a/doc/src/fix_ehex.rst b/doc/src/fix_ehex.rst index 186ed7065e..d7c09ce36c 100644 --- a/doc/src/fix_ehex.rst +++ b/doc/src/fix_ehex.rst @@ -6,7 +6,7 @@ fix ehex command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID ehex nevery F keyword value diff --git a/doc/src/fix_electron_stopping.rst b/doc/src/fix_electron_stopping.rst index fa0fc763f5..681a000321 100644 --- a/doc/src/fix_electron_stopping.rst +++ b/doc/src/fix_electron_stopping.rst @@ -10,7 +10,7 @@ fix electron/stopping/fit command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style args diff --git a/doc/src/fix_enforce2d.rst b/doc/src/fix_enforce2d.rst index a8061e5eaa..5dd0b79057 100644 --- a/doc/src/fix_enforce2d.rst +++ b/doc/src/fix_enforce2d.rst @@ -9,7 +9,7 @@ Accelerator Variants: *enforce2d/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID enforce2d diff --git a/doc/src/fix_eos_cv.rst b/doc/src/fix_eos_cv.rst index c43b5461b1..3f5c87cd38 100644 --- a/doc/src/fix_eos_cv.rst +++ b/doc/src/fix_eos_cv.rst @@ -6,7 +6,7 @@ fix eos/cv command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID eos/cv cv diff --git a/doc/src/fix_eos_table.rst b/doc/src/fix_eos_table.rst index bfb8ec2c3c..533904b0e7 100644 --- a/doc/src/fix_eos_table.rst +++ b/doc/src/fix_eos_table.rst @@ -6,7 +6,7 @@ fix eos/table command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID eos/table style file N keyword diff --git a/doc/src/fix_eos_table_rx.rst b/doc/src/fix_eos_table_rx.rst index c9f134f985..104fa79c20 100644 --- a/doc/src/fix_eos_table_rx.rst +++ b/doc/src/fix_eos_table_rx.rst @@ -9,7 +9,7 @@ Accelerator Variants: *eos/table/rx/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID eos/table/rx style file1 N keyword ... diff --git a/doc/src/fix_evaporate.rst b/doc/src/fix_evaporate.rst index c8e46631a3..1df58aa5d5 100644 --- a/doc/src/fix_evaporate.rst +++ b/doc/src/fix_evaporate.rst @@ -6,7 +6,7 @@ fix evaporate command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID evaporate N M region-ID seed diff --git a/doc/src/fix_external.rst b/doc/src/fix_external.rst index a3677a350c..44dd0929ee 100644 --- a/doc/src/fix_external.rst +++ b/doc/src/fix_external.rst @@ -6,7 +6,7 @@ fix external command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID external mode args diff --git a/doc/src/fix_ffl.rst b/doc/src/fix_ffl.rst index 6058b0ed3e..04e4d9be90 100644 --- a/doc/src/fix_ffl.rst +++ b/doc/src/fix_ffl.rst @@ -6,7 +6,7 @@ fix ffl command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID id-group ffl tau Tstart Tstop seed [flip-type] diff --git a/doc/src/fix_filter_corotate.rst b/doc/src/fix_filter_corotate.rst index c0a2216be3..7c091140df 100644 --- a/doc/src/fix_filter_corotate.rst +++ b/doc/src/fix_filter_corotate.rst @@ -6,7 +6,7 @@ fix filter/corotate command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID filter/corotate keyword value ... diff --git a/doc/src/fix_flow_gauss.rst b/doc/src/fix_flow_gauss.rst index 87ab283923..6100c5d635 100644 --- a/doc/src/fix_flow_gauss.rst +++ b/doc/src/fix_flow_gauss.rst @@ -6,7 +6,7 @@ fix flow/gauss command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID flow/gauss xflag yflag zflag keyword diff --git a/doc/src/fix_freeze.rst b/doc/src/fix_freeze.rst index ce79ce3caf..9b579633b1 100644 --- a/doc/src/fix_freeze.rst +++ b/doc/src/fix_freeze.rst @@ -9,7 +9,7 @@ Accelerator Variants: *freeze/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID freeze diff --git a/doc/src/fix_gcmc.rst b/doc/src/fix_gcmc.rst index c0fa990d6e..13ae509684 100644 --- a/doc/src/fix_gcmc.rst +++ b/doc/src/fix_gcmc.rst @@ -6,7 +6,7 @@ fix gcmc command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID gcmc N X M type seed T mu displace keyword values ... diff --git a/doc/src/fix_gld.rst b/doc/src/fix_gld.rst index d0fd6a4c9e..ba26f7a51b 100644 --- a/doc/src/fix_gld.rst +++ b/doc/src/fix_gld.rst @@ -6,7 +6,7 @@ fix gld command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID gld Tstart Tstop N_k seed series c_1 tau_1 ... c_N_k tau_N_k keyword values ... diff --git a/doc/src/fix_gle.rst b/doc/src/fix_gle.rst index 03add9d354..d28a9bbf0d 100644 --- a/doc/src/fix_gle.rst +++ b/doc/src/fix_gle.rst @@ -6,7 +6,7 @@ fix gle command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID id-group gle Ns Tstart Tstop seed Amatrix [noneq Cmatrix] [every stride] diff --git a/doc/src/fix_gravity.rst b/doc/src/fix_gravity.rst index 6d34cc1bf3..cd7cfcc3df 100644 --- a/doc/src/fix_gravity.rst +++ b/doc/src/fix_gravity.rst @@ -10,7 +10,7 @@ Accelerator Variants: *gravity/omp*, *gravity/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group gravity magnitude style args diff --git a/doc/src/fix_grem.rst b/doc/src/fix_grem.rst index 3e3ec02994..9cc6e3f43e 100644 --- a/doc/src/fix_grem.rst +++ b/doc/src/fix_grem.rst @@ -6,7 +6,7 @@ fix grem command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID grem lambda eta H0 thermostat-ID diff --git a/doc/src/fix_halt.rst b/doc/src/fix_halt.rst index 56e86208cd..4231c77cc5 100644 --- a/doc/src/fix_halt.rst +++ b/doc/src/fix_halt.rst @@ -6,7 +6,7 @@ fix halt command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID halt N attribute operator avalue keyword value ... diff --git a/doc/src/fix_heat.rst b/doc/src/fix_heat.rst index 19bc3d84ca..1badf08bff 100644 --- a/doc/src/fix_heat.rst +++ b/doc/src/fix_heat.rst @@ -6,7 +6,7 @@ fix heat command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID heat N eflux diff --git a/doc/src/fix_heat_flow.rst b/doc/src/fix_heat_flow.rst index ee73d7d4f2..1ca99a1686 100644 --- a/doc/src/fix_heat_flow.rst +++ b/doc/src/fix_heat_flow.rst @@ -6,7 +6,7 @@ fix heat/flow command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID heat/flow style values ... diff --git a/doc/src/fix_hyper_global.rst b/doc/src/fix_hyper_global.rst index c8643b3b86..2ac1e5e4f3 100644 --- a/doc/src/fix_hyper_global.rst +++ b/doc/src/fix_hyper_global.rst @@ -6,7 +6,7 @@ fix hyper/global command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID hyper/global cutbond qfactor Vmax Tequil diff --git a/doc/src/fix_hyper_local.rst b/doc/src/fix_hyper_local.rst index b5350e9765..76b17cddc4 100644 --- a/doc/src/fix_hyper_local.rst +++ b/doc/src/fix_hyper_local.rst @@ -6,7 +6,7 @@ fix hyper/local command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID hyper/local cutbond qfactor Vmax Tequil Dcut alpha Btarget diff --git a/doc/src/fix_imd.rst b/doc/src/fix_imd.rst index cb1831d174..520af505a1 100644 --- a/doc/src/fix_imd.rst +++ b/doc/src/fix_imd.rst @@ -6,7 +6,7 @@ fix imd command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID imd trate port keyword values ... diff --git a/doc/src/fix_indent.rst b/doc/src/fix_indent.rst index c8349e9381..15790e15d0 100644 --- a/doc/src/fix_indent.rst +++ b/doc/src/fix_indent.rst @@ -6,7 +6,7 @@ fix indent command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID indent K keyword values ... diff --git a/doc/src/fix_ipi.rst b/doc/src/fix_ipi.rst index 5e13d25971..7705f211e8 100644 --- a/doc/src/fix_ipi.rst +++ b/doc/src/fix_ipi.rst @@ -6,7 +6,7 @@ fix ipi command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID ipi address port [unix] [reset] diff --git a/doc/src/fix_langevin.rst b/doc/src/fix_langevin.rst index c09fc7b928..e04805427e 100644 --- a/doc/src/fix_langevin.rst +++ b/doc/src/fix_langevin.rst @@ -9,7 +9,7 @@ Accelerator Variants: *langevin/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID langevin Tstart Tstop damp seed keyword values ... diff --git a/doc/src/fix_langevin_drude.rst b/doc/src/fix_langevin_drude.rst index 5e62e4f416..c53c29b3ac 100644 --- a/doc/src/fix_langevin_drude.rst +++ b/doc/src/fix_langevin_drude.rst @@ -6,7 +6,7 @@ fix langevin/drude command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID langevin/drude Tcom damp_com seed_com Tdrude damp_drude seed_drude keyword values ... diff --git a/doc/src/fix_langevin_eff.rst b/doc/src/fix_langevin_eff.rst index 506b5052d5..21cdc4a789 100644 --- a/doc/src/fix_langevin_eff.rst +++ b/doc/src/fix_langevin_eff.rst @@ -6,7 +6,7 @@ fix langevin/eff command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID langevin/eff Tstart Tstop damp seed keyword values ... diff --git a/doc/src/fix_langevin_spin.rst b/doc/src/fix_langevin_spin.rst index 0ca291a732..c82751a755 100644 --- a/doc/src/fix_langevin_spin.rst +++ b/doc/src/fix_langevin_spin.rst @@ -6,7 +6,7 @@ fix langevin/spin command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID langevin/spin T Tdamp seed diff --git a/doc/src/fix_lb_fluid.rst b/doc/src/fix_lb_fluid.rst index 04f306156a..a461175f71 100644 --- a/doc/src/fix_lb_fluid.rst +++ b/doc/src/fix_lb_fluid.rst @@ -6,7 +6,7 @@ fix lb/fluid command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID lb/fluid nevery viscosity density keyword values ... diff --git a/doc/src/fix_lb_momentum.rst b/doc/src/fix_lb_momentum.rst index 8b2c5e6ae2..67a8d86d5f 100644 --- a/doc/src/fix_lb_momentum.rst +++ b/doc/src/fix_lb_momentum.rst @@ -6,7 +6,7 @@ fix lb/momentum command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID lb/momentum nevery keyword values ... diff --git a/doc/src/fix_lb_viscous.rst b/doc/src/fix_lb_viscous.rst index 6e0ec21b7e..5557cba57f 100644 --- a/doc/src/fix_lb_viscous.rst +++ b/doc/src/fix_lb_viscous.rst @@ -6,7 +6,7 @@ fix lb/viscous command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID lb/viscous diff --git a/doc/src/fix_lineforce.rst b/doc/src/fix_lineforce.rst index e82f6ed556..9b1d30e832 100644 --- a/doc/src/fix_lineforce.rst +++ b/doc/src/fix_lineforce.rst @@ -6,7 +6,7 @@ fix lineforce command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID lineforce x y z diff --git a/doc/src/fix_manifoldforce.rst b/doc/src/fix_manifoldforce.rst index 2d72743707..cd5fffc881 100644 --- a/doc/src/fix_manifoldforce.rst +++ b/doc/src/fix_manifoldforce.rst @@ -6,7 +6,7 @@ fix manifoldforce command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID manifoldforce manifold manifold-args ... diff --git a/doc/src/fix_mdi_qm.rst b/doc/src/fix_mdi_qm.rst index 3d0b350407..0868cbbac8 100644 --- a/doc/src/fix_mdi_qm.rst +++ b/doc/src/fix_mdi_qm.rst @@ -6,7 +6,7 @@ fix mdi/qm command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID mdi/qm keyword value(s) keyword value(s) ... diff --git a/doc/src/fix_mdi_qmmm.rst b/doc/src/fix_mdi_qmmm.rst index 1afce0f7e4..a39f8ba71d 100644 --- a/doc/src/fix_mdi_qmmm.rst +++ b/doc/src/fix_mdi_qmmm.rst @@ -6,7 +6,7 @@ fix mdi/qmmm command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID mdi/qmmm mode keyword value(s) keyword value(s) ... diff --git a/doc/src/fix_meso_move.rst b/doc/src/fix_meso_move.rst index 7b3609a8c7..55d54b2107 100644 --- a/doc/src/fix_meso_move.rst +++ b/doc/src/fix_meso_move.rst @@ -6,7 +6,7 @@ fix meso/move command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID meso/move style args keyword values ... diff --git a/doc/src/fix_mol_swap.rst b/doc/src/fix_mol_swap.rst index 737536fa0d..b344b9c0e6 100644 --- a/doc/src/fix_mol_swap.rst +++ b/doc/src/fix_mol_swap.rst @@ -6,7 +6,7 @@ fix mol/swap command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID mol/swap N X itype jtype seed T keyword value ... diff --git a/doc/src/fix_momentum.rst b/doc/src/fix_momentum.rst index dff30fffc4..727cb176a1 100644 --- a/doc/src/fix_momentum.rst +++ b/doc/src/fix_momentum.rst @@ -13,7 +13,7 @@ fix momentum/chunk command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID momentum N keyword values ... diff --git a/doc/src/fix_move.rst b/doc/src/fix_move.rst index ff1f8403df..3fde5f0861 100644 --- a/doc/src/fix_move.rst +++ b/doc/src/fix_move.rst @@ -6,7 +6,7 @@ fix move command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID move style args keyword values ... diff --git a/doc/src/fix_mscg.rst b/doc/src/fix_mscg.rst index 3255f3fbe9..91eb0fe772 100644 --- a/doc/src/fix_mscg.rst +++ b/doc/src/fix_mscg.rst @@ -6,7 +6,7 @@ fix mscg command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID mscg N keyword args ... diff --git a/doc/src/fix_msst.rst b/doc/src/fix_msst.rst index 9502fe21b8..6750934f61 100644 --- a/doc/src/fix_msst.rst +++ b/doc/src/fix_msst.rst @@ -6,7 +6,7 @@ fix msst command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID msst dir shockvel keyword value ... diff --git a/doc/src/fix_mvv_dpd.rst b/doc/src/fix_mvv_dpd.rst index c2f8a50391..ff5b169f97 100644 --- a/doc/src/fix_mvv_dpd.rst +++ b/doc/src/fix_mvv_dpd.rst @@ -14,7 +14,7 @@ fix mvv/tdpd command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID mvv/dpd lambda diff --git a/doc/src/fix_neb.rst b/doc/src/fix_neb.rst index 5f22acfb2b..ccd0f9b83d 100644 --- a/doc/src/fix_neb.rst +++ b/doc/src/fix_neb.rst @@ -6,7 +6,7 @@ fix neb command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID neb Kspring keyword value diff --git a/doc/src/fix_neb_spin.rst b/doc/src/fix_neb_spin.rst index 16baba44c0..d04ba367c4 100644 --- a/doc/src/fix_neb_spin.rst +++ b/doc/src/fix_neb_spin.rst @@ -6,7 +6,7 @@ fix neb/spin command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID neb/spin Kspring diff --git a/doc/src/fix_nh.rst b/doc/src/fix_nh.rst index 7f2ec69f9b..0cfbc8f921 100644 --- a/doc/src/fix_nh.rst +++ b/doc/src/fix_nh.rst @@ -30,7 +30,7 @@ Accelerator Variants: *nph/kk*, *nph/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style_name keyword value ... diff --git a/doc/src/fix_nh_eff.rst b/doc/src/fix_nh_eff.rst index 11990d365b..7f0f8ee8f1 100644 --- a/doc/src/fix_nh_eff.rst +++ b/doc/src/fix_nh_eff.rst @@ -14,7 +14,7 @@ fix nph/eff command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style_name keyword value ... diff --git a/doc/src/fix_nh_uef.rst b/doc/src/fix_nh_uef.rst index 922c2d515a..a515375746 100644 --- a/doc/src/fix_nh_uef.rst +++ b/doc/src/fix_nh_uef.rst @@ -10,7 +10,7 @@ fix npt/uef command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style_name erate edot_x edot_y temp Tstart Tstop Tdamp keyword value ... diff --git a/doc/src/fix_nph_asphere.rst b/doc/src/fix_nph_asphere.rst index a1028efacc..93938fdd58 100644 --- a/doc/src/fix_nph_asphere.rst +++ b/doc/src/fix_nph_asphere.rst @@ -9,7 +9,7 @@ Accelerator Variants: *nph/asphere/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nph/asphere args keyword value ... diff --git a/doc/src/fix_nph_body.rst b/doc/src/fix_nph_body.rst index 1b740a5ae2..9ee0bd7669 100644 --- a/doc/src/fix_nph_body.rst +++ b/doc/src/fix_nph_body.rst @@ -6,7 +6,7 @@ fix nph/body command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nph/body args keyword value ... diff --git a/doc/src/fix_nph_sphere.rst b/doc/src/fix_nph_sphere.rst index 2ef85953e5..9d47cedc28 100644 --- a/doc/src/fix_nph_sphere.rst +++ b/doc/src/fix_nph_sphere.rst @@ -9,7 +9,7 @@ Accelerator Variants: *nph/sphere/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nph/sphere args keyword value ... diff --git a/doc/src/fix_nphug.rst b/doc/src/fix_nphug.rst index 1cedfa909a..ce63f5eddd 100644 --- a/doc/src/fix_nphug.rst +++ b/doc/src/fix_nphug.rst @@ -9,7 +9,7 @@ Accelerator Variants: *nphug/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nphug keyword value ... diff --git a/doc/src/fix_npt_asphere.rst b/doc/src/fix_npt_asphere.rst index 64e1c45be7..0d195821ad 100644 --- a/doc/src/fix_npt_asphere.rst +++ b/doc/src/fix_npt_asphere.rst @@ -9,7 +9,7 @@ Accelerator Variants: *npt/asphere/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID npt/asphere keyword value ... diff --git a/doc/src/fix_npt_body.rst b/doc/src/fix_npt_body.rst index ff98638b63..31ef1653b8 100644 --- a/doc/src/fix_npt_body.rst +++ b/doc/src/fix_npt_body.rst @@ -6,7 +6,7 @@ fix npt/body command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID npt/body keyword value ... diff --git a/doc/src/fix_npt_cauchy.rst b/doc/src/fix_npt_cauchy.rst index 36b22037bf..6764f88eee 100644 --- a/doc/src/fix_npt_cauchy.rst +++ b/doc/src/fix_npt_cauchy.rst @@ -6,7 +6,7 @@ fix npt/cauchy command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style_name keyword value ... diff --git a/doc/src/fix_npt_sphere.rst b/doc/src/fix_npt_sphere.rst index afaa2c9d67..f881bc2dfe 100644 --- a/doc/src/fix_npt_sphere.rst +++ b/doc/src/fix_npt_sphere.rst @@ -9,7 +9,7 @@ Accelerator Variants: *npt/sphere/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID npt/sphere keyword value ... diff --git a/doc/src/fix_numdiff.rst b/doc/src/fix_numdiff.rst index b5fdfb12e6..9b3d3bf7da 100644 --- a/doc/src/fix_numdiff.rst +++ b/doc/src/fix_numdiff.rst @@ -6,7 +6,7 @@ fix numdiff command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID numdiff Nevery delta diff --git a/doc/src/fix_numdiff_virial.rst b/doc/src/fix_numdiff_virial.rst index f909d41111..2075d1d05f 100644 --- a/doc/src/fix_numdiff_virial.rst +++ b/doc/src/fix_numdiff_virial.rst @@ -6,7 +6,7 @@ fix numdiff/virial command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID numdiff/virial Nevery delta diff --git a/doc/src/fix_nve.rst b/doc/src/fix_nve.rst index c50bc4d62f..3757233bcc 100644 --- a/doc/src/fix_nve.rst +++ b/doc/src/fix_nve.rst @@ -12,7 +12,7 @@ Accelerator Variants: *nve/gpu*, *nve/intel*, *nve/kk*, *nve/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve diff --git a/doc/src/fix_nve_asphere.rst b/doc/src/fix_nve_asphere.rst index fbba2bc8dd..cf956bd0c4 100644 --- a/doc/src/fix_nve_asphere.rst +++ b/doc/src/fix_nve_asphere.rst @@ -10,7 +10,7 @@ Accelerator Variants: *nve/asphere/gpu*, *nve/asphere/intel* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/asphere diff --git a/doc/src/fix_nve_asphere_noforce.rst b/doc/src/fix_nve_asphere_noforce.rst index 7d904bef1c..9e6f35b56b 100644 --- a/doc/src/fix_nve_asphere_noforce.rst +++ b/doc/src/fix_nve_asphere_noforce.rst @@ -6,7 +6,7 @@ fix nve/asphere/noforce command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/asphere/noforce diff --git a/doc/src/fix_nve_awpmd.rst b/doc/src/fix_nve_awpmd.rst index c716a94a84..f835758e00 100644 --- a/doc/src/fix_nve_awpmd.rst +++ b/doc/src/fix_nve_awpmd.rst @@ -6,7 +6,7 @@ fix nve/awpmd command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/awpmd diff --git a/doc/src/fix_nve_body.rst b/doc/src/fix_nve_body.rst index 45beee0659..9f562ef59e 100644 --- a/doc/src/fix_nve_body.rst +++ b/doc/src/fix_nve_body.rst @@ -6,7 +6,7 @@ fix nve/body command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/body diff --git a/doc/src/fix_nve_bpm_sphere.rst b/doc/src/fix_nve_bpm_sphere.rst index ef170605a4..fb3bd9e466 100644 --- a/doc/src/fix_nve_bpm_sphere.rst +++ b/doc/src/fix_nve_bpm_sphere.rst @@ -6,7 +6,7 @@ fix nve/bpm/sphere command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/bpm/sphere diff --git a/doc/src/fix_nve_dot.rst b/doc/src/fix_nve_dot.rst index 0a99e11452..0d6e0ab5c3 100644 --- a/doc/src/fix_nve_dot.rst +++ b/doc/src/fix_nve_dot.rst @@ -6,7 +6,7 @@ fix nve/dot command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/dot diff --git a/doc/src/fix_nve_dotc_langevin.rst b/doc/src/fix_nve_dotc_langevin.rst index e47e8f4a2a..51efa06a02 100644 --- a/doc/src/fix_nve_dotc_langevin.rst +++ b/doc/src/fix_nve_dotc_langevin.rst @@ -6,7 +6,7 @@ fix nve/dotc/langevin command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/dotc/langevin Tstart Tstop damp seed keyword value diff --git a/doc/src/fix_nve_eff.rst b/doc/src/fix_nve_eff.rst index 60bece43d0..1cf954a88d 100644 --- a/doc/src/fix_nve_eff.rst +++ b/doc/src/fix_nve_eff.rst @@ -6,7 +6,7 @@ fix nve/eff command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/eff diff --git a/doc/src/fix_nve_limit.rst b/doc/src/fix_nve_limit.rst index 0c572c6c6a..b00a5d64ca 100644 --- a/doc/src/fix_nve_limit.rst +++ b/doc/src/fix_nve_limit.rst @@ -6,7 +6,7 @@ fix nve/limit command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/limit xmax diff --git a/doc/src/fix_nve_line.rst b/doc/src/fix_nve_line.rst index 5bb6fd4213..7574110041 100644 --- a/doc/src/fix_nve_line.rst +++ b/doc/src/fix_nve_line.rst @@ -6,7 +6,7 @@ fix nve/line command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/line diff --git a/doc/src/fix_nve_manifold_rattle.rst b/doc/src/fix_nve_manifold_rattle.rst index 63632ebac0..6adf72ac55 100644 --- a/doc/src/fix_nve_manifold_rattle.rst +++ b/doc/src/fix_nve_manifold_rattle.rst @@ -6,7 +6,7 @@ fix nve/manifold/rattle command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/manifold/rattle tol maxit manifold manifold-args keyword value ... diff --git a/doc/src/fix_nve_noforce.rst b/doc/src/fix_nve_noforce.rst index ed13123403..9b9c30d325 100644 --- a/doc/src/fix_nve_noforce.rst +++ b/doc/src/fix_nve_noforce.rst @@ -6,7 +6,7 @@ fix nve/noforce command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve diff --git a/doc/src/fix_nve_sphere.rst b/doc/src/fix_nve_sphere.rst index df177a2eca..9340e4af22 100644 --- a/doc/src/fix_nve_sphere.rst +++ b/doc/src/fix_nve_sphere.rst @@ -10,7 +10,7 @@ Accelerator Variants: *nve/sphere/omp*, *nve/sphere/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/sphere diff --git a/doc/src/fix_nve_spin.rst b/doc/src/fix_nve_spin.rst index e35647aef4..6edc9da09a 100644 --- a/doc/src/fix_nve_spin.rst +++ b/doc/src/fix_nve_spin.rst @@ -6,7 +6,7 @@ fix nve/spin command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/spin keyword values diff --git a/doc/src/fix_nve_tri.rst b/doc/src/fix_nve_tri.rst index b511d9b318..1bcecb71db 100644 --- a/doc/src/fix_nve_tri.rst +++ b/doc/src/fix_nve_tri.rst @@ -6,7 +6,7 @@ fix nve/tri command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nve/tri diff --git a/doc/src/fix_nvk.rst b/doc/src/fix_nvk.rst index 0d83a4b1be..d74ec1639c 100644 --- a/doc/src/fix_nvk.rst +++ b/doc/src/fix_nvk.rst @@ -6,7 +6,7 @@ fix nvk command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nvk diff --git a/doc/src/fix_nvt_asphere.rst b/doc/src/fix_nvt_asphere.rst index 7ce3aec125..b456516e3c 100644 --- a/doc/src/fix_nvt_asphere.rst +++ b/doc/src/fix_nvt_asphere.rst @@ -9,7 +9,7 @@ Accelerator Variants: *nvt/asphere/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nvt/asphere keyword value ... diff --git a/doc/src/fix_nvt_body.rst b/doc/src/fix_nvt_body.rst index 7b9e996a5b..4397159515 100644 --- a/doc/src/fix_nvt_body.rst +++ b/doc/src/fix_nvt_body.rst @@ -6,7 +6,7 @@ fix nvt/body command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nvt/body keyword value ... diff --git a/doc/src/fix_nvt_manifold_rattle.rst b/doc/src/fix_nvt_manifold_rattle.rst index 91a5f28649..921022d743 100644 --- a/doc/src/fix_nvt_manifold_rattle.rst +++ b/doc/src/fix_nvt_manifold_rattle.rst @@ -6,7 +6,7 @@ fix nvt/manifold/rattle command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nvt/manifold/rattle tol maxit manifold manifold-args keyword value ... diff --git a/doc/src/fix_nvt_sllod.rst b/doc/src/fix_nvt_sllod.rst index 48d0bb5946..430ed31c14 100644 --- a/doc/src/fix_nvt_sllod.rst +++ b/doc/src/fix_nvt_sllod.rst @@ -11,7 +11,7 @@ Accelerator Variants: *nvt/sllod/intel*, *nvt/sllod/omp*, *nvt/sllod/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nvt/sllod keyword value ... diff --git a/doc/src/fix_nvt_sllod_eff.rst b/doc/src/fix_nvt_sllod_eff.rst index dd4dd469ef..71a7e75b80 100644 --- a/doc/src/fix_nvt_sllod_eff.rst +++ b/doc/src/fix_nvt_sllod_eff.rst @@ -6,7 +6,7 @@ fix nvt/sllod/eff command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nvt/sllod/eff keyword value ... diff --git a/doc/src/fix_nvt_sphere.rst b/doc/src/fix_nvt_sphere.rst index f107940af9..6baa79532c 100644 --- a/doc/src/fix_nvt_sphere.rst +++ b/doc/src/fix_nvt_sphere.rst @@ -9,7 +9,7 @@ Accelerator Variants: *nvt/sphere/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID nvt/sphere keyword value ... diff --git a/doc/src/fix_oneway.rst b/doc/src/fix_oneway.rst index 272797fa17..b4a55e9968 100644 --- a/doc/src/fix_oneway.rst +++ b/doc/src/fix_oneway.rst @@ -6,7 +6,7 @@ fix oneway command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID oneway N region-ID direction diff --git a/doc/src/fix_orient.rst b/doc/src/fix_orient.rst index 68522209b7..7e30b7bb01 100644 --- a/doc/src/fix_orient.rst +++ b/doc/src/fix_orient.rst @@ -10,7 +10,7 @@ fix orient/bcc command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID orient/fcc nstats dir alat dE cutlo cuthi file0 file1 fix ID group-ID orient/bcc nstats dir alat dE cutlo cuthi file0 file1 diff --git a/doc/src/fix_pafi.rst b/doc/src/fix_pafi.rst index c8830316a2..a57fc658fc 100644 --- a/doc/src/fix_pafi.rst +++ b/doc/src/fix_pafi.rst @@ -6,7 +6,7 @@ fix pafi command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID pafi compute-ID Temp Tdamp seed keyword values... diff --git a/doc/src/fix_pair.rst b/doc/src/fix_pair.rst index 07e934d1c0..ec4a5bcb3f 100644 --- a/doc/src/fix_pair.rst +++ b/doc/src/fix_pair.rst @@ -6,7 +6,7 @@ fix pair command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID pair N pstyle name flag ... diff --git a/doc/src/fix_phonon.rst b/doc/src/fix_phonon.rst index 527498bb21..e99d2b6891 100644 --- a/doc/src/fix_phonon.rst +++ b/doc/src/fix_phonon.rst @@ -6,7 +6,7 @@ fix phonon command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID phonon N Noutput Nwait map_file prefix keyword values ... diff --git a/doc/src/fix_pimd.rst b/doc/src/fix_pimd.rst index c08a4005f5..5b51b97c52 100644 --- a/doc/src/fix_pimd.rst +++ b/doc/src/fix_pimd.rst @@ -10,7 +10,7 @@ fix pimd/nvt command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style keyword value ... diff --git a/doc/src/fix_planeforce.rst b/doc/src/fix_planeforce.rst index d0f1b8102e..f4032cf829 100644 --- a/doc/src/fix_planeforce.rst +++ b/doc/src/fix_planeforce.rst @@ -6,7 +6,7 @@ fix planeforce command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID planeforce x y z diff --git a/doc/src/fix_plumed.rst b/doc/src/fix_plumed.rst index c562ecc81d..ca56f83958 100644 --- a/doc/src/fix_plumed.rst +++ b/doc/src/fix_plumed.rst @@ -6,7 +6,7 @@ fix plumed command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID plumed keyword value ... diff --git a/doc/src/fix_poems.rst b/doc/src/fix_poems.rst index 7ecb4eef7d..a43e552fbb 100644 --- a/doc/src/fix_poems.rst +++ b/doc/src/fix_poems.rst @@ -6,7 +6,7 @@ fix poems command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID poems keyword values diff --git a/doc/src/fix_polarize.rst b/doc/src/fix_polarize.rst index f35e34bc67..93ef1e4276 100644 --- a/doc/src/fix_polarize.rst +++ b/doc/src/fix_polarize.rst @@ -14,7 +14,7 @@ fix polarize/functional command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style nevery tolerance diff --git a/doc/src/fix_pour.rst b/doc/src/fix_pour.rst index 8a7000662e..eca1f70c41 100644 --- a/doc/src/fix_pour.rst +++ b/doc/src/fix_pour.rst @@ -6,7 +6,7 @@ fix pour command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID pour N type seed keyword values ... diff --git a/doc/src/fix_press_berendsen.rst b/doc/src/fix_press_berendsen.rst index dee93c5b8b..09ec44e673 100644 --- a/doc/src/fix_press_berendsen.rst +++ b/doc/src/fix_press_berendsen.rst @@ -6,7 +6,7 @@ fix press/berendsen command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID press/berendsen keyword value ... diff --git a/doc/src/fix_print.rst b/doc/src/fix_print.rst index 05abbe3c98..1ec643a635 100644 --- a/doc/src/fix_print.rst +++ b/doc/src/fix_print.rst @@ -6,7 +6,7 @@ fix print command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID print N string keyword value ... diff --git a/doc/src/fix_propel_self.rst b/doc/src/fix_propel_self.rst index 863d43b6f2..0b932c7316 100644 --- a/doc/src/fix_propel_self.rst +++ b/doc/src/fix_propel_self.rst @@ -6,7 +6,7 @@ fix propel/self command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID propel/self mode magnitude keyword values diff --git a/doc/src/fix_property_atom.rst b/doc/src/fix_property_atom.rst index d09c15d192..b177fe9a96 100644 --- a/doc/src/fix_property_atom.rst +++ b/doc/src/fix_property_atom.rst @@ -9,7 +9,7 @@ Accelerator Variants: *property/atom/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID property/atom name1 name2 ... keyword value ... diff --git a/doc/src/fix_python_invoke.rst b/doc/src/fix_python_invoke.rst index c82fb91a27..ad55882270 100644 --- a/doc/src/fix_python_invoke.rst +++ b/doc/src/fix_python_invoke.rst @@ -6,7 +6,7 @@ fix python/invoke command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID python/invoke N callback function_name diff --git a/doc/src/fix_python_move.rst b/doc/src/fix_python_move.rst index b338dcbfac..63898f3aa1 100644 --- a/doc/src/fix_python_move.rst +++ b/doc/src/fix_python_move.rst @@ -6,7 +6,7 @@ fix python/move command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix python/move pymodule.CLASS diff --git a/doc/src/fix_qbmsst.rst b/doc/src/fix_qbmsst.rst index 5428eeb637..3234335b6b 100644 --- a/doc/src/fix_qbmsst.rst +++ b/doc/src/fix_qbmsst.rst @@ -6,7 +6,7 @@ fix qbmsst command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID qbmsst dir shockvel keyword value ... diff --git a/doc/src/fix_qeq.rst b/doc/src/fix_qeq.rst index 73cf013fb9..bace7af0ca 100644 --- a/doc/src/fix_qeq.rst +++ b/doc/src/fix_qeq.rst @@ -22,7 +22,7 @@ fix qeq/fire command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style Nevery cutoff tolerance maxiter qfile keyword ... diff --git a/doc/src/fix_qeq_comb.rst b/doc/src/fix_qeq_comb.rst index 0c04a8c4a7..f93a650c17 100644 --- a/doc/src/fix_qeq_comb.rst +++ b/doc/src/fix_qeq_comb.rst @@ -9,7 +9,7 @@ Accelerator Variants: *qeq/comb/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID qeq/comb Nevery precision keyword value ... diff --git a/doc/src/fix_qeq_reaxff.rst b/doc/src/fix_qeq_reaxff.rst index 00cfb6d3ce..e90842ea6a 100644 --- a/doc/src/fix_qeq_reaxff.rst +++ b/doc/src/fix_qeq_reaxff.rst @@ -10,7 +10,7 @@ Accelerator Variants: *qeq/reaxff/kk*, *qeq/reaxff/omp* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID qeq/reaxff Nevery cutlo cuthi tolerance params args diff --git a/doc/src/fix_qmmm.rst b/doc/src/fix_qmmm.rst index 546635520c..eabbdbba03 100644 --- a/doc/src/fix_qmmm.rst +++ b/doc/src/fix_qmmm.rst @@ -6,7 +6,7 @@ fix qmmm command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID qmmm diff --git a/doc/src/fix_qtb.rst b/doc/src/fix_qtb.rst index c41a58a8f4..2112a0f14b 100644 --- a/doc/src/fix_qtb.rst +++ b/doc/src/fix_qtb.rst @@ -6,7 +6,7 @@ fix qtb command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID qtb keyword value ... diff --git a/doc/src/fix_reaxff_bonds.rst b/doc/src/fix_reaxff_bonds.rst index 15b2eb6da9..15fd9abafa 100644 --- a/doc/src/fix_reaxff_bonds.rst +++ b/doc/src/fix_reaxff_bonds.rst @@ -9,7 +9,7 @@ Accelerator Variants: *reaxff/bonds/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID reaxff/bonds Nevery filename diff --git a/doc/src/fix_reaxff_species.rst b/doc/src/fix_reaxff_species.rst index 6a171ede5e..9bf1a82933 100644 --- a/doc/src/fix_reaxff_species.rst +++ b/doc/src/fix_reaxff_species.rst @@ -9,7 +9,7 @@ Accelerator Variants: *reaxff/species/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID reaxff/species Nevery Nrepeat Nfreq filename keyword value ... diff --git a/doc/src/fix_recenter.rst b/doc/src/fix_recenter.rst index 520564677a..9991904b37 100644 --- a/doc/src/fix_recenter.rst +++ b/doc/src/fix_recenter.rst @@ -6,7 +6,7 @@ fix recenter command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID recenter x y z keyword value ... diff --git a/doc/src/fix_rhok.rst b/doc/src/fix_rhok.rst index 9d6114328f..7ac40e1bed 100644 --- a/doc/src/fix_rhok.rst +++ b/doc/src/fix_rhok.rst @@ -6,7 +6,7 @@ fix rhok command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID rhok nx ny nz K a diff --git a/doc/src/fix_rigid.rst b/doc/src/fix_rigid.rst index b6c2c99071..89759da817 100644 --- a/doc/src/fix_rigid.rst +++ b/doc/src/fix_rigid.rst @@ -60,7 +60,7 @@ fix rigid/nph/small command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style bodystyle args keyword values ... diff --git a/doc/src/fix_rigid_meso.rst b/doc/src/fix_rigid_meso.rst index 1c70092092..c8c994fd26 100644 --- a/doc/src/fix_rigid_meso.rst +++ b/doc/src/fix_rigid_meso.rst @@ -6,7 +6,7 @@ fix rigid/meso command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID rigid/meso bodystyle args keyword values ... diff --git a/doc/src/fix_rx.rst b/doc/src/fix_rx.rst index 4028a4e7e1..631b227449 100644 --- a/doc/src/fix_rx.rst +++ b/doc/src/fix_rx.rst @@ -9,7 +9,7 @@ Accelerator Variants: *rx/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID rx file localTemp matrix solver minSteps ... diff --git a/doc/src/fix_saed_vtk.rst b/doc/src/fix_saed_vtk.rst index cd3cad7c72..e0cf251780 100644 --- a/doc/src/fix_saed_vtk.rst +++ b/doc/src/fix_saed_vtk.rst @@ -6,7 +6,7 @@ fix saed/vtk command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID saed/vtk Nevery Nrepeat Nfreak c_ID attribute args ... keyword args ... diff --git a/doc/src/fix_setforce.rst b/doc/src/fix_setforce.rst index e115c52991..e194ad4c11 100644 --- a/doc/src/fix_setforce.rst +++ b/doc/src/fix_setforce.rst @@ -13,7 +13,7 @@ fix setforce/spin command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID setforce fx fy fz keyword value ... diff --git a/doc/src/fix_sgcmc.rst b/doc/src/fix_sgcmc.rst index fd6f8beab4..63cfaf22da 100644 --- a/doc/src/fix_sgcmc.rst +++ b/doc/src/fix_sgcmc.rst @@ -6,7 +6,7 @@ fix sgcmc command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID sgcmc every_nsteps swap_fraction temperature deltamu ... diff --git a/doc/src/fix_shake.rst b/doc/src/fix_shake.rst index 2483b9431a..73caa9c668 100644 --- a/doc/src/fix_shake.rst +++ b/doc/src/fix_shake.rst @@ -13,7 +13,7 @@ fix rattle command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style tol iter N constraint values ... keyword value ... diff --git a/doc/src/fix_shardlow.rst b/doc/src/fix_shardlow.rst index 468985be1b..bc2684af53 100644 --- a/doc/src/fix_shardlow.rst +++ b/doc/src/fix_shardlow.rst @@ -9,7 +9,7 @@ Accelerator Variants: *shardlow/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID shardlow diff --git a/doc/src/fix_smd.rst b/doc/src/fix_smd.rst index 4c682e66c0..14892227fd 100644 --- a/doc/src/fix_smd.rst +++ b/doc/src/fix_smd.rst @@ -6,7 +6,7 @@ fix smd command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID smd type values keyword values diff --git a/doc/src/fix_smd_setvel.rst b/doc/src/fix_smd_setvel.rst index 9dcc3c636c..31b92491ab 100644 --- a/doc/src/fix_smd_setvel.rst +++ b/doc/src/fix_smd_setvel.rst @@ -6,7 +6,7 @@ fix smd/setvel command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID smd/setvel vx vy vz keyword value ... diff --git a/doc/src/fix_sph.rst b/doc/src/fix_sph.rst index 1133142f05..4932485b03 100644 --- a/doc/src/fix_sph.rst +++ b/doc/src/fix_sph.rst @@ -6,7 +6,7 @@ fix sph command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID sph diff --git a/doc/src/fix_sph_stationary.rst b/doc/src/fix_sph_stationary.rst index 4496a10eca..07bedad4c3 100644 --- a/doc/src/fix_sph_stationary.rst +++ b/doc/src/fix_sph_stationary.rst @@ -6,7 +6,7 @@ fix sph/stationary command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID sph/stationary diff --git a/doc/src/fix_spring.rst b/doc/src/fix_spring.rst index 007f2cd278..b85fe26813 100644 --- a/doc/src/fix_spring.rst +++ b/doc/src/fix_spring.rst @@ -6,7 +6,7 @@ fix spring command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID spring keyword values diff --git a/doc/src/fix_spring_chunk.rst b/doc/src/fix_spring_chunk.rst index 3d3069c53e..63a225e878 100644 --- a/doc/src/fix_spring_chunk.rst +++ b/doc/src/fix_spring_chunk.rst @@ -6,7 +6,7 @@ fix spring/chunk command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID spring/chunk K chunkID comID diff --git a/doc/src/fix_spring_rg.rst b/doc/src/fix_spring_rg.rst index aba35c8134..e615771d2a 100644 --- a/doc/src/fix_spring_rg.rst +++ b/doc/src/fix_spring_rg.rst @@ -6,7 +6,7 @@ fix spring/rg command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID spring/rg K RG0 diff --git a/doc/src/fix_spring_self.rst b/doc/src/fix_spring_self.rst index 6cf0a9e0e7..3383f27ebb 100644 --- a/doc/src/fix_spring_self.rst +++ b/doc/src/fix_spring_self.rst @@ -6,7 +6,7 @@ fix spring/self command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID spring/self K dir diff --git a/doc/src/fix_srd.rst b/doc/src/fix_srd.rst index 04eaeed251..1fc574a7ad 100644 --- a/doc/src/fix_srd.rst +++ b/doc/src/fix_srd.rst @@ -6,7 +6,7 @@ fix srd command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID srd N groupbig-ID Tsrd hgrid seed keyword value ... diff --git a/doc/src/fix_store_force.rst b/doc/src/fix_store_force.rst index f6bed4d4af..487d4f0352 100644 --- a/doc/src/fix_store_force.rst +++ b/doc/src/fix_store_force.rst @@ -6,7 +6,7 @@ fix store/force command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID store/force diff --git a/doc/src/fix_store_state.rst b/doc/src/fix_store_state.rst index b47b6900aa..4a0bef2f74 100644 --- a/doc/src/fix_store_state.rst +++ b/doc/src/fix_store_state.rst @@ -6,7 +6,7 @@ fix store/state command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID store/state N input1 input2 ... keyword value ... diff --git a/doc/src/fix_temp_berendsen.rst b/doc/src/fix_temp_berendsen.rst index 473c30aced..67e496e6c5 100644 --- a/doc/src/fix_temp_berendsen.rst +++ b/doc/src/fix_temp_berendsen.rst @@ -6,7 +6,7 @@ fix temp/berendsen command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID temp/berendsen Tstart Tstop Tdamp diff --git a/doc/src/fix_temp_csvr.rst b/doc/src/fix_temp_csvr.rst index 5fc6e8eae7..781ce97d96 100644 --- a/doc/src/fix_temp_csvr.rst +++ b/doc/src/fix_temp_csvr.rst @@ -10,7 +10,7 @@ fix temp/csld command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID temp/csvr Tstart Tstop Tdamp seed fix ID group-ID temp/csld Tstart Tstop Tdamp seed diff --git a/doc/src/fix_temp_rescale.rst b/doc/src/fix_temp_rescale.rst index 41ad8709cc..bfdcaa90f8 100644 --- a/doc/src/fix_temp_rescale.rst +++ b/doc/src/fix_temp_rescale.rst @@ -6,7 +6,7 @@ fix temp/rescale command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID temp/rescale N Tstart Tstop window fraction diff --git a/doc/src/fix_temp_rescale_eff.rst b/doc/src/fix_temp_rescale_eff.rst index ea3996e9b6..b92feccfed 100644 --- a/doc/src/fix_temp_rescale_eff.rst +++ b/doc/src/fix_temp_rescale_eff.rst @@ -6,7 +6,7 @@ fix temp/rescale/eff command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID temp/rescale/eff N Tstart Tstop window fraction diff --git a/doc/src/fix_tfmc.rst b/doc/src/fix_tfmc.rst index 7eb4d24935..f3379c1e2f 100644 --- a/doc/src/fix_tfmc.rst +++ b/doc/src/fix_tfmc.rst @@ -6,7 +6,7 @@ fix tfmc command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID tfmc Delta Temp seed keyword value diff --git a/doc/src/fix_tgnh_drude.rst b/doc/src/fix_tgnh_drude.rst index d1f5cf19a4..0a67af291f 100644 --- a/doc/src/fix_tgnh_drude.rst +++ b/doc/src/fix_tgnh_drude.rst @@ -11,7 +11,7 @@ fix tgnpt/drude command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style_name keyword values ... diff --git a/doc/src/fix_thermal_conductivity.rst b/doc/src/fix_thermal_conductivity.rst index 0652810267..041fde8be5 100644 --- a/doc/src/fix_thermal_conductivity.rst +++ b/doc/src/fix_thermal_conductivity.rst @@ -6,7 +6,7 @@ fix thermal/conductivity command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID thermal/conductivity N edim Nbin keyword value ... diff --git a/doc/src/fix_ti_spring.rst b/doc/src/fix_ti_spring.rst index d519f36157..6273164d52 100644 --- a/doc/src/fix_ti_spring.rst +++ b/doc/src/fix_ti_spring.rst @@ -6,7 +6,7 @@ fix ti/spring command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID ti/spring k t_s t_eq keyword value ... diff --git a/doc/src/fix_tmd.rst b/doc/src/fix_tmd.rst index ccebb35823..3ee7f2a5c8 100644 --- a/doc/src/fix_tmd.rst +++ b/doc/src/fix_tmd.rst @@ -6,7 +6,7 @@ fix tmd command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID tmd rho_final file1 N file2 diff --git a/doc/src/fix_ttm.rst b/doc/src/fix_ttm.rst index 413c5f5c3c..ccf7f16554 100644 --- a/doc/src/fix_ttm.rst +++ b/doc/src/fix_ttm.rst @@ -14,7 +14,7 @@ fix ttm/mod command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID ttm seed C_e rho_e kappa_e gamma_p gamma_s v_0 Nx Ny Nz keyword value ... fix ID group-ID ttm/mod seed init_file Nx Ny Nz keyword value ... diff --git a/doc/src/fix_tune_kspace.rst b/doc/src/fix_tune_kspace.rst index 6a3cba16e4..17e0710be8 100644 --- a/doc/src/fix_tune_kspace.rst +++ b/doc/src/fix_tune_kspace.rst @@ -6,7 +6,7 @@ fix tune/kspace command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID tune/kspace N diff --git a/doc/src/fix_vector.rst b/doc/src/fix_vector.rst index f4eee41269..95ec350e12 100644 --- a/doc/src/fix_vector.rst +++ b/doc/src/fix_vector.rst @@ -6,7 +6,7 @@ fix vector command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID vector Nevery value1 value2 ... diff --git a/doc/src/fix_viscosity.rst b/doc/src/fix_viscosity.rst index c99196e09b..187d723d68 100644 --- a/doc/src/fix_viscosity.rst +++ b/doc/src/fix_viscosity.rst @@ -6,7 +6,7 @@ fix viscosity command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID viscosity N vdim pdim Nbin keyword value ... diff --git a/doc/src/fix_viscous.rst b/doc/src/fix_viscous.rst index d5fd794020..68d2568529 100644 --- a/doc/src/fix_viscous.rst +++ b/doc/src/fix_viscous.rst @@ -9,7 +9,7 @@ Accelerator Variants: *viscous/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID viscous gamma keyword values ... diff --git a/doc/src/fix_viscous_sphere.rst b/doc/src/fix_viscous_sphere.rst index 13463c8c11..678cb9904f 100644 --- a/doc/src/fix_viscous_sphere.rst +++ b/doc/src/fix_viscous_sphere.rst @@ -6,7 +6,7 @@ fix viscous/sphere command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID viscous/sphere gamma keyword values ... diff --git a/doc/src/fix_wall.rst b/doc/src/fix_wall.rst index 42cd94978d..eb8219e157 100644 --- a/doc/src/fix_wall.rst +++ b/doc/src/fix_wall.rst @@ -37,7 +37,7 @@ fix wall/table command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style [tabstyle] [N] face args ... keyword value ... diff --git a/doc/src/fix_wall_body_polygon.rst b/doc/src/fix_wall_body_polygon.rst index ac0a58f55c..504ded6aaf 100644 --- a/doc/src/fix_wall_body_polygon.rst +++ b/doc/src/fix_wall_body_polygon.rst @@ -6,7 +6,7 @@ fix wall/body/polygon command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID wall/body/polygon k_n c_n c_t wallstyle args keyword values ... diff --git a/doc/src/fix_wall_body_polyhedron.rst b/doc/src/fix_wall_body_polyhedron.rst index 9930c10f74..86bd35ae02 100644 --- a/doc/src/fix_wall_body_polyhedron.rst +++ b/doc/src/fix_wall_body_polyhedron.rst @@ -6,7 +6,7 @@ fix wall/body/polyhedron command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID wall/body/polyhedron k_n c_n c_t wallstyle args keyword values ... diff --git a/doc/src/fix_wall_ees.rst b/doc/src/fix_wall_ees.rst index 9c7f82e015..7bcfc830e2 100644 --- a/doc/src/fix_wall_ees.rst +++ b/doc/src/fix_wall_ees.rst @@ -10,7 +10,7 @@ fix wall/region/ees command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID style args diff --git a/doc/src/fix_wall_gran.rst b/doc/src/fix_wall_gran.rst index 27d19d60b5..f6465d1159 100644 --- a/doc/src/fix_wall_gran.rst +++ b/doc/src/fix_wall_gran.rst @@ -9,7 +9,7 @@ Accelerator Variants: *wall/gran/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID wall/gran fstyle fstyle_params wallstyle args keyword values ... diff --git a/doc/src/fix_wall_gran_region.rst b/doc/src/fix_wall_gran_region.rst index 94edebbcf1..0a4343493b 100644 --- a/doc/src/fix_wall_gran_region.rst +++ b/doc/src/fix_wall_gran_region.rst @@ -6,7 +6,7 @@ fix wall/gran/region command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID wall/gran/region fstyle fstyle_params wallstyle regionID keyword values ... diff --git a/doc/src/fix_wall_piston.rst b/doc/src/fix_wall_piston.rst index 1237d1ac7c..d60d8cb731 100644 --- a/doc/src/fix_wall_piston.rst +++ b/doc/src/fix_wall_piston.rst @@ -6,7 +6,7 @@ fix wall/piston command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID wall/piston face ... keyword value ... diff --git a/doc/src/fix_wall_reflect.rst b/doc/src/fix_wall_reflect.rst index 8bb895280c..c2f4c3a6ab 100644 --- a/doc/src/fix_wall_reflect.rst +++ b/doc/src/fix_wall_reflect.rst @@ -9,7 +9,7 @@ Accelerator Variants: *wall/reflect/kk* Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID wall/reflect face arg ... keyword value ... diff --git a/doc/src/fix_wall_reflect_stochastic.rst b/doc/src/fix_wall_reflect_stochastic.rst index 64e3d759c1..5a93950a5d 100644 --- a/doc/src/fix_wall_reflect_stochastic.rst +++ b/doc/src/fix_wall_reflect_stochastic.rst @@ -6,7 +6,7 @@ fix wall/reflect/stochastic command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID wall/reflect/stochastic rstyle seed face args ... keyword value ... diff --git a/doc/src/fix_wall_region.rst b/doc/src/fix_wall_region.rst index adfd8402c6..466319c12e 100644 --- a/doc/src/fix_wall_region.rst +++ b/doc/src/fix_wall_region.rst @@ -6,7 +6,7 @@ fix wall/region command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID wall/region region-ID style args ... cutoff diff --git a/doc/src/fix_wall_srd.rst b/doc/src/fix_wall_srd.rst index a8cbdd1619..dfb6560ffd 100644 --- a/doc/src/fix_wall_srd.rst +++ b/doc/src/fix_wall_srd.rst @@ -6,7 +6,7 @@ fix wall/srd command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID wall/srd face arg ... keyword value ... diff --git a/doc/src/fix_widom.rst b/doc/src/fix_widom.rst index 5be93100b3..ff66095db5 100644 --- a/doc/src/fix_widom.rst +++ b/doc/src/fix_widom.rst @@ -6,7 +6,7 @@ fix widom command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS fix ID group-ID widom N M type seed T keyword values ... diff --git a/doc/src/group2ndx.rst b/doc/src/group2ndx.rst index e465c4629f..122341f7f6 100644 --- a/doc/src/group2ndx.rst +++ b/doc/src/group2ndx.rst @@ -10,7 +10,7 @@ ndx2group command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS group2ndx file group-ID ... ndx2group file group-ID ... diff --git a/doc/src/hyper.rst b/doc/src/hyper.rst index 9266a95523..c707c6b3fc 100644 --- a/doc/src/hyper.rst +++ b/doc/src/hyper.rst @@ -6,7 +6,7 @@ hyper command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS hyper N Nevent fix-ID compute-ID keyword values ... diff --git a/doc/src/include.rst b/doc/src/include.rst index 6d146061db..5e19f4a377 100644 --- a/doc/src/include.rst +++ b/doc/src/include.rst @@ -6,7 +6,7 @@ include command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS include file diff --git a/doc/src/info.rst b/doc/src/info.rst index 853e5020fc..958542e3c8 100644 --- a/doc/src/info.rst +++ b/doc/src/info.rst @@ -6,7 +6,7 @@ info command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS info args diff --git a/doc/src/jump.rst b/doc/src/jump.rst index e8047222ef..bf56934d8f 100644 --- a/doc/src/jump.rst +++ b/doc/src/jump.rst @@ -6,7 +6,7 @@ jump command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS jump file label diff --git a/doc/src/label.rst b/doc/src/label.rst index 430587135f..bf232431d7 100644 --- a/doc/src/label.rst +++ b/doc/src/label.rst @@ -6,7 +6,7 @@ label command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS label ID diff --git a/doc/src/lattice.rst b/doc/src/lattice.rst index d4d69c7af0..7dc9c579e5 100644 --- a/doc/src/lattice.rst +++ b/doc/src/lattice.rst @@ -6,7 +6,7 @@ lattice command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS lattice style scale keyword values ... diff --git a/doc/src/log.rst b/doc/src/log.rst index 5d4036dc06..46784f6ea6 100644 --- a/doc/src/log.rst +++ b/doc/src/log.rst @@ -6,7 +6,7 @@ log command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS log file keyword diff --git a/doc/src/mass.rst b/doc/src/mass.rst index f359ccf3a5..88bd14950c 100644 --- a/doc/src/mass.rst +++ b/doc/src/mass.rst @@ -6,7 +6,7 @@ mass command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS mass I value diff --git a/doc/src/min_style.rst b/doc/src/min_style.rst index 2f43308610..b89ae6d398 100644 --- a/doc/src/min_style.rst +++ b/doc/src/min_style.rst @@ -27,7 +27,7 @@ min_style fire command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS min_style style diff --git a/doc/src/minimize.rst b/doc/src/minimize.rst index 6221d33aad..c71c8e3632 100644 --- a/doc/src/minimize.rst +++ b/doc/src/minimize.rst @@ -9,7 +9,7 @@ minimize/kk command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS minimize etol ftol maxiter maxeval diff --git a/doc/src/molecule.rst b/doc/src/molecule.rst index b42bece327..480e175e7b 100644 --- a/doc/src/molecule.rst +++ b/doc/src/molecule.rst @@ -6,7 +6,7 @@ molecule command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS molecule ID file1 keyword values ... file2 keyword values ... fileN ... diff --git a/doc/src/neb.rst b/doc/src/neb.rst index a959eee01b..0bc5de010b 100644 --- a/doc/src/neb.rst +++ b/doc/src/neb.rst @@ -6,7 +6,7 @@ neb command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS neb etol ftol N1 N2 Nevery file-style arg keyword values diff --git a/doc/src/neb_spin.rst b/doc/src/neb_spin.rst index 9f714096dc..1d42ff884c 100644 --- a/doc/src/neb_spin.rst +++ b/doc/src/neb_spin.rst @@ -6,7 +6,7 @@ neb/spin command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS neb/spin etol ttol N1 N2 Nevery file-style arg keyword diff --git a/doc/src/neighbor.rst b/doc/src/neighbor.rst index 9dcdd1daf2..12d6d91fde 100644 --- a/doc/src/neighbor.rst +++ b/doc/src/neighbor.rst @@ -6,7 +6,7 @@ neighbor command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS neighbor skin style diff --git a/doc/src/newton.rst b/doc/src/newton.rst index c1a015c3e6..f77c8c54c4 100644 --- a/doc/src/newton.rst +++ b/doc/src/newton.rst @@ -6,7 +6,7 @@ newton command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS newton flag newton flag1 flag2 diff --git a/doc/src/next.rst b/doc/src/next.rst index 46d39660eb..d86c15c5fb 100644 --- a/doc/src/next.rst +++ b/doc/src/next.rst @@ -6,7 +6,7 @@ next command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS next variables diff --git a/doc/src/package.rst b/doc/src/package.rst index 0f28598029..63a7f095ad 100644 --- a/doc/src/package.rst +++ b/doc/src/package.rst @@ -6,7 +6,7 @@ package command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS package style args diff --git a/doc/src/partition.rst b/doc/src/partition.rst index f05c3fa446..6b1866d8d8 100644 --- a/doc/src/partition.rst +++ b/doc/src/partition.rst @@ -6,7 +6,7 @@ partition command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS partition style N command ... diff --git a/doc/src/plugin.rst b/doc/src/plugin.rst index 41e2621fef..f8f668789d 100644 --- a/doc/src/plugin.rst +++ b/doc/src/plugin.rst @@ -6,7 +6,7 @@ plugin command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS plugin command args diff --git a/doc/src/prd.rst b/doc/src/prd.rst index 7c6af3abb5..fd20fa4a3b 100644 --- a/doc/src/prd.rst +++ b/doc/src/prd.rst @@ -6,7 +6,7 @@ prd command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS prd N t_event n_dephase t_dephase t_correlate compute-ID seed keyword value ... diff --git a/doc/src/print.rst b/doc/src/print.rst index a221ed04b6..f5ba16d8b5 100644 --- a/doc/src/print.rst +++ b/doc/src/print.rst @@ -6,7 +6,7 @@ print command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS print string keyword value diff --git a/doc/src/processors.rst b/doc/src/processors.rst index 676f339725..921bbcc667 100644 --- a/doc/src/processors.rst +++ b/doc/src/processors.rst @@ -6,7 +6,7 @@ processors command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS processors Px Py Pz keyword args ... diff --git a/doc/src/python.rst b/doc/src/python.rst index b05de7094d..99f32e7c80 100644 --- a/doc/src/python.rst +++ b/doc/src/python.rst @@ -6,7 +6,7 @@ python command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS python mode keyword args ... diff --git a/doc/src/quit.rst b/doc/src/quit.rst index ba6b4037be..2355fb238b 100644 --- a/doc/src/quit.rst +++ b/doc/src/quit.rst @@ -6,7 +6,7 @@ quit command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS quit status diff --git a/doc/src/region.rst b/doc/src/region.rst index 4589e6deb1..36c7c799dc 100644 --- a/doc/src/region.rst +++ b/doc/src/region.rst @@ -6,7 +6,7 @@ region command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS region ID style args keyword arg ... diff --git a/doc/src/replicate.rst b/doc/src/replicate.rst index ed4e844c35..6bfbeab891 100644 --- a/doc/src/replicate.rst +++ b/doc/src/replicate.rst @@ -6,7 +6,7 @@ replicate command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS replicate nx ny nz *keyword* diff --git a/doc/src/rerun.rst b/doc/src/rerun.rst index cfed2e2872..1c1b4fb570 100644 --- a/doc/src/rerun.rst +++ b/doc/src/rerun.rst @@ -6,7 +6,7 @@ rerun command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS rerun file1 file2 ... keyword args ... diff --git a/doc/src/restart.rst b/doc/src/restart.rst index 5de2d3d75c..10394de80e 100644 --- a/doc/src/restart.rst +++ b/doc/src/restart.rst @@ -6,7 +6,7 @@ restart command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS restart 0 restart N root keyword value ... diff --git a/doc/src/run.rst b/doc/src/run.rst index 8bcf469052..c3dd171f6b 100644 --- a/doc/src/run.rst +++ b/doc/src/run.rst @@ -6,7 +6,7 @@ run command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS run N keyword values ... diff --git a/doc/src/set.rst b/doc/src/set.rst index 2ba1057ef5..8a6510f88f 100644 --- a/doc/src/set.rst +++ b/doc/src/set.rst @@ -6,7 +6,7 @@ set command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS set style ID keyword values ... diff --git a/doc/src/shell.rst b/doc/src/shell.rst index fb9baffe08..378ebdc479 100644 --- a/doc/src/shell.rst +++ b/doc/src/shell.rst @@ -6,7 +6,7 @@ shell command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS shell command args diff --git a/doc/src/suffix.rst b/doc/src/suffix.rst index 4789229800..6c723657a5 100644 --- a/doc/src/suffix.rst +++ b/doc/src/suffix.rst @@ -6,7 +6,7 @@ suffix command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS suffix style args diff --git a/doc/src/tad.rst b/doc/src/tad.rst index cc6d52d415..b35bc3dfbb 100644 --- a/doc/src/tad.rst +++ b/doc/src/tad.rst @@ -6,7 +6,7 @@ tad command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS tad N t_event T_lo T_hi delta tmax compute-ID keyword value ... diff --git a/doc/src/temper.rst b/doc/src/temper.rst index 363e0102fc..d8bbcb959b 100644 --- a/doc/src/temper.rst +++ b/doc/src/temper.rst @@ -6,7 +6,7 @@ temper command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS temper N M temp fix-ID seed1 seed2 index diff --git a/doc/src/temper_grem.rst b/doc/src/temper_grem.rst index 312df21254..0963ea98c1 100644 --- a/doc/src/temper_grem.rst +++ b/doc/src/temper_grem.rst @@ -6,7 +6,7 @@ temper/grem command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS temper/grem N M lambda fix-ID thermostat-ID seed1 seed2 index diff --git a/doc/src/temper_npt.rst b/doc/src/temper_npt.rst index a8f5999dbe..0659ba2c03 100644 --- a/doc/src/temper_npt.rst +++ b/doc/src/temper_npt.rst @@ -6,7 +6,7 @@ temper/npt command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS temper/npt N M temp fix-ID seed1 seed2 pressure index diff --git a/doc/src/thermo.rst b/doc/src/thermo.rst index 5621b554c8..f918810cc2 100644 --- a/doc/src/thermo.rst +++ b/doc/src/thermo.rst @@ -6,7 +6,7 @@ thermo command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS thermo N diff --git a/doc/src/timer.rst b/doc/src/timer.rst index a604cc2212..13d5a92473 100644 --- a/doc/src/timer.rst +++ b/doc/src/timer.rst @@ -6,7 +6,7 @@ timer command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS timer args diff --git a/doc/src/timestep.rst b/doc/src/timestep.rst index 3142509611..037b3f8642 100644 --- a/doc/src/timestep.rst +++ b/doc/src/timestep.rst @@ -6,7 +6,7 @@ timestep command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS timestep dt diff --git a/doc/src/uncompute.rst b/doc/src/uncompute.rst index 24b7c028d5..e65cbb2038 100644 --- a/doc/src/uncompute.rst +++ b/doc/src/uncompute.rst @@ -6,7 +6,7 @@ uncompute command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS uncompute compute-ID diff --git a/doc/src/undump.rst b/doc/src/undump.rst index 9320338854..89874457b0 100644 --- a/doc/src/undump.rst +++ b/doc/src/undump.rst @@ -6,7 +6,7 @@ undump command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS undump dump-ID diff --git a/doc/src/unfix.rst b/doc/src/unfix.rst index 419559a118..aeb640201d 100644 --- a/doc/src/unfix.rst +++ b/doc/src/unfix.rst @@ -6,7 +6,7 @@ unfix command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS unfix fix-ID diff --git a/doc/src/units.rst b/doc/src/units.rst index 2554806fb5..3f0904f162 100644 --- a/doc/src/units.rst +++ b/doc/src/units.rst @@ -6,7 +6,7 @@ units command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS units style diff --git a/doc/src/variable.rst b/doc/src/variable.rst index a9d21bab9b..28c0d29799 100644 --- a/doc/src/variable.rst +++ b/doc/src/variable.rst @@ -6,7 +6,7 @@ variable command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS variable name style args ... diff --git a/doc/src/velocity.rst b/doc/src/velocity.rst index ee1d546d79..48b0526df9 100644 --- a/doc/src/velocity.rst +++ b/doc/src/velocity.rst @@ -6,7 +6,7 @@ velocity command Syntax """""" -.. parsed-literal:: +.. code-block:: LAMMPS velocity group-ID style args keyword value ... From 6efa8526ba2740838659d4fbf9fcf5c521a8c004 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 11 Jul 2023 19:39:54 -0400 Subject: [PATCH 089/247] work around pygments issue --- doc/src/group2ndx.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/group2ndx.rst b/doc/src/group2ndx.rst index 122341f7f6..e3d8999714 100644 --- a/doc/src/group2ndx.rst +++ b/doc/src/group2ndx.rst @@ -12,11 +12,11 @@ Syntax .. code-block:: LAMMPS - group2ndx file group-ID ... - ndx2group file group-ID ... + group2ndx file group-ID args + ndx2group file group-ID args * file = name of index file to write out or read in -* zero or more group IDs may be appended +* args = zero or more group IDs may be appended Examples """""""" From fe2a275531a16610e8ad38e027f0a03b23e9ae60 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 11 Jul 2023 19:40:14 -0400 Subject: [PATCH 090/247] update list of known commands --- doc/utils/sphinx-config/LAMMPSLexer.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/utils/sphinx-config/LAMMPSLexer.py b/doc/utils/sphinx-config/LAMMPSLexer.py index c8826a9ed6..9a4a1e2bc6 100644 --- a/doc/utils/sphinx-config/LAMMPSLexer.py +++ b/doc/utils/sphinx-config/LAMMPSLexer.py @@ -2,14 +2,15 @@ from pygments.lexer import RegexLexer, words, include, default from pygments.token import * LAMMPS_COMMANDS = ("angle_coeff", "angle_style", "atom_modify", - "atom_style", "balance", "bond_coeff", "bond_style", - "bond_write", "boundary", "clear", "comm_modify", - "comm_style", "compute_modify", "create_atoms", - "create_bonds", "create_box", "delete_atoms", - "delete_bonds", "dielectric", "dihedral_coeff", - "dihedral_style", "dimension", "displace_atoms", - "dump_modify", "dynamical_matrix", "echo", "elif", - "else", "fix_modify", "group2ndx", "hyper", "if", + "atom_style", "angle_write", "balance", "bond_coeff", + "bond_style", "bond_write", "boundary", "clear", + "comm_modify", "comm_style", "compute_modify", + "create_atoms", "create_bonds", "create_box", + "delete_atoms", "delete_bonds", "dielectric", + "dihedral_coeff", "dihedral_style", "dihedral_write", + "dimension", "displace_atoms", "dump_modify", + "dynamical_matrix", "echo", "elif", "else", "fitpod", + "fix_modify", "group2ndx", "hyper", "if", "improper_coeff", "improper_style", "include", "info", "jump", "kim", "kspace_modify", "kspace_style", "label", "labelmap", "lattice", From 9e049147bee35b3b861fce68701f5cefcab4cb00 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 11 Jul 2023 19:50:37 -0400 Subject: [PATCH 091/247] remove accidental commit --- purge-workflows.py | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 purge-workflows.py diff --git a/purge-workflows.py b/purge-workflows.py deleted file mode 100644 index 73b7d22f7a..0000000000 --- a/purge-workflows.py +++ /dev/null @@ -1,22 +0,0 @@ -from yaml import load -import subprocess -try: - from yaml import CLoader as Loader -except ImportError: - from yaml import Loader - -runs = subprocess.check_output('gh api repos/lammps/lammps/actions/runs',shell=True) -data = load(runs,Loader=Loader) -while data['total_count'] > 3: - print('remaining: ', data['total_count']) - num=1 - for d in data['workflow_runs']: - print(num, d['id'],d['name'],d['run_number']) - num += 1 - if num > 4: - subprocess.call('gh api -X DELETE repos/lammps/lammps/actions/runs/' + str(d['id']), shell=True) - #print('gh api -X DELETE repos/lammps/lammps/actions/runs/' + str(d['id'])) - else: - print('skip') - runs = subprocess.check_output('gh api repos/lammps/lammps/actions/runs',shell=True) - data = load(runs,Loader=Loader) From 3b859094bffa575cc7488f87c3d24ad9b039133b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 12 Jul 2023 12:26:55 -0400 Subject: [PATCH 092/247] there is no mandatory group-ID for both commands --- doc/src/group2ndx.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/group2ndx.rst b/doc/src/group2ndx.rst index e3d8999714..077f88e3e8 100644 --- a/doc/src/group2ndx.rst +++ b/doc/src/group2ndx.rst @@ -12,8 +12,8 @@ Syntax .. code-block:: LAMMPS - group2ndx file group-ID args - ndx2group file group-ID args + group2ndx file args + ndx2group file args * file = name of index file to write out or read in * args = zero or more group IDs may be appended From 751dc1cfb6922fbd1a4b3ef6d45c406670d1f9e4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 12 Jul 2023 12:28:03 -0400 Subject: [PATCH 093/247] improve pygments lexer to detect more text to highlight and for more consistency --- doc/utils/sphinx-config/LAMMPSLexer.py | 32 ++++++++++++++++++-------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/doc/utils/sphinx-config/LAMMPSLexer.py b/doc/utils/sphinx-config/LAMMPSLexer.py index 9a4a1e2bc6..48c52d6460 100644 --- a/doc/utils/sphinx-config/LAMMPSLexer.py +++ b/doc/utils/sphinx-config/LAMMPSLexer.py @@ -46,15 +46,24 @@ class LAMMPSLexer(RegexLexer): tokens = { 'root': [ (r'fix\s+', Keyword, 'fix'), + (r'fix_modify\s+', Keyword, 'modify_cmd'), (r'compute\s+', Keyword, 'compute'), + (r'compute_modify\s+', Keyword, 'modify_cmd'), (r'dump\s+', Keyword, 'dump'), + (r'dump_modify\s+', Keyword, 'modify_cmd'), (r'region\s+', Keyword, 'region'), (r'^\s*variable\s+', Keyword, 'variable_cmd'), (r'group\s+', Keyword, 'group'), (r'change_box\s+', Keyword, 'change_box'), - (r'uncompute\s+', Keyword, 'uncompute'), - (r'unfix\s+', Keyword, 'unfix'), - (r'undump\s+', Keyword, 'undump'), + (r'create_box\s+', Keyword, 'create_box'), + (r'delete_bonds\s+', Keyword, 'id_cmd'), + (r'displace_atoms\s+', Keyword, 'id_cmd'), + (r'dynamical_matrix\s+', Keyword, 'id_cmd'), + (r'group2ndx\s+', Keyword, 'ndx_cmd'), + (r'ndx2group\s+', Keyword, 'ndx_cmd'), + (r'uncompute\s+', Keyword, 'id_cmd'), + (r'unfix\s+', Keyword, 'id_cmd'), + (r'undump\s+', Keyword, 'id_cmd'), (r'write_dump\s+', Keyword, 'write_dump'), include('keywords'), (r'#.*?\n', Comment), @@ -91,6 +100,10 @@ class LAMMPSLexer(RegexLexer): ('\(', Name.Variable, 'expression'), ('\)', Name.Variable, '#pop'), ], + 'modify_cmd' : [ + (r'[\w_\-\.\[\]]+', Name.Variable.Identifier), + default('#pop') + ], 'fix' : [ (r'[\w_\-\.\[\]]+', Name.Variable.Identifier), (r'\s+', Whitespace, 'group_id'), @@ -122,15 +135,16 @@ class LAMMPSLexer(RegexLexer): (r'[\w_\-\.\[\]]+', Name.Variable.Identifier), default('#pop') ], - 'unfix' : [ + 'create_box' : [ + (r'[\w_\-\.\[\]]+', Name.Variable.Identifier), + (r'\s+', Whitespace, 'group_id'), + default('#pop') + ], + 'id_cmd' : [ (r'[\w_\-\.\[\]]+', Name.Variable.Identifier), default('#pop') ], - 'undump' : [ - (r'[\w_\-\.\[\]]+', Name.Variable.Identifier), - default('#pop') - ], - 'uncompute' : [ + 'ndx_cmd' : [ (r'[\w_\-\.\[\]]+', Name.Variable.Identifier), default('#pop') ], From fe95dbc82f9d0c258923501a60dde34f3ca0e922 Mon Sep 17 00:00:00 2001 From: jbcouli Date: Wed, 12 Jul 2023 11:37:17 -0600 Subject: [PATCH 094/247] enforce all special_bonds weights to be 1.0 when overlay/pair is used --- doc/src/Howto_bpm.rst | 6 +++--- src/BPM/bond_bpm.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/src/Howto_bpm.rst b/doc/src/Howto_bpm.rst index 380c114866..0ca4e85fbb 100644 --- a/doc/src/Howto_bpm.rst +++ b/doc/src/Howto_bpm.rst @@ -79,9 +79,9 @@ As bonds can be broken between neighbor list builds, the bond styles. There are two possible settings which determine how pair interactions work between bonded particles. First, one can overlay pair forces with bond forces such that all bonded particles also -feel pair interactions. This can be accomplished by using the *overlay/pair* -keyword present in all bpm bond styles and by using the following special -bond settings +feel pair interactions. This can be accomplished by setting the *overlay/pair* +keyword present in all bpm bond styles to *yes* and requires using the +following special bond settings .. code-block:: LAMMPS diff --git a/src/BPM/bond_bpm.cpp b/src/BPM/bond_bpm.cpp index 023988b64d..3ebeed3f1d 100644 --- a/src/BPM/bond_bpm.cpp +++ b/src/BPM/bond_bpm.cpp @@ -94,10 +94,10 @@ void BondBPM::init_style() } if (overlay_flag) { - if (force->special_lj[1] != 1.0) + if (force->special_lj[1] != 1.0 || force->special_lj[2] != 1.0 || force->special_lj[3] != 1.0 || + force->special_coul[1] != 1.0 || force->special_coul[2] != 1.0 || force->special_coul[3] != 1.0) error->all(FLERR, - "With overlay/pair yes, BPM bond styles require special_bonds weight of 1.0 for " - "first neighbors"); + "With overlay/pair yes, BPM bond styles require a value of 1.0 for all special_bonds weights"); if (id_fix_update) { modify->delete_fix(id_fix_update); delete[] id_fix_update; From 24de6377d34fb2685513ce459b679df9534fa119 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 12 Jul 2023 14:43:04 -0400 Subject: [PATCH 095/247] handle more commands with arguments for more consistent syntax highlighting --- doc/utils/sphinx-config/LAMMPSLexer.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/doc/utils/sphinx-config/LAMMPSLexer.py b/doc/utils/sphinx-config/LAMMPSLexer.py index 48c52d6460..d09dda5302 100644 --- a/doc/utils/sphinx-config/LAMMPSLexer.py +++ b/doc/utils/sphinx-config/LAMMPSLexer.py @@ -61,10 +61,18 @@ class LAMMPSLexer(RegexLexer): (r'dynamical_matrix\s+', Keyword, 'id_cmd'), (r'group2ndx\s+', Keyword, 'ndx_cmd'), (r'ndx2group\s+', Keyword, 'ndx_cmd'), + (r'jump\s+', Keyword, 'jump_cmd'), + (r'label\s+', Keyword, 'jump_cmd'), + (r'next\s+', Keyword, 'id_cmd'), + (r'kim\s+', Keyword, 'kim_cmd'), (r'uncompute\s+', Keyword, 'id_cmd'), (r'unfix\s+', Keyword, 'id_cmd'), (r'undump\s+', Keyword, 'id_cmd'), + (r'velocity\s+', Keyword, 'id_cmd'), + (r'write_coeff\s+', Keyword, 'ndx_cmd'), + (r'write_data\s+', Keyword, 'ndx_cmd'), (r'write_dump\s+', Keyword, 'write_dump'), + (r'write_restart\s+', Keyword, 'ndx_cmd'), include('keywords'), (r'#.*?\n', Comment), ('"', String, 'string'), @@ -80,7 +88,7 @@ class LAMMPSLexer(RegexLexer): (r'[\~\.\w_:,@\-\/\\0-9]+', Text), ], 'keywords' : [ - (words(LAMMPS_COMMANDS, suffix=r'\b', prefix=r'^'), Keyword) + (words(LAMMPS_COMMANDS, suffix=r'\b', prefix=r'^\s*'), Keyword) ] , 'variable' : [ @@ -148,6 +156,14 @@ class LAMMPSLexer(RegexLexer): (r'[\w_\-\.\[\]]+', Name.Variable.Identifier), default('#pop') ], + 'jump_cmd' : [ + (r'[\w_\-\.\[\]]+', Literal.String.Char), + default('#pop') + ], + 'kim_cmd' : [ + (r'[\w_\-\.\[\]]+', Literal.String.Single), + default('#pop') + ], 'write_dump' : [ (r'[\w_\-\.\[\]]+', Name.Variable.Identifier), default('#pop') From 6907543e9df06e9868396ba41b4fa26ad474670d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 12 Jul 2023 20:25:49 -0400 Subject: [PATCH 096/247] highlight if/then/elif/else everywhere, but revert for general keywords --- doc/utils/sphinx-config/LAMMPSLexer.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/doc/utils/sphinx-config/LAMMPSLexer.py b/doc/utils/sphinx-config/LAMMPSLexer.py index d09dda5302..a7ba5d92a8 100644 --- a/doc/utils/sphinx-config/LAMMPSLexer.py +++ b/doc/utils/sphinx-config/LAMMPSLexer.py @@ -9,8 +9,8 @@ LAMMPS_COMMANDS = ("angle_coeff", "angle_style", "atom_modify", "delete_atoms", "delete_bonds", "dielectric", "dihedral_coeff", "dihedral_style", "dihedral_write", "dimension", "displace_atoms", "dump_modify", - "dynamical_matrix", "echo", "elif", "else", "fitpod", - "fix_modify", "group2ndx", "hyper", "if", + "dynamical_matrix", "echo", "fitpod", + "fix_modify", "group2ndx", "hyper", "improper_coeff", "improper_style", "include", "info", "jump", "kim", "kspace_modify", "kspace_style", "label", "labelmap", "lattice", @@ -24,7 +24,7 @@ LAMMPS_COMMANDS = ("angle_coeff", "angle_style", "atom_modify", "read_restart", "replicate", "rerun", "reset_atoms", "reset_timestep", "restart", "run", "run_style", "server", "set", "shell", "special_bonds", "suffix", - "tad", "temper", "temper/grem", "temper/npt", "then", + "tad", "temper", "temper/grem", "temper/npt", "thermo", "thermo_modify", "thermo_style", "third_order", "timer", "timestep", "units", "velocity", "write_coeff", "write_data", @@ -52,7 +52,7 @@ class LAMMPSLexer(RegexLexer): (r'dump\s+', Keyword, 'dump'), (r'dump_modify\s+', Keyword, 'modify_cmd'), (r'region\s+', Keyword, 'region'), - (r'^\s*variable\s+', Keyword, 'variable_cmd'), + (r'variable\s+', Keyword, 'variable_cmd'), (r'group\s+', Keyword, 'group'), (r'change_box\s+', Keyword, 'change_box'), (r'create_box\s+', Keyword, 'create_box'), @@ -73,6 +73,7 @@ class LAMMPSLexer(RegexLexer): (r'write_data\s+', Keyword, 'ndx_cmd'), (r'write_dump\s+', Keyword, 'write_dump'), (r'write_restart\s+', Keyword, 'ndx_cmd'), + include('conditionals'), include('keywords'), (r'#.*?\n', Comment), ('"', String, 'string'), @@ -87,6 +88,10 @@ class LAMMPSLexer(RegexLexer): (r'[\+\-\*\^\|\/\!%&=<>]', Operator), (r'[\~\.\w_:,@\-\/\\0-9]+', Text), ], + 'conditionals' : [ + (words(('if','else','elif','then'), suffix=r'\b', prefix=r'\b'), Keyword) + ] + , 'keywords' : [ (words(LAMMPS_COMMANDS, suffix=r'\b', prefix=r'^\s*'), Keyword) ] From acb0b89833f873e77d2def92192c792b64f9a17a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 12 Jul 2023 20:48:14 -0400 Subject: [PATCH 097/247] fix typos --- doc/src/Howto_2d.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Howto_2d.rst b/doc/src/Howto_2d.rst index be223c076a..ae58711063 100644 --- a/doc/src/Howto_2d.rst +++ b/doc/src/Howto_2d.rst @@ -13,9 +13,9 @@ box with a single z plane of atoms - e.g. .. code-block:: LAMMPS - create box 1 -10 10 -10 10 -0.25 0.25 + create_box 1 -10 10 -10 10 -0.25 0.25 -If using the :doc:`read data ` command to read in a file of +If using the :doc:`read_data ` command to read in a file of atom coordinates, set the "zlo zhi" values to be finite but narrow, similar to the create_box command settings just described. For each atom in the file, assign a z coordinate so it falls inside the From 02d189fb23d7b61f1cacb3bbf38bc5e157ad8739 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 13 Jul 2023 10:53:56 -0400 Subject: [PATCH 098/247] avoid false positive with static code analysis --- src/compute_count_type.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/compute_count_type.cpp b/src/compute_count_type.cpp index 3cb2e6bc3a..3d4815f9ff 100644 --- a/src/compute_count_type.cpp +++ b/src/compute_count_type.cpp @@ -159,6 +159,8 @@ void ComputeCountType::compute_vector() nvec = count_dihedrals(); else if (mode == IMPROPER) nvec = count_impropers(); + else + nvec = 0; // sum across procs as bigint, then convert to double // correct for multiple counting if newton_bond off From 620c60122a9e68ec036e824fc51bd50517a11fdc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 14 Jul 2023 10:08:09 -0400 Subject: [PATCH 099/247] should not use pow() for computing cube, use multiplication. --- lib/gpu/lal_amoeba.cu | 3 ++- lib/gpu/lal_hippo.cu | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/gpu/lal_amoeba.cu b/lib/gpu/lal_amoeba.cu index 82a42cff6c..799cfe6d63 100644 --- a/lib/gpu/lal_amoeba.cu +++ b/lib/gpu/lal_amoeba.cu @@ -992,7 +992,8 @@ __kernel void k_amoeba_umutual2b(const __global numtyp4 *restrict x_, numtyp damp = pdi * coeff[jtype].x; // pdamp[jtype] if (damp != (numtyp)0.0) { numtyp pgamma = MIN(pti,coeff[jtype].y); // thole[jtype] - damp = pgamma * ucl_powr(r/damp,(numtyp)3.0); + numtyp rdamp = r/damp; + damp = pgamma * rdamp*rdamp*rdamp; if (damp < (numtyp)50.0) { numtyp expdamp = ucl_exp(-damp); scale3 = (numtyp)1.0 - expdamp; diff --git a/lib/gpu/lal_hippo.cu b/lib/gpu/lal_hippo.cu index 0a0f4f02be..92cb55f69b 100644 --- a/lib/gpu/lal_hippo.cu +++ b/lib/gpu/lal_hippo.cu @@ -845,7 +845,7 @@ __kernel void k_hippo_dispersion(const __global numtyp4 *restrict x_, numtyp scale = factor_disp * damp*damp; scale = scale - (numtyp)1.0; numtyp e = -ci * ck * (expa+scale) / r6; - numtyp rterm = -ucl_powr(ralpha2,(numtyp)3.0) * expterm / r; + numtyp rterm = -ralpha2*ralpha2*ralpha2 * expterm / r; numtyp de = (numtyp)-6.0*e/r2 - ci*ck*rterm/r7 - (numtyp)2.0*ci*ck*factor_disp*damp*ddamp/r7; energy+= e; From be2e437cecf47a20fcb5266277984b5a20a81bbd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 14 Jul 2023 10:08:59 -0400 Subject: [PATCH 100/247] use approximation for erfc() on OpenCL for Intel since the OpenCL version seems broken --- lib/gpu/lal_amoeba.cu | 20 ++++++++++++++++++++ lib/gpu/lal_hippo.cu | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/lib/gpu/lal_amoeba.cu b/lib/gpu/lal_amoeba.cu index 799cfe6d63..e7c313301e 100644 --- a/lib/gpu/lal_amoeba.cu +++ b/lib/gpu/lal_amoeba.cu @@ -585,7 +585,12 @@ __kernel void k_amoeba_multipole(const __global numtyp4 *restrict x_, numtyp ralpha = aewald * r; numtyp exp2a = ucl_exp(-ralpha*ralpha); numtyp bn[6]; +#ifdef INTEL_OCL + numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*ralpha); + bn[0] = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * exp2a * rinv; +#else bn[0] = ucl_erfc(ralpha) * rinv; +#endif numtyp alsq2 = (numtyp)2.0 * aewald*aewald; numtyp alsq2n = (numtyp)0.0; @@ -802,7 +807,12 @@ __kernel void k_amoeba_udirect2b(const __global numtyp4 *restrict x_, numtyp ralpha = aewald * r; numtyp exp2a = ucl_exp(-ralpha*ralpha); numtyp bn[4], bcn[3]; +#ifdef INTEL_OCL + numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*ralpha); + bn[0] = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * exp2a * rinv; +#else bn[0] = ucl_erfc(ralpha) * rinv; +#endif numtyp aefac = aesq2n; for (int m = 1; m <= 3; m++) { @@ -976,7 +986,12 @@ __kernel void k_amoeba_umutual2b(const __global numtyp4 *restrict x_, numtyp ralpha = aewald * r; numtyp exp2a = ucl_exp(-ralpha*ralpha); numtyp bn[4]; +#ifdef INTEL_OCL + numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*ralpha); + bn[0] = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * exp2a * rinv; +#else bn[0] = ucl_erfc(ralpha) * rinv; +#endif numtyp aefac = aesq2n; for (int m = 1; m <= 3; m++) { @@ -1231,7 +1246,12 @@ __kernel void k_amoeba_polar(const __global numtyp4 *restrict x_, numtyp ralpha = aewald * r; numtyp exp2a = ucl_exp(-ralpha*ralpha); numtyp bn[5]; +#ifdef INTEL_OCL + numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*ralpha); + bn[0] = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * exp2a * rinv; +#else bn[0] = ucl_erfc(ralpha) * rinv; +#endif numtyp alsq2 = (numtyp)2.0 * aewald*aewald; numtyp alsq2n = (numtyp)0.0; diff --git a/lib/gpu/lal_hippo.cu b/lib/gpu/lal_hippo.cu index 92cb55f69b..7de7bd594f 100644 --- a/lib/gpu/lal_hippo.cu +++ b/lib/gpu/lal_hippo.cu @@ -1072,7 +1072,12 @@ __kernel void k_hippo_multipole(const __global numtyp4 *restrict x_, numtyp ralpha = aewald * r; numtyp exp2a = ucl_exp(-ralpha*ralpha); numtyp bn[6]; +#ifdef INTEL_OCL + numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*ralpha); + bn[0] = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * exp2a * rinv; +#else bn[0] = ucl_erfc(ralpha) * rinv; +#endif numtyp alsq2 = (numtyp)2.0 * aewald*aewald; numtyp alsq2n = (numtyp)0.0; @@ -1319,7 +1324,12 @@ __kernel void k_hippo_udirect2b(const __global numtyp4 *restrict x_, numtyp ralpha = aewald * r; numtyp exp2a = ucl_exp(-ralpha*ralpha); numtyp bn[4]; +#ifdef INTEL_OCL + numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*ralpha); + bn[0] = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * exp2a * rinv; +#else bn[0] = ucl_erfc(ralpha) * rinv; +#endif numtyp aefac = aesq2n; for (int m = 1; m <= 3; m++) { @@ -1477,7 +1487,12 @@ __kernel void k_hippo_umutual2b(const __global numtyp4 *restrict x_, numtyp ralpha = aewald * r; numtyp exp2a = ucl_exp(-ralpha*ralpha); numtyp bn[4]; +#ifdef INTEL_OCL + numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*ralpha); + bn[0] = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * exp2a * rinv; +#else bn[0] = ucl_erfc(ralpha) * rinv; +#endif numtyp aefac = aesq2n; for (int m = 1; m <= 3; m++) { @@ -1702,7 +1717,12 @@ __kernel void k_hippo_polar(const __global numtyp4 *restrict x_, numtyp ralpha = aewald * r; numtyp exp2a = ucl_exp(-ralpha*ralpha); numtyp bn[5]; +#ifdef INTEL_OCL + numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*ralpha); + bn[0] = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * exp2a * rinv; +#else bn[0] = ucl_erfc(ralpha) * rinv; +#endif numtyp alsq2 = (numtyp)2.0 * aewald*aewald; numtyp alsq2n = (numtyp)0.0; From 78d3d4948f281c62e57e4f5ec200afcca5145ef2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 14 Jul 2023 20:06:31 -0400 Subject: [PATCH 101/247] fix off-by-one bug in argument parsing --- src/REPLICA/temper_npt.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/REPLICA/temper_npt.cpp b/src/REPLICA/temper_npt.cpp index 6567cb83e1..6aa895e813 100644 --- a/src/REPLICA/temper_npt.cpp +++ b/src/REPLICA/temper_npt.cpp @@ -89,7 +89,9 @@ void TemperNPT::command(int narg, char **arg) seed_boltz = utils::inumeric(FLERR,arg[5],false,lmp); my_set_temp = universe->iworld; - if (narg == 8) my_set_temp = utils::inumeric(FLERR,arg[6],false,lmp); + if (narg == 8) my_set_temp = utils::inumeric(FLERR,arg[7],false,lmp); + if ((my_set_temp < 0) || (my_set_temp > 7)) + error->universe_all(FLERR,"Invalid partition number for temperature index keyword"); // swap frequency must evenly divide total # of timesteps From e6873bb7c816cea6e5f46ad47f8b650b4b70ec79 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 14 Jul 2023 20:07:09 -0400 Subject: [PATCH 102/247] modernize code --- src/REPLICA/temper_npt.cpp | 35 ++++++++++++++++------------------- src/REPLICA/temper_npt.h | 3 +-- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/REPLICA/temper_npt.cpp b/src/REPLICA/temper_npt.cpp index 6aa895e813..303eff59b3 100644 --- a/src/REPLICA/temper_npt.cpp +++ b/src/REPLICA/temper_npt.cpp @@ -52,10 +52,10 @@ TemperNPT::~TemperNPT() MPI_Comm_free(&roots); if (ranswap) delete ranswap; delete ranboltz; - delete [] set_temp; - delete [] temp2world; - delete [] world2temp; - delete [] world2root; + delete[] set_temp; + delete[] temp2world; + delete[] world2temp; + delete[] world2root; } /* ---------------------------------------------------------------------- @@ -68,8 +68,7 @@ void TemperNPT::command(int narg, char **arg) error->all(FLERR,"Must have more than one processor partition to temper"); if (domain->box_exist == 0) error->all(FLERR,"temper/npt command before simulation box is defined"); - if (narg != 7 && narg != 8) - error->universe_all(FLERR,"Illegal temper/npt command"); + if (narg != 7 && narg != 8) error->universe_all(FLERR,"Illegal temper/npt command"); int nsteps = utils::inumeric(FLERR,arg[0],false,lmp); nevery = utils::inumeric(FLERR,arg[1],false,lmp); @@ -80,10 +79,9 @@ void TemperNPT::command(int narg, char **arg) if (timer->is_timeout()) return; - for (whichfix = 0; whichfix < modify->nfix; whichfix++) - if (strcmp(arg[3],modify->fix[whichfix]->id) == 0) break; - if (whichfix == modify->nfix) - error->universe_all(FLERR,"Tempering fix ID is not defined"); + whichfix = modify->get_fix_by_id(arg[3]); + if (!whichfix) + error->universe_all(FLERR,fmt::format("Tempering fix ID {} is not defined", arg[3])); seed_swap = utils::inumeric(FLERR,arg[4],false,lmp); seed_boltz = utils::inumeric(FLERR,arg[5],false,lmp); @@ -106,8 +104,8 @@ void TemperNPT::command(int narg, char **arg) // change the volume. This currently only applies to fix npt and // fix rigid/npt variants - if ( (!utils::strmatch(modify->fix[whichfix]->style,"^npt")) && - (!utils::strmatch(modify->fix[whichfix]->style,"^rigid/npt")) ) + if ( (!utils::strmatch(whichfix->style,"^npt")) && + (!utils::strmatch(whichfix->style,"^rigid/npt")) ) error->universe_all(FLERR,"Tempering temperature and pressure fix is not supported"); // setup for long tempering run @@ -118,8 +116,7 @@ void TemperNPT::command(int narg, char **arg) update->nsteps = nsteps; update->beginstep = update->firststep = update->ntimestep; update->endstep = update->laststep = update->firststep + nsteps; - if (update->laststep < 0) - error->all(FLERR,"Too many timesteps"); + if (update->laststep < 0) error->all(FLERR,"Too many timesteps"); lmp->init(); @@ -135,9 +132,9 @@ void TemperNPT::command(int narg, char **arg) // pe_compute = ptr to thermo_pe compute // notify compute it will be called at first swap - int id = modify->find_compute("thermo_pe"); - if (id < 0) error->all(FLERR,"Tempering could not find thermo_pe compute"); - Compute *pe_compute = modify->compute[id]; + Compute *pe_compute = modify->get_compute_by_id("thermo_pe"); + if (!pe_compute) error->all(FLERR,"Tempering could not find thermo_pe compute"); + pe_compute->addstep(update->ntimestep + nevery); // create MPI communicator for root proc from each world @@ -186,7 +183,7 @@ void TemperNPT::command(int narg, char **arg) if (narg == 8) { double new_temp = set_temp[my_set_temp]; - modify->fix[whichfix]->reset_target(new_temp); + whichfix->reset_target(new_temp); } // setup tempering runs @@ -327,7 +324,7 @@ void TemperNPT::command(int narg, char **arg) if (swap) { new_temp = set_temp[partner_set_temp]; - modify->fix[whichfix]->reset_target(new_temp); + whichfix->reset_target(new_temp); } // update my_set_temp and temp2world on every proc diff --git a/src/REPLICA/temper_npt.h b/src/REPLICA/temper_npt.h index 3a51fc74e4..2e831c55ef 100644 --- a/src/REPLICA/temper_npt.h +++ b/src/REPLICA/temper_npt.h @@ -42,8 +42,7 @@ class TemperNPT : public Command { int nswaps; // # of tempering swaps to perform int seed_swap; // 0 = toggle swaps, n = RNG for swap direction int seed_boltz; // seed for Boltz factor comparison - int whichfix; // index of temperature fix to use - int fixstyle; // what kind of temperature fix is used + class Fix *whichfix; // index of temperature fix to use int my_set_temp; // which set temp I am simulating double *set_temp; // static list of replica set temperatures From baac049aed55d644783289d424ed0528c81e0ad3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 15 Jul 2023 12:25:03 -0400 Subject: [PATCH 103/247] update LAMMPS input file syntax highlighting for recent changes --- tools/vim/lammps.vim | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/tools/vim/lammps.vim b/tools/vim/lammps.vim index 008ae1ee3f..9565d0a86e 100644 --- a/tools/vim/lammps.vim +++ b/tools/vim/lammps.vim @@ -1,23 +1,27 @@ " Vim syntax file -" Language: Lammps Simulation Script File +" Language: Lammps Simulation Script File " Maintainer: Gerolf Ziegenhain " Updates: Axel Kohlmeyer , Sam Bateman , Daniel Möller Montull , Eryk Skalinski -" Latest Revision: 2022-08-17 +" Latest Revision: 2023-07-15 syn clear -syn keyword lammpsOutput log write_data write_dump info shell write_restart restart dump undump thermo thermo_modify thermo_style print timer +" Add '/' to list of valid keyword characters +set iskeyword+=/ + +syn keyword lammpsOutput log write_data write_dump write_coeff info shell write_restart restart dump undump thermo thermo_modify +syn keyword lammpsOutput thermo_style print timer syn keyword lammpsRead include read_restart read_data read_dump molecule syn keyword lammpsLattice boundary units atom_style lattice region create_box create_atoms dielectric syn keyword lammpsLattice delete_atoms displace_atoms change_box dimension replicate -syn keyword lammpsParticle pair_coeff pair_style pair_modify pair_write mass velocity angle_coeff angle_style +syn keyword lammpsParticle pair_coeff pair_style pair_modify pair_write mass velocity angle_coeff angle_style angle_write syn keyword lammpsParticle atom_modify atom_style bond_coeff bond_style bond_write create_bonds delete_bonds kspace_style -syn keyword lammpsParticle kspace_modify dihedral_style dihedral_coeff improper_style improper_coeff -syn keyword lammpsSetup min_style fix_modify run_style timestep neighbor neigh_modify fix unfix suffix special_bonds -syn keyword lammpsSetup balance box clear comm_modify comm_style newton package processors reset_ids reset_timestep -syn keyword lammpsRun minimize run rerun tad neb prd quit server temper temper/grem temper/npt -syn keyword lammpsRun min/spin message hyper dynamical_matrix -syn keyword lammpsDefine variable group compute python set uncompute kim_query +syn keyword lammpsParticle kspace_modify dihedral_style dihedral_coeff dihedral_write improper_style improper_coeff labelmap +syn keyword lammpsSetup min_style min_modify fix_modify run_style timestep neighbor neigh_modify fix unfix suffix special_bonds +syn keyword lammpsSetup balance box clear comm_modify comm_style newton package processors reset_atoms reset_ids reset_timestep +syn keyword lammpsRun minimize minimize/kk run rerun tad neb neb/spin prd quit server temper/npt temper/grem temper +syn keyword lammpsRun message hyper dynamical_matrix dynamical_matrix/kk third_order third_order/kk fitpod +syn keyword lammpsDefine variable group compute python set uncompute kim_query kim group2ndx ndx2group mdi syn keyword lammpsRepeat jump next loop From 77bdcb3e19679ae43ed1b4b969e5b818939be5f1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 15 Jul 2023 12:36:41 -0400 Subject: [PATCH 104/247] small doc style update --- doc/src/dynamical_matrix.rst | 2 +- doc/src/minimize.rst | 4 ++-- doc/src/third_order.rst | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/src/dynamical_matrix.rst b/doc/src/dynamical_matrix.rst index 93e4c2a1aa..0243fb49db 100644 --- a/doc/src/dynamical_matrix.rst +++ b/doc/src/dynamical_matrix.rst @@ -4,7 +4,7 @@ dynamical_matrix command ======================== -Accelerator Variants: dynamical_matrix/kk +Accelerator Variant: dynamical_matrix/kk Syntax """""" diff --git a/doc/src/minimize.rst b/doc/src/minimize.rst index c71c8e3632..56efa12f44 100644 --- a/doc/src/minimize.rst +++ b/doc/src/minimize.rst @@ -1,10 +1,10 @@ .. index:: minimize +.. index:: minimize/kk minimize command ================ -minimize/kk command -=================== +Accelerator Variant: minimize/kk Syntax """""" diff --git a/doc/src/third_order.rst b/doc/src/third_order.rst index 2635c92f84..bbbf424c44 100644 --- a/doc/src/third_order.rst +++ b/doc/src/third_order.rst @@ -4,7 +4,7 @@ third_order command =================== -Accelerator Variants: third_order/kk +Accelerator Variant: third_order/kk Syntax """""" From fd0a72eab53889af860c33d406b1390fd59ce609 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 15 Jul 2023 12:37:12 -0400 Subject: [PATCH 105/247] modernize and consolidate style across all three temper command variants --- src/REPLICA/temper.cpp | 58 +++++++++++++--------------- src/REPLICA/temper.h | 3 +- src/REPLICA/temper_grem.cpp | 75 ++++++++++++++++++------------------- src/REPLICA/temper_grem.h | 4 +- src/REPLICA/temper_npt.cpp | 33 ++++++++-------- 5 files changed, 82 insertions(+), 91 deletions(-) diff --git a/src/REPLICA/temper.cpp b/src/REPLICA/temper.cpp index 9e7e67d79d..adbdb4d742 100644 --- a/src/REPLICA/temper.cpp +++ b/src/REPLICA/temper.cpp @@ -37,7 +37,7 @@ using namespace LAMMPS_NS; -// #define TEMPER_DEBUG 1 +#define TEMPER_DEBUG 0 /* ---------------------------------------------------------------------- */ @@ -50,10 +50,10 @@ Temper::~Temper() MPI_Comm_free(&roots); if (ranswap) delete ranswap; delete ranboltz; - delete [] set_temp; - delete [] temp2world; - delete [] world2temp; - delete [] world2root; + delete[] set_temp; + delete[] temp2world; + delete[] world2temp; + delete[] world2root; } /* ---------------------------------------------------------------------- @@ -63,11 +63,10 @@ Temper::~Temper() void Temper::command(int narg, char **arg) { if (universe->nworlds == 1) - error->all(FLERR,"Must have more than one processor partition to temper"); + error->universe_all(FLERR,"More than one processor partition required for temper command"); if (domain->box_exist == 0) - error->all(FLERR,"Temper command before simulation box is defined"); - if (narg != 6 && narg != 7) - error->universe_all(FLERR,"Illegal temper command"); + error->universe_all(FLERR,"Temper command before simulation box is defined"); + if (narg != 6 && narg != 7) error->universe_all(FLERR,"Illegal temper command"); int nsteps = utils::inumeric(FLERR,arg[0],false,lmp); nevery = utils::inumeric(FLERR,arg[1],false,lmp); @@ -77,10 +76,9 @@ void Temper::command(int narg, char **arg) if (timer->is_timeout()) return; - for (whichfix = 0; whichfix < modify->nfix; whichfix++) - if (strcmp(arg[3],modify->fix[whichfix]->id) == 0) break; - if (whichfix == modify->nfix) - error->universe_all(FLERR,"Tempering fix ID is not defined"); + whichfix = modify->get_fix_by_id(arg[3]); + if (!whichfix) + error->universe_all(FLERR,fmt::format("Tempering fix ID {} is not defined", arg[3])); seed_swap = utils::inumeric(FLERR,arg[4],false,lmp); seed_boltz = utils::inumeric(FLERR,arg[5],false,lmp); @@ -88,7 +86,7 @@ void Temper::command(int narg, char **arg) my_set_temp = universe->iworld; if (narg == 7) my_set_temp = utils::inumeric(FLERR,arg[6],false,lmp); if ((my_set_temp < 0) || (my_set_temp >= universe->nworlds)) - error->universe_one(FLERR,"Illegal temperature index"); + error->universe_one(FLERR,"Invalid temperature index value"); // swap frequency must evenly divide total # of timesteps @@ -101,11 +99,11 @@ void Temper::command(int narg, char **arg) // fix style must be appropriate for temperature control, i.e. it needs // to provide a working Fix::reset_target() and must not change the volume. - if ((!utils::strmatch(modify->fix[whichfix]->style,"^nvt")) && - (!utils::strmatch(modify->fix[whichfix]->style,"^langevin")) && - (!utils::strmatch(modify->fix[whichfix]->style,"^gl[de]$")) && - (!utils::strmatch(modify->fix[whichfix]->style,"^rigid/nvt")) && - (!utils::strmatch(modify->fix[whichfix]->style,"^temp/"))) + if ((!utils::strmatch(whichfix->style,"^nvt")) && + (!utils::strmatch(whichfix->style,"^langevin")) && + (!utils::strmatch(whichfix->style,"^gl[de]$")) && + (!utils::strmatch(whichfix->style,"^rigid/nvt")) && + (!utils::strmatch(whichfix->style,"^temp/"))) error->universe_all(FLERR,"Tempering temperature fix is not supported"); // setup for long tempering run @@ -116,8 +114,7 @@ void Temper::command(int narg, char **arg) update->nsteps = nsteps; update->beginstep = update->firststep = update->ntimestep; update->endstep = update->laststep = update->firststep + nsteps; - if (update->laststep < 0) - error->all(FLERR,"Too many timesteps"); + if (update->laststep < 0) error->all(FLERR,"Too many timesteps"); lmp->init(); @@ -132,9 +129,9 @@ void Temper::command(int narg, char **arg) // pe_compute = ptr to thermo_pe compute // notify compute it will be called at first swap - int id = modify->find_compute("thermo_pe"); - if (id < 0) error->all(FLERR,"Tempering could not find thermo_pe compute"); - Compute *pe_compute = modify->compute[id]; + Compute *pe_compute = modify->get_compute_by_id("thermo_pe"); + if (!pe_compute) error->all(FLERR,"Tempering could not find thermo_pe compute"); + pe_compute->addstep(update->ntimestep + nevery); // create MPI communicator for root proc from each world @@ -183,7 +180,7 @@ void Temper::command(int narg, char **arg) if (narg == 7) { double new_temp = set_temp[my_set_temp]; - modify->fix[whichfix]->reset_target(new_temp); + whichfix->reset_target(new_temp); } // setup tempering runs @@ -289,13 +286,12 @@ void Temper::command(int narg, char **arg) else MPI_Recv(&swap,1,MPI_INT,partner,0,universe->uworld,MPI_STATUS_IGNORE); -#ifdef TEMPER_DEBUG +#if TEMPER_DEBUG if (me_universe < partner) - printf("SWAP %d & %d: yes = %d,Ts = %d %d, PEs = %g %g, Bz = %g %g\n", - me_universe,partner,swap,my_set_temp,partner_set_temp, - pe,pe_partner,boltz_factor,exp(boltz_factor)); + fprintf(universe->uscreen,"SWAP %d & %d: yes = %d,Ts = %d %d, PEs = %g %g, Bz = %g %g\n", + me_universe,partner,swap,my_set_temp,partner_set_temp, + pe,pe_partner,boltz_factor,exp(boltz_factor)); #endif - } // bcast swap result to other procs in my world @@ -310,7 +306,7 @@ void Temper::command(int narg, char **arg) if (swap) { new_temp = set_temp[partner_set_temp]; - modify->fix[whichfix]->reset_target(new_temp); + whichfix->reset_target(new_temp); } // update my_set_temp and temp2world on every proc diff --git a/src/REPLICA/temper.h b/src/REPLICA/temper.h index b557e8ddd8..d959892587 100644 --- a/src/REPLICA/temper.h +++ b/src/REPLICA/temper.h @@ -40,8 +40,7 @@ class Temper : public Command { int nswaps; // # of tempering swaps to perform int seed_swap; // 0 = toggle swaps, n = RNG for swap direction int seed_boltz; // seed for Boltz factor comparison - int whichfix; // index of temperature fix to use - int fixstyle; // what kind of temperature fix is used + class Fix *whichfix; // index of temperature fix to use int my_set_temp; // which set temp I am simulating double *set_temp; // static list of replica set temperatures diff --git a/src/REPLICA/temper_grem.cpp b/src/REPLICA/temper_grem.cpp index 68fbb4eef6..303f502309 100644 --- a/src/REPLICA/temper_grem.cpp +++ b/src/REPLICA/temper_grem.cpp @@ -24,6 +24,7 @@ #include "finish.h" #include "fix.h" #include "fix_grem.h" +#include "fix_nh.h" #include "force.h" #include "integrate.h" #include "modify.h" @@ -37,7 +38,7 @@ using namespace LAMMPS_NS; -//#define TEMPER_DEBUG 1 +#define TEMPER_DEBUG 0 /* ---------------------------------------------------------------------- */ @@ -50,11 +51,10 @@ TemperGrem::~TemperGrem() MPI_Comm_free(&roots); if (ranswap) delete ranswap; delete ranboltz; - delete [] set_lambda; - delete [] lambda2world; - delete [] world2lambda; - delete [] world2root; - delete [] id_nh; + delete[] set_lambda; + delete[] lambda2world; + delete[] world2lambda; + delete[] world2root; } /* ---------------------------------------------------------------------- @@ -64,46 +64,50 @@ TemperGrem::~TemperGrem() void TemperGrem::command(int narg, char **arg) { if (universe->nworlds == 1) - error->all(FLERR,"Must have more than one processor partition to temper"); + error->universe_all(FLERR,"More than one processor partition required for temper/grem command"); if (domain->box_exist == 0) - error->all(FLERR,"Temper/gREM command before simulation box is defined"); - if (narg != 7 && narg != 8) - error->universe_all(FLERR,"Illegal temper command"); + error->universe_all(FLERR,"Temper/grem command before simulation box is defined"); + if (narg != 7 && narg != 8) error->universe_all(FLERR,"Illegal temper/grem command"); int nsteps = utils::inumeric(FLERR,arg[0],false,lmp); nevery = utils::inumeric(FLERR,arg[1],false,lmp); double lambda = utils::numeric(FLERR,arg[2],false,lmp); // ignore temper command, if walltime limit was already reached + if (timer->is_timeout()) return; - // Get and check if gREM fix exists - for (whichfix = 0; whichfix < modify->nfix; whichfix++) - if (strcmp(arg[3],modify->fix[whichfix]->id) == 0) break; - if (whichfix == modify->nfix) - error->universe_all(FLERR,"Tempering fix ID is not defined"); - fix_grem = dynamic_cast(modify->fix[whichfix]); + // Get and check if gREM fix exists and is correct style + + auto ifix = modify->get_fix_by_id(arg[3]); + if (!ifix) error->universe_all(FLERR,fmt::format("Tempering fix ID {} is not defined", arg[3])); + + fix_grem = dynamic_cast(ifix); + if (!fix_grem || (strcmp(ifix->style,"grem") != 0)) + error->universe_all(FLERR,"Tempering temperature fix is of incorrect style"); // Check input values lambdas should be equal, assign other gREM values if (lambda != fix_grem->lambda) - error->universe_all(FLERR,"Lambda from tempering and fix in the same world" - " must be the same"); + error->universe_all(FLERR,"Lambda from tempering and fix in the same world must be the same"); double eta = fix_grem->eta; double h0 = fix_grem->h0; double pressref = 0; // Get and check for nh fix - id_nh = utils::strdup(arg[4]); - int ifix = modify->find_fix(id_nh); - if (ifix < 0) - error->all(FLERR,"Fix id for nvt or npt fix does not exist"); - Fix *nh = modify->fix[ifix]; + + FixNH *nh = dynamic_cast(modify->get_fix_by_id(arg[4])); + if (!nh) + error->all(FLERR,fmt::format("Fix {} for Nose-Hoover fix does not exist", arg[4])); // get result from nvt vs npt check from fix_grem + int pressflag = fix_grem->pressflag; + // fix_grem does all the checking... + if (pressflag) { - auto p_start = (double *) nh->extract("p_start",ifix); + int dummy; + auto p_start = (double *) nh->extract("p_start",dummy); pressref = p_start[0]; } @@ -123,11 +127,6 @@ void TemperGrem::command(int narg, char **arg) if (nswaps*nevery != nsteps) error->universe_all(FLERR,"Non integer # of swaps in temper command"); - // Must be used with fix_grem - - if (strcmp(modify->fix[whichfix]->style,"grem") != 0) - error->universe_all(FLERR,"Tempering temperature fix is not supported"); - // setup for long tempering run update->whichflag = 1; @@ -136,8 +135,7 @@ void TemperGrem::command(int narg, char **arg) update->nsteps = nsteps; update->beginstep = update->firststep = update->ntimestep; update->endstep = update->laststep = update->firststep + nsteps; - if (update->laststep < 0) - error->all(FLERR,"Too many timesteps"); + if (update->laststep < 0) error->all(FLERR,"Too many timesteps"); lmp->init(); @@ -152,9 +150,9 @@ void TemperGrem::command(int narg, char **arg) // pe_compute = ptr to thermo_pe compute // notify compute it will be called at first swap - int id = modify->find_compute("thermo_pe"); - if (id < 0) error->all(FLERR,"Tempering could not find thermo_pe compute"); - Compute *pe_compute = modify->compute[id]; + Compute *pe_compute = modify->get_compute_by_id("thermo_pe"); + if (!pe_compute) error->all(FLERR,"Tempering could not find thermo_pe compute"); + pe_compute->addstep(update->ntimestep + nevery); // create MPI communicator for root proc from each world @@ -319,13 +317,12 @@ void TemperGrem::command(int narg, char **arg) else MPI_Recv(&swap,1,MPI_INT,partner,0,universe->uworld,MPI_STATUS_IGNORE); -#ifdef TEMPER_DEBUG +#if TEMPER_DEBUG if (me_universe < partner) - printf("SWAP %d & %d: yes = %d,Ts = %d %d, PEs = %g %g, Bz = %g %g\n", - me_universe,partner,swap,my_set_lambda,partner_set_lambda, - weight,weight_partner,boltz_factor,exp(boltz_factor)); + fprintf(universe->uscreen,"SWAP %d & %d: yes = %d,Ts = %d %d, PEs = %g %g, Bz = %g %g\n", + me_universe,partner,swap,my_set_lambda,partner_set_lambda, + weight,weight_partner,boltz_factor,exp(boltz_factor)); #endif - } // bcast swap result to other procs in my world diff --git a/src/REPLICA/temper_grem.h b/src/REPLICA/temper_grem.h index 3c41f9b082..c66239a794 100644 --- a/src/REPLICA/temper_grem.h +++ b/src/REPLICA/temper_grem.h @@ -40,8 +40,7 @@ class TemperGrem : public Command { int nswaps; // # of tempering swaps to perform int seed_swap; // 0 = toggle swaps, n = RNG for swap direction int seed_boltz; // seed for Boltz factor comparison - int whichfix; // index of temperature fix to use - int fixstyle; // what kind of temperature fix is used + class Fix *whichfix; // index of temperature fix to use int my_set_lambda; // which set lambda I am simulating double *set_lambda; // static list of replica set lambdas @@ -54,7 +53,6 @@ class TemperGrem : public Command { class FixGrem *fix_grem; protected: - char *id_nh; int pressflag; }; diff --git a/src/REPLICA/temper_npt.cpp b/src/REPLICA/temper_npt.cpp index 303eff59b3..d814bf6725 100644 --- a/src/REPLICA/temper_npt.cpp +++ b/src/REPLICA/temper_npt.cpp @@ -65,9 +65,9 @@ TemperNPT::~TemperNPT() void TemperNPT::command(int narg, char **arg) { if (universe->nworlds == 1) - error->all(FLERR,"Must have more than one processor partition to temper"); + error->universe_all(FLERR,"More than one processor partition required for temper/npt command"); if (domain->box_exist == 0) - error->all(FLERR,"temper/npt command before simulation box is defined"); + error->universe_all(FLERR,"Temper/npt command before simulation box is defined"); if (narg != 7 && narg != 8) error->universe_all(FLERR,"Illegal temper/npt command"); int nsteps = utils::inumeric(FLERR,arg[0],false,lmp); @@ -88,8 +88,8 @@ void TemperNPT::command(int narg, char **arg) my_set_temp = universe->iworld; if (narg == 8) my_set_temp = utils::inumeric(FLERR,arg[7],false,lmp); - if ((my_set_temp < 0) || (my_set_temp > 7)) - error->universe_all(FLERR,"Invalid partition number for temperature index keyword"); + if ((my_set_temp < 0) || (my_set_temp >= universe->nworlds)) + error->universe_one(FLERR,"Invalid temperature index value"); // swap frequency must evenly divide total # of timesteps @@ -278,22 +278,23 @@ void TemperNPT::command(int narg, char **arg) swap = 0; if (partner != -1) { - if (me_universe > partner) { + if (me_universe > partner) MPI_Send(&pe,1,MPI_DOUBLE,partner,0,universe->uworld); - } - else { + else MPI_Recv(&pe_partner,1,MPI_DOUBLE,partner,0,universe->uworld,MPI_STATUS_IGNORE); - } - if (me_universe > partner) { + + if (me_universe > partner) MPI_Send(&vol,1, MPI_DOUBLE,partner,0,universe->uworld); - } - else { + else MPI_Recv(&vol_partner,1,MPI_DOUBLE,partner,0,universe->uworld,MPI_STATUS_IGNORE); - } - // Acceptance criteria changed for NPT ensemble + + // Acceptance criteria changed versus temper command for NPT ensemble if (me_universe < partner) { press_units = press_set/nktv2p; - delr = (pe_partner - pe)*(1.0/(boltz*set_temp[my_set_temp]) - 1.0/(boltz*set_temp[partner_set_temp])) + press_units*(1.0/(boltz*set_temp[my_set_temp]) - 1.0/(boltz*set_temp[partner_set_temp]))*(vol_partner - vol); + delr = (pe_partner - pe)*(1.0/(boltz*set_temp[my_set_temp]) + - 1.0/(boltz*set_temp[partner_set_temp])) + + press_units*(1.0/(boltz*set_temp[my_set_temp]) + - 1.0/(boltz*set_temp[partner_set_temp]))*(vol_partner - vol); boltz_factor = -delr; if (boltz_factor >= 0.0) swap = 1; else if (ranboltz->uniform() < exp(boltz_factor)) swap = 1; @@ -303,13 +304,13 @@ void TemperNPT::command(int narg, char **arg) MPI_Send(&swap,1,MPI_INT,partner,0,universe->uworld); else MPI_Recv(&swap,1,MPI_INT,partner,0,universe->uworld,MPI_STATUS_IGNORE); -#ifdef TEMPER_DEBUG + +#if TEMPER_DEBUG if (me_universe < partner) fprintf(universe->uscreen,"SWAP %d & %d: yes = %d,Ts = %d %d, PEs = %g %g, Bz = %g %g, vol = %g %g\n", me_universe,partner,swap,my_set_temp,partner_set_temp, pe,pe_partner,boltz_factor,exp(boltz_factor), vol, vol_partner); #endif - } // bcast swap result to other procs in my world From 89d82fde22eb625bcf42cdba8d8b5d489ffddba2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 16 Jul 2023 15:20:36 -0400 Subject: [PATCH 106/247] modernize access to list of fixes --- src/fix_wall_reflect.cpp | 9 ++++----- src/reset_atoms_id.cpp | 6 +++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/fix_wall_reflect.cpp b/src/fix_wall_reflect.cpp index 60a055fbd6..00ef968828 100644 --- a/src/fix_wall_reflect.cpp +++ b/src/fix_wall_reflect.cpp @@ -176,12 +176,11 @@ void FixWallReflect::init() } int nrigid = 0; - for (int i = 0; i < modify->nfix; i++) - if (modify->fix[i]->rigid_flag) nrigid++; + for (const auto &ifix : modify->get_fix_list()) + if (ifix->rigid_flag) nrigid++; - if (nrigid && comm->me == 0) - error->warning(FLERR,"Should not allow rigid bodies to bounce off " - "relecting walls"); + if (nrigid && (comm->me == 0)) + error->warning(FLERR,"Should not use reflecting walls with rigid bodies"); } /* ---------------------------------------------------------------------- */ diff --git a/src/reset_atoms_id.cpp b/src/reset_atoms_id.cpp index c0fce95326..9e8ba3630d 100644 --- a/src/reset_atoms_id.cpp +++ b/src/reset_atoms_id.cpp @@ -55,9 +55,9 @@ void ResetAtomsID::command(int narg, char **arg) error->all(FLERR, "Reset_atoms id command before simulation box is defined"); if (atom->tag_enable == 0) error->all(FLERR, "Cannot use reset_atoms id unless atoms have IDs"); - for (int i = 0; i < modify->nfix; i++) - if (modify->fix[i]->stores_ids) - error->all(FLERR, "Cannot use reset_atoms id when a fix exists that stores atom IDs"); + for (const auto &ifix : modify->get_fix_list()) + if (ifix->stores_ids) + error->all(FLERR, "Cannot use reset_atoms id with a fix {} storing atom IDs", ifix->style); if (comm->me == 0) utils::logmesg(lmp, "Resetting atom IDs ...\n"); From 27aa6898f8b137d3db9e6504774f1a83f64d82fd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 16 Jul 2023 20:05:52 -0400 Subject: [PATCH 107/247] modernize access for fixes and computes --- src/atom.cpp | 13 ++++++------- src/atom_vec_sphere.cpp | 15 +++++++++++---- src/compute_aggregate_atom.cpp | 6 ++---- src/compute_centro_atom.cpp | 8 +++----- src/compute_cluster_atom.cpp | 6 ++---- src/compute_cna_atom.cpp | 14 +++++--------- src/compute_coord_atom.cpp | 16 ++++++++++------ src/compute_erotate_sphere_atom.cpp | 7 ++----- src/compute_fragment_atom.cpp | 7 ++----- src/compute_ke_atom.cpp | 6 ++---- 10 files changed, 45 insertions(+), 53 deletions(-) diff --git a/src/atom.cpp b/src/atom.cpp index 6b014fc9c8..c4521a244e 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -1818,17 +1818,16 @@ void Atom::data_bodies(int n, char *buf, AtomVec *avec_body, tagint id_offset) void Atom::data_fix_compute_variable(int nprev, int nnew) { - for (const auto &fix : modify->get_fix_list()) { - if (fix->create_attribute) + for (const auto &ifix : modify->get_fix_list()) { + if (ifix->create_attribute) for (int i = nprev; i < nnew; i++) - fix->set_arrays(i); + ifix->set_arrays(i); } - for (int m = 0; m < modify->ncompute; m++) { - Compute *compute = modify->compute[m]; - if (compute->create_attribute) + for (const auto &icompute : modify->get_compute_list()) { + if (icompute->create_attribute) for (int i = nprev; i < nnew; i++) - compute->set_arrays(i); + icompute->set_arrays(i); } for (int i = nprev; i < nnew; i++) diff --git a/src/atom_vec_sphere.cpp b/src/atom_vec_sphere.cpp index d2f9c51880..27ea4b6fef 100644 --- a/src/atom_vec_sphere.cpp +++ b/src/atom_vec_sphere.cpp @@ -17,6 +17,7 @@ #include "error.h" #include "fix.h" #include "fix_adapt.h" +#include "fix_adapt_fep.h" #include "math_const.h" #include "modify.h" @@ -88,12 +89,18 @@ void AtomVecSphere::init() // check if optional radvary setting should have been set to 1 - for (int i = 0; i < modify->nfix; i++) - if (strcmp(modify->fix[i]->style, "adapt") == 0) { - auto fix = dynamic_cast(modify->fix[i]); - if (fix->diamflag && radvary == 0) + for (auto &ifix : modify->get_fix_by_style("^adapt")) { + if (utils::strmatch(ifix->style, "^adapt$")) { + auto fix = dynamic_cast(ifix); + if (fix && fix->diamflag && radvary == 0) error->all(FLERR, "Fix adapt changes particle radii but atom_style sphere is not dynamic"); } + if (utils::strmatch(ifix->style, "^adapt/fep$")) { + auto fix = dynamic_cast(ifix); + if (fix && fix->diamflag && radvary == 0) + error->all(FLERR, "Fix adapt/fep changes particle radii but atom_style sphere is not dynamic"); + } + } } /* ---------------------------------------------------------------------- diff --git a/src/compute_aggregate_atom.cpp b/src/compute_aggregate_atom.cpp index 05526494c0..e68062b73e 100644 --- a/src/compute_aggregate_atom.cpp +++ b/src/compute_aggregate_atom.cpp @@ -82,10 +82,8 @@ void ComputeAggregateAtom::init() neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL); - int count = 0; - for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style, "aggregate/atom") == 0) count++; - if (count > 1 && comm->me == 0) error->warning(FLERR, "More than one compute aggregate/atom"); + if (modify->get_compute_by_style(style).size() > 1) + if (comm->me == 0) error->warning(FLERR, "More than one compute {}", style); } /* ---------------------------------------------------------------------- */ diff --git a/src/compute_centro_atom.cpp b/src/compute_centro_atom.cpp index f726a95594..10d2a79c45 100644 --- a/src/compute_centro_atom.cpp +++ b/src/compute_centro_atom.cpp @@ -93,14 +93,12 @@ void ComputeCentroAtom::init() if (force->pair == nullptr) error->all(FLERR, "Compute centro/atom requires a pair style be defined"); - int count = 0; - for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style, "centro/atom") == 0) count++; - if (count > 1 && comm->me == 0) error->warning(FLERR, "More than one compute centro/atom"); - // need an occasional full neighbor list neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL); + + if (modify->get_compute_by_style(style).size() > 1) + if (comm->me == 0) error->warning(FLERR, "More than one compute {}", style); } /* ---------------------------------------------------------------------- */ diff --git a/src/compute_cluster_atom.cpp b/src/compute_cluster_atom.cpp index 0a0a36debd..ae44fbcd37 100644 --- a/src/compute_cluster_atom.cpp +++ b/src/compute_cluster_atom.cpp @@ -69,10 +69,8 @@ void ComputeClusterAtom::init() neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL); - int count = 0; - for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style, "cluster/atom") == 0) count++; - if (count > 1 && comm->me == 0) error->warning(FLERR, "More than one compute cluster/atom"); + if (modify->get_compute_by_style(style).size() > 1) + if (comm->me == 0) error->warning(FLERR, "More than one compute {}", style); } /* ---------------------------------------------------------------------- */ diff --git a/src/compute_cna_atom.cpp b/src/compute_cna_atom.cpp index ccb4183707..a09a671c07 100644 --- a/src/compute_cna_atom.cpp +++ b/src/compute_cna_atom.cpp @@ -76,19 +76,15 @@ void ComputeCNAAtom::init() // cannot use neighbor->cutneighmax b/c neighbor has not yet been init - if (2.0 * sqrt(cutsq) > force->pair->cutforce + neighbor->skin && comm->me == 0) - error->warning(FLERR, - "Compute cna/atom cutoff may be too large to find " - "ghost atom neighbors"); - - int count = 0; - for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style, "cna/atom") == 0) count++; - if (count > 1 && comm->me == 0) error->warning(FLERR, "More than one compute cna/atom defined"); + if ((2.0 * sqrt(cutsq)) > (force->pair->cutforce + neighbor->skin) && (comm->me == 0)) + error->warning(FLERR, "Compute cna/atom cutoff may be too large to find ghost atom neighbors"); // need an occasional full neighbor list neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL); + + if (modify->get_compute_by_style(style).size() > 1) + if (comm->me == 0) error->warning(FLERR, "More than one compute {}", style); } /* ---------------------------------------------------------------------- */ diff --git a/src/compute_coord_atom.cpp b/src/compute_coord_atom.cpp index 0d56ea6573..ea19f01b91 100644 --- a/src/compute_coord_atom.cpp +++ b/src/compute_coord_atom.cpp @@ -82,10 +82,11 @@ ComputeCoordAtom::ComputeCoordAtom(LAMMPS *lmp, int narg, char **arg) : id_orientorder = utils::strdup(arg[4]); - int iorientorder = modify->find_compute(id_orientorder); - if (iorientorder < 0) error->all(FLERR, "Could not find compute coord/atom compute ID"); - if (!utils::strmatch(modify->compute[iorientorder]->style, "^orientorder/atom")) - error->all(FLERR, "Compute coord/atom compute ID is not orientorder/atom"); + auto iorientorder = modify->get_compute_by_id(id_orientorder); + if (!iorientorder) + error->all(FLERR, "Could not find compute coord/atom compute ID {}", id_orientorder); + if (!utils::strmatch(iorientorder->style, "^orientorder/atom")) + error->all(FLERR, "Compute coord/atom compute ID {} is not orientorder/atom", id_orientorder); threshold = utils::numeric(FLERR, arg[5], false, lmp); if (threshold <= -1.0 || threshold >= 1.0) @@ -128,8 +129,11 @@ ComputeCoordAtom::~ComputeCoordAtom() void ComputeCoordAtom::init() { if (cstyle == ORIENT) { - int iorientorder = modify->find_compute(id_orientorder); - c_orientorder = dynamic_cast(modify->compute[iorientorder]); + c_orientorder = + dynamic_cast(modify->get_compute_by_id(id_orientorder)); + if (!c_orientorder) + error->all(FLERR, "Could not find compute coord/atom compute ID {}", id_orientorder); + cutsq = c_orientorder->cutsq; l = c_orientorder->qlcomp; // communicate real and imaginary 2*l+1 components of the normalized vector diff --git a/src/compute_erotate_sphere_atom.cpp b/src/compute_erotate_sphere_atom.cpp index 9bfa0afaea..3ec0f402a8 100644 --- a/src/compute_erotate_sphere_atom.cpp +++ b/src/compute_erotate_sphere_atom.cpp @@ -57,11 +57,8 @@ ComputeErotateSphereAtom::~ComputeErotateSphereAtom() void ComputeErotateSphereAtom::init() { - int count = 0; - for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style,"erotate/sphere/atom") == 0) count++; - if (count > 1 && comm->me == 0) - error->warning(FLERR,"More than one compute erotate/sphere/atom"); + if (modify->get_compute_by_style(style).size() > 1) + if (comm->me == 0) error->warning(FLERR, "More than one compute {}", style); pfactor = 0.5 * force->mvv2e * INERTIA; } diff --git a/src/compute_fragment_atom.cpp b/src/compute_fragment_atom.cpp index 810ffa4d66..035f554c8d 100644 --- a/src/compute_fragment_atom.cpp +++ b/src/compute_fragment_atom.cpp @@ -84,11 +84,8 @@ void ComputeFragmentAtom::init() if (atom->molecular != Atom::MOLECULAR) error->all(FLERR,"Compute fragment/atom requires a molecular system"); - int count = 0; - for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style,"fragment/atom") == 0) count++; - if (count > 1 && comm->me == 0) - error->warning(FLERR,"More than one compute fragment/atom"); + if (modify->get_compute_by_style(style).size() > 1) + if (comm->me == 0) error->warning(FLERR, "More than one compute {}", style); } /* ---------------------------------------------------------------------- */ diff --git a/src/compute_ke_atom.cpp b/src/compute_ke_atom.cpp index aab687755e..9a329232b3 100644 --- a/src/compute_ke_atom.cpp +++ b/src/compute_ke_atom.cpp @@ -47,10 +47,8 @@ ComputeKEAtom::~ComputeKEAtom() void ComputeKEAtom::init() { - int count = 0; - for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style, "ke/atom") == 0) count++; - if (count > 1 && comm->me == 0) error->warning(FLERR, "More than one compute ke/atom"); + if (modify->get_compute_by_style(style).size() > 1) + if (comm->me == 0) error->warning(FLERR, "More than one compute {}", style); } /* ---------------------------------------------------------------------- */ From 3568cced4bd6b5c42841a9c61ee658ae3031d325 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jul 2023 09:52:44 -0400 Subject: [PATCH 108/247] update comment --- src/REPLICA/temper.h | 2 +- src/REPLICA/temper_grem.h | 2 +- src/REPLICA/temper_npt.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/REPLICA/temper.h b/src/REPLICA/temper.h index d959892587..46a6666f07 100644 --- a/src/REPLICA/temper.h +++ b/src/REPLICA/temper.h @@ -40,7 +40,7 @@ class Temper : public Command { int nswaps; // # of tempering swaps to perform int seed_swap; // 0 = toggle swaps, n = RNG for swap direction int seed_boltz; // seed for Boltz factor comparison - class Fix *whichfix; // index of temperature fix to use + class Fix *whichfix; // temperature fix to use int my_set_temp; // which set temp I am simulating double *set_temp; // static list of replica set temperatures diff --git a/src/REPLICA/temper_grem.h b/src/REPLICA/temper_grem.h index c66239a794..8fe49ae804 100644 --- a/src/REPLICA/temper_grem.h +++ b/src/REPLICA/temper_grem.h @@ -40,7 +40,7 @@ class TemperGrem : public Command { int nswaps; // # of tempering swaps to perform int seed_swap; // 0 = toggle swaps, n = RNG for swap direction int seed_boltz; // seed for Boltz factor comparison - class Fix *whichfix; // index of temperature fix to use + class Fix *whichfix; // temperature fix to use int my_set_lambda; // which set lambda I am simulating double *set_lambda; // static list of replica set lambdas diff --git a/src/REPLICA/temper_npt.h b/src/REPLICA/temper_npt.h index 2e831c55ef..3ea29a21f6 100644 --- a/src/REPLICA/temper_npt.h +++ b/src/REPLICA/temper_npt.h @@ -42,7 +42,7 @@ class TemperNPT : public Command { int nswaps; // # of tempering swaps to perform int seed_swap; // 0 = toggle swaps, n = RNG for swap direction int seed_boltz; // seed for Boltz factor comparison - class Fix *whichfix; // index of temperature fix to use + class Fix *whichfix; // temperature fix to use int my_set_temp; // which set temp I am simulating double *set_temp; // static list of replica set temperatures From d27ab47ed9a3b16adb1a7781ff2d9dc96cae9b71 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jul 2023 18:32:18 -0400 Subject: [PATCH 109/247] for clarity --- lib/gpu/lal_device.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gpu/lal_device.cpp b/lib/gpu/lal_device.cpp index cbf3f5f885..57c4b96b39 100644 --- a/lib/gpu/lal_device.cpp +++ b/lib/gpu/lal_device.cpp @@ -29,7 +29,7 @@ const char *ocl_prefetch_test = " #if (NBOR_PREFETCH == 1) \n"\ " inline void ucl_prefetch(const __global int *p) { prefetch(p, 1); } \n"\ -" #else \n"\ +" #elif (NBOR_PREFETCH == 2) \n"\ " enum LSC_LDCC {LSC_LDCC_DEFAULT, LSC_LDCC_L1UC_L3UC, LSC_LDCC_L1UC_L3C, \n"\ " LSC_LDCC_L1C_L3UC, LSC_LDCC_L1C_L3C, LSC_LDCC_L1S_L3UC, \n"\ " LSC_LDCC_L1S_L3C, LSC_LDCC_L1IAR_L3C, }; \n"\ From fa4a3a0622aeb00285a0a4299e97cc2a0465a992 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jul 2023 18:33:21 -0400 Subject: [PATCH 110/247] using NBOR_PREFETCH=2 gives errors with Intel Xe GPUs set to 0 --- lib/gpu/lal_pre_ocl_config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gpu/lal_pre_ocl_config.h b/lib/gpu/lal_pre_ocl_config.h index a854b223ba..d5cd66feca 100644 --- a/lib/gpu/lal_pre_ocl_config.h +++ b/lib/gpu/lal_pre_ocl_config.h @@ -43,7 +43,7 @@ const char * ocl_config_strings[] = "NVIDIA_GPU,203,32,32,1,1,4,8,2,256,256,128,64,128,8,128,11,128,8,0", "AMD_GPU,403,64,64,0,1,4,8,2,256,256,128,64,128,8,128,11,128,8,0", #ifdef _SINGLE_SINGLE - "INTEL_GPU,500,8,32,1,1,4,8,2,128,128,128,128,64,8,128,8,128,8,2", + "INTEL_GPU,500,8,32,1,1,4,8,2,128,128,128,128,64,8,128,8,128,8,0", "APPLE_GPU,600,16,16,0,1,4,8,1,64,64,64,64,64,8,128,8,128,8,0", #else "INTEL_GPU,500,8,32,1,1,2,8,2,128,128,128,128,64,8,128,8,128,8,2", From 74c5ca0996ce14a5a1c8514a276761d1538ccc0a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jul 2023 18:34:03 -0400 Subject: [PATCH 111/247] move definition of struct containing double to avoid failure on Intel Xe GPU --- lib/gpu/lal_preprocessor.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/gpu/lal_preprocessor.h b/lib/gpu/lal_preprocessor.h index d3e2481646..93d6936f38 100644 --- a/lib/gpu/lal_preprocessor.h +++ b/lib/gpu/lal_preprocessor.h @@ -333,12 +333,12 @@ inline void ucl_prefetch(const __global int *p) { struct _lgpu_float3 { float x; float y; float z; }; -struct _lgpu_double3 { - double x; double y; double z; -}; #ifdef _SINGLE_SINGLE #define acctyp3 struct _lgpu_float3 #else +struct _lgpu_double3 { + double x; double y; double z; +}; #define acctyp3 struct _lgpu_double3 #endif From 1057fa9b0008345e0bd5288a4a41e23f6b0f19e6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jul 2023 22:17:05 -0400 Subject: [PATCH 112/247] move diamflag from fix adapt and adapt/fep to base class for cleaner code --- src/BPM/atom_vec_bpm_sphere.cpp | 12 +++--------- src/FEP/fix_adapt_fep.cpp | 9 ++++----- src/FEP/fix_adapt_fep.h | 1 - src/atom_vec_sphere.cpp | 15 +++------------ src/fix.cpp | 1 + src/fix.h | 1 + src/fix_adapt.cpp | 11 +++++------ src/fix_adapt.h | 1 - 8 files changed, 17 insertions(+), 34 deletions(-) diff --git a/src/BPM/atom_vec_bpm_sphere.cpp b/src/BPM/atom_vec_bpm_sphere.cpp index 375a33c28d..9428d5e9e4 100644 --- a/src/BPM/atom_vec_bpm_sphere.cpp +++ b/src/BPM/atom_vec_bpm_sphere.cpp @@ -17,7 +17,6 @@ #include "comm.h" #include "error.h" #include "fix.h" -#include "fix_adapt.h" #include "math_const.h" #include "modify.h" @@ -99,14 +98,9 @@ void AtomVecBPMSphere::init() // check if optional radvary setting should have been set to 1 for (auto ifix : modify->get_fix_by_style("^adapt")) { - if (radvary == 0) { - if ((strcmp(ifix->style, "adapt") == 0) && (dynamic_cast(ifix)->diamflag)) - error->all(FLERR, "Fix adapt changes atom radii but atom_style bpm/sphere is not dynamic"); - // cannot properly check for fix adapt/fep since its header is optional - if ((strcmp(ifix->style, "adapt/fep") == 0) && (comm->me == 0)) - error->warning( - FLERR, "Fix adapt/fep may change atom radii but atom_style bpm/sphere is not dynamic"); - } + if (ifix->diam_flag && (radvary == 0)) + error->all(FLERR, "Fix {} changes atom radii but atom_style bpm/sphere is not dynamic", + ifix->style); } } diff --git a/src/FEP/fix_adapt_fep.cpp b/src/FEP/fix_adapt_fep.cpp index 6e38c90ef2..e050b8cf21 100644 --- a/src/FEP/fix_adapt_fep.cpp +++ b/src/FEP/fix_adapt_fep.cpp @@ -82,7 +82,6 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : // parse keywords nadapt = 0; - diamflag = 0; chgflag = 0; iarg = 4; @@ -114,7 +113,7 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].which = ATOM; if (strcmp(arg[iarg+1],"diameter") == 0) { adapt[nadapt].aparam = DIAMETER; - diamflag = 1; + diam_flag = 1; } else if (strcmp(arg[iarg+1],"charge") == 0) { adapt[nadapt].aparam = CHARGE; chgflag = 1; @@ -201,7 +200,7 @@ int FixAdaptFEP::setmask() void FixAdaptFEP::post_constructor() { if (!resetflag) return; - if (!diamflag && !chgflag) return; + if (!diam_flag && !chgflag) return; // new id = fix-ID + FIX_STORE_ATTRIBUTE // new fix group = group for this fix @@ -209,7 +208,7 @@ void FixAdaptFEP::post_constructor() id_fix_diam = nullptr; id_fix_chg = nullptr; - if (diamflag) { + if (diam_flag) { id_fix_diam = utils::strdup(id + std::string("_FIX_STORE_DIAM")); fix_diam = dynamic_cast( modify->add_fix(fmt::format("{} {} STORE/ATOM 1 0 0 1", id_fix_diam,group->names[igroup]))); @@ -513,7 +512,7 @@ void FixAdaptFEP::restore_settings() *kspace_scale = 1.0; } else if (ad->which == ATOM) { - if (diamflag) { + if (diam_flag) { double density; double *vec = fix_diam->vstore; diff --git a/src/FEP/fix_adapt_fep.h b/src/FEP/fix_adapt_fep.h index 370a34a0f3..97749abcb6 100644 --- a/src/FEP/fix_adapt_fep.h +++ b/src/FEP/fix_adapt_fep.h @@ -26,7 +26,6 @@ namespace LAMMPS_NS { class FixAdaptFEP : public Fix { public: - int diamflag; // 1 if atom diameters will vary, for AtomVecGranular int chgflag; FixAdaptFEP(class LAMMPS *, int, char **); diff --git a/src/atom_vec_sphere.cpp b/src/atom_vec_sphere.cpp index 27ea4b6fef..5599ef4370 100644 --- a/src/atom_vec_sphere.cpp +++ b/src/atom_vec_sphere.cpp @@ -16,8 +16,6 @@ #include "atom.h" #include "error.h" #include "fix.h" -#include "fix_adapt.h" -#include "fix_adapt_fep.h" #include "math_const.h" #include "modify.h" @@ -90,16 +88,9 @@ void AtomVecSphere::init() // check if optional radvary setting should have been set to 1 for (auto &ifix : modify->get_fix_by_style("^adapt")) { - if (utils::strmatch(ifix->style, "^adapt$")) { - auto fix = dynamic_cast(ifix); - if (fix && fix->diamflag && radvary == 0) - error->all(FLERR, "Fix adapt changes particle radii but atom_style sphere is not dynamic"); - } - if (utils::strmatch(ifix->style, "^adapt/fep$")) { - auto fix = dynamic_cast(ifix); - if (fix && fix->diamflag && radvary == 0) - error->all(FLERR, "Fix adapt/fep changes particle radii but atom_style sphere is not dynamic"); - } + if (ifix->diam_flag && (radvary == 0)) + error->all(FLERR, "Fix {} changes atom radii but atom_style sphere is not dynamic", + ifix->style); } } diff --git a/src/fix.cpp b/src/fix.cpp index 82389ba433..70e4133cdd 100644 --- a/src/fix.cpp +++ b/src/fix.cpp @@ -79,6 +79,7 @@ Fix::Fix(LAMMPS *lmp, int /*narg*/, char **arg) : maxexchange_dynamic = 0; pre_exchange_migrate = 0; stores_ids = 0; + diam_flag = 0; scalar_flag = vector_flag = array_flag = 0; peratom_flag = local_flag = pergrid_flag = 0; diff --git a/src/fix.h b/src/fix.h index 30373ab6f2..5d55048c28 100644 --- a/src/fix.h +++ b/src/fix.h @@ -79,6 +79,7 @@ class Fix : protected Pointers { int maxexchange_dynamic; // 1 if fix sets maxexchange dynamically int pre_exchange_migrate; // 1 if fix migrates atoms in pre_exchange() int stores_ids; // 1 if fix stores atom IDs + int diam_flag; // 1 if fix may change partical diameter int scalar_flag; // 0/1 if compute_scalar() function exists int vector_flag; // 0/1 if compute_vector() function exists diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index 0b4ec9a638..660e3f6107 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -90,7 +90,6 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : // parse keywords nadapt = 0; - diamflag = 0; chgflag = 0; iarg = 4; @@ -149,7 +148,7 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg+1],"diameter") == 0 || strcmp(arg[iarg+1],"diameter/disc") == 0) { adapt[nadapt].atomparam = DIAMETER; - diamflag = 1; + diam_flag = 1; discflag = 0; if (strcmp(arg[iarg+1],"diameter/disc") == 0) discflag = 1; } else if (strcmp(arg[iarg+1],"charge") == 0) { @@ -190,7 +189,7 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : // then previous step scale factors are written to restart file // initialize them here in case one is used and other is never defined - if (scaleflag && (diamflag || chgflag)) restart_global = 1; + if (scaleflag && (diam_flag || chgflag)) restart_global = 1; previous_diam_scale = previous_chg_scale = 1.0; // allocate pair style arrays @@ -260,7 +259,7 @@ int FixAdapt::setmask() void FixAdapt::post_constructor() { if (!resetflag) return; - if (!diamflag && !chgflag) return; + if (!diam_flag && !chgflag) return; // new id = fix-ID + FIX_STORE_ATTRIBUTE // new fix group = group for this fix @@ -268,7 +267,7 @@ void FixAdapt::post_constructor() id_fix_diam = nullptr; id_fix_chg = nullptr; - if (diamflag && atom->radius_flag) { + if (diam_flag && atom->radius_flag) { id_fix_diam = utils::strdup(id + std::string("_FIX_STORE_DIAM")); fix_diam = dynamic_cast( modify->add_fix(fmt::format("{} {} STORE/ATOM 1 0 0 1", id_fix_diam,group->names[igroup]))); @@ -707,7 +706,7 @@ void FixAdapt::restore_settings() *kspace_scale = 1.0; } else if (ad->which == ATOM) { - if (diamflag) { + if (diam_flag) { double scale; double *vec = fix_diam->vstore; diff --git a/src/fix_adapt.h b/src/fix_adapt.h index f8477f7259..20964a8b12 100644 --- a/src/fix_adapt.h +++ b/src/fix_adapt.h @@ -26,7 +26,6 @@ namespace LAMMPS_NS { class FixAdapt : public Fix { public: - int diamflag; // 1 if atom diameters will vary, for AtomVecGranular int chgflag; FixAdapt(class LAMMPS *, int, char **); From 7a04e048fed83f85a37b7a5122a8f0009346affc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jul 2023 11:08:59 -0400 Subject: [PATCH 113/247] make certain radvary is initialized in constructor --- src/BPM/atom_vec_bpm_sphere.cpp | 1 + src/atom_vec_sphere.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/BPM/atom_vec_bpm_sphere.cpp b/src/BPM/atom_vec_bpm_sphere.cpp index 9428d5e9e4..d3070383e5 100644 --- a/src/BPM/atom_vec_bpm_sphere.cpp +++ b/src/BPM/atom_vec_bpm_sphere.cpp @@ -32,6 +32,7 @@ AtomVecBPMSphere::AtomVecBPMSphere(LAMMPS *_lmp) : AtomVec(_lmp) mass_type = PER_ATOM; molecular = Atom::MOLECULAR; bonds_allow = 1; + radvary = 0; atom->molecule_flag = 1; atom->sphere_flag = 1; diff --git a/src/atom_vec_sphere.cpp b/src/atom_vec_sphere.cpp index 5599ef4370..5a98d78abc 100644 --- a/src/atom_vec_sphere.cpp +++ b/src/atom_vec_sphere.cpp @@ -30,6 +30,7 @@ AtomVecSphere::AtomVecSphere(LAMMPS *lmp) : AtomVec(lmp) { mass_type = PER_ATOM; molecular = Atom::ATOMIC; + radvary = 0; atom->sphere_flag = 1; atom->radius_flag = atom->rmass_flag = atom->omega_flag = atom->torque_flag = 1; From cea202ebe90a13d5bf4277f61366576e0805ff9d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jul 2023 11:09:09 -0400 Subject: [PATCH 114/247] include file is not needed --- src/KOKKOS/atom_vec_sphere_kokkos.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/KOKKOS/atom_vec_sphere_kokkos.cpp b/src/KOKKOS/atom_vec_sphere_kokkos.cpp index a9b64fc835..5a1c2beee3 100644 --- a/src/KOKKOS/atom_vec_sphere_kokkos.cpp +++ b/src/KOKKOS/atom_vec_sphere_kokkos.cpp @@ -20,7 +20,6 @@ #include "domain.h" #include "error.h" #include "fix.h" -#include "fix_adapt.h" #include "math_const.h" #include "memory.h" #include "memory_kokkos.h" From 2e2624d719ebbe4b5ffba0b0dec65deb1b069070 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jul 2023 11:10:18 -0400 Subject: [PATCH 115/247] update loop over adapt fixes logic --- src/BPM/atom_vec_bpm_sphere.cpp | 11 ++++++----- src/atom_vec_sphere.cpp | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/BPM/atom_vec_bpm_sphere.cpp b/src/BPM/atom_vec_bpm_sphere.cpp index d3070383e5..2820a74c8a 100644 --- a/src/BPM/atom_vec_bpm_sphere.cpp +++ b/src/BPM/atom_vec_bpm_sphere.cpp @@ -98,11 +98,12 @@ void AtomVecBPMSphere::init() // check if optional radvary setting should have been set to 1 - for (auto ifix : modify->get_fix_by_style("^adapt")) { - if (ifix->diam_flag && (radvary == 0)) - error->all(FLERR, "Fix {} changes atom radii but atom_style bpm/sphere is not dynamic", - ifix->style); - } + if (radvary == 0) + for (const auto &ifix : modify->get_fix_by_style("^adapt")) { + if (ifix->diam_flag) + error->all(FLERR, "Fix {} changes atom radii but atom_style bpm/sphere is not dynamic", + ifix->style); + } } /* ---------------------------------------------------------------------- diff --git a/src/atom_vec_sphere.cpp b/src/atom_vec_sphere.cpp index 5a98d78abc..8769c316d9 100644 --- a/src/atom_vec_sphere.cpp +++ b/src/atom_vec_sphere.cpp @@ -88,11 +88,12 @@ void AtomVecSphere::init() // check if optional radvary setting should have been set to 1 - for (auto &ifix : modify->get_fix_by_style("^adapt")) { - if (ifix->diam_flag && (radvary == 0)) - error->all(FLERR, "Fix {} changes atom radii but atom_style sphere is not dynamic", - ifix->style); - } + if (radvary == 0) + for (const auto &ifix : modify->get_fix_by_style("^adapt")) { + if (ifix->diam_flag) + error->all(FLERR, "Fix {} changes atom radii but atom_style sphere is not dynamic", + ifix->style); + } } /* ---------------------------------------------------------------------- From 021eeae8606ac386461fffe52993d03400ebc0d6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jul 2023 13:24:11 -0400 Subject: [PATCH 116/247] add workaround for failing overhead estimation test on (Intel) GPUs that only support single precision --- lib/gpu/lal_device.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/gpu/lal_device.cpp b/lib/gpu/lal_device.cpp index 57c4b96b39..70ba373a65 100644 --- a/lib/gpu/lal_device.cpp +++ b/lib/gpu/lal_device.cpp @@ -745,7 +745,14 @@ void DeviceT::estimate_gpu_overhead(const int kernel_calls, gpu_overhead=0.0; gpu_driver_overhead=0.0; - for (int z=0; z<11; z++) { + // TODO: XXX + // The following estimation currently fails on Intel GPUs + // that do not support double precision with OpenCL error code -5. + // Until we have a better solution, we just skip this test in this case. + int zloops = 11; + if (!gpu->double_precision()) zloops = 0; + + for (int z=0; z < zloops; z++) { gpu->sync(); gpu_barrier(); over_timer.start(); From 7aec563b868e0ec03385ee68ea67101b47d568ce Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jul 2023 17:02:48 -0400 Subject: [PATCH 117/247] building lammps-shell requires pkg-config --- cmake/Modules/Tools.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmake/Modules/Tools.cmake b/cmake/Modules/Tools.cmake index 285c5f2405..148fb6440e 100644 --- a/cmake/Modules/Tools.cmake +++ b/cmake/Modules/Tools.cmake @@ -37,7 +37,11 @@ if(BUILD_TOOLS) add_subdirectory(${LAMMPS_TOOLS_DIR}/phonon ${CMAKE_BINARY_DIR}/phana_build) endif() +find_package(PkgConfig QUIET) if(BUILD_LAMMPS_SHELL) + if(NOT PkgConfig_FOUND) + message(FATAL_ERROR "Must have pkg-config installed for building LAMMPS shell") + endif() find_package(PkgConfig REQUIRED) pkg_check_modules(READLINE IMPORTED_TARGET REQUIRED readline) if(NOT LAMMPS_EXCEPTIONS) From 66403c93ad51c7fa3778ddd4bef70ba966b3f706 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jul 2023 18:55:27 -0400 Subject: [PATCH 118/247] add preset and support for building serial multi-arch macOS executables --- cmake/presets/macos-multiarch.cmake | 14 ++++++++++++++ tools/phonon/CMakeLists.txt | 3 +++ 2 files changed, 17 insertions(+) create mode 100644 cmake/presets/macos-multiarch.cmake diff --git a/cmake/presets/macos-multiarch.cmake b/cmake/presets/macos-multiarch.cmake new file mode 100644 index 0000000000..09006e9958 --- /dev/null +++ b/cmake/presets/macos-multiarch.cmake @@ -0,0 +1,14 @@ +# preset that will build portable multi-arch binaries on macOS without MPI and OpenMP + +set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE) +set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0 CACHE STRING "" FORCE) +set(CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE) + +set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE) +set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE) + +set(BUILD_MPI FALSE CACHE BOOL "" FORCE) +set(BUILD_OMP FALSE CACHE BOOL "" FORCE) +set(BUILD_SHARED_LIBS FALSE CACHE BOOL "" FORCE) diff --git a/tools/phonon/CMakeLists.txt b/tools/phonon/CMakeLists.txt index 60da1cc79f..f3c3b8386c 100644 --- a/tools/phonon/CMakeLists.txt +++ b/tools/phonon/CMakeLists.txt @@ -85,6 +85,7 @@ if(USE_SPGLIB) include(LAMMPSUtils) GetFallbackURL(SPGLIB_URL SPGLIB_FALLBACK) + string(REPLACE ";" "$" CMAKE_OSX_ARCHITECTURES_ "${CMAKE_OSX_ARCHITECTURES}") include(ExternalProject) ExternalProject_Add(spglib_build URL ${SPGLIB_URL} ${SPGLIB_FALLBACK} @@ -96,6 +97,8 @@ if(USE_SPGLIB) -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_POSITION_INDEPENDENT_CODE=ON + -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_} + -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} UPDATE_COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.spglib ${CMAKE_CURRENT_BINARY_DIR}/spglib_build_ext/src/spglib_build/CMakeLists.txt INSTALL_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/spglib_build_ext/src/spglib_build-build --target install BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/spglib_build_ext/lib/${CMAKE_STATIC_LIBRARY_PREFIX}symspg${CMAKE_STATIC_LIBRARY_SUFFIX}" From f26064d9a5da46b48a6c6cb55fbe6fdc475e5d25 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 19 Jul 2023 17:46:21 -0400 Subject: [PATCH 119/247] also install the bench folder into ${datadir} --- cmake/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 88b7ec422e..f5b04e2165 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -795,9 +795,11 @@ include(Tools) include(Documentation) ############################################################################### -# Install potential and force field files in data directory +# Install bench, potential and force field files in data directory ############################################################################### set(LAMMPS_INSTALL_DATADIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps) + +install(DIRECTORY ${LAMMPS_DIR}/bench DESTINATION ${LAMMPS_INSTALL_DATADIR}) install(DIRECTORY ${LAMMPS_POTENTIALS_DIR} DESTINATION ${LAMMPS_INSTALL_DATADIR}) if(BUILD_TOOLS) install(DIRECTORY ${LAMMPS_TOOLS_DIR}/msi2lmp/frc_files DESTINATION ${LAMMPS_INSTALL_DATADIR}) From c42ec8a647838eceebe09e4c8b73fe33e8b51918 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 19 Jul 2023 18:14:03 -0400 Subject: [PATCH 120/247] create toplevel README file when building for static Linux or macOS multiarch --- cmake/CMakeLists.txt | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index f5b04e2165..a4f8c58132 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -808,10 +808,25 @@ endif() configure_file(etc/profile.d/lammps.sh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh @ONLY) configure_file(etc/profile.d/lammps.csh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh @ONLY) install( - FILES ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh - ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh - DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/profile.d -) + FILES ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh + DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/profile.d) + +if(CMAKE_SYSTEM_NAME STREQUAL "LinuxMUSL") + file(WRITE ${CMAKE_BINARY_DIR}/README.txt + "Statically linked, portable, serial LAMMPS binary archive for x86_64 Linux\n\n") +endif() +if(APPLE AND CMAKE_OSX_ARCHITECTURES) + file(WRITE ${CMAKE_BINARY_DIR}/README.txt + "Multi-arch, serial LAMMPS binary archive for macOS 11 (Big Sur) and later\n\n") +endif() +if((CMAKE_SYSTEM_NAME STREQUAL "LinuxMUSL") OR (APPLE AND CMAKE_OSX_ARCHITECTURES)) + file(APPEND ${CMAKE_BINARY_DIR}/README.txt + "Executables are in 'bin', potential files in 'share/lammps/potentials',\n") + file(APPEND ${CMAKE_BINARY_DIR}/README.txt + "benchmark and simple input examples are in 'share/lammps/bench'.\n") + install(FILES ${CMAKE_BINARY_DIR}/README.txt + DESTINATION ${CMAKE_INSTALL_PREFIX}) +endif() ############################################################################### # Install LAMMPS lib and python module into site-packages folder with From e299fa9aab4877f1e6b301b96edc9feec53df552 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jul 2023 14:00:21 -0400 Subject: [PATCH 121/247] add option to skip building for multiple GPU archs --- cmake/Modules/Packages/GPU.cmake | 104 ++++++++++++++++--------------- doc/src/Build_extras.rst | 68 +++++++++++--------- 2 files changed, 93 insertions(+), 79 deletions(-) diff --git a/cmake/Modules/Packages/GPU.cmake b/cmake/Modules/Packages/GPU.cmake index 4a70eb7a1e..99321fce9f 100644 --- a/cmake/Modules/Packages/GPU.cmake +++ b/cmake/Modules/Packages/GPU.cmake @@ -64,6 +64,8 @@ if(GPU_API STREQUAL "CUDA") endif() set(GPU_CUDA_MPS_FLAGS "-DCUDA_MPS_SUPPORT") endif() + option(CUDA_BUILD_MULTIARCH "Enable building CUDA kernels for all supported GPU architectures" ON) + mark_as_advanced(GPU_BUILD_MULTIARCH) set(GPU_ARCH "sm_50" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)") @@ -93,56 +95,58 @@ if(GPU_API STREQUAL "CUDA") # --arch translates directly instead of JIT, so this should be for the preferred or most common architecture set(GPU_CUDA_GENCODE "-arch=${GPU_ARCH}") - # apply the following to build "fat" CUDA binaries only for known CUDA toolkits since version 8.0 - # only the Kepler achitecture and beyond is supported - # comparison chart according to: https://en.wikipedia.org/wiki/CUDA#GPUs_supported - if(CUDA_VERSION VERSION_LESS 8.0) - message(FATAL_ERROR "CUDA Toolkit version 8.0 or later is required") - elseif(CUDA_VERSION VERSION_GREATER_EQUAL "13.0") - message(WARNING "Untested CUDA Toolkit version ${CUDA_VERSION}. Use at your own risk") - set(GPU_CUDA_GENCODE "-arch=all") - elseif(CUDA_VERSION VERSION_GREATER_EQUAL "12.0") - set(GPU_CUDA_GENCODE "-arch=all") - else() - # Kepler (GPU Arch 3.0) is supported by CUDA 5 to CUDA 10.2 - if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "11.0")) - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_30,code=[sm_30,compute_30] ") - endif() - # Kepler (GPU Arch 3.5) is supported by CUDA 5 to CUDA 11 - if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0")) - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_35,code=[sm_35,compute_35]") - endif() - # Maxwell (GPU Arch 5.x) is supported by CUDA 6 and later - if(CUDA_VERSION VERSION_GREATER_EQUAL "6.0") - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52]") - endif() - # Pascal (GPU Arch 6.x) is supported by CUDA 8 and later - if(CUDA_VERSION VERSION_GREATER_EQUAL "8.0") - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61]") - endif() - # Volta (GPU Arch 7.0) is supported by CUDA 9 and later - if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0") - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_70,code=[sm_70,compute_70]") - endif() - # Turing (GPU Arch 7.5) is supported by CUDA 10 and later - if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0") - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_75,code=[sm_75,compute_75]") - endif() - # Ampere (GPU Arch 8.0) is supported by CUDA 11 and later - if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0") - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]") - endif() - # Ampere (GPU Arch 8.6) is supported by CUDA 11.1 and later - if(CUDA_VERSION VERSION_GREATER_EQUAL "11.1") - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_86,code=[sm_86,compute_86]") - endif() - # Lovelace (GPU Arch 8.9) is supported by CUDA 11.8 and later - if(CUDA_VERSION VERSION_GREATER_EQUAL "11.8") - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]") - endif() - # Hopper (GPU Arch 9.0) is supported by CUDA 12.0 and later - if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0") - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]") + if(CUDA_BUILD_MULTIARCH) + # apply the following to build "fat" CUDA binaries only for known CUDA toolkits since version 8.0 + # only the Kepler achitecture and beyond is supported + # comparison chart according to: https://en.wikipedia.org/wiki/CUDA#GPUs_supported + if(CUDA_VERSION VERSION_LESS 8.0) + message(FATAL_ERROR "CUDA Toolkit version 8.0 or later is required") + elseif(CUDA_VERSION VERSION_GREATER_EQUAL "13.0") + message(WARNING "Untested CUDA Toolkit version ${CUDA_VERSION}. Use at your own risk") + set(GPU_CUDA_GENCODE "-arch=all") + elseif(CUDA_VERSION VERSION_GREATER_EQUAL "12.0") + set(GPU_CUDA_GENCODE "-arch=all") + else() + # Kepler (GPU Arch 3.0) is supported by CUDA 5 to CUDA 10.2 + if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "11.0")) + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_30,code=[sm_30,compute_30] ") + endif() + # Kepler (GPU Arch 3.5) is supported by CUDA 5 to CUDA 11 + if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0")) + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_35,code=[sm_35,compute_35]") + endif() + # Maxwell (GPU Arch 5.x) is supported by CUDA 6 and later + if(CUDA_VERSION VERSION_GREATER_EQUAL "6.0") + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52]") + endif() + # Pascal (GPU Arch 6.x) is supported by CUDA 8 and later + if(CUDA_VERSION VERSION_GREATER_EQUAL "8.0") + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61]") + endif() + # Volta (GPU Arch 7.0) is supported by CUDA 9 and later + if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0") + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_70,code=[sm_70,compute_70]") + endif() + # Turing (GPU Arch 7.5) is supported by CUDA 10 and later + if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0") + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_75,code=[sm_75,compute_75]") + endif() + # Ampere (GPU Arch 8.0) is supported by CUDA 11 and later + if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0") + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]") + endif() + # Ampere (GPU Arch 8.6) is supported by CUDA 11.1 and later + if(CUDA_VERSION VERSION_GREATER_EQUAL "11.1") + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_86,code=[sm_86,compute_86]") + endif() + # Lovelace (GPU Arch 8.9) is supported by CUDA 11.8 and later + if(CUDA_VERSION VERSION_GREATER_EQUAL "11.8") + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]") + endif() + # Hopper (GPU Arch 9.0) is supported by CUDA 12.0 and later + if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0") + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]") + endif() endif() endif() diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index 0ecf54f744..692ab52e1d 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -140,6 +140,8 @@ CMake build # value = yes or no (default) -D CUDA_MPS_SUPPORT=value # enables some tweaks required to run with active nvidia-cuda-mps daemon # value = yes or no (default) + -D CUDA_BUILD_MULTIARCH=value # enables building CUDA kernels for all supported GPU architectures + # value = yes (default) or no -D USE_STATIC_OPENCL_LOADER=value # downloads/includes OpenCL ICD loader library, no local OpenCL headers/libs needed # value = yes (default) or no @@ -158,41 +160,49 @@ CMake build A more detailed list can be found, for example, at `Wikipedia's CUDA article `_ -CMake can detect which version of the CUDA toolkit is used and thus will try -to include support for **all** major GPU architectures supported by this toolkit. -Thus the GPU_ARCH setting is merely an optimization, to have code for -the preferred GPU architecture directly included rather than having to wait -for the JIT compiler of the CUDA driver to translate it. +CMake can detect which version of the CUDA toolkit is used and thus will +try to include support for **all** major GPU architectures supported by +this toolkit. Thus the GPU_ARCH setting is merely an optimization, to +have code for the preferred GPU architecture directly included rather +than having to wait for the JIT compiler of the CUDA driver to translate +it. This behavior can be turned off (e.g. to speed up compilation) by +setting code:`CUDA_ENABLE_MULTIARCH` to code:`no`. -When compiling for CUDA or HIP with CUDA, version 8.0 or later of the CUDA toolkit -is required and a GPU architecture of Kepler or later, which must *also* be -supported by the CUDA toolkit in use **and** the CUDA driver in use. -When compiling for OpenCL, OpenCL version 1.2 or later is required and the -GPU must be supported by the GPU driver and OpenCL runtime bundled with the driver. +When compiling for CUDA or HIP with CUDA, version 8.0 or later of the +CUDA toolkit is required and a GPU architecture of Kepler or later, +which must *also* be supported by the CUDA toolkit in use **and** the +CUDA driver in use. When compiling for OpenCL, OpenCL version 1.2 or +later is required and the GPU must be supported by the GPU driver and +OpenCL runtime bundled with the driver. -When building with CMake, you **must NOT** build the GPU library in ``lib/gpu`` -using the traditional build procedure. CMake will detect files generated by that -process and will terminate with an error and a suggestion for how to remove them. +When building with CMake, you **must NOT** build the GPU library in +``lib/gpu`` using the traditional build procedure. CMake will detect +files generated by that process and will terminate with an error and a +suggestion for how to remove them. -If you are compiling for OpenCL, the default setting is to download, build, and -link with a static OpenCL ICD loader library and standard OpenCL headers. This -way no local OpenCL development headers or library needs to be present and only -OpenCL compatible drivers need to be installed to use OpenCL. If this is not -desired, you can set :code:`USE_STATIC_OPENCL_LOADER` to :code:`no`. +If you are compiling for OpenCL, the default setting is to download, +build, and link with a static OpenCL ICD loader library and standard +OpenCL headers. This way no local OpenCL development headers or library +needs to be present and only OpenCL compatible drivers need to be +installed to use OpenCL. If this is not desired, you can set +:code:`USE_STATIC_OPENCL_LOADER` to :code:`no`. -The GPU library has some multi-thread support using OpenMP. If LAMMPS is built -with ``-D BUILD_OMP=on`` this will also be enabled. +The GPU library has some multi-thread support using OpenMP. If LAMMPS +is built with ``-D BUILD_OMP=on`` this will also be enabled. -If you are compiling with HIP, note that before running CMake you will have to -set appropriate environment variables. Some variables such as -:code:`HCC_AMDGPU_TARGET` (for ROCm <= 4.0) or :code:`CUDA_PATH` are necessary for :code:`hipcc` -and the linker to work correctly. +If you are compiling with HIP, note that before running CMake you will +have to set appropriate environment variables. Some variables such as +:code:`HCC_AMDGPU_TARGET` (for ROCm <= 4.0) or :code:`CUDA_PATH` are +necessary for :code:`hipcc` and the linker to work correctly. -Using CHIP-SPV implementation of HIP is now supported. It allows one to run HIP -code on Intel GPUs via the OpenCL or Level Zero backends. To use CHIP-SPV, you must -set :code:`-DHIP_USE_DEVICE_SORT=OFF` in your CMake command line as CHIP-SPV does not -yet support hipCUB. The use of HIP for Intel GPUs is still experimental so you -should only use this option in preparations to run on Aurora system at ANL. +.. versionadded:: 3Aug2022 + +Using the CHIP-SPV implementation of HIP is supported. It allows one to +run HIP code on Intel GPUs via the OpenCL or Level Zero backends. To use +CHIP-SPV, you must set :code:`-DHIP_USE_DEVICE_SORT=OFF` in your CMake +command line as CHIP-SPV does not yet support hipCUB. As of Summer 2022, +the use of HIP for Intel GPUs is experimental. You should only use this +option in preparations to run on Aurora system at Argonne. .. code:: bash From 7d46165c2a935b18a96bee124ccbe6a762ac7907 Mon Sep 17 00:00:00 2001 From: Stan Gerald Moore Date: Thu, 20 Jul 2023 13:31:34 -0600 Subject: [PATCH 122/247] Fix compile bug in Kokkos MEAM styles --- src/KOKKOS/pair_meam_kokkos.cpp | 2 +- src/KOKKOS/pair_meam_ms_kokkos.cpp | 2 +- src/KOKKOS/pppm_kokkos.h | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/KOKKOS/pair_meam_kokkos.cpp b/src/KOKKOS/pair_meam_kokkos.cpp index c2b03c2054..daf9c1e18b 100644 --- a/src/KOKKOS/pair_meam_kokkos.cpp +++ b/src/KOKKOS/pair_meam_kokkos.cpp @@ -980,7 +980,7 @@ void PairMEAMKokkos::update_meam_views() namespace LAMMPS_NS { template class PairMEAMKokkos; -#ifdef KOKKOS_ENABLE_CUDA +#ifdef LMP_KOKKOS_GPU template class PairMEAMKokkos; #endif } diff --git a/src/KOKKOS/pair_meam_ms_kokkos.cpp b/src/KOKKOS/pair_meam_ms_kokkos.cpp index 491fc0273c..eaa7d500b9 100644 --- a/src/KOKKOS/pair_meam_ms_kokkos.cpp +++ b/src/KOKKOS/pair_meam_ms_kokkos.cpp @@ -26,7 +26,7 @@ PairMEAMMSKokkos::PairMEAMMSKokkos(LAMMPS *lmp) : PairMEAMKokkos; -#ifdef KOKKOS_ENABLE_CUDA +#ifdef LMP_KOKKOS_GPU template class PairMEAMMSKokkos; #endif } diff --git a/src/KOKKOS/pppm_kokkos.h b/src/KOKKOS/pppm_kokkos.h index 2c6dcc4e15..d621313873 100644 --- a/src/KOKKOS/pppm_kokkos.h +++ b/src/KOKKOS/pppm_kokkos.h @@ -33,7 +33,7 @@ KSpaceStyle(pppm/kk/host,PPPMKokkos); // clang-format off -// fix up FFT defines for KOKKOS with CUDA +// fix up FFT defines for KOKKOS with CUDA and HIP #ifdef KOKKOS_ENABLE_CUDA # if defined(FFT_FFTW) @@ -48,6 +48,19 @@ KSpaceStyle(pppm/kk/host,PPPMKokkos); # if !defined(FFT_CUFFT) && !defined(FFT_KISSFFT) # define FFT_KISSFFT # endif +#elif defined(KOKKOS_ENABLE_HIP) +# if defined(FFT_FFTW) +# undef FFT_FFTW +# endif +# if defined(FFT_FFTW3) +# undef FFT_FFTW3 +# endif +# if defined(FFT_MKL) +# undef FFT_MKL +# endif +# if !defined(FFT_HIPFFT) && !defined(FFT_KISSFFT) +# define FFT_KISSFFT +# endif #endif #include "pppm.h" From c441a999f1ea4867a9f7f0e65586cbb6d099dc15 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jul 2023 17:59:40 -0400 Subject: [PATCH 123/247] fix typos --- doc/src/Build_extras.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index 692ab52e1d..c1ab6ecb87 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -166,7 +166,7 @@ this toolkit. Thus the GPU_ARCH setting is merely an optimization, to have code for the preferred GPU architecture directly included rather than having to wait for the JIT compiler of the CUDA driver to translate it. This behavior can be turned off (e.g. to speed up compilation) by -setting code:`CUDA_ENABLE_MULTIARCH` to code:`no`. +setting :code:`CUDA_ENABLE_MULTIARCH` to :code:`no`. When compiling for CUDA or HIP with CUDA, version 8.0 or later of the CUDA toolkit is required and a GPU architecture of Kepler or later, From 6c6258371b774b2f44b75adb5a574dcde9d3f75e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jul 2023 20:31:16 -0400 Subject: [PATCH 124/247] add init_flags() and is_initialized() methods --- src/compute.cpp | 10 ++++++++++ src/compute.h | 6 +++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/compute.cpp b/src/compute.cpp index dcad4954fc..2bd1544fd7 100644 --- a/src/compute.cpp +++ b/src/compute.cpp @@ -74,6 +74,7 @@ Compute::Compute(LAMMPS *lmp, int narg, char **arg) : dynamic = 0; dynamic_group_allow = 1; + initialized_flag = 0; invoked_scalar = invoked_vector = invoked_array = -1; invoked_peratom = invoked_local = -1; invoked_flag = INVOKED_NONE; @@ -111,6 +112,15 @@ Compute::~Compute() /* ---------------------------------------------------------------------- */ +void Compute::init_flags() +{ + initialized_flag = 1; + invoked_scalar = invoked_vector = invoked_array = -1; + invoked_peratom = invoked_local = -1; +} + +/* ---------------------------------------------------------------------- */ + void Compute::modify_params(int narg, char **arg) { if (narg == 0) error->all(FLERR,"Illegal compute_modify command"); diff --git a/src/compute.h b/src/compute.h index 72b0075fd6..8ae01a4469 100644 --- a/src/compute.h +++ b/src/compute.h @@ -62,7 +62,7 @@ class Compute : protected Pointers { int size_local_rows; // rows in local vector or array int size_local_cols; // 0 = vector, N = columns in local array - int pergrid_flag; // 0/1 if compute_pergrid() function exists + int pergrid_flag; // 0/1 if compute_pergrid() function exists int extscalar; // 0/1 if global scalar is intensive/extensive int extvector; // 0/1/-1 if global vector is all int/ext/extlist @@ -88,6 +88,7 @@ class Compute : protected Pointers { int maxtime; // max # of entries time list can hold bigint *tlist; // list of timesteps the Compute is called on + int initialized_flag; // 1 if compute is initialized, 0 if not int invoked_flag; // non-zero if invoked or accessed this step, 0 if not bigint invoked_scalar; // last timestep on which compute_scalar() was invoked bigint invoked_vector; // ditto for compute_vector() @@ -114,6 +115,7 @@ class Compute : protected Pointers { void modify_params(int, char **); virtual void reset_extra_dof(); + void init_flags(); virtual void init() = 0; virtual void init_list(int, class NeighList *) {} virtual void setup() {} @@ -161,6 +163,8 @@ class Compute : protected Pointers { int matchstep(bigint); void clearstep(); + bool is_initialized() const { return initialized_flag == 1; } + virtual double memory_usage() { return 0.0; } virtual void pair_setup_callback(int, int) {} From c7996b506a4f0f1663cf039dffac7051aeff51f0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jul 2023 20:31:48 -0400 Subject: [PATCH 125/247] make use of Compute::is_initialized() and Compute::init_flags() --- src/modify.cpp | 6 +----- src/thermo.cpp | 16 ++++++++-------- src/variable.cpp | 44 ++++++++++++++++++++++---------------------- 3 files changed, 31 insertions(+), 35 deletions(-) diff --git a/src/modify.cpp b/src/modify.cpp index d0656d3895..427c4e259b 100644 --- a/src/modify.cpp +++ b/src/modify.cpp @@ -191,11 +191,7 @@ void Modify::init() for (i = 0; i < ncompute; i++) { compute[i]->init(); - compute[i]->invoked_scalar = -1; - compute[i]->invoked_vector = -1; - compute[i]->invoked_array = -1; - compute[i]->invoked_peratom = -1; - compute[i]->invoked_local = -1; + compute[i]->init_flags(); } addstep_compute_all(update->ntimestep); diff --git a/src/thermo.cpp b/src/thermo.cpp index 6122edec83..bdf2b8cf7b 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -1134,8 +1134,8 @@ void Thermo::check_temp(const std::string &keyword) if (!temperature) error->all(FLERR, "Thermo keyword {} in variable requires thermo to use/init temperature", keyword); - if (update->first_update == 0) - error->all(FLERR,"Thermo keyword {} cannot be invoked before first run",keyword); + if (!temperature->is_initialized()) + error->all(FLERR,"Thermo keyword {} cannot be invoked before initialized by run",keyword); if (!(temperature->invoked_flag & Compute::INVOKED_SCALAR)) { temperature->compute_scalar(); temperature->invoked_flag |= Compute::INVOKED_SCALAR; @@ -1153,8 +1153,8 @@ void Thermo::check_pe(const std::string &keyword) if (!pe) error->all(FLERR, "Thermo keyword {} in variable requires thermo to use/init potential energy", keyword); - if (update->first_update == 0) - error->all(FLERR,"Thermo keyword {} cannot be invoked before first run",keyword); + if (!pe->is_initialized()) + error->all(FLERR,"Thermo keyword {} cannot be invoked before initialized by run",keyword); if (!(pe->invoked_flag & Compute::INVOKED_SCALAR)) { pe->compute_scalar(); pe->invoked_flag |= Compute::INVOKED_SCALAR; @@ -1169,8 +1169,8 @@ void Thermo::check_press_scalar(const std::string &keyword) { if (!pressure) error->all(FLERR, "Thermo keyword {} in variable requires thermo to use/init press", keyword); - if (update->first_update == 0) - error->all(FLERR,"Thermo keyword {} cannot be invoked before first run",keyword); + if (!pressure->is_initialized()) + error->all(FLERR,"Thermo keyword {} cannot be invoked before initialized by run",keyword); if (!(pressure->invoked_flag & Compute::INVOKED_SCALAR)) { pressure->compute_scalar(); pressure->invoked_flag |= Compute::INVOKED_SCALAR; @@ -1185,8 +1185,8 @@ void Thermo::check_press_vector(const std::string &keyword) { if (!pressure) error->all(FLERR, "Thermo keyword {} in variable requires thermo to use/init press", keyword); - if (update->first_update == 0) - error->all(FLERR,"Thermo keyword {} cannot be invoked before first run",keyword); + if (!pressure->is_initialized()) + error->all(FLERR,"Thermo keyword {} cannot be invoked before initialized by run",keyword); if (!(pressure->invoked_flag & Compute::INVOKED_VECTOR)) { pressure->compute_vector(); pressure->invoked_flag |= Compute::INVOKED_VECTOR; diff --git a/src/variable.cpp b/src/variable.cpp index 3264cfa1ee..7cbd43b7c6 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -1505,8 +1505,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (nbracket == 0 && compute->scalar_flag && lowercase) { - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_SCALAR)) { compute->compute_scalar(); compute->invoked_flag |= Compute::INVOKED_SCALAR; @@ -1527,8 +1527,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (index1 > compute->size_vector && compute->size_vector_variable == 0) print_var_error(FLERR,"Variable formula compute vector is accessed out-of-range",ivar,0); - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_VECTOR)) { compute->compute_vector(); compute->invoked_flag |= Compute::INVOKED_VECTOR; @@ -1553,8 +1553,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); if (index2 > compute->size_array_cols) print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_ARRAY)) { compute->compute_array(); compute->invoked_flag |= Compute::INVOKED_ARRAY; @@ -1580,8 +1580,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) print_var_error(FLERR,"Compute global vector in atom-style variable formula",ivar); if (compute->size_vector == 0) print_var_error(FLERR,"Variable formula compute vector is zero length",ivar); - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_VECTOR)) { compute->compute_vector(); compute->invoked_flag |= Compute::INVOKED_VECTOR; @@ -1604,8 +1604,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) print_var_error(FLERR,"Compute global vector in atom-style variable formula",ivar); if (compute->size_array_rows == 0) print_var_error(FLERR,"Variable formula compute array is zero length",ivar); - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_ARRAY)) { compute->compute_array(); compute->invoked_flag |= Compute::INVOKED_ARRAY; @@ -1623,8 +1623,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) } else if (nbracket == 1 && compute->peratom_flag && compute->size_peratom_cols == 0) { - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_PERATOM)) { compute->compute_peratom(); compute->invoked_flag |= Compute::INVOKED_PERATOM; @@ -1640,8 +1640,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (index2 > compute->size_peratom_cols) print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_PERATOM)) { compute->compute_peratom(); compute->invoked_flag |= Compute::INVOKED_PERATOM; @@ -1663,8 +1663,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) print_var_error(FLERR,"Per-atom compute in equal-style variable formula",ivar); if (treetype == VECTOR) print_var_error(FLERR,"Per-atom compute in vector-style variable formula",ivar); - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_PERATOM)) { compute->compute_peratom(); compute->invoked_flag |= Compute::INVOKED_PERATOM; @@ -1687,8 +1687,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) print_var_error(FLERR,"Per-atom compute in vector-style variable formula",ivar); if (index1 > compute->size_peratom_cols) print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_PERATOM)) { compute->compute_peratom(); compute->invoked_flag |= Compute::INVOKED_PERATOM; @@ -4163,8 +4163,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t print_var_error(FLERR,mesg,ivar); } if (index == 0 && compute->vector_flag) { - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_VECTOR)) { compute->compute_vector(); compute->invoked_flag |= Compute::INVOKED_VECTOR; @@ -4174,8 +4174,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t } else if (index && compute->array_flag) { if (index > compute->size_array_cols) print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); - if (update->first_update == 0) - print_var_error(FLERR,"Variable formula compute cannot be invoked before first run",ivar); + if (!compute->is_initialized()) + print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_ARRAY)) { compute->compute_array(); compute->invoked_flag |= Compute::INVOKED_ARRAY; From 78880c909915f00b44c4efb52e9da7ae8695a56f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jul 2023 21:28:45 -0400 Subject: [PATCH 126/247] update reset_atoms image to call Compute::init_flag() as a workaround --- src/reset_atoms_image.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/reset_atoms_image.cpp b/src/reset_atoms_image.cpp index d39ea0fec1..7e9dd45a17 100644 --- a/src/reset_atoms_image.cpp +++ b/src/reset_atoms_image.cpp @@ -93,15 +93,16 @@ void ResetAtomsImage::command(int narg, char **arg) "c_ifmax_r_i_f[*] c_ifmin_r_i_f[*]"); // trigger computes - // need to ensure update->first_update = 1 - // to allow this input script command prior to first run/minimize - // this is b/c internal variables are evaulated which invoke computes - // that will trigger an error unless first_update = 1 - // reset update->first_update when done - - int first_update_saved = update->first_update; - update->first_update = 1; + // need to first initialize compute flags to allow this input script command prior + // to a first run/minimize. this is b/c internal variables are evaulated which + // invoke computes that will trigger an error unless they are initialized + frags->init_flags(); + chunk->init_flags(); + flags->init_flags(); + ifmin->init_flags(); + ifmax->init_flags(); + cdist->init_flags(); frags->compute_peratom(); chunk->compute_peratom(); flags->compute_peratom(); @@ -109,8 +110,6 @@ void ResetAtomsImage::command(int narg, char **arg) ifmax->compute_array(); cdist->compute_peratom(); - update->first_update = first_update_saved; - // reset image flags for atoms in group const int *const mask = atom->mask; From 0b57ea246c536e0d3594e5f2e526fefe876734ae Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jul 2023 21:48:51 -0400 Subject: [PATCH 127/247] update dump styles to use Compute::is_initialized() --- src/VTK/dump_vtk.cpp | 5 +++-- src/dump_custom.cpp | 5 +++-- src/dump_grid.cpp | 5 +++-- src/dump_image.cpp | 5 +++-- src/dump_local.cpp | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/VTK/dump_vtk.cpp b/src/VTK/dump_vtk.cpp index a77f5b2e11..00bd451fb0 100644 --- a/src/VTK/dump_vtk.cpp +++ b/src/VTK/dump_vtk.cpp @@ -297,9 +297,10 @@ int DumpVTK::count() // cannot invoke before first run, otherwise invoke if necessary if (ncompute) { - if (update->first_update == 0) - error->all(FLERR,"Dump compute cannot be invoked before first run"); for (i = 0; i < ncompute; i++) { + if (!compute[i]->is_initialized()) + error->all(FLERR,"Dump compute ID {} cannot be invoked before initialized by a run", + compute[i]->id); if (!(compute[i]->invoked_flag & Compute::INVOKED_PERATOM)) { compute[i]->compute_peratom(); compute[i]->invoked_flag |= Compute::INVOKED_PERATOM; diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index dba72c7478..570ddd104f 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -562,9 +562,10 @@ int DumpCustom::count() // cannot invoke before first run, otherwise invoke if necessary if (ncompute) { - if (update->first_update == 0) - error->all(FLERR,"Dump compute cannot be invoked before first run"); for (i = 0; i < ncompute; i++) { + if (!compute[i]->is_initialized()) + error->all(FLERR,"Dump compute ID {} cannot be invoked before initialized by a run", + compute[i]->id); if (!(compute[i]->invoked_flag & Compute::INVOKED_PERATOM)) { compute[i]->compute_peratom(); compute[i]->invoked_flag |= Compute::INVOKED_PERATOM; diff --git a/src/dump_grid.cpp b/src/dump_grid.cpp index 39d80ade11..24f2586568 100644 --- a/src/dump_grid.cpp +++ b/src/dump_grid.cpp @@ -527,9 +527,10 @@ int DumpGrid::count() // cannot invoke before first run, otherwise invoke if necessary if (ncompute) { - if (update->first_update == 0) - error->all(FLERR,"Dump compute cannot be invoked before first run"); for (i = 0; i < ncompute; i++) { + if (!compute[i]->is_initialized()) + error->all(FLERR,"Dump compute ID {} cannot be invoked before initialized by a run", + compute[i]->id); if (!(compute[i]->invoked_flag & Compute::INVOKED_PERGRID)) { compute[i]->compute_pergrid(); compute[i]->invoked_flag |= Compute::INVOKED_PERGRID; diff --git a/src/dump_image.cpp b/src/dump_image.cpp index 0d54c60595..530e19a04c 100644 --- a/src/dump_image.cpp +++ b/src/dump_image.cpp @@ -667,8 +667,9 @@ void DumpImage::write() // cannot invoke before first run, otherwise invoke if necessary if (grid_compute) { - if (update->first_update == 0) - error->all(FLERR,"Grid compute used in dump image cannot be invoked before first run"); + if (!grid_compute->is_initialized()) + error->all(FLERR,"Grid compute ID {} used in dump image cannot be invoked " + "before initialized by a run", grid_compute->id); if (!(grid_compute->invoked_flag & Compute::INVOKED_PERGRID)) { grid_compute->compute_pergrid(); grid_compute->invoked_flag |= Compute::INVOKED_PERGRID; diff --git a/src/dump_local.cpp b/src/dump_local.cpp index 097589ea41..e81ab0590f 100644 --- a/src/dump_local.cpp +++ b/src/dump_local.cpp @@ -328,9 +328,10 @@ int DumpLocal::count() // cannot invoke before first run, otherwise invoke if necessary if (ncompute) { - if (update->first_update == 0) - error->all(FLERR,"Dump compute cannot be invoked before first run"); for (i = 0; i < ncompute; i++) { + if (!compute[i]->is_initialized()) + error->all(FLERR,"Dump compute ID {} cannot be invoked before initialized by a run", + compute[i]->id); if (!(compute[i]->invoked_flag & Compute::INVOKED_LOCAL)) { compute[i]->compute_local(); compute[i]->invoked_flag |= Compute::INVOKED_LOCAL; From 2da908190bd34dca2791e58e96bb2354c85f7484 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Jul 2023 11:24:57 -0400 Subject: [PATCH 128/247] make error messages consistent and improve their grammar --- src/VTK/dump_vtk.cpp | 2 +- src/dump_custom.cpp | 2 +- src/dump_grid.cpp | 2 +- src/dump_image.cpp | 2 +- src/dump_local.cpp | 2 +- src/thermo.cpp | 8 ++++---- src/variable.cpp | 33 ++++++++++++++++++++++----------- 7 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/VTK/dump_vtk.cpp b/src/VTK/dump_vtk.cpp index 00bd451fb0..172a092629 100644 --- a/src/VTK/dump_vtk.cpp +++ b/src/VTK/dump_vtk.cpp @@ -299,7 +299,7 @@ int DumpVTK::count() if (ncompute) { for (i = 0; i < ncompute; i++) { if (!compute[i]->is_initialized()) - error->all(FLERR,"Dump compute ID {} cannot be invoked before initialized by a run", + error->all(FLERR,"Dump compute ID {} cannot be invoked before initialization by a run", compute[i]->id); if (!(compute[i]->invoked_flag & Compute::INVOKED_PERATOM)) { compute[i]->compute_peratom(); diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 570ddd104f..1e60295bbe 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -564,7 +564,7 @@ int DumpCustom::count() if (ncompute) { for (i = 0; i < ncompute; i++) { if (!compute[i]->is_initialized()) - error->all(FLERR,"Dump compute ID {} cannot be invoked before initialized by a run", + error->all(FLERR,"Dump compute ID {} cannot be invoked before initialization by a run", compute[i]->id); if (!(compute[i]->invoked_flag & Compute::INVOKED_PERATOM)) { compute[i]->compute_peratom(); diff --git a/src/dump_grid.cpp b/src/dump_grid.cpp index 24f2586568..3c10aa9083 100644 --- a/src/dump_grid.cpp +++ b/src/dump_grid.cpp @@ -529,7 +529,7 @@ int DumpGrid::count() if (ncompute) { for (i = 0; i < ncompute; i++) { if (!compute[i]->is_initialized()) - error->all(FLERR,"Dump compute ID {} cannot be invoked before initialized by a run", + error->all(FLERR,"Dump compute ID {} cannot be invoked before initialization by a run", compute[i]->id); if (!(compute[i]->invoked_flag & Compute::INVOKED_PERGRID)) { compute[i]->compute_pergrid(); diff --git a/src/dump_image.cpp b/src/dump_image.cpp index 530e19a04c..1ba433f93f 100644 --- a/src/dump_image.cpp +++ b/src/dump_image.cpp @@ -669,7 +669,7 @@ void DumpImage::write() if (grid_compute) { if (!grid_compute->is_initialized()) error->all(FLERR,"Grid compute ID {} used in dump image cannot be invoked " - "before initialized by a run", grid_compute->id); + "before initialization by a run", grid_compute->id); if (!(grid_compute->invoked_flag & Compute::INVOKED_PERGRID)) { grid_compute->compute_pergrid(); grid_compute->invoked_flag |= Compute::INVOKED_PERGRID; diff --git a/src/dump_local.cpp b/src/dump_local.cpp index e81ab0590f..9695e152b2 100644 --- a/src/dump_local.cpp +++ b/src/dump_local.cpp @@ -330,7 +330,7 @@ int DumpLocal::count() if (ncompute) { for (i = 0; i < ncompute; i++) { if (!compute[i]->is_initialized()) - error->all(FLERR,"Dump compute ID {} cannot be invoked before initialized by a run", + error->all(FLERR,"Dump compute ID {} cannot be invoked before initialization by a run", compute[i]->id); if (!(compute[i]->invoked_flag & Compute::INVOKED_LOCAL)) { compute[i]->compute_local(); diff --git a/src/thermo.cpp b/src/thermo.cpp index bdf2b8cf7b..a8442d42db 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -1135,7 +1135,7 @@ void Thermo::check_temp(const std::string &keyword) error->all(FLERR, "Thermo keyword {} in variable requires thermo to use/init temperature", keyword); if (!temperature->is_initialized()) - error->all(FLERR,"Thermo keyword {} cannot be invoked before initialized by run",keyword); + error->all(FLERR,"Thermo keyword {} cannot be invoked before initialization by a run",keyword); if (!(temperature->invoked_flag & Compute::INVOKED_SCALAR)) { temperature->compute_scalar(); temperature->invoked_flag |= Compute::INVOKED_SCALAR; @@ -1154,7 +1154,7 @@ void Thermo::check_pe(const std::string &keyword) error->all(FLERR, "Thermo keyword {} in variable requires thermo to use/init potential energy", keyword); if (!pe->is_initialized()) - error->all(FLERR,"Thermo keyword {} cannot be invoked before initialized by run",keyword); + error->all(FLERR,"Thermo keyword {} cannot be invoked before initialization by a run",keyword); if (!(pe->invoked_flag & Compute::INVOKED_SCALAR)) { pe->compute_scalar(); pe->invoked_flag |= Compute::INVOKED_SCALAR; @@ -1170,7 +1170,7 @@ void Thermo::check_press_scalar(const std::string &keyword) if (!pressure) error->all(FLERR, "Thermo keyword {} in variable requires thermo to use/init press", keyword); if (!pressure->is_initialized()) - error->all(FLERR,"Thermo keyword {} cannot be invoked before initialized by run",keyword); + error->all(FLERR,"Thermo keyword {} cannot be invoked before initialization by a run",keyword); if (!(pressure->invoked_flag & Compute::INVOKED_SCALAR)) { pressure->compute_scalar(); pressure->invoked_flag |= Compute::INVOKED_SCALAR; @@ -1186,7 +1186,7 @@ void Thermo::check_press_vector(const std::string &keyword) if (!pressure) error->all(FLERR, "Thermo keyword {} in variable requires thermo to use/init press", keyword); if (!pressure->is_initialized()) - error->all(FLERR,"Thermo keyword {} cannot be invoked before initialized by run",keyword); + error->all(FLERR,"Thermo keyword {} cannot be invoked before initialization by a run",keyword); if (!(pressure->invoked_flag & Compute::INVOKED_VECTOR)) { pressure->compute_vector(); pressure->invoked_flag |= Compute::INVOKED_VECTOR; diff --git a/src/variable.cpp b/src/variable.cpp index 7cbd43b7c6..cf2e5c3b6f 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -1506,7 +1506,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (nbracket == 0 && compute->scalar_flag && lowercase) { if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_SCALAR)) { compute->compute_scalar(); compute->invoked_flag |= Compute::INVOKED_SCALAR; @@ -1528,7 +1529,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) compute->size_vector_variable == 0) print_var_error(FLERR,"Variable formula compute vector is accessed out-of-range",ivar,0); if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_VECTOR)) { compute->compute_vector(); compute->invoked_flag |= Compute::INVOKED_VECTOR; @@ -1554,7 +1556,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (index2 > compute->size_array_cols) print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_ARRAY)) { compute->compute_array(); compute->invoked_flag |= Compute::INVOKED_ARRAY; @@ -1581,7 +1584,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (compute->size_vector == 0) print_var_error(FLERR,"Variable formula compute vector is zero length",ivar); if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_VECTOR)) { compute->compute_vector(); compute->invoked_flag |= Compute::INVOKED_VECTOR; @@ -1605,7 +1609,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (compute->size_array_rows == 0) print_var_error(FLERR,"Variable formula compute array is zero length",ivar); if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_ARRAY)) { compute->compute_array(); compute->invoked_flag |= Compute::INVOKED_ARRAY; @@ -1624,7 +1629,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) compute->size_peratom_cols == 0) { if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_PERATOM)) { compute->compute_peratom(); compute->invoked_flag |= Compute::INVOKED_PERATOM; @@ -1641,7 +1647,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (index2 > compute->size_peratom_cols) print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_PERATOM)) { compute->compute_peratom(); compute->invoked_flag |= Compute::INVOKED_PERATOM; @@ -1664,7 +1671,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (treetype == VECTOR) print_var_error(FLERR,"Per-atom compute in vector-style variable formula",ivar); if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_PERATOM)) { compute->compute_peratom(); compute->invoked_flag |= Compute::INVOKED_PERATOM; @@ -1688,7 +1696,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (index1 > compute->size_peratom_cols) print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_PERATOM)) { compute->compute_peratom(); compute->invoked_flag |= Compute::INVOKED_PERATOM; @@ -4164,7 +4173,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t } if (index == 0 && compute->vector_flag) { if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_VECTOR)) { compute->compute_vector(); compute->invoked_flag |= Compute::INVOKED_VECTOR; @@ -4175,7 +4185,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t if (index > compute->size_array_cols) print_var_error(FLERR,"Variable formula compute array is accessed out-of-range",ivar,0); if (!compute->is_initialized()) - print_var_error(FLERR,"Variable formula compute cannot be invoked before initialized by run",ivar); + print_var_error(FLERR,"Variable formula compute cannot be invoked before " + "initialization by a run",ivar); if (!(compute->invoked_flag & Compute::INVOKED_ARRAY)) { compute->compute_array(); compute->invoked_flag |= Compute::INVOKED_ARRAY; From 9669bf3d3b3d57286469ba9dc6f48e9b29e35787 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Jul 2023 11:25:44 -0400 Subject: [PATCH 129/247] move creation of internal computes and variables before lmp->init() so they are initialized --- src/reset_atoms_image.cpp | 40 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/src/reset_atoms_image.cpp b/src/reset_atoms_image.cpp index 7e9dd45a17..84df5bf746 100644 --- a/src/reset_atoms_image.cpp +++ b/src/reset_atoms_image.cpp @@ -61,6 +61,22 @@ void ResetAtomsImage::command(int narg, char **arg) MPI_Barrier(world); double time1 = platform::walltime(); + // create computes and variables + // must come before lmp->init so the computes are properly initialized + + auto frags = modify->add_compute("frags_r_i_f all fragment/atom single yes"); + auto chunk = modify->add_compute("chunk_r_i_f all chunk/atom c_frags_r_i_f compress yes"); + auto flags = modify->add_compute("flags_r_i_f all property/atom ix iy iz"); + input->variable->set("ix_r_i_f atom c_flags_r_i_f[1]"); + input->variable->set("iy_r_i_f atom c_flags_r_i_f[2]"); + input->variable->set("iz_r_i_f atom c_flags_r_i_f[3]"); + auto ifmin = modify->add_compute("ifmin_r_i_f all reduce/chunk chunk_r_i_f min " + "v_ix_r_i_f v_iy_r_i_f v_iz_r_i_f"); + auto ifmax = modify->add_compute("ifmax_r_i_f all reduce/chunk chunk_r_i_f max " + "v_ix_r_i_f v_iy_r_i_f v_iz_r_i_f"); + auto cdist = modify->add_compute("cdist_r_i_f all chunk/spread/atom chunk_r_i_f " + "c_ifmax_r_i_f[*] c_ifmin_r_i_f[*]"); + // initialize system since comm->borders() will be invoked lmp->init(); @@ -77,32 +93,8 @@ void ResetAtomsImage::command(int narg, char **arg) comm->borders(); if (domain->triclinic) domain->lamda2x(atom->nlocal + atom->nghost); - // create computes and variables - - auto frags = modify->add_compute("frags_r_i_f all fragment/atom single yes"); - auto chunk = modify->add_compute("chunk_r_i_f all chunk/atom c_frags_r_i_f compress yes"); - auto flags = modify->add_compute("flags_r_i_f all property/atom ix iy iz"); - input->variable->set("ix_r_i_f atom c_flags_r_i_f[1]"); - input->variable->set("iy_r_i_f atom c_flags_r_i_f[2]"); - input->variable->set("iz_r_i_f atom c_flags_r_i_f[3]"); - auto ifmin = modify->add_compute("ifmin_r_i_f all reduce/chunk chunk_r_i_f min " - "v_ix_r_i_f v_iy_r_i_f v_iz_r_i_f"); - auto ifmax = modify->add_compute("ifmax_r_i_f all reduce/chunk chunk_r_i_f max " - "v_ix_r_i_f v_iy_r_i_f v_iz_r_i_f"); - auto cdist = modify->add_compute("cdist_r_i_f all chunk/spread/atom chunk_r_i_f " - "c_ifmax_r_i_f[*] c_ifmin_r_i_f[*]"); - // trigger computes - // need to first initialize compute flags to allow this input script command prior - // to a first run/minimize. this is b/c internal variables are evaulated which - // invoke computes that will trigger an error unless they are initialized - frags->init_flags(); - chunk->init_flags(); - flags->init_flags(); - ifmin->init_flags(); - ifmax->init_flags(); - cdist->init_flags(); frags->compute_peratom(); chunk->compute_peratom(); flags->compute_peratom(); From cccc362b3fc6aff2ab630c1cac0cac55389178d4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Jul 2023 11:28:09 -0400 Subject: [PATCH 130/247] improve error messages --- src/thermo.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/thermo.cpp b/src/thermo.cpp index 6122edec83..f121c95000 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -1228,13 +1228,13 @@ int Thermo::evaluate_keyword(const std::string &word, double *answer) } else if (word == "elapsed") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword cannot be used between runs"); + error->all(FLERR, "This variable thermo keyword elapsed cannot be used between runs"); compute_elapsed(); dvalue = bivalue; } else if (word == "elaplong") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword cannot be used between runs"); + error->all(FLERR, "This variable thermo keyword elaplong cannot be used between runs"); compute_elapsed_long(); dvalue = bivalue; @@ -1246,22 +1246,22 @@ int Thermo::evaluate_keyword(const std::string &word, double *answer) } else if (word == "cpu") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword cannot be used between runs"); + error->all(FLERR, "This variable thermo keyword cpu cannot be used between runs"); compute_cpu(); } else if (word == "tpcpu") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword cannot be used between runs"); + error->all(FLERR, "This variable thermo keyword tpcpu cannot be used between runs"); compute_tpcpu(); } else if (word == "spcpu") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword cannot be used between runs"); + error->all(FLERR, "This variable thermo keyword spcpu cannot be used between runs"); compute_spcpu(); } else if (word == "cpuremain") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword cannot be used between runs"); + error->all(FLERR, "This variable thermo keyword cpuremain cannot be used between runs"); compute_cpuremain(); } else if (word == "part") { @@ -1350,7 +1350,7 @@ int Thermo::evaluate_keyword(const std::string &word, double *answer) } else if (word == "etail") { if (update->eflag_global != update->ntimestep) - error->all(FLERR, "Energy was not tallied on needed timestep"); + error->all(FLERR, "Energy was not tallied on needed timestep for thermo keyword etail"); compute_etail(); } else if (word == "enthalpy") { From 21d4be321ae59506dc02652068393e098f2cb3dc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Jul 2023 12:12:53 -0400 Subject: [PATCH 131/247] must lower test epsilon with single precision FFTs and pppm used --- unittest/force-styles/CMakeLists.txt | 3 +++ unittest/force-styles/test_fix_timestep.cpp | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/unittest/force-styles/CMakeLists.txt b/unittest/force-styles/CMakeLists.txt index dfffdfea0c..ac5cd7dfd7 100644 --- a/unittest/force-styles/CMakeLists.txt +++ b/unittest/force-styles/CMakeLists.txt @@ -199,6 +199,9 @@ add_executable(test_fix_timestep test_fix_timestep.cpp) if(NOT BUILD_SHARED_LIBS) target_compile_definitions(test_fix_timestep PRIVATE USING_STATIC_LIBS=1) endif() +if(FFT_SINGLE) + target_compile_definitions(test_fix_timestep PRIVATE -DFFT_SINGLE) +endif() target_link_libraries(test_fix_timestep PRIVATE lammps style_tests) # tests for timestep related fixes (time integration, thermostat, force manipulation, constraints/restraints) diff --git a/unittest/force-styles/test_fix_timestep.cpp b/unittest/force-styles/test_fix_timestep.cpp index d2e35b463f..b65eab2049 100644 --- a/unittest/force-styles/test_fix_timestep.cpp +++ b/unittest/force-styles/test_fix_timestep.cpp @@ -279,6 +279,10 @@ TEST(FixTimestep, plain) ASSERT_EQ(lmp->atom->natoms, nlocal); double epsilon = test_config.epsilon; + // relax test precision when using pppm and single precision FFTs +#if defined(FFT_SINGLE) + if (lmp->force->kspace && utils::strmatch(lmp->force->kspace_style, "^pppm")) epsilon *= 2.0e8; +#endif ErrorStats stats; @@ -411,7 +415,6 @@ TEST(FixTimestep, plain) ifix = lmp->modify->find_fix("test"); if (!utils::strmatch(lmp->modify->fix[ifix]->style, "^rigid") && !utils::strmatch(lmp->modify->fix[ifix]->style, "^nve/limit")) { - if (!verbose) ::testing::internal::CaptureStdout(); cleanup_lammps(lmp, test_config); if (!verbose) ::testing::internal::GetCapturedStdout(); @@ -579,6 +582,10 @@ TEST(FixTimestep, omp) ASSERT_EQ(lmp->atom->natoms, nlocal); double epsilon = test_config.epsilon; + // relax test precision when using pppm and single precision FFTs +#if defined(FFT_SINGLE) + if (lmp->force->kspace && utils::strmatch(lmp->force->kspace_style, "^pppm")) epsilon *= 2.0e8; +#endif ErrorStats stats; From 732566c8a9ba47475f8e6c8fdc83324d82193139 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Jul 2023 19:32:47 -0400 Subject: [PATCH 132/247] mention that class members should be initialized in the constructor, not the header. --- doc/src/Modify_style.rst | 42 ++++++++++++++------- doc/utils/sphinx-config/false_positives.txt | 1 + 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/doc/src/Modify_style.rst b/doc/src/Modify_style.rst index c5aef71597..e02c2ce59f 100644 --- a/doc/src/Modify_style.rst +++ b/doc/src/Modify_style.rst @@ -28,20 +28,34 @@ Include files (varied) packages and hard-to-find bugs have regularly manifested in the past. -- Header files, especially those defining a "style", should only use - the absolute minimum number of include files and **must not** - contain any ``using`` statements. Typically, that would only be the - header for the base class. Instead, any include statements should - be put in the corresponding implementation files and forward - declarations be used. For implementation files, the "include what - you use" principle should be employed. However, there is the - notable exception that when the ``pointers.h`` header is included - (or one of the base classes derived from it) certain headers will - always be included and thus do not need to be explicitly specified. - These are: `mpi.h`, `cstddef`, `cstdio`, `cstdlib`, `string`, - `utils.h`, `vector`, `fmt/format.h`, `climits`, `cinttypes`. This - also means any such file can assume that `FILE`, `NULL`, and - `INT_MAX` are defined. +- Header files, especially those defining a "style", should only use the + absolute minimum number of include files and **must not** contain any + ``using`` statements. Typically, that would only be the header for the + base class. Instead, any include statements should be put in the + corresponding implementation files and forward declarations be used. + For implementation files, the "include what you use" principle should + be employed. However, there is the notable exception that when the + ``pointers.h`` header is included (or the header of one of the classes + derived from it), certain headers will *always* be included and thus + do not need to be explicitly specified. These are: `mpi.h`, + `cstddef`, `cstdio`, `cstdlib`, `string`, `utils.h`, `vector`, + `fmt/format.h`, `climits`, `cinttypes`. This also means any such file + can assume that `FILE`, `NULL`, and `INT_MAX` are defined. + +- Class members variables should not be initialized in the header file, + but instead should be initialized either in the initializer list of + the constructor or explicitly assigned in the body of the constructor. + If the member variable is relevant to the functionality of a class + (for example when it stores a value from a command line argument), the + member variable declaration is followed by a brief comment explaining + its purpose and what its values can be. Class members that are + pointers should always be initialized to ``nullptr`` in the + initializer list of the constructor. This reduces clutter in the + header and avoids accessing uninitialized pointers, which leads to + hard to debug issues, class members are often implicitly initialized + to ``NULL`` on the first use (but *not* after a :doc:`clear command + `). Please see the files ``reset_atoms_mol.h`` and + ``reset_atoms_mol.cpp`` as an example. - System headers or headers from installed libraries are included with angular brackets (example: ``#include ``), while local diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index a68cd2714f..8e03f283f1 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1528,6 +1528,7 @@ inhomogeneous init initialdelay initialisms +initializer initializations InitiatorIDs initio From 6422565048106045443f022b26bd144d23505533 Mon Sep 17 00:00:00 2001 From: Evangelos Voyiatzis Date: Sun, 23 Jul 2023 12:22:02 +0300 Subject: [PATCH 133/247] Update CONTRIBUTING.md Fixing a small typo --- .github/CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 44a5ced761..c7abfebf3a 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing to LAMMPS via GitHub -Thank your for considering to contribute to the LAMMPS software project. +Thank you for considering to contribute to the LAMMPS software project. The following is a set of guidelines as well as explanations of policies and work flows for contributing to the LAMMPS molecular dynamics software project. These guidelines focus on submitting issues or pull requests on the LAMMPS GitHub project. From 497659a4c73da271d80642c0d8df9e347a921280 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 24 Jul 2023 10:46:31 -0400 Subject: [PATCH 134/247] consolidate use of cstdint and cinttypes, with the latter being a superset of the former --- src/INTEL/intel_intrinsics_airebo.h | 2 +- src/lmptype.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/INTEL/intel_intrinsics_airebo.h b/src/INTEL/intel_intrinsics_airebo.h index 5a7959c683..04cc78f3d2 100644 --- a/src/INTEL/intel_intrinsics_airebo.h +++ b/src/INTEL/intel_intrinsics_airebo.h @@ -749,7 +749,7 @@ struct intr_types { #include #include -#include // requires C++-11 +#include #define VEC_INLINE __attribute__((always_inline)) diff --git a/src/lmptype.h b/src/lmptype.h index 2089350f48..4e62a1a7eb 100644 --- a/src/lmptype.h +++ b/src/lmptype.h @@ -44,7 +44,6 @@ #include // IWYU pragma: export #include // IWYU pragma: export -#include // IWYU pragma: export #include // IWYU pragma: export // grrr - IBM Power6 does not provide this def in their system header files From b87ced52b4ec32222b81ed18566bbdabc62628e8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 24 Jul 2023 19:03:40 -0400 Subject: [PATCH 135/247] first minimal stab at LAMMPS GUI --- cmake/CMakeLists.txt | 1 + cmake/Modules/Tools.cmake | 6 +- tools/lammps-gui/.gitignore | 73 ++++++ tools/lammps-gui/CMakeLists.txt | 98 ++++++++ tools/lammps-gui/CMakeLists.txt.user | 322 +++++++++++++++++++++++++++ tools/lammps-gui/lammpsgui.cpp | 183 +++++++++++++++ tools/lammps-gui/lammpsgui.h | 43 ++++ tools/lammps-gui/lammpsgui.ui | 152 +++++++++++++ tools/lammps-gui/main.cpp | 11 + 9 files changed, 888 insertions(+), 1 deletion(-) create mode 100644 tools/lammps-gui/.gitignore create mode 100644 tools/lammps-gui/CMakeLists.txt create mode 100644 tools/lammps-gui/CMakeLists.txt.user create mode 100644 tools/lammps-gui/lammpsgui.cpp create mode 100644 tools/lammps-gui/lammpsgui.h create mode 100644 tools/lammps-gui/lammpsgui.ui create mode 100644 tools/lammps-gui/main.cpp diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 88b7ec422e..604339f345 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -192,6 +192,7 @@ option(BUILD_SHARED_LIBS "Build shared library" OFF) option(CMAKE_POSITION_INDEPENDENT_CODE "Create object compatible with shared libraries" ON) option(BUILD_TOOLS "Build and install LAMMPS tools (msi2lmp, binary2txt, chain)" OFF) option(BUILD_LAMMPS_SHELL "Build and install the LAMMPS shell" OFF) +option(BUILD_LAMMPS_GUI "Build and install the LAMMPS GUI" OFF) # Support using clang-tidy for C++ files with selected options set(ENABLE_CLANG_TIDY OFF CACHE BOOL "Include clang-tidy processing when compiling") diff --git a/cmake/Modules/Tools.cmake b/cmake/Modules/Tools.cmake index 285c5f2405..44d9a5a1db 100644 --- a/cmake/Modules/Tools.cmake +++ b/cmake/Modules/Tools.cmake @@ -67,4 +67,8 @@ if(BUILD_LAMMPS_SHELL) install(FILES ${LAMMPS_TOOLS_DIR}/lammps-shell/lammps-shell.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications/) endif() - +if(BUILD_LAMMPS_GUI) + get_filename_component(LAMMPS_GUI_DIR ${LAMMPS_SOURCE_DIR}/../tools/lammps-gui ABSOLUTE) + get_filename_component(LAMMPS_GUI_BIN ${CMAKE_BINARY_DIR}/lammps-gui-build ABSOLUTE) + add_subdirectory(${LAMMPS_GUI_DIR} ${LAMMPS_GUI_BIN}) +endif() diff --git a/tools/lammps-gui/.gitignore b/tools/lammps-gui/.gitignore new file mode 100644 index 0000000000..fab7372d79 --- /dev/null +++ b/tools/lammps-gui/.gitignore @@ -0,0 +1,73 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt new file mode 100644 index 0000000000..85c07abc57 --- /dev/null +++ b/tools/lammps-gui/CMakeLists.txt @@ -0,0 +1,98 @@ +cmake_minimum_required(VERSION 3.10) + +project(lammps-gui VERSION 0.1 LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# when this file is included as subdirectory in the LAMMPS build, many settings are directly imported +if(LAMMPS_DIR) + set(LAMMPS_HEADER_DIR ${LAMMPS_SOURCE_DIR}) + set(LAMMPS_LIBRARY lammps) +else() + # NOTE: the next line should be commented out when used outside of the LAMMPS package + get_filename_component(LAMMPS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../src ABSOLUTE) + set(LAMMPS_HEADER_DIR ${LAMMPS_SOURCE_DIR} CACHE PATH "Location of LAMMPS headers") + if(NOT LAMMPS_HEADER_DIR) + message(FATAL_ERROR "Must set LAMMPS_HEADER_DIR") + endif() + # find LAMMPS library + find_library(LAMMPS_LIBRARY + NAMES lammps lammps_serial + HINTS ${LAMMPS_HEADER_DIR}/../build ${LAMMPS_HEADER_DIR}/../build-clang ${LAMMPS_HEADER_DIR}/../build-test ${LAMMPS_HEADER_DIR} + REQUIRED + ) + # by default, install into $HOME/.local (not /usr/local), + # so that no root access (and sudo) is needed + if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "Default install path" FORCE) + endif() + # ugly hacks for MSVC which by default always reports an old C++ standard in the __cplusplus macro + # and prints lots of pointless warnings about "unsafe" functions + if(MSVC) + if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + add_compile_options(/Zc:__cplusplus) + add_compile_options(/wd4244) + add_compile_options(/wd4267) + if(LAMMPS_EXCEPTIONS) + add_compile_options(/EHsc) + endif() + endif() + add_compile_definitions(_CRT_SECURE_NO_WARNINGS) + endif() +endif() + +find_package(QT NAMES Qt5 REQUIRED COMPONENTS Widgets) +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) + +set(PROJECT_SOURCES + main.cpp + lammpsgui.cpp + lammpsgui.h + lammpsgui.ui +) + +if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) + qt_add_executable(lammps-gui + MANUAL_FINALIZATION + ${PROJECT_SOURCES} + ) +# Define target properties for Android with Qt 6 as: +# set_property(TARGET lammps-gui APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR +# ${CMAKE_CURRENT_SOURCE_DIR}/android) +# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation +else() + if(ANDROID) + add_library(lammps-gui SHARED + ${PROJECT_SOURCES} + ) +# Define properties for Android with Qt 5 after find_package() calls as: +# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") + else() + add_executable(lammps-gui + ${PROJECT_SOURCES} + ) + endif() +endif() + +target_include_directories(lammps-gui PRIVATE ${LAMMPS_HEADER_DIR}) +target_link_libraries(lammps-gui PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) +target_link_libraries(lammps-gui PRIVATE ${LAMMPS_LIBRARY}) + +set_target_properties(lammps-gui PROPERTIES + MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com + MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} + MACOSX_BUNDLE TRUE + WIN32_EXECUTABLE TRUE +) + +if(QT_VERSION_MAJOR EQUAL 6) + qt_finalize_executable(lammps-gui) +endif() diff --git a/tools/lammps-gui/CMakeLists.txt.user b/tools/lammps-gui/CMakeLists.txt.user new file mode 100644 index 0000000000..eaa7cf2ae6 --- /dev/null +++ b/tools/lammps-gui/CMakeLists.txt.user @@ -0,0 +1,322 @@ + + + + + + EnvironmentId + {ed0d4570-2589-4771-8b12-00999b3e43be} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 2 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {287695d9-d112-4f65-92b5-675d1d6bc655} + 0 + 0 + 0 + + Debug + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=Debug +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} + /home/akohlmey/compile/lammps/tools/build-lammps-gui-Desktop-Debug + + + + all + + true + Build + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + clean + + true + Build + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Debug + CMakeProjectManager.CMakeBuildConfiguration + + + Release + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=Release +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} + /home/akohlmey/compile/lammps/tools/build-lammps-gui-Desktop-Release + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release + CMakeProjectManager.CMakeBuildConfiguration + + + RelWithDebInfo + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} + /home/akohlmey/compile/lammps/tools/build-lammps-gui-Desktop-RelWithDebInfo + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release with Debug Information + CMakeProjectManager.CMakeBuildConfiguration + + + MinSizeRel + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=MinSizeRel +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} + /home/akohlmey/compile/lammps/tools/build-lammps-gui-Desktop-MinSizeRel + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Minimum Size Release + CMakeProjectManager.CMakeBuildConfiguration + + 4 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + lammps-gui + CMakeProjectManager.CMakeRunConfiguration.lammps-gui + lammps-gui + false + true + true + false + true + /home/akohlmey/compile/lammps/tools/build-lammps-gui-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp new file mode 100644 index 0000000000..b0fbd74b68 --- /dev/null +++ b/tools/lammps-gui/lammpsgui.cpp @@ -0,0 +1,183 @@ +#include "lammpsgui.h" +#include "./ui_lammpsgui.h" +#include "library.h" + +#include +#include +#include +#include +#include +#include + +LammpsGui::LammpsGui(QWidget *parent) + : QMainWindow(parent), ui(new Ui::LammpsGui), lammps_handle(nullptr) +{ + ui->setupUi(this); + this->setCentralWidget(ui->textEdit); + current_file.clear(); + current_line = 0; + text_font.setFamily("monospace"); + text_font.setFixedPitch(true); + text_font.setStyleHint(QFont::TypeWriter); + ui->textEdit->setCurrentFont(text_font); + + connect(ui->actionNew, &QAction::triggered, this, &LammpsGui::new_document); + connect(ui->actionOpen, &QAction::triggered, this, &LammpsGui::open); + connect(ui->actionSave, &QAction::triggered, this, &LammpsGui::save); + connect(ui->actionSave_As, &QAction::triggered, this, &LammpsGui::save_as); + connect(ui->actionQuit, &QAction::triggered, this, &LammpsGui::quit); + connect(ui->actionCopy, &QAction::triggered, this, &LammpsGui::copy); + connect(ui->actionCut, &QAction::triggered, this, &LammpsGui::cut); + connect(ui->actionPaste, &QAction::triggered, this, &LammpsGui::paste); + connect(ui->actionUndo, &QAction::triggered, this, &LammpsGui::undo); + connect(ui->actionRedo, &QAction::triggered, this, &LammpsGui::redo); + connect(ui->actionClear, &QAction::triggered, this, &LammpsGui::clear); + connect(ui->actionRun_Buffer, &QAction::triggered, this, &LammpsGui::run_buffer); + connect(ui->actionExecute_Line, &QAction::triggered, this, &LammpsGui::run_line); +// connect(ui->actionAbout, &QAction::triggered, this, &LammpsGui::about); + +#if !QT_CONFIG(clipboard) + ui->actionCut->setEnabled(false); + ui->actionCopy->setEnabled(false); + ui->actionPaste->setEnabled(false); +#endif +} + +LammpsGui::~LammpsGui() +{ + delete ui; +} + +void LammpsGui::new_document() +{ + current_file.clear(); + current_line = 0; + ui->textEdit->setText(QString()); + if (lammps_handle) lammps_close(lammps_handle); + lammps_handle = nullptr; +} + +void LammpsGui::open() +{ + QString fileName = QFileDialog::getOpenFileName(this, "Open the file"); + QFile file(fileName); + current_file = fileName; + current_line = 0; + if (!file.open(QIODevice::ReadOnly | QFile::Text)) { + QMessageBox::warning(this, "Warning", "Cannot open file: " + file.errorString()); + return; + } + setWindowTitle(fileName); + QTextStream in(&file); + QString text = in.readAll(); + ui->textEdit->setText(text); + file.close(); +} + +void LammpsGui::save() +{ + QString fileName; + // If we don't have a filename from before, get one. + if (current_file.isEmpty()) { + fileName = QFileDialog::getSaveFileName(this, "Save"); + current_file = fileName; + } else { + fileName = current_file; + } + QFile file(fileName); + if (!file.open(QIODevice::WriteOnly | QFile::Text)) { + QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString()); + return; + } + setWindowTitle(fileName); + QTextStream out(&file); + QString text = ui->textEdit->toPlainText(); + out << text; + file.close(); +} + +void LammpsGui::save_as() +{ + QString fileName = QFileDialog::getSaveFileName(this, "Save as"); + QFile file(fileName); + + if (!file.open(QFile::WriteOnly | QFile::Text)) { + QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString()); + return; + } + current_file = fileName; + setWindowTitle(fileName); + QTextStream out(&file); + QString text = ui->textEdit->toPlainText(); + out << text; + file.close(); +} + +void LammpsGui::quit() +{ + if (lammps_handle) { + lammps_close(lammps_handle); + lammps_mpi_finalize(); + lammps_kokkos_finalize(); + lammps_python_finalize(); + } + QCoreApplication::quit(); +} + +void LammpsGui::copy() +{ +#if QT_CONFIG(clipboard) + ui->textEdit->copy(); +#endif +} + +void LammpsGui::cut() +{ +#if QT_CONFIG(clipboard) + ui->textEdit->cut(); +#endif +} + +void LammpsGui::paste() +{ +#if QT_CONFIG(clipboard) + ui->textEdit->paste(); +#endif +} + +void LammpsGui::undo() +{ + ui->textEdit->undo(); +} + +void LammpsGui::redo() +{ + ui->textEdit->redo(); +} + +void LammpsGui::run_buffer() +{ + clear(); + if (!lammps_handle) lammps_handle = lammps_open_no_mpi(0, nullptr, nullptr); + if (!lammps_handle) return; + std::string buffer = ui->textEdit->toPlainText().toStdString(); + lammps_commands_string(lammps_handle, buffer.c_str()); +} + +void LammpsGui::run_line() +{ + // dummy +} + +void LammpsGui::clear() +{ + if (lammps_handle) { + lammps_command(lammps_handle, "clear"); + current_line = 0; + } +} + +void LammpsGui::about() +{ + // dummy +} diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h new file mode 100644 index 0000000000..d56a981ddf --- /dev/null +++ b/tools/lammps-gui/lammpsgui.h @@ -0,0 +1,43 @@ +#ifndef LAMMPSGUI_H +#define LAMMPSGUI_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE +namespace Ui { class LammpsGui; } +QT_END_NAMESPACE + +class LammpsGui : public QMainWindow +{ + Q_OBJECT + +public: + LammpsGui(QWidget *parent = nullptr); + ~LammpsGui(); + +private slots: + void new_document(); + void open(); + void save(); + void save_as(); + void quit(); + void copy(); + void cut(); + void paste(); + void undo(); + void redo(); + void clear(); + void run_buffer(); + void run_line(); + void about(); + +private: + Ui::LammpsGui *ui; + QString current_file; + QFont text_font; + int current_line; + void *lammps_handle; +}; +#endif // LAMMPSGUI_H diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui new file mode 100644 index 0000000000..6ea0351cce --- /dev/null +++ b/tools/lammps-gui/lammpsgui.ui @@ -0,0 +1,152 @@ + + + LammpsGui + + + + 0 + 0 + 800 + 600 + + + + LammpsGui + + + + + + 0 + 40 + 741 + 381 + + + + + + + + + + + + + 0 + 0 + 800 + 23 + + + + + File + + + + + + + + + + + + Edit + + + + + + + + + + + Run + + + + + + + + About + + + + + + + + + + + New + + + + + Open + + + + + Save + + + + + Save As + + + + + Quit + + + + + Cut + + + + + Copy + + + + + Paste + + + + + Undo + + + + + Redo + + + + + Clear + + + + + Execute Buffer + + + + + Execute Line + + + + + + diff --git a/tools/lammps-gui/main.cpp b/tools/lammps-gui/main.cpp new file mode 100644 index 0000000000..7ee8f9150f --- /dev/null +++ b/tools/lammps-gui/main.cpp @@ -0,0 +1,11 @@ +#include "lammpsgui.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + LammpsGui w; + w.show(); + return a.exec(); +} From a49a1b644e3f811cf151f7da62f6d2763dd8f724 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 00:13:53 -0400 Subject: [PATCH 136/247] update main widget to CodeEditor with line numbers and highlight. Open file from command line. --- tools/lammps-gui/.clang-format | 23 ++++++ tools/lammps-gui/CMakeLists.txt | 11 ++- tools/lammps-gui/codeeditor.cpp | 102 ++++++++++++++++++++++++ tools/lammps-gui/codeeditor.h | 40 ++++++++++ tools/lammps-gui/lammpsgui.cpp | 119 +++++++++++++++++----------- tools/lammps-gui/lammpsgui.h | 30 +++++-- tools/lammps-gui/lammpsgui.ui | 2 +- tools/lammps-gui/linenumberarea.cpp | 58 ++++++++++++++ tools/lammps-gui/linenumberarea.h | 38 +++++++++ tools/lammps-gui/main.cpp | 6 +- 10 files changed, 371 insertions(+), 58 deletions(-) create mode 100644 tools/lammps-gui/.clang-format create mode 100644 tools/lammps-gui/codeeditor.cpp create mode 100644 tools/lammps-gui/codeeditor.h create mode 100644 tools/lammps-gui/linenumberarea.cpp create mode 100644 tools/lammps-gui/linenumberarea.h diff --git a/tools/lammps-gui/.clang-format b/tools/lammps-gui/.clang-format new file mode 100644 index 0000000000..4e4dd24ed7 --- /dev/null +++ b/tools/lammps-gui/.clang-format @@ -0,0 +1,23 @@ +--- +Language: Cpp +BasedOnStyle: LLVM +AccessModifierOffset: -4 +AlignConsecutiveAssignments: true +AlignEscapedNewlines: Left +AllowShortFunctionsOnASingleLine: Inline +AllowShortLambdasOnASingleLine: None +AllowShortIfStatementsOnASingleLine: WithoutElse +BraceWrapping: + AfterFunction: true +BreakBeforeBraces: Custom +BreakInheritanceList: AfterColon +BreakConstructorInitializers: AfterColon +ColumnLimit: 80 +IndentCaseLabels: true +IndentWidth: 4 +ObjCBlockIndentWidth: 4 +PenaltyBreakAssignment: 4 +Standard: Cpp11 +TabWidth: 4 +UseTab: Never +... diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 85c07abc57..1e724671a1 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -52,10 +52,13 @@ find_package(QT NAMES Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) set(PROJECT_SOURCES - main.cpp - lammpsgui.cpp - lammpsgui.h - lammpsgui.ui + main.cpp + codeeditor.cpp + codeeditor.h + linenumberarea.h + lammpsgui.cpp + lammpsgui.h + lammpsgui.ui ) if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp new file mode 100644 index 0000000000..36a56ec54f --- /dev/null +++ b/tools/lammps-gui/codeeditor.cpp @@ -0,0 +1,102 @@ +#include "codeeditor.h" +#include "linenumberarea.h" + +#include +#include + +CodeEditor::CodeEditor(QWidget *parent) : QPlainTextEdit(parent) +{ + lineNumberArea = new LineNumberArea(this); + + connect(this, &CodeEditor::blockCountChanged, this, + &CodeEditor::updateLineNumberAreaWidth); + connect(this, &CodeEditor::updateRequest, this, + &CodeEditor::updateLineNumberArea); + connect(this, &CodeEditor::cursorPositionChanged, this, + &CodeEditor::highlightCurrentLine); + + updateLineNumberAreaWidth(0); + highlightCurrentLine(); +} + +int CodeEditor::lineNumberAreaWidth() +{ + int digits = 1; + int max = qMax(1, blockCount()); + while (max >= 10) { + max /= 10; + ++digits; + } + + int space = 3 + fontMetrics().horizontalAdvance(QLatin1Char('9')) * digits; + + return space; +} + +void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */) +{ + setViewportMargins(lineNumberAreaWidth(), 0, 0, 0); +} + +void CodeEditor::updateLineNumberArea(const QRect &rect, int dy) +{ + if (dy) + lineNumberArea->scroll(0, dy); + else + lineNumberArea->update(0, rect.y(), lineNumberArea->width(), + rect.height()); + + if (rect.contains(viewport()->rect())) updateLineNumberAreaWidth(0); +} + +void CodeEditor::resizeEvent(QResizeEvent *e) +{ + QPlainTextEdit::resizeEvent(e); + + QRect cr = contentsRect(); + lineNumberArea->setGeometry( + QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height())); +} + +void CodeEditor::highlightCurrentLine() +{ + QList extraSelections; + + if (!isReadOnly()) { + QTextEdit::ExtraSelection selection; + + QColor lineColor = QColor(Qt::yellow).lighter(160); + + selection.format.setBackground(lineColor); + selection.format.setProperty(QTextFormat::FullWidthSelection, true); + selection.cursor = textCursor(); + selection.cursor.clearSelection(); + extraSelections.append(selection); + } + + setExtraSelections(extraSelections); +} + +void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event) +{ + QPainter painter(lineNumberArea); + painter.fillRect(event->rect(), Qt::lightGray); + QTextBlock block = firstVisibleBlock(); + int blockNumber = block.blockNumber(); + int top = + qRound(blockBoundingGeometry(block).translated(contentOffset()).top()); + int bottom = top + qRound(blockBoundingRect(block).height()); + while (block.isValid() && top <= event->rect().bottom()) { + if (block.isVisible() && bottom >= event->rect().top()) { + QString number = QString::number(blockNumber + 1); + painter.setPen(Qt::black); + painter.drawText(0, top, lineNumberArea->width(), + fontMetrics().height(), Qt::AlignRight, number); + } + + block = block.next(); + top = bottom; + bottom = top + qRound(blockBoundingRect(block).height()); + ++blockNumber; + } +} diff --git a/tools/lammps-gui/codeeditor.h b/tools/lammps-gui/codeeditor.h new file mode 100644 index 0000000000..745a09ac10 --- /dev/null +++ b/tools/lammps-gui/codeeditor.h @@ -0,0 +1,40 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef CODEEDITOR_H +#define CODEEDITOR_H + +#include + +class CodeEditor : public QPlainTextEdit { + Q_OBJECT + +public: + CodeEditor(QWidget *parent = nullptr); + + void lineNumberAreaPaintEvent(QPaintEvent *event); + int lineNumberAreaWidth(); + +protected: + void resizeEvent(QResizeEvent *event) override; + +private slots: + void updateLineNumberAreaWidth(int newBlockCount); + void highlightCurrentLine(); + void updateLineNumberArea(const QRect &rect, int dy); + +private: + QWidget *lineNumberArea; +}; + +#endif diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index b0fbd74b68..63900b4e9c 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -1,25 +1,26 @@ #include "lammpsgui.h" -#include "./ui_lammpsgui.h" -#include "library.h" +#include "ui_lammpsgui.h" -#include -#include #include #include -#include #include +#include +#include -LammpsGui::LammpsGui(QWidget *parent) - : QMainWindow(parent), ui(new Ui::LammpsGui), lammps_handle(nullptr) +#include "library.h" + +LammpsGui::LammpsGui(QWidget *parent, const char *filename) : + QMainWindow(parent), ui(new Ui::LammpsGui), lammps_handle(nullptr) { ui->setupUi(this); this->setCentralWidget(ui->textEdit); current_file.clear(); - current_line = 0; + + QFont text_font; text_font.setFamily("monospace"); text_font.setFixedPitch(true); text_font.setStyleHint(QFont::TypeWriter); - ui->textEdit->setCurrentFont(text_font); + ui->textEdit->document()->setDefaultFont(text_font); connect(ui->actionNew, &QAction::triggered, this, &LammpsGui::new_document); connect(ui->actionOpen, &QAction::triggered, this, &LammpsGui::open); @@ -32,15 +33,23 @@ LammpsGui::LammpsGui(QWidget *parent) connect(ui->actionUndo, &QAction::triggered, this, &LammpsGui::undo); connect(ui->actionRedo, &QAction::triggered, this, &LammpsGui::redo); connect(ui->actionClear, &QAction::triggered, this, &LammpsGui::clear); - connect(ui->actionRun_Buffer, &QAction::triggered, this, &LammpsGui::run_buffer); - connect(ui->actionExecute_Line, &QAction::triggered, this, &LammpsGui::run_line); -// connect(ui->actionAbout, &QAction::triggered, this, &LammpsGui::about); + connect(ui->actionRun_Buffer, &QAction::triggered, this, + &LammpsGui::run_buffer); + connect(ui->actionExecute_Line, &QAction::triggered, this, + &LammpsGui::run_line); + // connect(ui->actionAbout, &QAction::triggered, this, + // &LammpsGui::about); #if !QT_CONFIG(clipboard) ui->actionCut->setEnabled(false); ui->actionCopy->setEnabled(false); ui->actionPaste->setEnabled(false); #endif + + if (filename) + open_file(filename); + else + setWindowTitle(QString("LAMMPS-GUI - *unknown*")); } LammpsGui::~LammpsGui() @@ -50,27 +59,33 @@ LammpsGui::~LammpsGui() void LammpsGui::new_document() { - current_file.clear(); - current_line = 0; - ui->textEdit->setText(QString()); - if (lammps_handle) lammps_close(lammps_handle); - lammps_handle = nullptr; + current_file.clear(); + ui->textEdit->document()->setPlainText(QString()); + if (lammps_handle) lammps_close(lammps_handle); + lammps_handle = nullptr; + setWindowTitle(QString("LAMMPS-GUI - *unknown*")); } void LammpsGui::open() { QString fileName = QFileDialog::getOpenFileName(this, "Open the file"); + open_file(fileName); +} + +void LammpsGui::open_file(const QString &fileName) +{ QFile file(fileName); current_file = fileName; - current_line = 0; if (!file.open(QIODevice::ReadOnly | QFile::Text)) { - QMessageBox::warning(this, "Warning", "Cannot open file: " + file.errorString()); + QMessageBox::warning(this, "Warning", + "Cannot open file: " + file.errorString()); return; } - setWindowTitle(fileName); + setWindowTitle(QString("LAMMPS-GUI - " + fileName)); QTextStream in(&file); QString text = in.readAll(); - ui->textEdit->setText(text); + ui->textEdit->document()->setPlainText(text); + ui->textEdit->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); file.close(); } @@ -79,17 +94,18 @@ void LammpsGui::save() QString fileName; // If we don't have a filename from before, get one. if (current_file.isEmpty()) { - fileName = QFileDialog::getSaveFileName(this, "Save"); + fileName = QFileDialog::getSaveFileName(this, "Save"); current_file = fileName; } else { fileName = current_file; } QFile file(fileName); if (!file.open(QIODevice::WriteOnly | QFile::Text)) { - QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString()); + QMessageBox::warning(this, "Warning", + "Cannot save file: " + file.errorString()); return; } - setWindowTitle(fileName); + setWindowTitle(QString("LAMMPS-GUI - " + fileName)); QTextStream out(&file); QString text = ui->textEdit->toPlainText(); out << text; @@ -102,11 +118,12 @@ void LammpsGui::save_as() QFile file(fileName); if (!file.open(QFile::WriteOnly | QFile::Text)) { - QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString()); + QMessageBox::warning(this, "Warning", + "Cannot save file: " + file.errorString()); return; } current_file = fileName; - setWindowTitle(fileName); + setWindowTitle(QString("LAMMPS-GUI - " + fileName)); QTextStream out(&file); QString text = ui->textEdit->toPlainText(); out << text; @@ -115,13 +132,13 @@ void LammpsGui::save_as() void LammpsGui::quit() { - if (lammps_handle) { - lammps_close(lammps_handle); - lammps_mpi_finalize(); - lammps_kokkos_finalize(); - lammps_python_finalize(); - } - QCoreApplication::quit(); + if (lammps_handle) { + lammps_close(lammps_handle); + lammps_mpi_finalize(); + lammps_kokkos_finalize(); + lammps_python_finalize(); + } + QCoreApplication::quit(); } void LammpsGui::copy() @@ -147,7 +164,7 @@ void LammpsGui::paste() void LammpsGui::undo() { - ui->textEdit->undo(); + ui->textEdit->undo(); } void LammpsGui::redo() @@ -157,27 +174,39 @@ void LammpsGui::redo() void LammpsGui::run_buffer() { - clear(); - if (!lammps_handle) lammps_handle = lammps_open_no_mpi(0, nullptr, nullptr); - if (!lammps_handle) return; - std::string buffer = ui->textEdit->toPlainText().toStdString(); - lammps_commands_string(lammps_handle, buffer.c_str()); + char *args[] = {(char *)"LAMMPS GUI", (char *)"-log", (char *)"none"}; + int nargs = sizeof(args) / sizeof(char *); + + clear(); + if (!lammps_handle) + lammps_handle = lammps_open_no_mpi(nargs, args, nullptr); + if (!lammps_handle) return; + std::string buffer = ui->textEdit->toPlainText().toStdString(); + lammps_commands_string(lammps_handle, buffer.c_str()); } void LammpsGui::run_line() { - // dummy + char *args[] = {(char *)"LAMMPS GUI", (char *)"-log", (char *)"none"}; + int nargs = sizeof(args) / sizeof(char *); + + if (!lammps_handle) + lammps_handle = lammps_open_no_mpi(nargs, args, nullptr); + if (!lammps_handle) return; + + // std::string buffer = ui->textEdit->toPlainText().toStdString(); + // lammps_commands_string(lammps_handle, buffer.c_str()); } void LammpsGui::clear() { - if (lammps_handle) { - lammps_command(lammps_handle, "clear"); - current_line = 0; - } + if (lammps_handle) { + lammps_command(lammps_handle, "clear"); + } + ui->textEdit->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); } void LammpsGui::about() { - // dummy + // dummy } diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index d56a981ddf..be9c6e900f 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -1,22 +1,38 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + #ifndef LAMMPSGUI_H #define LAMMPSGUI_H #include -#include #include QT_BEGIN_NAMESPACE -namespace Ui { class LammpsGui; } +namespace Ui { +class LammpsGui; +} QT_END_NAMESPACE -class LammpsGui : public QMainWindow -{ +class LammpsGui : public QMainWindow { Q_OBJECT public: - LammpsGui(QWidget *parent = nullptr); + LammpsGui(QWidget *parent = nullptr, const char *filename = nullptr); ~LammpsGui(); +protected: + void open_file(const QString &filename); + private slots: void new_document(); void open(); @@ -35,9 +51,9 @@ private slots: private: Ui::LammpsGui *ui; + QString current_file; - QFont text_font; - int current_line; void *lammps_handle; }; + #endif // LAMMPSGUI_H diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index 6ea0351cce..1aa560e979 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -25,7 +25,7 @@ - + diff --git a/tools/lammps-gui/linenumberarea.cpp b/tools/lammps-gui/linenumberarea.cpp new file mode 100644 index 0000000000..38c45bb493 --- /dev/null +++ b/tools/lammps-gui/linenumberarea.cpp @@ -0,0 +1,58 @@ +#include "codeeditor.h" + +int CodeEditor::lineNumberAreaWidth() +{ + int digits = 1; + int max = qMax(1, blockCount()); + while (max >= 10) { + max /= 10; + ++digits; + } + + int space = 3 + fontMetrics().horizontalAdvance(QLatin1Char('9')) * digits; + + return space; +} + +void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */) +{ + setViewportMargins(lineNumberAreaWidth(), 0, 0, 0); +} + +void CodeEditor::updateLineNumberArea(const QRect &rect, int dy) +{ + if (dy) + lineNumberArea->scroll(0, dy); + else + lineNumberArea->update(0, rect.y(), lineNumberArea->width(), rect.height()); + + if (rect.contains(viewport()->rect())) + updateLineNumberAreaWidth(0); +} + +void CodeEditor::resizeEvent(QResizeEvent *e) +{ + QTextEdit::resizeEvent(e); + + QRect cr = contentsRect(); + lineNumberArea->setGeometry(QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height())); +} + +void CodeEditor::highlightCurrentLine() +{ + QList extraSelections; + + if (!isReadOnly()) { + QTextEdit::ExtraSelection selection; + + QColor lineColor = QColor(Qt::yellow).lighter(160); + + selection.format.setBackground(lineColor); + selection.format.setProperty(QTextFormat::FullWidthSelection, true); + selection.cursor = textCursor(); + selection.cursor.clearSelection(); + extraSelections.append(selection); + } + + setExtraSelections(extraSelections); +} diff --git a/tools/lammps-gui/linenumberarea.h b/tools/lammps-gui/linenumberarea.h new file mode 100644 index 0000000000..2af6e6f4bb --- /dev/null +++ b/tools/lammps-gui/linenumberarea.h @@ -0,0 +1,38 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef LINENUMBERAREA_H +#define LINENUMBERAREA_H + +#include "codeeditor.h" +#include + +class LineNumberArea : public QWidget { +public: + LineNumberArea(CodeEditor *editor) : QWidget(editor), codeEditor(editor) {} + + QSize sizeHint() const override + { + return QSize(codeEditor->lineNumberAreaWidth(), 0); + } + +protected: + void paintEvent(QPaintEvent *event) override + { + codeEditor->lineNumberAreaPaintEvent(event); + } + +private: + CodeEditor *codeEditor; +}; +#endif diff --git a/tools/lammps-gui/main.cpp b/tools/lammps-gui/main.cpp index 7ee8f9150f..7e13017eaf 100644 --- a/tools/lammps-gui/main.cpp +++ b/tools/lammps-gui/main.cpp @@ -5,7 +5,11 @@ int main(int argc, char *argv[]) { QApplication a(argc, argv); - LammpsGui w; + + const char *infile = nullptr; + if (argc > 1) infile = argv[1]; + + LammpsGui w(nullptr, infile); w.show(); return a.exec(); } From 908e925b8f29ee96b77ff55f02da54e351ad8951 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 00:39:47 -0400 Subject: [PATCH 137/247] add minimal about dialogs --- tools/lammps-gui/lammpsgui.cpp | 22 +++++++++++++++++++--- tools/lammps-gui/lammpsgui.h | 1 + tools/lammps-gui/lammpsgui.ui | 23 +++++++++++++++++++++-- 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 63900b4e9c..7af97e9092 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -37,8 +37,10 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : &LammpsGui::run_buffer); connect(ui->actionExecute_Line, &QAction::triggered, this, &LammpsGui::run_line); - // connect(ui->actionAbout, &QAction::triggered, this, - // &LammpsGui::about); + connect(ui->actionAbout_LAMMPS_GUI, &QAction::triggered, this, + &LammpsGui::about); + connect(ui->actionLAMMPS_Info, &QAction::triggered, this, + &LammpsGui::about_lammps); #if !QT_CONFIG(clipboard) ui->actionCut->setEnabled(false); @@ -206,7 +208,21 @@ void LammpsGui::clear() ui->textEdit->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); } +void LammpsGui::about_lammps() +{ + char *args[] = {(char *)"LAMMPS GUI", (char *)"-log", (char *)"none"}; + int nargs = sizeof(args) / sizeof(char *); + + if (!lammps_handle) + lammps_handle = lammps_open_no_mpi(nargs, args, nullptr); + + std::string version = "LAMMPS Version " + std::to_string(lammps_version(lammps_handle)); + QString lammps_info(version.c_str()); + QMessageBox::information(this, "About LAMMPS", lammps_info); +} + void LammpsGui::about() { - // dummy + QMessageBox::information(this, "About LAMMPS-GUI", + "This is LAMMPS-GUI version 0.1"); } diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index be9c6e900f..532ece6868 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -48,6 +48,7 @@ private slots: void run_buffer(); void run_line(); void about(); + void about_lammps(); private: Ui::LammpsGui *ui; diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index 1aa560e979..fe6020ba52 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -25,7 +25,7 @@ - + @@ -36,7 +36,7 @@ 0 0 800 - 23 + 24 @@ -74,6 +74,8 @@ About + + @@ -146,7 +148,24 @@ Execute Line + + + About LAMMPS-GUI + + + + + LAMMPS Info + + + + + CodeEditor + QWidget +
codeeditor.h
+
+
From a402d2c6d89dfa5ebd26a047bff2b69a992d379a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 10:16:20 -0400 Subject: [PATCH 138/247] simplify, move redundant operations to functions, update coding style --- tools/lammps-gui/.clang-format | 2 +- tools/lammps-gui/codeeditor.cpp | 28 ++++---- tools/lammps-gui/codeeditor.h | 3 + tools/lammps-gui/lammpsgui.cpp | 107 +++++++++++----------------- tools/lammps-gui/lammpsgui.h | 8 ++- tools/lammps-gui/lammpsgui.ui | 22 +----- tools/lammps-gui/linenumberarea.cpp | 58 --------------- tools/lammps-gui/linenumberarea.h | 3 + tools/lammps-gui/main.cpp | 4 ++ 9 files changed, 74 insertions(+), 161 deletions(-) delete mode 100644 tools/lammps-gui/linenumberarea.cpp diff --git a/tools/lammps-gui/.clang-format b/tools/lammps-gui/.clang-format index 4e4dd24ed7..cb352b37f5 100644 --- a/tools/lammps-gui/.clang-format +++ b/tools/lammps-gui/.clang-format @@ -12,7 +12,7 @@ BraceWrapping: BreakBeforeBraces: Custom BreakInheritanceList: AfterColon BreakConstructorInitializers: AfterColon -ColumnLimit: 80 +ColumnLimit: 100 IndentCaseLabels: true IndentWidth: 4 ObjCBlockIndentWidth: 4 diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index 36a56ec54f..8e03497422 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -8,12 +8,9 @@ CodeEditor::CodeEditor(QWidget *parent) : QPlainTextEdit(parent) { lineNumberArea = new LineNumberArea(this); - connect(this, &CodeEditor::blockCountChanged, this, - &CodeEditor::updateLineNumberAreaWidth); - connect(this, &CodeEditor::updateRequest, this, - &CodeEditor::updateLineNumberArea); - connect(this, &CodeEditor::cursorPositionChanged, this, - &CodeEditor::highlightCurrentLine); + connect(this, &CodeEditor::blockCountChanged, this, &CodeEditor::updateLineNumberAreaWidth); + connect(this, &CodeEditor::updateRequest, this, &CodeEditor::updateLineNumberArea); + connect(this, &CodeEditor::cursorPositionChanged, this, &CodeEditor::highlightCurrentLine); updateLineNumberAreaWidth(0); highlightCurrentLine(); @@ -43,8 +40,7 @@ void CodeEditor::updateLineNumberArea(const QRect &rect, int dy) if (dy) lineNumberArea->scroll(0, dy); else - lineNumberArea->update(0, rect.y(), lineNumberArea->width(), - rect.height()); + lineNumberArea->update(0, rect.y(), lineNumberArea->width(), rect.height()); if (rect.contains(viewport()->rect())) updateLineNumberAreaWidth(0); } @@ -54,8 +50,7 @@ void CodeEditor::resizeEvent(QResizeEvent *e) QPlainTextEdit::resizeEvent(e); QRect cr = contentsRect(); - lineNumberArea->setGeometry( - QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height())); + lineNumberArea->setGeometry(QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height())); } void CodeEditor::highlightCurrentLine() @@ -83,15 +78,14 @@ void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event) painter.fillRect(event->rect(), Qt::lightGray); QTextBlock block = firstVisibleBlock(); int blockNumber = block.blockNumber(); - int top = - qRound(blockBoundingGeometry(block).translated(contentOffset()).top()); - int bottom = top + qRound(blockBoundingRect(block).height()); + int top = qRound(blockBoundingGeometry(block).translated(contentOffset()).top()); + int bottom = top + qRound(blockBoundingRect(block).height()); while (block.isValid() && top <= event->rect().bottom()) { if (block.isVisible() && bottom >= event->rect().top()) { QString number = QString::number(blockNumber + 1); painter.setPen(Qt::black); - painter.drawText(0, top, lineNumberArea->width(), - fontMetrics().height(), Qt::AlignRight, number); + painter.drawText(0, top, lineNumberArea->width(), fontMetrics().height(), + Qt::AlignRight, number); } block = block.next(); @@ -100,3 +94,7 @@ void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event) ++blockNumber; } } + +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/codeeditor.h b/tools/lammps-gui/codeeditor.h index 745a09ac10..c501e8771c 100644 --- a/tools/lammps-gui/codeeditor.h +++ b/tools/lammps-gui/codeeditor.h @@ -38,3 +38,6 @@ private: }; #endif +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 7af97e9092..3711d6a9e4 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -2,6 +2,7 @@ #include "ui_lammpsgui.h" #include +#include #include #include #include @@ -33,14 +34,8 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : connect(ui->actionUndo, &QAction::triggered, this, &LammpsGui::undo); connect(ui->actionRedo, &QAction::triggered, this, &LammpsGui::redo); connect(ui->actionClear, &QAction::triggered, this, &LammpsGui::clear); - connect(ui->actionRun_Buffer, &QAction::triggered, this, - &LammpsGui::run_buffer); - connect(ui->actionExecute_Line, &QAction::triggered, this, - &LammpsGui::run_line); - connect(ui->actionAbout_LAMMPS_GUI, &QAction::triggered, this, - &LammpsGui::about); - connect(ui->actionLAMMPS_Info, &QAction::triggered, this, - &LammpsGui::about_lammps); + connect(ui->actionRun_Buffer, &QAction::triggered, this, &LammpsGui::run_buffer); + connect(ui->actionAbout_LAMMPS_GUI, &QAction::triggered, this, &LammpsGui::about); #if !QT_CONFIG(clipboard) ui->actionCut->setEnabled(false); @@ -74,13 +69,17 @@ void LammpsGui::open() open_file(fileName); } +// open file and switch CWD to path of file void LammpsGui::open_file(const QString &fileName) { + QFile file(fileName); - current_file = fileName; + QFileInfo path(file); + current_file = path.fileName(); + current_dir = path.absolutePath(); + QDir::setCurrent(current_dir); if (!file.open(QIODevice::ReadOnly | QFile::Text)) { - QMessageBox::warning(this, "Warning", - "Cannot open file: " + file.errorString()); + QMessageBox::warning(this, "Warning", "Cannot open file: " + file.errorString()); return; } setWindowTitle(QString("LAMMPS-GUI - " + fileName)); @@ -91,20 +90,13 @@ void LammpsGui::open_file(const QString &fileName) file.close(); } -void LammpsGui::save() +void LammpsGui::write_file(const QString &fileName) { - QString fileName; - // If we don't have a filename from before, get one. - if (current_file.isEmpty()) { - fileName = QFileDialog::getSaveFileName(this, "Save"); - current_file = fileName; - } else { - fileName = current_file; - } QFile file(fileName); + QFileInfo path(file); + current_file = path.fileName(); if (!file.open(QIODevice::WriteOnly | QFile::Text)) { - QMessageBox::warning(this, "Warning", - "Cannot save file: " + file.errorString()); + QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString()); return; } setWindowTitle(QString("LAMMPS-GUI - " + fileName)); @@ -114,22 +106,19 @@ void LammpsGui::save() file.close(); } +void LammpsGui::save() +{ + QString fileName = current_file; + // If we don't have a filename from before, get one. + if (fileName.isEmpty()) fileName = QFileDialog::getSaveFileName(this, "Save"); + + write_file(fileName); +} + void LammpsGui::save_as() { QString fileName = QFileDialog::getSaveFileName(this, "Save as"); - QFile file(fileName); - - if (!file.open(QFile::WriteOnly | QFile::Text)) { - QMessageBox::warning(this, "Warning", - "Cannot save file: " + file.errorString()); - return; - } - current_file = fileName; - setWindowTitle(QString("LAMMPS-GUI - " + fileName)); - QTextStream out(&file); - QString text = ui->textEdit->toPlainText(); - out << text; - file.close(); + write_file(fileName); } void LammpsGui::quit() @@ -176,30 +165,13 @@ void LammpsGui::redo() void LammpsGui::run_buffer() { - char *args[] = {(char *)"LAMMPS GUI", (char *)"-log", (char *)"none"}; - int nargs = sizeof(args) / sizeof(char *); - - clear(); - if (!lammps_handle) - lammps_handle = lammps_open_no_mpi(nargs, args, nullptr); + start_lammps(); if (!lammps_handle) return; + clear(); std::string buffer = ui->textEdit->toPlainText().toStdString(); lammps_commands_string(lammps_handle, buffer.c_str()); } -void LammpsGui::run_line() -{ - char *args[] = {(char *)"LAMMPS GUI", (char *)"-log", (char *)"none"}; - int nargs = sizeof(args) / sizeof(char *); - - if (!lammps_handle) - lammps_handle = lammps_open_no_mpi(nargs, args, nullptr); - if (!lammps_handle) return; - - // std::string buffer = ui->textEdit->toPlainText().toStdString(); - // lammps_commands_string(lammps_handle, buffer.c_str()); -} - void LammpsGui::clear() { if (lammps_handle) { @@ -208,21 +180,26 @@ void LammpsGui::clear() ui->textEdit->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); } -void LammpsGui::about_lammps() +void LammpsGui::about() +{ + start_lammps(); + + std::string version = "This is LAMMPS-GUI version 0.1\n"; + if (lammps_handle) version += "LAMMPS Version " + std::to_string(lammps_version(lammps_handle)); + QMessageBox::information(this, "About LAMMPS-GUI", version.c_str()); +} + +void LammpsGui::start_lammps() { char *args[] = {(char *)"LAMMPS GUI", (char *)"-log", (char *)"none"}; int nargs = sizeof(args) / sizeof(char *); + // Create LAMMPS instance if not already present + if (!lammps_handle) lammps_handle = lammps_open_no_mpi(nargs, args, nullptr); if (!lammps_handle) - lammps_handle = lammps_open_no_mpi(nargs, args, nullptr); - - std::string version = "LAMMPS Version " + std::to_string(lammps_version(lammps_handle)); - QString lammps_info(version.c_str()); - QMessageBox::information(this, "About LAMMPS", lammps_info); + QMessageBox::warning(this, "LAMMPS Error", "Internal error launching LAMMPS"); } -void LammpsGui::about() -{ - QMessageBox::information(this, "About LAMMPS-GUI", - "This is LAMMPS-GUI version 0.1"); -} +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 532ece6868..b591161581 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -32,6 +32,8 @@ public: protected: void open_file(const QString &filename); + void write_file(const QString &filename); + void start_lammps(); private slots: void new_document(); @@ -46,15 +48,17 @@ private slots: void redo(); void clear(); void run_buffer(); - void run_line(); void about(); - void about_lammps(); private: Ui::LammpsGui *ui; QString current_file; + QString current_dir; void *lammps_handle; }; #endif // LAMMPSGUI_H +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index fe6020ba52..9fcb18016e 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -68,19 +68,11 @@ - - - - - About - - - - + @@ -143,19 +135,9 @@ Execute Buffer - - - Execute Line - - - About LAMMPS-GUI - - - - - LAMMPS Info + About diff --git a/tools/lammps-gui/linenumberarea.cpp b/tools/lammps-gui/linenumberarea.cpp deleted file mode 100644 index 38c45bb493..0000000000 --- a/tools/lammps-gui/linenumberarea.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "codeeditor.h" - -int CodeEditor::lineNumberAreaWidth() -{ - int digits = 1; - int max = qMax(1, blockCount()); - while (max >= 10) { - max /= 10; - ++digits; - } - - int space = 3 + fontMetrics().horizontalAdvance(QLatin1Char('9')) * digits; - - return space; -} - -void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */) -{ - setViewportMargins(lineNumberAreaWidth(), 0, 0, 0); -} - -void CodeEditor::updateLineNumberArea(const QRect &rect, int dy) -{ - if (dy) - lineNumberArea->scroll(0, dy); - else - lineNumberArea->update(0, rect.y(), lineNumberArea->width(), rect.height()); - - if (rect.contains(viewport()->rect())) - updateLineNumberAreaWidth(0); -} - -void CodeEditor::resizeEvent(QResizeEvent *e) -{ - QTextEdit::resizeEvent(e); - - QRect cr = contentsRect(); - lineNumberArea->setGeometry(QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height())); -} - -void CodeEditor::highlightCurrentLine() -{ - QList extraSelections; - - if (!isReadOnly()) { - QTextEdit::ExtraSelection selection; - - QColor lineColor = QColor(Qt::yellow).lighter(160); - - selection.format.setBackground(lineColor); - selection.format.setProperty(QTextFormat::FullWidthSelection, true); - selection.cursor = textCursor(); - selection.cursor.clearSelection(); - extraSelections.append(selection); - } - - setExtraSelections(extraSelections); -} diff --git a/tools/lammps-gui/linenumberarea.h b/tools/lammps-gui/linenumberarea.h index 2af6e6f4bb..1d09a82b63 100644 --- a/tools/lammps-gui/linenumberarea.h +++ b/tools/lammps-gui/linenumberarea.h @@ -36,3 +36,6 @@ private: CodeEditor *codeEditor; }; #endif +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/main.cpp b/tools/lammps-gui/main.cpp index 7e13017eaf..2b693616be 100644 --- a/tools/lammps-gui/main.cpp +++ b/tools/lammps-gui/main.cpp @@ -13,3 +13,7 @@ int main(int argc, char *argv[]) w.show(); return a.exec(); } + +// Local Variables: +// c-basic-offset: 4 +// End: From 4fd648c11e56c1c79035c747d8f89f71db5e3b20 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 12:18:00 -0400 Subject: [PATCH 139/247] add copyright message --- tools/lammps-gui/codeeditor.cpp | 13 +++++++++++++ tools/lammps-gui/lammpsgui.cpp | 12 ++++++++++++ tools/lammps-gui/main.cpp | 13 +++++++++++++ 3 files changed, 38 insertions(+) diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index 8e03497422..6b4df6ba4d 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -1,3 +1,16 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + #include "codeeditor.h" #include "linenumberarea.h" diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 3711d6a9e4..73b145d87d 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -1,3 +1,15 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ #include "lammpsgui.h" #include "ui_lammpsgui.h" diff --git a/tools/lammps-gui/main.cpp b/tools/lammps-gui/main.cpp index 2b693616be..bdd3885492 100644 --- a/tools/lammps-gui/main.cpp +++ b/tools/lammps-gui/main.cpp @@ -1,3 +1,16 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + #include "lammpsgui.h" #include From 5d1251df27240c9e7df679a24ead357b7f6d4cff Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 12:18:47 -0400 Subject: [PATCH 140/247] properly canonicalize filename --- tools/lammps-gui/lammpsgui.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 73b145d87d..a927069412 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -85,16 +85,19 @@ void LammpsGui::open() void LammpsGui::open_file(const QString &fileName) { - QFile file(fileName); - QFileInfo path(file); + QFileInfo path(fileName); current_file = path.fileName(); current_dir = path.absolutePath(); + QFile file(path.absoluteFilePath()); + QDir::setCurrent(current_dir); if (!file.open(QIODevice::ReadOnly | QFile::Text)) { - QMessageBox::warning(this, "Warning", "Cannot open file: " + file.errorString()); + QMessageBox::warning(this, "Warning", + "Cannot open file " + path.absoluteFilePath() + ": " + + file.errorString()); return; } - setWindowTitle(QString("LAMMPS-GUI - " + fileName)); + setWindowTitle(QString("LAMMPS-GUI - " + current_file)); QTextStream in(&file); QString text = in.readAll(); ui->textEdit->document()->setPlainText(text); @@ -111,7 +114,7 @@ void LammpsGui::write_file(const QString &fileName) QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString()); return; } - setWindowTitle(QString("LAMMPS-GUI - " + fileName)); + setWindowTitle(QString("LAMMPS-GUI - " + current_file)); QTextStream out(&file); QString text = ui->textEdit->toPlainText(); out << text; From 5da462670f4a3a8423b35da4ac24fbf042141500 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 12:19:10 -0400 Subject: [PATCH 141/247] add menu hotkeys and shortcuts --- tools/lammps-gui/lammpsgui.ui | 67 ++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 17 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index 9fcb18016e..19fd799c31 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -36,12 +36,12 @@ 0 0 800 - 24 + 23 - File + &File @@ -53,7 +53,7 @@ - Edit + &Edit @@ -64,7 +64,7 @@ - Run + &Run @@ -77,67 +77,100 @@ - New + &New + + + Ctrl+N - Open + &Open + + + Ctrl+O - Save + &Save + + + Ctrl+S - Save As + Save &As + + + Ctrl+Shift+S - Quit + &Quit + + + Ctrl+Q - Cut + C&ut + + + Ctrl+X - Copy + &Copy + + + Ctrl+C - Paste + &Paste + + + Ctrl+V - Undo + &Undo + + + Ctrl+Z - Redo + &Redo + + + Ctrl+Shift+Z - Clear + &Clear - Execute Buffer + &Execute Buffer + + + Ctrl+Return - About + &About From 7eb2afa9949a075eece2d56c6531c452346d4513 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 12:20:48 -0400 Subject: [PATCH 142/247] integrate syntax highlight code from example (uses c++ syntax currently) --- tools/lammps-gui/CMakeLists.txt | 2 + tools/lammps-gui/highlighter.cpp | 98 ++++++++++++++++++++++++++++++++ tools/lammps-gui/highlighter.h | 52 +++++++++++++++++ tools/lammps-gui/lammpsgui.cpp | 4 ++ tools/lammps-gui/lammpsgui.h | 5 ++ 5 files changed, 161 insertions(+) create mode 100644 tools/lammps-gui/highlighter.cpp create mode 100644 tools/lammps-gui/highlighter.h diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 1e724671a1..c47cb03ce5 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -55,6 +55,8 @@ set(PROJECT_SOURCES main.cpp codeeditor.cpp codeeditor.h + highlighter.cpp + highlighter.h linenumberarea.h lammpsgui.cpp lammpsgui.h diff --git a/tools/lammps-gui/highlighter.cpp b/tools/lammps-gui/highlighter.cpp new file mode 100644 index 0000000000..bd88c60a86 --- /dev/null +++ b/tools/lammps-gui/highlighter.cpp @@ -0,0 +1,98 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "highlighter.h" + +Highlighter::Highlighter(QTextDocument *parent) : QSyntaxHighlighter(parent) +{ + HighlightingRule rule; + + keywordFormat.setForeground(Qt::darkBlue); + keywordFormat.setFontWeight(QFont::Bold); + const QString keywordPatterns[] = { + QStringLiteral("\\bchar\\b"), QStringLiteral("\\bclass\\b"), + QStringLiteral("\\bconst\\b"), QStringLiteral("\\bdouble\\b"), + QStringLiteral("\\benum\\b"), QStringLiteral("\\bexplicit\\b"), + QStringLiteral("\\bfriend\\b"), QStringLiteral("\\binline\\b"), + QStringLiteral("\\bint\\b"), QStringLiteral("\\blong\\b"), + QStringLiteral("\\bnamespace\\b"), QStringLiteral("\\boperator\\b"), + QStringLiteral("\\bprivate\\b"), QStringLiteral("\\bprotected\\b"), + QStringLiteral("\\bpublic\\b"), QStringLiteral("\\bshort\\b"), + QStringLiteral("\\bsignals\\b"), QStringLiteral("\\bsigned\\b"), + QStringLiteral("\\bslots\\b"), QStringLiteral("\\bstatic\\b"), + QStringLiteral("\\bstruct\\b"), QStringLiteral("\\btemplate\\b"), + QStringLiteral("\\btypedef\\b"), QStringLiteral("\\btypename\\b"), + QStringLiteral("\\bunion\\b"), QStringLiteral("\\bunsigned\\b"), + QStringLiteral("\\bvirtual\\b"), QStringLiteral("\\bvoid\\b"), + QStringLiteral("\\bvolatile\\b"), QStringLiteral("\\bbool\\b")}; + for (const QString &pattern : keywordPatterns) { + rule.pattern = QRegularExpression(pattern); + rule.format = keywordFormat; + highlightingRules.append(rule); + } + classFormat.setFontWeight(QFont::Bold); + classFormat.setForeground(Qt::darkMagenta); + rule.pattern = QRegularExpression(QStringLiteral("\\bQ[A-Za-z]+\\b")); + rule.format = classFormat; + highlightingRules.append(rule); + + quotationFormat.setForeground(Qt::darkGreen); + rule.pattern = QRegularExpression(QStringLiteral("\".*\"")); + rule.format = quotationFormat; + highlightingRules.append(rule); + + functionFormat.setFontItalic(true); + functionFormat.setForeground(Qt::blue); + rule.pattern = QRegularExpression(QStringLiteral("\\b[A-Za-z0-9_]+(?=\\()")); + rule.format = functionFormat; + highlightingRules.append(rule); + singleLineCommentFormat.setForeground(Qt::red); + rule.pattern = QRegularExpression(QStringLiteral("//[^\n]*")); + rule.format = singleLineCommentFormat; + highlightingRules.append(rule); + + multiLineCommentFormat.setForeground(Qt::red); + + commentStartExpression = QRegularExpression(QStringLiteral("/\\*")); + commentEndExpression = QRegularExpression(QStringLiteral("\\*/")); +} + +void Highlighter::highlightBlock(const QString &text) +{ + for (const HighlightingRule &rule : qAsConst(highlightingRules)) { + QRegularExpressionMatchIterator matchIterator = rule.pattern.globalMatch(text); + while (matchIterator.hasNext()) { + QRegularExpressionMatch match = matchIterator.next(); + setFormat(match.capturedStart(), match.capturedLength(), rule.format); + } + } + setCurrentBlockState(0); + int startIndex = 0; + if (previousBlockState() != 1) startIndex = text.indexOf(commentStartExpression); + while (startIndex >= 0) { + QRegularExpressionMatch match = commentEndExpression.match(text, startIndex); + int endIndex = match.capturedStart(); + int commentLength = 0; + if (endIndex == -1) { + setCurrentBlockState(1); + commentLength = text.length() - startIndex; + } else { + commentLength = endIndex - startIndex + match.capturedLength(); + } + setFormat(startIndex, commentLength, multiLineCommentFormat); + startIndex = text.indexOf(commentStartExpression, startIndex + commentLength); + } +} +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/highlighter.h b/tools/lammps-gui/highlighter.h new file mode 100644 index 0000000000..d3dc60bb5b --- /dev/null +++ b/tools/lammps-gui/highlighter.h @@ -0,0 +1,52 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef HIGHLIGHTER_H +#define HIGHLIGHTER_H + +#include +#include +#include + +class Highlighter : public QSyntaxHighlighter +{ + Q_OBJECT + +public: + Highlighter(QTextDocument *parent = 0); + +protected: + void highlightBlock(const QString &text) override; + +private: + struct HighlightingRule + { + QRegularExpression pattern; + QTextCharFormat format; + }; + QVector highlightingRules; + + QRegularExpression commentStartExpression; + QRegularExpression commentEndExpression; + + QTextCharFormat keywordFormat; + QTextCharFormat classFormat; + QTextCharFormat singleLineCommentFormat; + QTextCharFormat multiLineCommentFormat; + QTextCharFormat quotationFormat; + QTextCharFormat functionFormat; +}; +#endif +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index a927069412..0918e113f3 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -10,7 +10,9 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ + #include "lammpsgui.h" +#include "highlighter.h" #include "ui_lammpsgui.h" #include @@ -34,6 +36,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : text_font.setFixedPitch(true); text_font.setStyleHint(QFont::TypeWriter); ui->textEdit->document()->setDefaultFont(text_font); + highlighter = new Highlighter(ui->textEdit->document()); connect(ui->actionNew, &QAction::triggered, this, &LammpsGui::new_document); connect(ui->actionOpen, &QAction::triggered, this, &LammpsGui::open); @@ -64,6 +67,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : LammpsGui::~LammpsGui() { delete ui; + delete highlighter; } void LammpsGui::new_document() diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index b591161581..965c2d2636 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -17,12 +17,16 @@ #include #include +// forward declarations + QT_BEGIN_NAMESPACE namespace Ui { class LammpsGui; } QT_END_NAMESPACE +class Highlighter; + class LammpsGui : public QMainWindow { Q_OBJECT @@ -52,6 +56,7 @@ private slots: private: Ui::LammpsGui *ui; + Highlighter *highlighter; QString current_file; QString current_dir; From 276b89366a0fc62d91d05c27355d921df9c8aee1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 13:05:27 -0400 Subject: [PATCH 143/247] add global error message buffer for exceptions creating a LAMMPS instance --- src/library.cpp | 62 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index 8cec7c4505..d0cad391cb 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -61,6 +61,9 @@ #include #endif +/// string buffer for error messages of global errors +static std::string lammps_last_global_errormessage; + using namespace LAMMPS_NS; // for printing the non-null pointer argument warning only once @@ -179,10 +182,13 @@ void *lammps_open(int argc, char **argv, MPI_Comm comm, void **ptr) #ifdef LAMMPS_EXCEPTIONS try { + lammps_last_global_errormessage.clear(); lmp = new LAMMPS(argc, argv, comm); if (ptr) *ptr = (void *) lmp; } catch(LAMMPSException &e) { + lammps_last_global_errormessage = e.message; + fmt::print(stderr, "LAMMPS Exception: {}", e.message); if (ptr) *ptr = nullptr; } @@ -6488,6 +6494,14 @@ void lammps_force_timeout(void *handle) This function can be used to query if an error inside of LAMMPS has thrown a :ref:`C++ exception `. +.. note:: + + The *handle* pointer may be ``NULL`` for this function, as would be + the case when a call to create a LAMMPS instance has failed. Then + this function will not check the error status inside the LAMMPS + instance, but instead would check the global error buffer of the + library interface. + .. note:: This function will always report "no error" when the LAMMPS library @@ -6497,14 +6511,18 @@ has thrown a :ref:`C++ exception `. the case. \endverbatim * - * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param handle pointer to a previously created LAMMPS instance cast to ``void *`` or NULL * \return 0 on no error, 1 on error. */ int lammps_has_error(void *handle) { #ifdef LAMMPS_EXCEPTIONS - LAMMPS *lmp = (LAMMPS *) handle; - Error *error = lmp->error; - return (error->get_last_error().empty()) ? 0 : 1; + if (handle) { + LAMMPS *lmp = (LAMMPS *) handle; + Error *error = lmp->error; + return (error->get_last_error().empty()) ? 0 : 1; + } else { + return lammps_last_global_errormessage.empty() ? 0 : 1; + } #else return 0; #endif @@ -6526,6 +6544,14 @@ a "2" indicates an abort that would happen only in a single MPI rank and thus may not be recoverable, as other MPI ranks may be waiting on the failing MPI ranks to send messages. +.. note:: + + The *handle* pointer may be ``NULL`` for this function, as would be + the case when a call to create a LAMMPS instance has failed. Then + this function will not check the error buffer inside the LAMMPS + instance, but instead would check the global error buffer of the + library interface. + .. note:: This function will do nothing when the LAMMPS library has been @@ -6534,22 +6560,32 @@ the failing MPI ranks to send messages. :cpp:func:`lammps_config_has_exceptions` to check whether this is the case. \endverbatim * - * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param handle pointer to a previously created LAMMPS instance cast to ``void *`` or NULL. * \param buffer string buffer to copy the error message to * \param buf_size size of the provided string buffer * \return 1 when all ranks had the error, 2 on a single rank error. */ int lammps_get_last_error_message(void *handle, char *buffer, int buf_size) { #ifdef LAMMPS_EXCEPTIONS - LAMMPS *lmp = (LAMMPS *) handle; - Error *error = lmp->error; - buffer[0] = buffer[buf_size-1] = '\0'; + if (handle) { + LAMMPS *lmp = (LAMMPS *) handle; + Error *error = lmp->error; + buffer[0] = buffer[buf_size-1] = '\0'; - if (!error->get_last_error().empty()) { - int error_type = error->get_last_error_type(); - strncpy(buffer, error->get_last_error().c_str(), buf_size-1); - error->set_last_error("", ERROR_NONE); - return error_type; + if (!error->get_last_error().empty()) { + int error_type = error->get_last_error_type(); + strncpy(buffer, error->get_last_error().c_str(), buf_size-1); + error->set_last_error("", ERROR_NONE); + return error_type; + } + } else { + buffer[0] = buffer[buf_size-1] = '\0'; + + if (!lammps_last_global_errormessage.empty()) { + strncpy(buffer, lammps_last_global_errormessage.c_str(), buf_size-1); + lammps_last_global_errormessage.clear(); + return 1; + } } #endif return 0; From ab792acbe504c9f31f009839b1ceb6203b3fb003 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 13:06:27 -0400 Subject: [PATCH 144/247] catch errors via library interface and present dialog displaying them --- tools/lammps-gui/lammpsgui.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 0918e113f3..a4970dc5e5 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -32,7 +32,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : current_file.clear(); QFont text_font; - text_font.setFamily("monospace"); + text_font.setFamily("Consolas"); text_font.setFixedPitch(true); text_font.setStyleHint(QFont::TypeWriter); ui->textEdit->document()->setDefaultFont(text_font); @@ -189,6 +189,14 @@ void LammpsGui::run_buffer() clear(); std::string buffer = ui->textEdit->toPlainText().toStdString(); lammps_commands_string(lammps_handle, buffer.c_str()); + + if (lammps_has_error(lammps_handle)) { + constexpr int BUFLEN = 1024; + char errorbuf[BUFLEN]; + lammps_get_last_error_message(lammps_handle, errorbuf, BUFLEN); + + QMessageBox::warning(this, "LAMMPS-GUI Error", QString("Error running LAMMPS:\n\n") + errorbuf); + } } void LammpsGui::clear() @@ -204,7 +212,7 @@ void LammpsGui::about() start_lammps(); std::string version = "This is LAMMPS-GUI version 0.1\n"; - if (lammps_handle) version += "LAMMPS Version " + std::to_string(lammps_version(lammps_handle)); + if (lammps_handle) version += "using LAMMPS Version " + std::to_string(lammps_version(lammps_handle)); QMessageBox::information(this, "About LAMMPS-GUI", version.c_str()); } @@ -215,8 +223,14 @@ void LammpsGui::start_lammps() // Create LAMMPS instance if not already present if (!lammps_handle) lammps_handle = lammps_open_no_mpi(nargs, args, nullptr); - if (!lammps_handle) - QMessageBox::warning(this, "LAMMPS Error", "Internal error launching LAMMPS"); + if (lammps_has_error(lammps_handle)) { + constexpr int BUFLEN = 1024; + char errorbuf[BUFLEN]; + lammps_get_last_error_message(lammps_handle, errorbuf, BUFLEN); + + QMessageBox::warning(this, "LAMMPS-GUI Error", + QString("Error launching LAMMPS:\n\n") + errorbuf); + } } // Local Variables: From 5d34cc624d32b2cb6e73ee4ebb865df5ed5fff29 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 13:06:52 -0400 Subject: [PATCH 145/247] temporarily disable highlighting a line --- tools/lammps-gui/codeeditor.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index 6b4df6ba4d..ff3fa2f300 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -23,10 +23,10 @@ CodeEditor::CodeEditor(QWidget *parent) : QPlainTextEdit(parent) connect(this, &CodeEditor::blockCountChanged, this, &CodeEditor::updateLineNumberAreaWidth); connect(this, &CodeEditor::updateRequest, this, &CodeEditor::updateLineNumberArea); - connect(this, &CodeEditor::cursorPositionChanged, this, &CodeEditor::highlightCurrentLine); + // connect(this, &CodeEditor::cursorPositionChanged, this, &CodeEditor::highlightCurrentLine); updateLineNumberAreaWidth(0); - highlightCurrentLine(); + // highlightCurrentLine(); } int CodeEditor::lineNumberAreaWidth() From f7881f4de598d1e9e28342f906a756280544576e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 13:05:27 -0400 Subject: [PATCH 146/247] add global error message buffer for exceptions creating a LAMMPS instance --- src/library.cpp | 62 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index 8cec7c4505..d0cad391cb 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -61,6 +61,9 @@ #include #endif +/// string buffer for error messages of global errors +static std::string lammps_last_global_errormessage; + using namespace LAMMPS_NS; // for printing the non-null pointer argument warning only once @@ -179,10 +182,13 @@ void *lammps_open(int argc, char **argv, MPI_Comm comm, void **ptr) #ifdef LAMMPS_EXCEPTIONS try { + lammps_last_global_errormessage.clear(); lmp = new LAMMPS(argc, argv, comm); if (ptr) *ptr = (void *) lmp; } catch(LAMMPSException &e) { + lammps_last_global_errormessage = e.message; + fmt::print(stderr, "LAMMPS Exception: {}", e.message); if (ptr) *ptr = nullptr; } @@ -6488,6 +6494,14 @@ void lammps_force_timeout(void *handle) This function can be used to query if an error inside of LAMMPS has thrown a :ref:`C++ exception `. +.. note:: + + The *handle* pointer may be ``NULL`` for this function, as would be + the case when a call to create a LAMMPS instance has failed. Then + this function will not check the error status inside the LAMMPS + instance, but instead would check the global error buffer of the + library interface. + .. note:: This function will always report "no error" when the LAMMPS library @@ -6497,14 +6511,18 @@ has thrown a :ref:`C++ exception `. the case. \endverbatim * - * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param handle pointer to a previously created LAMMPS instance cast to ``void *`` or NULL * \return 0 on no error, 1 on error. */ int lammps_has_error(void *handle) { #ifdef LAMMPS_EXCEPTIONS - LAMMPS *lmp = (LAMMPS *) handle; - Error *error = lmp->error; - return (error->get_last_error().empty()) ? 0 : 1; + if (handle) { + LAMMPS *lmp = (LAMMPS *) handle; + Error *error = lmp->error; + return (error->get_last_error().empty()) ? 0 : 1; + } else { + return lammps_last_global_errormessage.empty() ? 0 : 1; + } #else return 0; #endif @@ -6526,6 +6544,14 @@ a "2" indicates an abort that would happen only in a single MPI rank and thus may not be recoverable, as other MPI ranks may be waiting on the failing MPI ranks to send messages. +.. note:: + + The *handle* pointer may be ``NULL`` for this function, as would be + the case when a call to create a LAMMPS instance has failed. Then + this function will not check the error buffer inside the LAMMPS + instance, but instead would check the global error buffer of the + library interface. + .. note:: This function will do nothing when the LAMMPS library has been @@ -6534,22 +6560,32 @@ the failing MPI ranks to send messages. :cpp:func:`lammps_config_has_exceptions` to check whether this is the case. \endverbatim * - * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. + * \param handle pointer to a previously created LAMMPS instance cast to ``void *`` or NULL. * \param buffer string buffer to copy the error message to * \param buf_size size of the provided string buffer * \return 1 when all ranks had the error, 2 on a single rank error. */ int lammps_get_last_error_message(void *handle, char *buffer, int buf_size) { #ifdef LAMMPS_EXCEPTIONS - LAMMPS *lmp = (LAMMPS *) handle; - Error *error = lmp->error; - buffer[0] = buffer[buf_size-1] = '\0'; + if (handle) { + LAMMPS *lmp = (LAMMPS *) handle; + Error *error = lmp->error; + buffer[0] = buffer[buf_size-1] = '\0'; - if (!error->get_last_error().empty()) { - int error_type = error->get_last_error_type(); - strncpy(buffer, error->get_last_error().c_str(), buf_size-1); - error->set_last_error("", ERROR_NONE); - return error_type; + if (!error->get_last_error().empty()) { + int error_type = error->get_last_error_type(); + strncpy(buffer, error->get_last_error().c_str(), buf_size-1); + error->set_last_error("", ERROR_NONE); + return error_type; + } + } else { + buffer[0] = buffer[buf_size-1] = '\0'; + + if (!lammps_last_global_errormessage.empty()) { + strncpy(buffer, lammps_last_global_errormessage.c_str(), buf_size-1); + lammps_last_global_errormessage.clear(); + return 1; + } } #endif return 0; From 8b9174821a1a99f6044ca47b734eef2d70f2b9c7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 16:01:02 -0400 Subject: [PATCH 147/247] capture stdout and display in dialog window --- tools/lammps-gui/CMakeLists.txt | 1 + tools/lammps-gui/lammpsgui.cpp | 30 +++++++- tools/lammps-gui/lammpsgui.h | 2 + tools/lammps-gui/stdcapture.cpp | 119 ++++++++++++++++++++++++++++++++ tools/lammps-gui/stdcapture.h | 40 +++++++++++ 5 files changed, 190 insertions(+), 2 deletions(-) create mode 100644 tools/lammps-gui/stdcapture.cpp create mode 100644 tools/lammps-gui/stdcapture.h diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index c47cb03ce5..f2f56a6c07 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -61,6 +61,7 @@ set(PROJECT_SOURCES lammpsgui.cpp lammpsgui.h lammpsgui.ui + stdcapture.cpp ) if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index a4970dc5e5..ffbfc73bb6 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -13,12 +13,15 @@ #include "lammpsgui.h" #include "highlighter.h" +#include "stdcapture.h" #include "ui_lammpsgui.h" #include #include #include #include +#include +#include #include #include @@ -30,12 +33,14 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : ui->setupUi(this); this->setCentralWidget(ui->textEdit); current_file.clear(); + capturer = new StdCapture; QFont text_font; text_font.setFamily("Consolas"); text_font.setFixedPitch(true); text_font.setStyleHint(QFont::TypeWriter); ui->textEdit->document()->setDefaultFont(text_font); + ui->textEdit->setMinimumSize(800, 600); highlighter = new Highlighter(ui->textEdit->document()); connect(ui->actionNew, &QAction::triggered, this, &LammpsGui::new_document); @@ -68,6 +73,7 @@ LammpsGui::~LammpsGui() { delete ui; delete highlighter; + delete capturer; } void LammpsGui::new_document() @@ -187,15 +193,34 @@ void LammpsGui::run_buffer() start_lammps(); if (!lammps_handle) return; clear(); + capturer->BeginCapture(); std::string buffer = ui->textEdit->toPlainText().toStdString(); lammps_commands_string(lammps_handle, buffer.c_str()); + capturer->EndCapture(); + auto log = capturer->GetCapture(); + auto box = new QPlainTextEdit(); + box->document()->setPlainText(log.c_str()); + box->setReadOnly(true); + + QFont text_font; + text_font.setFamily("Consolas"); + text_font.setFixedPitch(true); + text_font.setStyleHint(QFont::TypeWriter); + box->document()->setDefaultFont(text_font); + box->setLineWrapMode(QPlainTextEdit::NoWrap); + box->setMinimumSize(800, 600); + QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), box); +// QObject::connect(shortcut, &QShortcut::activated, box, &QPlainTextEdit::close()); + + box->show(); if (lammps_has_error(lammps_handle)) { constexpr int BUFLEN = 1024; char errorbuf[BUFLEN]; lammps_get_last_error_message(lammps_handle, errorbuf, BUFLEN); - QMessageBox::warning(this, "LAMMPS-GUI Error", QString("Error running LAMMPS:\n\n") + errorbuf); + QMessageBox::warning(this, "LAMMPS-GUI Error", + QString("Error running LAMMPS:\n\n") + errorbuf); } } @@ -212,7 +237,8 @@ void LammpsGui::about() start_lammps(); std::string version = "This is LAMMPS-GUI version 0.1\n"; - if (lammps_handle) version += "using LAMMPS Version " + std::to_string(lammps_version(lammps_handle)); + if (lammps_handle) + version += "using LAMMPS Version " + std::to_string(lammps_version(lammps_handle)); QMessageBox::information(this, "About LAMMPS-GUI", version.c_str()); } diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 965c2d2636..3ee82b97a8 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -26,6 +26,7 @@ class LammpsGui; QT_END_NAMESPACE class Highlighter; +class StdCapture; class LammpsGui : public QMainWindow { Q_OBJECT @@ -57,6 +58,7 @@ private slots: private: Ui::LammpsGui *ui; Highlighter *highlighter; + StdCapture *capturer; QString current_file; QString current_dir; diff --git a/tools/lammps-gui/stdcapture.cpp b/tools/lammps-gui/stdcapture.cpp new file mode 100644 index 0000000000..4932ef3d27 --- /dev/null +++ b/tools/lammps-gui/stdcapture.cpp @@ -0,0 +1,119 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. + ------------------------------------------------------------------------- */ + +// adapted from: https://stackoverflow.com/questions/5419356/redirect-stdout-stderr-to-a-string + +#include "stdcapture.h" + +#ifdef _MSC_VER +#include +#define popen _popen +#define pclose _pclose +#define stat _stat +#define dup _dup +#define dup2 _dup2 +#define fileno _fileno +#define close _close +#define pipe _pipe +#define read _read +#define eof _eof +#else +#include +#endif + +#include +#include +#include +#include + +StdCapture::StdCapture() : m_capturing(false), m_oldStdOut(0) +{ + // make stdout unbuffered so that we don't need to flush the stream + setvbuf(stdout, NULL, _IONBF, 0); + + m_pipe[READ] = 0; + m_pipe[WRITE] = 0; +#if _MSC_VER + if (pipe(m_pipe, 65536, O_BINARY) == -1) return; +#else + if (pipe(m_pipe) == -1) return; +#endif + m_oldStdOut = dup(fileno(stdout)); + if (m_oldStdOut == -1) return; +} + +StdCapture::~StdCapture() +{ + if (m_capturing) { + EndCapture(); + } + if (m_oldStdOut > 0) close(m_oldStdOut); + if (m_pipe[READ] > 0) close(m_pipe[READ]); + if (m_pipe[WRITE] > 0) close(m_pipe[WRITE]); +} + +void StdCapture::BeginCapture() +{ + if (m_capturing) EndCapture(); + dup2(m_pipe[WRITE], fileno(stdout)); + m_capturing = true; +} + +bool StdCapture::EndCapture() +{ + if (!m_capturing) return false; + dup2(m_oldStdOut, fileno(stdout)); + m_captured.clear(); + + constexpr int bufSize = 1025; + char buf[bufSize]; + int bytesRead; + bool fd_blocked; + + do { + bytesRead = 0; + fd_blocked = false; + +#ifdef _MSC_VER + if (!eof(m_pipe[READ])) { + bytesRead = read(m_pipe[READ], buf, bufSize - 1); + } +#else + bytesRead = read(m_pipe[READ], buf, bufSize - 1); +#endif + if (bytesRead > 0) { + buf[bytesRead] = 0; + m_captured += buf; + } else if (bytesRead < 0) { + fd_blocked = ((errno == EAGAIN) || (errno == EWOULDBLOCK) || (errno == EINTR)); + + if (fd_blocked) std::this_thread::sleep_for(std::chrono::milliseconds(10)); + } + } while (fd_blocked || (bytesRead == (bufSize - 1))); + m_capturing = false; + return true; +} + +std::string StdCapture::GetCapture() const +{ + std::string::size_type idx = m_captured.find_last_not_of("\r\n"); + if (idx == std::string::npos) { + return m_captured; + } else { + return m_captured.substr(0, idx + 1); + } +} + +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/stdcapture.h b/tools/lammps-gui/stdcapture.h new file mode 100644 index 0000000000..2afd494a36 --- /dev/null +++ b/tools/lammps-gui/stdcapture.h @@ -0,0 +1,40 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef STDCAPTURE_H +#define STDCAPTURE_H + +#include + +class StdCapture { +public: + StdCapture(); + virtual ~StdCapture(); + + void BeginCapture(); + bool EndCapture(); + std::string GetCapture() const; + +private: + enum PIPES { READ, WRITE }; + int m_pipe[2]; + int m_oldStdOut; + bool m_capturing; + bool m_init; + std::string m_captured; +}; + +#endif +// Local Variables: +// c-basic-offset: 4 +// End: From 6e0aaab973be73b48c32fb3b26209d5779a882db Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 21:35:38 -0400 Subject: [PATCH 148/247] first stab at LAMMPS input file syntax highlighting --- tools/lammps-gui/highlighter.cpp | 225 +++++++++++++++++++++++-------- tools/lammps-gui/highlighter.h | 26 ++-- 2 files changed, 180 insertions(+), 71 deletions(-) diff --git a/tools/lammps-gui/highlighter.cpp b/tools/lammps-gui/highlighter.cpp index bd88c60a86..d31c8dfc91 100644 --- a/tools/lammps-gui/highlighter.cpp +++ b/tools/lammps-gui/highlighter.cpp @@ -17,54 +17,179 @@ Highlighter::Highlighter(QTextDocument *parent) : QSyntaxHighlighter(parent) { HighlightingRule rule; - keywordFormat.setForeground(Qt::darkBlue); - keywordFormat.setFontWeight(QFont::Bold); - const QString keywordPatterns[] = { - QStringLiteral("\\bchar\\b"), QStringLiteral("\\bclass\\b"), - QStringLiteral("\\bconst\\b"), QStringLiteral("\\bdouble\\b"), - QStringLiteral("\\benum\\b"), QStringLiteral("\\bexplicit\\b"), - QStringLiteral("\\bfriend\\b"), QStringLiteral("\\binline\\b"), - QStringLiteral("\\bint\\b"), QStringLiteral("\\blong\\b"), - QStringLiteral("\\bnamespace\\b"), QStringLiteral("\\boperator\\b"), - QStringLiteral("\\bprivate\\b"), QStringLiteral("\\bprotected\\b"), - QStringLiteral("\\bpublic\\b"), QStringLiteral("\\bshort\\b"), - QStringLiteral("\\bsignals\\b"), QStringLiteral("\\bsigned\\b"), - QStringLiteral("\\bslots\\b"), QStringLiteral("\\bstatic\\b"), - QStringLiteral("\\bstruct\\b"), QStringLiteral("\\btemplate\\b"), - QStringLiteral("\\btypedef\\b"), QStringLiteral("\\btypename\\b"), - QStringLiteral("\\bunion\\b"), QStringLiteral("\\bunsigned\\b"), - QStringLiteral("\\bvirtual\\b"), QStringLiteral("\\bvoid\\b"), - QStringLiteral("\\bvolatile\\b"), QStringLiteral("\\bbool\\b")}; - for (const QString &pattern : keywordPatterns) { + outputFormat.setForeground(Qt::darkYellow); + readFormat.setForeground(Qt::magenta); + latticeFormat.setForeground(Qt::darkGreen); + particleFormat.setForeground(Qt::darkRed); + setupFormat.setForeground(Qt::darkCyan); + runFormat.setForeground(Qt::green); + runFormat.setFontWeight(QFont::Bold); + defineFormat.setForeground(Qt::darkMagenta); + defineFormat.setFontWeight(QFont::Bold); + + numberFormat.setForeground(Qt::blue); + commentFormat.setForeground(Qt::red); + stringFormat.setForeground(Qt::cyan); + stringFormat.setFontWeight(QFont::Normal); + + const QString output_keywords[] = { + QStringLiteral("^\\s*log\\W"), QStringLiteral("^\\s*write_data\\W"), + QStringLiteral("^\\s*write_dump\\W"), QStringLiteral("^\\s*write_coeff\\W"), + QStringLiteral("^\\s*info\\W"), QStringLiteral("^\\s*shell\\W"), + QStringLiteral("^\\s*write_restart\\W"), QStringLiteral("^\\s*restart\\W"), + QStringLiteral("^\\s*dump\\W"), QStringLiteral("^\\s*undump\\W"), + QStringLiteral("^\\s*thermo\\W"), QStringLiteral("^\\s*thermo_modify\\W"), + QStringLiteral("^\\s*thermo_style\\W"), QStringLiteral("^\\s*print\\W"), + QStringLiteral("^\\s*timer\\W")}; + for (const QString &pattern : output_keywords) { rule.pattern = QRegularExpression(pattern); - rule.format = keywordFormat; + rule.format = outputFormat; highlightingRules.append(rule); } - classFormat.setFontWeight(QFont::Bold); - classFormat.setForeground(Qt::darkMagenta); - rule.pattern = QRegularExpression(QStringLiteral("\\bQ[A-Za-z]+\\b")); - rule.format = classFormat; + + const QString read_keywords[] = { + QStringLiteral("^\\s*include\\W"), QStringLiteral("^\\s*read_restart\\W"), + QStringLiteral("^\\s*read_data\\W"), QStringLiteral("^\\s*read_dump\\W"), + QStringLiteral("^\\s*molecule\\W")}; + for (const QString &pattern : read_keywords) { + rule.pattern = QRegularExpression(pattern); + rule.format = readFormat; + highlightingRules.append(rule); + } + + const QString lattice_keywords[] = { + QStringLiteral("^\\s*boundary\\W"), QStringLiteral("^\\s*units\\W"), + QStringLiteral("^\\s*atom_style\\W"), QStringLiteral("^\\s*lattice\\W"), + QStringLiteral("^\\s*region\\W"), QStringLiteral("^\\s*create_box\\W"), + QStringLiteral("^\\s*create_atoms\\W"), QStringLiteral("^\\s*dielectric\\W"), + QStringLiteral("^\\s*delete_atoms\\W"), QStringLiteral("^\\s*displace_atoms\\W"), + QStringLiteral("^\\s*change_box\\W"), QStringLiteral("^\\s*dimension\\W"), + QStringLiteral("^\\s*replicate\\W")}; + for (const QString &pattern : lattice_keywords) { + rule.pattern = QRegularExpression(pattern); + rule.format = latticeFormat; + highlightingRules.append(rule); + } + + const QString particle_keywords[] = { + QStringLiteral("^\\s*pair_coeff\\W"), QStringLiteral("^\\s*pair_style\\W"), + QStringLiteral("^\\s*pair_modify\\W"), QStringLiteral("^\\s*pair_write\\W"), + QStringLiteral("^\\s*mass\\W"), QStringLiteral("^\\s*velocity\\W"), + QStringLiteral("^\\s*angle_coeff\\W"), QStringLiteral("^\\s*angle_style\\W"), + QStringLiteral("^\\s*angle_write\\W"), QStringLiteral("^\\s*atom_modify\\W"), + QStringLiteral("^\\s*atom_style\\W"), QStringLiteral("^\\s*bond_coeff\\W"), + QStringLiteral("^\\s*bond_style\\W"), QStringLiteral("^\\s*bond_write\\W"), + QStringLiteral("^\\s*create_bonds\\W"), QStringLiteral("^\\s*delete_bonds\\W"), + QStringLiteral("^\\s*kspace_style\\W"), QStringLiteral("^\\s*kspace_modify\\W"), + QStringLiteral("^\\s*dihedral_style\\W"), QStringLiteral("^\\s*dihedral_coeff\\W"), + QStringLiteral("^\\s*dihedral_write\\W"), QStringLiteral("^\\s*improper_style\\W"), + QStringLiteral("^\\s*improper_coeff\\W"), QStringLiteral("^\\s*labelmap\\W")}; + for (const QString &pattern : particle_keywords) { + rule.pattern = QRegularExpression(pattern); + rule.format = particleFormat; + highlightingRules.append(rule); + } + + const QString setup_keywords[] = {QStringLiteral("^\\s*min_style\\W"), + QStringLiteral("^\\s*min_modify\\W"), + QStringLiteral("^\\s*fix_modify\\W"), + QStringLiteral("^\\s*run_style\\W"), + QStringLiteral("^\\s*timestep\\W"), + QStringLiteral("^\\s*neighbor\\W"), + QStringLiteral("^\\s*neigh_modify\\W"), + QStringLiteral("^\\s*fix\\W"), + QStringLiteral("^\\s*unfix\\W"), + QStringLiteral("^\\s*suffix\\W"), + QStringLiteral("^\\s*special_bonds\\W"), + QStringLiteral("^\\s*balance\\W"), + QStringLiteral("^\\s*box\\W"), + QStringLiteral("^\\s*clear\\W"), + QStringLiteral("^\\s*comm_modify\\W"), + QStringLiteral("^\\s*comm_style\\W"), + QStringLiteral("^\\s*newton\\W"), + QStringLiteral("^\\s*package\\W"), + QStringLiteral("^\\s*processors\\W"), + QStringLiteral("^\\s*reset_atoms\\W"), + QStringLiteral("^\\s*dump_modify\\W"), + QStringLiteral("^\\s*reset_ids\\W"), + QStringLiteral("^\\s*reset_timestep\\W"), + QStringLiteral("^\\s*label\\W"), + QStringLiteral("^\\s*jump\\W"), + QStringLiteral("^\\s*next\\W"), + QStringLiteral("^\\s*loop\\W") + + }; + for (const QString &pattern : setup_keywords) { + rule.pattern = QRegularExpression(pattern); + rule.format = setupFormat; + highlightingRules.append(rule); + } + + const QString run_keywords[] = {QStringLiteral("^\\s*minimize\\W"), + QStringLiteral("^\\s*minimize/kk\\W"), + QStringLiteral("^\\s*run\\W"), + QStringLiteral("^\\s*rerun\\W"), + QStringLiteral("^\\s*tad\\W"), + QStringLiteral("^\\s*neb\\W"), + QStringLiteral("^\\s*neb/spin\\W"), + QStringLiteral("^\\s*prd\\W"), + QStringLiteral("^\\s*quit\\W"), + QStringLiteral("^\\s*server\\W"), + QStringLiteral("^\\s*temper/npt\\W"), + QStringLiteral("^\\s*temper/grem\\W"), + QStringLiteral("^\\s*temper\\W"), + QStringLiteral("^\\s*message\\W"), + QStringLiteral("^\\s*hyper\\W"), + QStringLiteral("^\\s*dynamical_matrix\\W"), + QStringLiteral("^\\s*dynamical_matrix/kk\\W"), + QStringLiteral("^\\s*third_order\\W"), + QStringLiteral("^\\s*third_order/kk\\W"), + QStringLiteral("^\\s*fitpod\\W"), + QStringLiteral("^\\s*if\\W"), + QStringLiteral("^\\s*then\\W"), + QStringLiteral("^\\s*elif\\W"), + QStringLiteral("^\\s*else\\W")}; + for (const QString &pattern : run_keywords) { + rule.pattern = QRegularExpression(pattern); + rule.format = runFormat; + highlightingRules.append(rule); + } + + const QString define_keywords[] = { + QStringLiteral("^\\s*variable\\W"), QStringLiteral("^\\s*group\\W"), + QStringLiteral("^\\s*compute\\W"), QStringLiteral("^\\s*python\\W"), + QStringLiteral("^\\s*set\\W"), QStringLiteral("^\\s*uncompute\\W"), + QStringLiteral("^\\s*kim_query\\W"), QStringLiteral("^\\s*kim\\W"), + QStringLiteral("^\\s*group2ndx\\W"), QStringLiteral("^\\s*ndx2group\\W"), + QStringLiteral("^\\s*INF\\W"), QStringLiteral("^\\s*EDGE\\W"), + QStringLiteral("^\\s*NULL\\W"), QStringLiteral("^\\s*&\\W"), + QStringLiteral("^\\s*mdi\\W")}; + for (const QString &pattern : define_keywords) { + rule.pattern = QRegularExpression(pattern); + rule.format = defineFormat; + highlightingRules.append(rule); + } + + const QString number_keywords[] = { + QStringLiteral("(^|\\s+)[0-9]+"), // integer + QStringLiteral("(^|\\s+)[0-9]+\\.[0-9]*[edED]?[-+]?[0-9]*"), // floating point 1 + QStringLiteral("(^|\\s+)[0-9]*\\.[0-9]+[edED]?[-+]?[0-9]*"), // floating point 2 + }; + for (const QString &pattern : number_keywords) { + rule.pattern = QRegularExpression(pattern); + rule.format = numberFormat; + highlightingRules.append(rule); + } + + // comments, must come before strings but after other keywords. + rule.pattern = QRegularExpression("#.*"); + rule.format = commentFormat; highlightingRules.append(rule); - quotationFormat.setForeground(Qt::darkGreen); - rule.pattern = QRegularExpression(QStringLiteral("\".*\"")); - rule.format = quotationFormat; + // strings, must come last so it overwrites other formatting + rule.pattern = QRegularExpression("(\".*\"|'.*')"); + rule.format = stringFormat; highlightingRules.append(rule); - - functionFormat.setFontItalic(true); - functionFormat.setForeground(Qt::blue); - rule.pattern = QRegularExpression(QStringLiteral("\\b[A-Za-z0-9_]+(?=\\()")); - rule.format = functionFormat; - highlightingRules.append(rule); - singleLineCommentFormat.setForeground(Qt::red); - rule.pattern = QRegularExpression(QStringLiteral("//[^\n]*")); - rule.format = singleLineCommentFormat; - highlightingRules.append(rule); - - multiLineCommentFormat.setForeground(Qt::red); - - commentStartExpression = QRegularExpression(QStringLiteral("/\\*")); - commentEndExpression = QRegularExpression(QStringLiteral("\\*/")); } void Highlighter::highlightBlock(const QString &text) @@ -76,22 +201,6 @@ void Highlighter::highlightBlock(const QString &text) setFormat(match.capturedStart(), match.capturedLength(), rule.format); } } - setCurrentBlockState(0); - int startIndex = 0; - if (previousBlockState() != 1) startIndex = text.indexOf(commentStartExpression); - while (startIndex >= 0) { - QRegularExpressionMatch match = commentEndExpression.match(text, startIndex); - int endIndex = match.capturedStart(); - int commentLength = 0; - if (endIndex == -1) { - setCurrentBlockState(1); - commentLength = text.length() - startIndex; - } else { - commentLength = endIndex - startIndex + match.capturedLength(); - } - setFormat(startIndex, commentLength, multiLineCommentFormat); - startIndex = text.indexOf(commentStartExpression, startIndex + commentLength); - } } // Local Variables: // c-basic-offset: 4 diff --git a/tools/lammps-gui/highlighter.h b/tools/lammps-gui/highlighter.h index d3dc60bb5b..234333924e 100644 --- a/tools/lammps-gui/highlighter.h +++ b/tools/lammps-gui/highlighter.h @@ -14,12 +14,11 @@ #ifndef HIGHLIGHTER_H #define HIGHLIGHTER_H -#include #include +#include #include -class Highlighter : public QSyntaxHighlighter -{ +class Highlighter : public QSyntaxHighlighter { Q_OBJECT public: @@ -29,22 +28,23 @@ protected: void highlightBlock(const QString &text) override; private: - struct HighlightingRule - { + struct HighlightingRule { QRegularExpression pattern; QTextCharFormat format; }; QVector highlightingRules; - QRegularExpression commentStartExpression; - QRegularExpression commentEndExpression; + QTextCharFormat outputFormat; + QTextCharFormat readFormat; + QTextCharFormat latticeFormat; + QTextCharFormat particleFormat; + QTextCharFormat setupFormat; + QTextCharFormat runFormat; + QTextCharFormat defineFormat; - QTextCharFormat keywordFormat; - QTextCharFormat classFormat; - QTextCharFormat singleLineCommentFormat; - QTextCharFormat multiLineCommentFormat; - QTextCharFormat quotationFormat; - QTextCharFormat functionFormat; + QTextCharFormat numberFormat; + QTextCharFormat stringFormat; + QTextCharFormat commentFormat; }; #endif // Local Variables: From 368be8ac39df5c444af0772414812140d0273e01 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 21:40:54 -0400 Subject: [PATCH 149/247] update list of keywords for VIM syntax highlighting --- tools/vim/lammps.vim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/vim/lammps.vim b/tools/vim/lammps.vim index 9565d0a86e..25c18f4a9c 100644 --- a/tools/vim/lammps.vim +++ b/tools/vim/lammps.vim @@ -17,19 +17,19 @@ syn keyword lammpsLattice delete_atoms displace_atoms change_box dimension syn keyword lammpsParticle pair_coeff pair_style pair_modify pair_write mass velocity angle_coeff angle_style angle_write syn keyword lammpsParticle atom_modify atom_style bond_coeff bond_style bond_write create_bonds delete_bonds kspace_style syn keyword lammpsParticle kspace_modify dihedral_style dihedral_coeff dihedral_write improper_style improper_coeff labelmap -syn keyword lammpsSetup min_style min_modify fix_modify run_style timestep neighbor neigh_modify fix unfix suffix special_bonds +syn keyword lammpsSetup min_style min_modify fix_modify run_style timestep neighbor neigh_modify fix unfix suffix special_bonds dump_modify syn keyword lammpsSetup balance box clear comm_modify comm_style newton package processors reset_atoms reset_ids reset_timestep syn keyword lammpsRun minimize minimize/kk run rerun tad neb neb/spin prd quit server temper/npt temper/grem temper syn keyword lammpsRun message hyper dynamical_matrix dynamical_matrix/kk third_order third_order/kk fitpod syn keyword lammpsDefine variable group compute python set uncompute kim_query kim group2ndx ndx2group mdi -syn keyword lammpsRepeat jump next loop +syn keyword lammpsRepeat jump next loop label syn keyword lammpsOperator equal add sub mult div syn keyword lammpsConditional if then elif else -syn keyword lammpsSpecial EDGE NULL & +syn keyword lammpsSpecial EDGE NULL INF & syn region lammpsString start=+'+ end=+'+ oneline syn region lammpsString start=+"+ end=+"+ oneline From e4dde8ebd4dabc0084f4690d69cffdc11a7855b1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 23:15:19 -0400 Subject: [PATCH 150/247] fix shortcut implementation for log windows --- tools/lammps-gui/lammpsgui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index ffbfc73bb6..6dfe7f71be 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -210,7 +210,7 @@ void LammpsGui::run_buffer() box->setLineWrapMode(QPlainTextEdit::NoWrap); box->setMinimumSize(800, 600); QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), box); -// QObject::connect(shortcut, &QShortcut::activated, box, &QPlainTextEdit::close()); + QObject::connect(shortcut, &QShortcut::activated, box, &QPlainTextEdit::close); box->show(); From e548c0bde61cb4f4d13a6012b296be5d64b283dc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 25 Jul 2023 23:39:29 -0400 Subject: [PATCH 151/247] add todo list --- tools/lammps-gui/TODO.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tools/lammps-gui/TODO.md diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md new file mode 100644 index 0000000000..6e4dac70cd --- /dev/null +++ b/tools/lammps-gui/TODO.md @@ -0,0 +1,24 @@ +LAMMPS-GUI TODO list: + +# Short term goals + +- add indicator for when the file in editor is modified (-> status bar?) +- add dialog when exiting asking if file should be saved when it is modified +- add indicator for a running calculation (-> status bar?) +- add CTRL-q hotkey to log windows so you can exit the entire application +- add "render" dialog where a "write_dump image" can be triggered. dialog should offer options for size, zoom, rotation, colors(?) +- add "syntax check" with enabled "-skiprun" flag. +- add settings dialog where certain properties can be set through customizing the LAMMPS command line + + enable/disable OpenMP (via suffix), select number of OpenMP threads + + toggle whether captured screen output should include input file echo + + select Font +- store settings/preferences when changed and read at startup +- add list of recently used files to file dialog (and also write to state on exit) (note: must store full path!) + +# Long term ideas +- support single stepping, i.e. process input line by line (need to detect continuation chars!) with highlighting active line(s) +- run LAMMMPS instance in a separate thread, modify capture to regularly poll pipe and retrieve/append output while job is running +- have command text input file in/above status bar where individual commands can be tested. have insert button to copy line into file at the current point +- support text completion as done with lammps-shell +- have context menu for known commands to offer retrieving help by dispatching URL to webbrowser (process index from sphinx for that purpose) + (embed html viewer to render pages locally, mathjax??) From 984a311dce67a9025145243a7b71b42b7412d776 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 01:29:30 -0400 Subject: [PATCH 152/247] make compatible with windows cross-compiler --- tools/lammps-gui/stdcapture.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/lammps-gui/stdcapture.cpp b/tools/lammps-gui/stdcapture.cpp index 4932ef3d27..610f08b92b 100644 --- a/tools/lammps-gui/stdcapture.cpp +++ b/tools/lammps-gui/stdcapture.cpp @@ -15,7 +15,7 @@ #include "stdcapture.h" -#ifdef _MSC_VER +#ifdef _WIN32 #include #define popen _popen #define pclose _pclose @@ -43,7 +43,7 @@ StdCapture::StdCapture() : m_capturing(false), m_oldStdOut(0) m_pipe[READ] = 0; m_pipe[WRITE] = 0; -#if _MSC_VER +#if _WIN32 if (pipe(m_pipe, 65536, O_BINARY) == -1) return; #else if (pipe(m_pipe) == -1) return; @@ -84,7 +84,7 @@ bool StdCapture::EndCapture() bytesRead = 0; fd_blocked = false; -#ifdef _MSC_VER +#ifdef _WIN32 if (!eof(m_pipe[READ])) { bytesRead = read(m_pipe[READ], buf, bufSize - 1); } From e6dc5822c339d5aea776c15d4574d32e57d3111f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 02:33:06 -0400 Subject: [PATCH 153/247] more flexible font search --- tools/lammps-gui/lammpsgui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 6dfe7f71be..f42f7de776 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -36,7 +36,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : capturer = new StdCapture; QFont text_font; - text_font.setFamily("Consolas"); + text_font.setFamilies(QStringList({"Consolas", "Monospace", "Sans", "Courier"})); text_font.setFixedPitch(true); text_font.setStyleHint(QFont::TypeWriter); ui->textEdit->document()->setDefaultFont(text_font); @@ -203,7 +203,7 @@ void LammpsGui::run_buffer() box->setReadOnly(true); QFont text_font; - text_font.setFamily("Consolas"); + text_font.setFamilies(QStringList({"Consolas", "Monospace", "Sans", "Courier"})); text_font.setFixedPitch(true); text_font.setStyleHint(QFont::TypeWriter); box->document()->setDefaultFont(text_font); From 89b92e8b138b7a7843fb2a98fcf306fa5699e1b7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 02:33:32 -0400 Subject: [PATCH 154/247] make "warning" boxes on errors "critical" --- tools/lammps-gui/lammpsgui.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index f42f7de776..695db5fb0d 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -219,8 +219,8 @@ void LammpsGui::run_buffer() char errorbuf[BUFLEN]; lammps_get_last_error_message(lammps_handle, errorbuf, BUFLEN); - QMessageBox::warning(this, "LAMMPS-GUI Error", - QString("Error running LAMMPS:\n\n") + errorbuf); + QMessageBox::critical(this, "LAMMPS-GUI Error", + QString("Error running LAMMPS:\n\n") + errorbuf); } } @@ -254,7 +254,7 @@ void LammpsGui::start_lammps() char errorbuf[BUFLEN]; lammps_get_last_error_message(lammps_handle, errorbuf, BUFLEN); - QMessageBox::warning(this, "LAMMPS-GUI Error", + QMessageBox::critical(this, "LAMMPS-GUI Error", QString("Error launching LAMMPS:\n\n") + errorbuf); } } From c96e4d59dacacbf688bdbc951e75ec6a8dae62f9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 02:33:50 -0400 Subject: [PATCH 155/247] print more config info in about dialog --- tools/lammps-gui/lammpsgui.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 695db5fb0d..c10979f322 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -236,10 +236,27 @@ void LammpsGui::about() { start_lammps(); - std::string version = "This is LAMMPS-GUI version 0.1\n"; - if (lammps_handle) - version += "using LAMMPS Version " + std::to_string(lammps_version(lammps_handle)); - QMessageBox::information(this, "About LAMMPS-GUI", version.c_str()); + std::string version = "This is LAMMPS-GUI version 0.1"; + capturer->BeginCapture(); + lammps_commands_string(lammps_handle, "info config"); + capturer->EndCapture(); + std::string info = capturer->GetCapture(); + auto start = info.find("LAMMPS version:"); + auto end = info.find("Info-Info-Info", start); + QMessageBox msg; + msg.setWindowTitle("About LAMMPS-GUI"); + msg.setText(version.c_str()); + msg.setInformativeText(std::string(info, start, end - start).c_str()); + msg.setIcon(QMessageBox::NoIcon); + msg.setStandardButtons(QMessageBox::Ok); + QFont font; + font.setFamilies(QStringList({"Sans", "Arial", "Helvetica"})); + font.setFixedPitch(true); + font.setStyleHint(QFont::TypeWriter); + font.setPointSize(8); + font.setWeight(QFont::Medium); + msg.setFont(font); + msg.exec(); } void LammpsGui::start_lammps() From cde3328927f1b1962fa4914a3e71fc7cf8e48a89 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 08:42:08 -0400 Subject: [PATCH 156/247] update todo list --- tools/lammps-gui/TODO.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index 6e4dac70cd..a589592464 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -3,8 +3,10 @@ LAMMPS-GUI TODO list: # Short term goals - add indicator for when the file in editor is modified (-> status bar?) +- add indicator icon (red/green "LED/lamp") to status bar indicating presense of a "runnable" LAMMPS instance +- add "Help" entry to menu bar. Should open a popup window with a one page description of how to use it. Use HTML or Markdown text. +- add "View" entry to menu bar, where dialog windows may be enabled/disabled (e.g. Render) - add dialog when exiting asking if file should be saved when it is modified -- add indicator for a running calculation (-> status bar?) - add CTRL-q hotkey to log windows so you can exit the entire application - add "render" dialog where a "write_dump image" can be triggered. dialog should offer options for size, zoom, rotation, colors(?) - add "syntax check" with enabled "-skiprun" flag. From 3287d79e9d176908ee59ff1ceed0b04d8761f7de Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 08:43:26 -0400 Subject: [PATCH 157/247] tweak/correct highlighting --- tools/lammps-gui/highlighter.cpp | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/tools/lammps-gui/highlighter.cpp b/tools/lammps-gui/highlighter.cpp index d31c8dfc91..3e75cb56d4 100644 --- a/tools/lammps-gui/highlighter.cpp +++ b/tools/lammps-gui/highlighter.cpp @@ -92,13 +92,10 @@ Highlighter::Highlighter(QTextDocument *parent) : QSyntaxHighlighter(parent) const QString setup_keywords[] = {QStringLiteral("^\\s*min_style\\W"), QStringLiteral("^\\s*min_modify\\W"), - QStringLiteral("^\\s*fix_modify\\W"), QStringLiteral("^\\s*run_style\\W"), QStringLiteral("^\\s*timestep\\W"), QStringLiteral("^\\s*neighbor\\W"), QStringLiteral("^\\s*neigh_modify\\W"), - QStringLiteral("^\\s*fix\\W"), - QStringLiteral("^\\s*unfix\\W"), QStringLiteral("^\\s*suffix\\W"), QStringLiteral("^\\s*special_bonds\\W"), QStringLiteral("^\\s*balance\\W"), @@ -155,15 +152,25 @@ Highlighter::Highlighter(QTextDocument *parent) : QSyntaxHighlighter(parent) highlightingRules.append(rule); } - const QString define_keywords[] = { - QStringLiteral("^\\s*variable\\W"), QStringLiteral("^\\s*group\\W"), - QStringLiteral("^\\s*compute\\W"), QStringLiteral("^\\s*python\\W"), - QStringLiteral("^\\s*set\\W"), QStringLiteral("^\\s*uncompute\\W"), - QStringLiteral("^\\s*kim_query\\W"), QStringLiteral("^\\s*kim\\W"), - QStringLiteral("^\\s*group2ndx\\W"), QStringLiteral("^\\s*ndx2group\\W"), - QStringLiteral("^\\s*INF\\W"), QStringLiteral("^\\s*EDGE\\W"), - QStringLiteral("^\\s*NULL\\W"), QStringLiteral("^\\s*&\\W"), - QStringLiteral("^\\s*mdi\\W")}; + const QString define_keywords[] = {QStringLiteral("^\\s*variable\\W"), + QStringLiteral("^\\s*group\\W"), + QStringLiteral("^\\s*compute\\W"), + QStringLiteral("^\\s*python\\W"), + QStringLiteral("^\\s*set\\W"), + QStringLiteral("^\\s*uncompute\\W"), + QStringLiteral("^\\s*kim_query\\W"), + QStringLiteral("^\\s*kim\\W"), + QStringLiteral("^\\s*group2ndx\\W"), + QStringLiteral("^\\s*ndx2group\\W"), + QStringLiteral("^\\s*compute_modify\\W"), + QStringLiteral("^\\s*fix_modify\\W"), + QStringLiteral("^\\s*fix\\W"), + QStringLiteral("^\\s*unfix\\W"), + QStringLiteral("^\\s*INF\\W"), + QStringLiteral("^\\s*EDGE\\W"), + QStringLiteral("^\\s*NULL\\W"), + QStringLiteral("^\\s*&\\s*$"), + QStringLiteral("^\\s*mdi\\W")}; for (const QString &pattern : define_keywords) { rule.pattern = QRegularExpression(pattern); rule.format = defineFormat; @@ -174,6 +181,7 @@ Highlighter::Highlighter(QTextDocument *parent) : QSyntaxHighlighter(parent) QStringLiteral("(^|\\s+)[0-9]+"), // integer QStringLiteral("(^|\\s+)[0-9]+\\.[0-9]*[edED]?[-+]?[0-9]*"), // floating point 1 QStringLiteral("(^|\\s+)[0-9]*\\.[0-9]+[edED]?[-+]?[0-9]*"), // floating point 2 + QStringLiteral("(^|\\s+)[0-9]+([edED][-+]?[0-9]+)?") // floating point 3 }; for (const QString &pattern : number_keywords) { rule.pattern = QRegularExpression(pattern); From 0120c7b8b7945f3740852245afc8353e10a99fe2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 08:43:55 -0400 Subject: [PATCH 158/247] add permanent text field for status to status bar --- tools/lammps-gui/lammpsgui.cpp | 12 ++++++++++-- tools/lammps-gui/lammpsgui.h | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index c10979f322..d39c1b8ec3 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -16,6 +16,7 @@ #include "stdcapture.h" #include "ui_lammpsgui.h" +//#include #include #include #include @@ -67,6 +68,9 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : open_file(filename); else setWindowTitle(QString("LAMMPS-GUI - *unknown*")); + status = new QLabel("Ready."); + status->setFixedWidth(300); + ui->statusbar->addWidget(status); } LammpsGui::~LammpsGui() @@ -74,6 +78,7 @@ LammpsGui::~LammpsGui() delete ui; delete highlighter; delete capturer; + delete status; } void LammpsGui::new_document() @@ -190,6 +195,8 @@ void LammpsGui::redo() void LammpsGui::run_buffer() { + status->setText("Running LAMMPS. Please wait..."); + status->repaint(); start_lammps(); if (!lammps_handle) return; clear(); @@ -198,10 +205,12 @@ void LammpsGui::run_buffer() lammps_commands_string(lammps_handle, buffer.c_str()); capturer->EndCapture(); auto log = capturer->GetCapture(); + status->setText("Ready."); + auto box = new QPlainTextEdit(); box->document()->setPlainText(log.c_str()); box->setReadOnly(true); - + box->setWindowTitle("LAMMPS-GUI - Output from running LAMMPS on buffer - " + current_file); QFont text_font; text_font.setFamilies(QStringList({"Consolas", "Monospace", "Sans", "Courier"})); text_font.setFixedPitch(true); @@ -211,7 +220,6 @@ void LammpsGui::run_buffer() box->setMinimumSize(800, 600); QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), box); QObject::connect(shortcut, &QShortcut::activated, box, &QPlainTextEdit::close); - box->show(); if (lammps_has_error(lammps_handle)) { diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 3ee82b97a8..9be734321a 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -16,6 +16,7 @@ #include #include +#include // forward declarations @@ -59,6 +60,7 @@ private: Ui::LammpsGui *ui; Highlighter *highlighter; StdCapture *capturer; + QLabel *status; QString current_file; QString current_dir; From e0ed11a053587dd50cf92094d0b505b8f61a7704 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 18:25:13 -0400 Subject: [PATCH 159/247] add option to load LAMMPS library dynamically at runtime as plugin --- tools/lammps-gui/CMakeLists.txt | 20 +++++++-- tools/lammps-gui/lammpsgui.cpp | 75 ++++++++++++++++++++++++++++++++- tools/lammps-gui/lammpsgui.h | 1 + 3 files changed, 91 insertions(+), 5 deletions(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index f2f56a6c07..5b0bc0c533 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -11,10 +11,13 @@ set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) +option(LAMMPS_GUI_USE_PLUGIN "Load LAMMPS library as plugin" OFF) + # when this file is included as subdirectory in the LAMMPS build, many settings are directly imported if(LAMMPS_DIR) set(LAMMPS_HEADER_DIR ${LAMMPS_SOURCE_DIR}) set(LAMMPS_LIBRARY lammps) + set(LAMMPS_PLUGINLIB_DIR ${LAMMPS_DIR}/examples/COUPLE/plugin) else() # NOTE: the next line should be commented out when used outside of the LAMMPS package get_filename_component(LAMMPS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../src ABSOLUTE) @@ -25,7 +28,7 @@ else() # find LAMMPS library find_library(LAMMPS_LIBRARY NAMES lammps lammps_serial - HINTS ${LAMMPS_HEADER_DIR}/../build ${LAMMPS_HEADER_DIR}/../build-clang ${LAMMPS_HEADER_DIR}/../build-test ${LAMMPS_HEADER_DIR} + HINTS ${LAMMPS_LIB_DIR} ${LAMMPS_HEADER_DIR}/../build ${LAMMPS_HEADER_DIR}/../build-clang ${LAMMPS_HEADER_DIR}/../build-test ${LAMMPS_HEADER_DIR} REQUIRED ) # by default, install into $HOME/.local (not /usr/local), @@ -51,6 +54,11 @@ endif() find_package(QT NAMES Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) +if(LAMMPS_GUI_USE_PLUGIN) + enable_language(C) + set(PLUGIN_LOADER_SRC ${LAMMPS_PLUGINLIB_DIR}/liblammpsplugin.c) +endif() + set(PROJECT_SOURCES main.cpp codeeditor.cpp @@ -62,6 +70,7 @@ set(PROJECT_SOURCES lammpsgui.h lammpsgui.ui stdcapture.cpp + ${PLUGIN_LOADER_SRC} ) if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) @@ -87,9 +96,14 @@ else() endif() endif() -target_include_directories(lammps-gui PRIVATE ${LAMMPS_HEADER_DIR}) +if(LAMMPS_GUI_USE_PLUGIN) + target_compile_definitions(lammps-gui PRIVATE LAMMPS_GUI_USE_PLUGIN) + target_include_directories(lammps-gui PRIVATE ${LAMMPS_PLUGINLIB_DIR}) +else() + target_include_directories(lammps-gui PRIVATE ${LAMMPS_HEADER_DIR}) + target_link_libraries(lammps-gui PRIVATE ${LAMMPS_LIBRARY}) +endif() target_link_libraries(lammps-gui PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) -target_link_libraries(lammps-gui PRIVATE ${LAMMPS_LIBRARY}) set_target_properties(lammps-gui PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index d39c1b8ec3..9411db1406 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -26,10 +26,14 @@ #include #include +#if defined(LAMMPS_GUI_USE_PLUGIN) +#include "liblammpsplugin.h" +#else #include "library.h" +#endif LammpsGui::LammpsGui(QWidget *parent, const char *filename) : - QMainWindow(parent), ui(new Ui::LammpsGui), lammps_handle(nullptr) + QMainWindow(parent), ui(new Ui::LammpsGui), lammps_handle(nullptr), plugin_handle(nullptr) { ui->setupUi(this); this->setCentralWidget(ui->textEdit); @@ -71,6 +75,19 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : status = new QLabel("Ready."); status->setFixedWidth(300); ui->statusbar->addWidget(status); + +#if defined(LAMMPS_GUI_USE_PLUGIN) + liblammpsplugin_t *plugin = liblammpsplugin_load("liblammps.so"); + if (!plugin) plugin = liblammpsplugin_load("liblammps.dylib"); + if (!plugin) plugin = liblammpsplugin_load("liblammps.dll"); + bool do_exit = !plugin || (plugin && plugin->abiversion != LAMMPSPLUGIN_ABI_VERSION); + if (!plugin) QMessageBox::critical(this, "Warning", "Cannot open LAMMPS shared library file"); + if (plugin && (plugin->abiversion != LAMMPSPLUGIN_ABI_VERSION)) + QMessageBox::critical(this, "Warning", + "ERROR: LAMMPS lib plugin ABI version does not match"); + plugin_handle = plugin; + if (do_exit) exit(1); +#endif } LammpsGui::~LammpsGui() @@ -85,7 +102,12 @@ void LammpsGui::new_document() { current_file.clear(); ui->textEdit->document()->setPlainText(QString()); + +#if defined(LAMMPS_GUI_USE_PLUGIN) + if (lammps_handle) ((liblammpsplugin_t *)plugin_handle)->close(lammps_handle); +#else if (lammps_handle) lammps_close(lammps_handle); +#endif lammps_handle = nullptr; setWindowTitle(QString("LAMMPS-GUI - *unknown*")); } @@ -153,12 +175,22 @@ void LammpsGui::save_as() void LammpsGui::quit() { +#if defined(LAMMPS_GUI_USE_PLUGIN) + if (lammps_handle) { + liblammpsplugin_t *plugin = (liblammpsplugin_t *)plugin_handle; + plugin->close(lammps_handle); + plugin->mpi_finalize(); + plugin->kokkos_finalize(); + plugin->python_finalize(); + } +#else if (lammps_handle) { lammps_close(lammps_handle); lammps_mpi_finalize(); lammps_kokkos_finalize(); lammps_python_finalize(); } +#endif QCoreApplication::quit(); } @@ -202,7 +234,12 @@ void LammpsGui::run_buffer() clear(); capturer->BeginCapture(); std::string buffer = ui->textEdit->toPlainText().toStdString(); +#if defined(LAMMPS_GUI_USE_PLUGIN) + liblammpsplugin_t *plugin = (liblammpsplugin_t *)plugin_handle; + plugin->commands_string(lammps_handle, buffer.c_str()); +#else lammps_commands_string(lammps_handle, buffer.c_str()); +#endif capturer->EndCapture(); auto log = capturer->GetCapture(); status->setText("Ready."); @@ -222,6 +259,16 @@ void LammpsGui::run_buffer() QObject::connect(shortcut, &QShortcut::activated, box, &QPlainTextEdit::close); box->show(); +#if defined(LAMMPS_GUI_USE_PLUGIN) + if (plugin->has_error(lammps_handle)) { + constexpr int BUFLEN = 1024; + char errorbuf[BUFLEN]; + plugin->get_last_error_message(lammps_handle, errorbuf, BUFLEN); + + QMessageBox::critical(this, "LAMMPS-GUI Error", + QString("Error running LAMMPS:\n\n") + errorbuf); + } +#else if (lammps_has_error(lammps_handle)) { constexpr int BUFLEN = 1024; char errorbuf[BUFLEN]; @@ -230,12 +277,17 @@ void LammpsGui::run_buffer() QMessageBox::critical(this, "LAMMPS-GUI Error", QString("Error running LAMMPS:\n\n") + errorbuf); } +#endif } void LammpsGui::clear() { if (lammps_handle) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + ((liblammpsplugin_t *)plugin_handle)->command(lammps_handle, "clear"); +#else lammps_command(lammps_handle, "clear"); +#endif } ui->textEdit->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); } @@ -246,7 +298,11 @@ void LammpsGui::about() std::string version = "This is LAMMPS-GUI version 0.1"; capturer->BeginCapture(); +#if defined(LAMMPS_GUI_USE_PLUGIN) + ((liblammpsplugin_t *)plugin_handle)->commands_string(lammps_handle, "info config"); +#else lammps_commands_string(lammps_handle, "info config"); +#endif capturer->EndCapture(); std::string info = capturer->GetCapture(); auto start = info.find("LAMMPS version:"); @@ -272,6 +328,20 @@ void LammpsGui::start_lammps() char *args[] = {(char *)"LAMMPS GUI", (char *)"-log", (char *)"none"}; int nargs = sizeof(args) / sizeof(char *); +#if defined(LAMMPS_GUI_USE_PLUGIN) + liblammpsplugin_t *plugin = (liblammpsplugin_t *)plugin_handle; + + // Create LAMMPS instance if not already present + if (!lammps_handle) lammps_handle = plugin->open_no_mpi(nargs, args, nullptr); + if (plugin->has_error(lammps_handle)) { + constexpr int BUFLEN = 1024; + char errorbuf[BUFLEN]; + plugin->get_last_error_message(lammps_handle, errorbuf, BUFLEN); + + QMessageBox::critical(this, "LAMMPS-GUI Error", + QString("Error launching LAMMPS:\n\n") + errorbuf); + } +#else // Create LAMMPS instance if not already present if (!lammps_handle) lammps_handle = lammps_open_no_mpi(nargs, args, nullptr); if (lammps_has_error(lammps_handle)) { @@ -280,8 +350,9 @@ void LammpsGui::start_lammps() lammps_get_last_error_message(lammps_handle, errorbuf, BUFLEN); QMessageBox::critical(this, "LAMMPS-GUI Error", - QString("Error launching LAMMPS:\n\n") + errorbuf); + QString("Error launching LAMMPS:\n\n") + errorbuf); } +#endif } // Local Variables: diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 9be734321a..875b9c304c 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -65,6 +65,7 @@ private: QString current_file; QString current_dir; void *lammps_handle; + void *plugin_handle; }; #endif // LAMMPSGUI_H From 1698587a40304785c71b624405b51a9047289e8a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 18:25:25 -0400 Subject: [PATCH 160/247] add a readme file --- tools/lammps-gui/README.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tools/lammps-gui/README.md diff --git a/tools/lammps-gui/README.md b/tools/lammps-gui/README.md new file mode 100644 index 0000000000..d2481f8e69 --- /dev/null +++ b/tools/lammps-gui/README.md @@ -0,0 +1,38 @@ +LAMMPS GUI + +# Overview + +This is essentially a small graphical text editor that is linked to the LAMMPS +library and thus can run LAMMPS using the contents of the text buffer as input. +The output of the run is captured and displayed in a separate window dialog. + +# Prerequisites and portability + +The GUI is programmed with the Qt cross-platform GUI toolkit, currently using +version 5.15LTS. It has been compiled and tested on: +- Fedora Linux 38 x86\_64 +- Apple macOS 12 (Monterey) x86\_64 +- Windows 10 x86_64 (via MinGW Linux to Windows cross-compiler) + +To compile you need to have LAMMPS compiled (so it can be linked to the LAMMPS +C-library interface) and Qt 5.15LTS installed. + +# Compilation + +The source is bundled with the LAMMPS source code distribution and thus can be +built as part of the regular LAMMPS build by setting `-D BUILD_LAMMPS_GUI=on`. +All other settings are then inherited from the regular LAMMPS build. + +It is also possible to build the GUI as a standalone compilation, then the +CMake configuration needs to be told where to find the LAMMPS headers and +the LAMMPS library, via `-D LAMMPS_SOURCE_DIR=/path/to/lammps/src`. CMake +will try to guess a build folder with the LAMMPS library from that path, +but it can also be set with `-D LAMMPS_LIB_DIR=/path/to/lammps/lib`. + +It is also possible to compile the GUI without embedding the LAMMPS library +directly, but to dynamically load it later as a shared library. This has +the advantage that you can update LAMMPS without having to recompile the GUI. +This is triggered by setting `-D LAMMPS_GUI_USE_PLUGIN=on` and then +`-D LAMMPS_PLUGINLIB_DIR=/path/to/lammps/plugin/loader`. Typically, this +would be the `examples/COUPLE/plugin` folder of the LAMMPS distribution. + From f3e54cada10a971ccb2b92b0aee726d4557bcf7e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 18:54:24 -0400 Subject: [PATCH 161/247] small layout tweaks --- tools/lammps-gui/lammpsgui.cpp | 1 - tools/lammps-gui/lammpsgui.ui | 24 +++++++++--------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 9411db1406..742211e07d 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -58,7 +58,6 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : connect(ui->actionPaste, &QAction::triggered, this, &LammpsGui::paste); connect(ui->actionUndo, &QAction::triggered, this, &LammpsGui::undo); connect(ui->actionRedo, &QAction::triggered, this, &LammpsGui::redo); - connect(ui->actionClear, &QAction::triggered, this, &LammpsGui::clear); connect(ui->actionRun_Buffer, &QAction::triggered, this, &LammpsGui::run_buffer); connect(ui->actionAbout_LAMMPS_GUI, &QAction::triggered, this, &LammpsGui::about); diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index 19fd799c31..1e53c0b068 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -25,7 +25,13 @@ - + + + + DejaVu Sans Mono + + + @@ -62,16 +68,9 @@ - - - &Run - - - - - + @@ -155,14 +154,9 @@ Ctrl+Shift+Z - - - &Clear - - - &Execute Buffer + &Run Ctrl+Return From a62d1be3e6f4b52cb9448afcfab7142d580b8a3a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 26 Jul 2023 22:39:09 -0400 Subject: [PATCH 162/247] add icons to menu bar --- tools/lammps-gui/lammpsgui.ui | 85 ++++++++++++++++++++++++++++++++- tools/lammps-gui/stdcapture.cpp | 2 +- 2 files changed, 84 insertions(+), 3 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index 1e53c0b068..b9f4c7deb5 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -42,7 +42,7 @@ 0 0 800 - 23 + 24 @@ -75,88 +75,166 @@ + + + &New + + Start a New Input File + + + Start a New Input File + Ctrl+N + + + &Open + + Open an Input File + + + Open an Input File + Ctrl+O + + + &Save + + Save Input File + + + Save Input File + Ctrl+S + + + Save &As + + Save Input File As... + + + Save Input File As... + Ctrl+Shift+S + + + &Quit + + Quit LAMMPS-GUI + + + Quit LAMMPS-GUI + Ctrl+Q + + + C&ut + + Cut Selected Text to Clipboard + Ctrl+X + + + &Copy + + Copy Selected Text to Clipboard + Ctrl+C + + + &Paste + + Paste Text from Clipboard + Ctrl+V + + + &Undo + + Undo Edit + Ctrl+Z + + + &Redo + + Redo Edit + Ctrl+Shift+Z - &Run + &Run LAMMPS + + + Run LAMMPS with Input Ctrl+Return @@ -166,6 +244,9 @@ &About + + About LAMMPS-GUI + diff --git a/tools/lammps-gui/stdcapture.cpp b/tools/lammps-gui/stdcapture.cpp index 610f08b92b..33c7ee9ef3 100644 --- a/tools/lammps-gui/stdcapture.cpp +++ b/tools/lammps-gui/stdcapture.cpp @@ -36,7 +36,7 @@ #include #include -StdCapture::StdCapture() : m_capturing(false), m_oldStdOut(0) +StdCapture::StdCapture() : m_oldStdOut(0), m_capturing(false) { // make stdout unbuffered so that we don't need to flush the stream setvbuf(stdout, NULL, _IONBF, 0); From da0669d9883d8510e4d2a83b5b61f250cae3c2e5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 02:56:07 -0400 Subject: [PATCH 163/247] implement running LAMMPS asynchonously in a separate thread --- tools/lammps-gui/CMakeLists.txt | 2 + tools/lammps-gui/TODO.md | 3 +- tools/lammps-gui/lammpsgui.cpp | 213 ++++++++++++++++++++---------- tools/lammps-gui/lammpsgui.h | 12 +- tools/lammps-gui/lammpsrunner.cpp | 44 ++++++ tools/lammps-gui/lammpsrunner.h | 48 +++++++ tools/lammps-gui/stdcapture.cpp | 28 +++- tools/lammps-gui/stdcapture.h | 6 +- 8 files changed, 279 insertions(+), 77 deletions(-) create mode 100644 tools/lammps-gui/lammpsrunner.cpp create mode 100644 tools/lammps-gui/lammpsrunner.h diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 5b0bc0c533..ef68470c94 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -69,6 +69,8 @@ set(PROJECT_SOURCES lammpsgui.cpp lammpsgui.h lammpsgui.ui + lammpsrunner.cpp + lammpsrunner.h stdcapture.cpp ${PLUGIN_LOADER_SRC} ) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index a589592464..b01df689e3 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -7,7 +7,7 @@ LAMMPS-GUI TODO list: - add "Help" entry to menu bar. Should open a popup window with a one page description of how to use it. Use HTML or Markdown text. - add "View" entry to menu bar, where dialog windows may be enabled/disabled (e.g. Render) - add dialog when exiting asking if file should be saved when it is modified -- add CTRL-q hotkey to log windows so you can exit the entire application +- add CTRL-q hotkey to log windows so you can exit the entire application (add do you really want to? dialog to this) - add "render" dialog where a "write_dump image" can be triggered. dialog should offer options for size, zoom, rotation, colors(?) - add "syntax check" with enabled "-skiprun" flag. - add settings dialog where certain properties can be set through customizing the LAMMPS command line @@ -19,7 +19,6 @@ LAMMPS-GUI TODO list: # Long term ideas - support single stepping, i.e. process input line by line (need to detect continuation chars!) with highlighting active line(s) -- run LAMMMPS instance in a separate thread, modify capture to regularly poll pipe and retrieve/append output while job is running - have command text input file in/above status bar where individual commands can be tested. have insert button to copy line into file at the current point - support text completion as done with lammps-shell - have context menu for known commands to offer retrieving help by dispatching URL to webbrowser (process index from sphinx for that purpose) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 742211e07d..a3a1039308 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -12,18 +12,24 @@ ------------------------------------------------------------------------- */ #include "lammpsgui.h" + #include "highlighter.h" +#include "lammpsrunner.h" #include "stdcapture.h" #include "ui_lammpsgui.h" -//#include #include #include #include +#include #include #include +#include #include +#include #include +#include +#include #include #if defined(LAMMPS_GUI_USE_PLUGIN) @@ -33,7 +39,9 @@ #endif LammpsGui::LammpsGui(QWidget *parent, const char *filename) : - QMainWindow(parent), ui(new Ui::LammpsGui), lammps_handle(nullptr), plugin_handle(nullptr) + QMainWindow(parent), ui(new Ui::LammpsGui), highlighter(nullptr), capturer(nullptr), + status(nullptr), logwindow(nullptr), logupdater(nullptr), progress(nullptr), + lammps_handle(nullptr), plugin_handle(nullptr), is_running(false) { ui->setupUi(this); this->setCentralWidget(ui->textEdit); @@ -74,17 +82,21 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : status = new QLabel("Ready."); status->setFixedWidth(300); ui->statusbar->addWidget(status); + progress = new QProgressBar(); + progress->setRange(0, 1000); + progress->setFixedWidth(500); + ui->statusbar->addWidget(progress); #if defined(LAMMPS_GUI_USE_PLUGIN) - liblammpsplugin_t *plugin = liblammpsplugin_load("liblammps.so"); - if (!plugin) plugin = liblammpsplugin_load("liblammps.dylib"); - if (!plugin) plugin = liblammpsplugin_load("liblammps.dll"); - bool do_exit = !plugin || (plugin && plugin->abiversion != LAMMPSPLUGIN_ABI_VERSION); - if (!plugin) QMessageBox::critical(this, "Warning", "Cannot open LAMMPS shared library file"); - if (plugin && (plugin->abiversion != LAMMPSPLUGIN_ABI_VERSION)) + liblammpsplugin_t *lammps = liblammpsplugin_load("liblammps.so"); + if (!lammps) lammps = liblammpsplugin_load("liblammps.dylib"); + if (!lammps) lammps = liblammpsplugin_load("liblammps.dll"); + bool do_exit = !lammps || (lammps && lammps->abiversion != LAMMPSPLUGIN_ABI_VERSION); + if (!lammps) QMessageBox::critical(this, "Warning", "Cannot open LAMMPS shared library file"); + if (lammps && (lammps->abiversion != LAMMPSPLUGIN_ABI_VERSION)) QMessageBox::critical(this, "Warning", "ERROR: LAMMPS lib plugin ABI version does not match"); - plugin_handle = plugin; + plugin_handle = lammps; if (do_exit) exit(1); #endif } @@ -95,6 +107,7 @@ LammpsGui::~LammpsGui() delete highlighter; delete capturer; delete status; + delete logwindow; } void LammpsGui::new_document() @@ -176,11 +189,11 @@ void LammpsGui::quit() { #if defined(LAMMPS_GUI_USE_PLUGIN) if (lammps_handle) { - liblammpsplugin_t *plugin = (liblammpsplugin_t *)plugin_handle; - plugin->close(lammps_handle); - plugin->mpi_finalize(); - plugin->kokkos_finalize(); - plugin->python_finalize(); + liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; + lammps->close(lammps_handle); + lammps->mpi_finalize(); + lammps->kokkos_finalize(); + lammps->python_finalize(); } #else if (lammps_handle) { @@ -224,6 +237,79 @@ void LammpsGui::redo() ui->textEdit->redo(); } +void LammpsGui::logupdate() +{ + double t_elapsed, t_remain, t_total; + int completed = 1000; + + if (is_running) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; + if (lammps->is_running(lammps_handle)) { + t_elapsed = lammps->get_thermo(lammps_handle, "cpu"); + t_remain = lammps->get_thermo(lammps_handle, "cpuremain"); + t_total = t_elapsed + t_remain + 1.0e-10; + completed = t_elapsed / t_total * 1000.0; + } +#else + if (lammps_is_running(lammps_handle)) { + t_elapsed = lammps_get_thermo(lammps_handle, "cpu"); + t_remain = lammps_get_thermo(lammps_handle, "cpuremain"); + t_total = t_elapsed + t_remain + 1.0e-10; + completed = t_elapsed / t_total * 1000.0; + } +#endif + } + progress->setValue(completed); + if (logwindow) { + const auto text = capturer->GetChunk(); + if (text.size() > 0) { + logwindow->insertPlainText(text.c_str()); + logwindow->moveCursor(QTextCursor::End); + logwindow->textCursor().deleteChar(); + } + } +} + +void LammpsGui::run_done() +{ + logupdater->stop(); + delete logupdater; + logupdater = nullptr; + progress->setValue(1000); + + capturer->EndCapture(); + auto log = capturer->GetCapture(); + logwindow->insertPlainText(log.c_str()); + logwindow->moveCursor(QTextCursor::End); + + bool success = true; + constexpr int BUFLEN = 1024; + char errorbuf[BUFLEN]; + +#if defined(LAMMPS_GUI_USE_PLUGIN) + liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; + if (lammps->has_error(lammps_handle)) { + lammps->get_last_error_message(lammps_handle, errorbuf, BUFLEN); + success = false; + } +#else + if (lammps_has_error(lammps_handle)) { + lammps_get_last_error_message(lammps_handle, errorbuf, BUFLEN); + success = false; + } +#endif + + if (success) { + status->setText("Ready."); + } else { + status->setText("Failed."); + QMessageBox::critical(this, "LAMMPS-GUI Error", + QString("Error running LAMMPS:\n\n") + errorbuf); + } + is_running = false; +} + void LammpsGui::run_buffer() { status->setText("Running LAMMPS. Please wait..."); @@ -232,51 +318,38 @@ void LammpsGui::run_buffer() if (!lammps_handle) return; clear(); capturer->BeginCapture(); - std::string buffer = ui->textEdit->toPlainText().toStdString(); -#if defined(LAMMPS_GUI_USE_PLUGIN) - liblammpsplugin_t *plugin = (liblammpsplugin_t *)plugin_handle; - plugin->commands_string(lammps_handle, buffer.c_str()); -#else - lammps_commands_string(lammps_handle, buffer.c_str()); -#endif - capturer->EndCapture(); - auto log = capturer->GetCapture(); - status->setText("Ready."); - auto box = new QPlainTextEdit(); - box->document()->setPlainText(log.c_str()); - box->setReadOnly(true); - box->setWindowTitle("LAMMPS-GUI - Output from running LAMMPS on buffer - " + current_file); + std::string buffer = ui->textEdit->toPlainText().toStdString(); + char *input = new char[buffer.size() + 1]; + memcpy(input, buffer.c_str(), buffer.size() + 1); + + is_running = true; + LammpsRunner *runner = new LammpsRunner(this); + runner->setup_run(lammps_handle, input, plugin_handle); + connect(runner, &LammpsRunner::resultReady, this, &LammpsGui::run_done); + connect(runner, &LammpsRunner::finished, runner, &QObject::deleteLater); + runner->start(); + + logwindow = new QPlainTextEdit(); + logwindow->setReadOnly(true); + logwindow->setCenterOnScroll(true); + logwindow->moveCursor(QTextCursor::End); + logwindow->setWindowTitle("LAMMPS-GUI - Output from running LAMMPS on buffer - " + + current_file); QFont text_font; text_font.setFamilies(QStringList({"Consolas", "Monospace", "Sans", "Courier"})); text_font.setFixedPitch(true); text_font.setStyleHint(QFont::TypeWriter); - box->document()->setDefaultFont(text_font); - box->setLineWrapMode(QPlainTextEdit::NoWrap); - box->setMinimumSize(800, 600); - QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), box); - QObject::connect(shortcut, &QShortcut::activated, box, &QPlainTextEdit::close); - box->show(); + logwindow->document()->setDefaultFont(text_font); + logwindow->setLineWrapMode(QPlainTextEdit::NoWrap); + logwindow->setMinimumSize(800, 600); + QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), logwindow); + QObject::connect(shortcut, &QShortcut::activated, logwindow, &QPlainTextEdit::close); + logwindow->show(); -#if defined(LAMMPS_GUI_USE_PLUGIN) - if (plugin->has_error(lammps_handle)) { - constexpr int BUFLEN = 1024; - char errorbuf[BUFLEN]; - plugin->get_last_error_message(lammps_handle, errorbuf, BUFLEN); - - QMessageBox::critical(this, "LAMMPS-GUI Error", - QString("Error running LAMMPS:\n\n") + errorbuf); - } -#else - if (lammps_has_error(lammps_handle)) { - constexpr int BUFLEN = 1024; - char errorbuf[BUFLEN]; - lammps_get_last_error_message(lammps_handle, errorbuf, BUFLEN); - - QMessageBox::critical(this, "LAMMPS-GUI Error", - QString("Error running LAMMPS:\n\n") + errorbuf); - } -#endif + logupdater = new QTimer(this); + connect(logupdater, &QTimer::timeout, this, &LammpsGui::logupdate); + logupdater->start(1000); } void LammpsGui::clear() @@ -293,23 +366,29 @@ void LammpsGui::clear() void LammpsGui::about() { - start_lammps(); - std::string version = "This is LAMMPS-GUI version 0.1"; - capturer->BeginCapture(); + std::string info = "LAMMPS is currently running. LAMMPS config info not available."; + + // LAMMPS is not re-entrant, so we can only query LAMMPS when it is not running + if (!is_running) { + start_lammps(); + capturer->BeginCapture(); #if defined(LAMMPS_GUI_USE_PLUGIN) - ((liblammpsplugin_t *)plugin_handle)->commands_string(lammps_handle, "info config"); + ((liblammpsplugin_t *)plugin_handle)->commands_string(lammps_handle, "info config"); #else - lammps_commands_string(lammps_handle, "info config"); + lammps_commands_string(lammps_handle, "info config"); #endif - capturer->EndCapture(); - std::string info = capturer->GetCapture(); - auto start = info.find("LAMMPS version:"); - auto end = info.find("Info-Info-Info", start); + capturer->EndCapture(); + info = capturer->GetCapture(); + auto start = info.find("LAMMPS version:"); + auto end = info.find("Info-Info-Info", start); + info = std::string(info, start, end - start); + } + QMessageBox msg; msg.setWindowTitle("About LAMMPS-GUI"); msg.setText(version.c_str()); - msg.setInformativeText(std::string(info, start, end - start).c_str()); + msg.setInformativeText(info.c_str()); msg.setIcon(QMessageBox::NoIcon); msg.setStandardButtons(QMessageBox::Ok); QFont font; @@ -328,14 +407,14 @@ void LammpsGui::start_lammps() int nargs = sizeof(args) / sizeof(char *); #if defined(LAMMPS_GUI_USE_PLUGIN) - liblammpsplugin_t *plugin = (liblammpsplugin_t *)plugin_handle; + liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; // Create LAMMPS instance if not already present - if (!lammps_handle) lammps_handle = plugin->open_no_mpi(nargs, args, nullptr); - if (plugin->has_error(lammps_handle)) { + if (!lammps_handle) lammps_handle = lammps->open_no_mpi(nargs, args, nullptr); + if (lammps->has_error(lammps_handle)) { constexpr int BUFLEN = 1024; char errorbuf[BUFLEN]; - plugin->get_last_error_message(lammps_handle, errorbuf, BUFLEN); + lammps->get_last_error_message(lammps_handle, errorbuf, BUFLEN); QMessageBox::critical(this, "LAMMPS-GUI Error", QString("Error launching LAMMPS:\n\n") + errorbuf); diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 875b9c304c..c6e768ffed 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -16,7 +16,6 @@ #include #include -#include // forward declarations @@ -26,6 +25,11 @@ class LammpsGui; } QT_END_NAMESPACE +class QLabel; +class QPlainTextEdit; +class QProgressBar; +class QTimer; + class Highlighter; class StdCapture; @@ -40,6 +44,7 @@ protected: void open_file(const QString &filename); void write_file(const QString &filename); void start_lammps(); + void run_done(); private slots: void new_document(); @@ -55,17 +60,22 @@ private slots: void clear(); void run_buffer(); void about(); + void logupdate(); private: Ui::LammpsGui *ui; Highlighter *highlighter; StdCapture *capturer; QLabel *status; + QPlainTextEdit *logwindow; + QTimer *logupdater; + QProgressBar *progress; QString current_file; QString current_dir; void *lammps_handle; void *plugin_handle; + bool is_running; }; #endif // LAMMPSGUI_H diff --git a/tools/lammps-gui/lammpsrunner.cpp b/tools/lammps-gui/lammpsrunner.cpp new file mode 100644 index 0000000000..1b078d67bf --- /dev/null +++ b/tools/lammps-gui/lammpsrunner.cpp @@ -0,0 +1,44 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. + ------------------------------------------------------------------------- */ + +#include "lammpsrunner.h" + +#if defined(LAMMPS_GUI_USE_PLUGIN) +#include "liblammpsplugin.h" +#else +#include "library.h" +#endif + +#include + +LammpsRunner::LammpsRunner(QObject *parent) : + QThread(parent), handle(nullptr), plugin(nullptr), input(nullptr) +{ +} + +void LammpsRunner::run() +{ + if (handle) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin; + lammps->commands_string(handle, input); +#else + lammps_commands_string(handle, input); +#endif + } + emit resultReady(); +} + +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/lammpsrunner.h b/tools/lammps-gui/lammpsrunner.h new file mode 100644 index 0000000000..57c20226e8 --- /dev/null +++ b/tools/lammps-gui/lammpsrunner.h @@ -0,0 +1,48 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef LAMMPSRUNNER_H +#define LAMMPSRUNNER_H + +#include + +class LammpsRunner : public QThread { + Q_OBJECT + +public: + LammpsRunner(QObject *parent = nullptr); + ~LammpsRunner() = default; + + // execute LAMMPS run in runner thread + void run() override; + + // transfer info to worker thread + void setup_run(void *_handle, const char *_input, void *_plugin = nullptr) + { + handle = _handle; + plugin = _plugin; + input = _input; + } + +signals: + void resultReady(); + +private: + void *handle, *plugin; + const char *input; +}; + +#endif +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/stdcapture.cpp b/tools/lammps-gui/stdcapture.cpp index 33c7ee9ef3..c1fac5dc3d 100644 --- a/tools/lammps-gui/stdcapture.cpp +++ b/tools/lammps-gui/stdcapture.cpp @@ -24,7 +24,6 @@ #define dup2 _dup2 #define fileno _fileno #define close _close -#define pipe _pipe #define read _read #define eof _eof #else @@ -44,9 +43,9 @@ StdCapture::StdCapture() : m_oldStdOut(0), m_capturing(false) m_pipe[READ] = 0; m_pipe[WRITE] = 0; #if _WIN32 - if (pipe(m_pipe, 65536, O_BINARY) == -1) return; + if (_pipe(m_pipe, 65536, O_BINARY) == -1) return; #else - if (pipe(m_pipe) == -1) return; + if (pipe2(m_pipe, O_NONBLOCK) == -1) return; #endif m_oldStdOut = dup(fileno(stdout)); if (m_oldStdOut == -1) return; @@ -75,8 +74,6 @@ bool StdCapture::EndCapture() dup2(m_oldStdOut, fileno(stdout)); m_captured.clear(); - constexpr int bufSize = 1025; - char buf[bufSize]; int bytesRead; bool fd_blocked; @@ -104,7 +101,26 @@ bool StdCapture::EndCapture() return true; } -std::string StdCapture::GetCapture() const +std::string StdCapture::GetChunk() +{ + if (!m_capturing) return std::string(); + int bytesRead = 0; + buf[0] = '\0'; + +#ifdef _WIN32 + if (!eof(m_pipe[READ])) { + bytesRead = read(m_pipe[READ], buf, bufSize - 1); + } +#else + bytesRead = read(m_pipe[READ], buf, bufSize - 1); +#endif + if (bytesRead > 0) { + buf[bytesRead] = '\0'; + } + return std::string(buf); +} + +std::string StdCapture::GetCapture() { std::string::size_type idx = m_captured.find_last_not_of("\r\n"); if (idx == std::string::npos) { diff --git a/tools/lammps-gui/stdcapture.h b/tools/lammps-gui/stdcapture.h index 2afd494a36..ee8bb44dd3 100644 --- a/tools/lammps-gui/stdcapture.h +++ b/tools/lammps-gui/stdcapture.h @@ -23,7 +23,8 @@ public: void BeginCapture(); bool EndCapture(); - std::string GetCapture() const; + std::string GetCapture(); + std::string GetChunk(); private: enum PIPES { READ, WRITE }; @@ -32,6 +33,9 @@ private: bool m_capturing; bool m_init; std::string m_captured; + + static constexpr int bufSize = 1025; + char buf[bufSize]; }; #endif From f81ee57c97ef04eb5af6002d932ad179f5eca7c5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 03:21:34 -0400 Subject: [PATCH 164/247] add button to stop a run via lammps_force_timeout() --- tools/lammps-gui/lammpsgui.cpp | 45 +++++++++++++++---------- tools/lammps-gui/lammpsgui.h | 1 + tools/lammps-gui/lammpsgui.ui | 56 +++++++++++++++++++++++++------ tools/lammps-gui/linenumberarea.h | 10 ++---- tools/lammps-gui/stdcapture.cpp | 4 +-- 5 files changed, 78 insertions(+), 38 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index a3a1039308..b507d23f19 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -67,6 +67,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : connect(ui->actionUndo, &QAction::triggered, this, &LammpsGui::undo); connect(ui->actionRedo, &QAction::triggered, this, &LammpsGui::redo); connect(ui->actionRun_Buffer, &QAction::triggered, this, &LammpsGui::run_buffer); + connect(ui->actionStop_LAMMPS, &QAction::triggered, this, &LammpsGui::stop_run); connect(ui->actionAbout_LAMMPS_GUI, &QAction::triggered, this, &LammpsGui::about); #if !QT_CONFIG(clipboard) @@ -237,29 +238,37 @@ void LammpsGui::redo() ui->textEdit->redo(); } +void LammpsGui::stop_run() +{ +#if defined(LAMMPS_GUI_USE_PLUGIN) + ((liblammpsplugin_t *)plugin_handle)->force_timeout(lammps_handle); +#else + lammps_force_timeout(lammps_handle); +#endif +} + void LammpsGui::logupdate() { double t_elapsed, t_remain, t_total; int completed = 1000; - if (is_running) { #if defined(LAMMPS_GUI_USE_PLUGIN) - liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; - if (lammps->is_running(lammps_handle)) { - t_elapsed = lammps->get_thermo(lammps_handle, "cpu"); - t_remain = lammps->get_thermo(lammps_handle, "cpuremain"); - t_total = t_elapsed + t_remain + 1.0e-10; - completed = t_elapsed / t_total * 1000.0; - } -#else - if (lammps_is_running(lammps_handle)) { - t_elapsed = lammps_get_thermo(lammps_handle, "cpu"); - t_remain = lammps_get_thermo(lammps_handle, "cpuremain"); - t_total = t_elapsed + t_remain + 1.0e-10; - completed = t_elapsed / t_total * 1000.0; - } -#endif + liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; + if (lammps->is_running(lammps_handle)) { + t_elapsed = lammps->get_thermo(lammps_handle, "cpu"); + t_remain = lammps->get_thermo(lammps_handle, "cpuremain"); + t_total = t_elapsed + t_remain + 1.0e-10; + completed = t_elapsed / t_total * 1000.0; } +#else + if (lammps_is_running(lammps_handle)) { + t_elapsed = lammps_get_thermo(lammps_handle, "cpu"); + t_remain = lammps_get_thermo(lammps_handle, "cpuremain"); + t_total = t_elapsed + t_remain + 1.0e-10; + completed = t_elapsed / t_total * 1000.0; + } +#endif + progress->setValue(completed); if (logwindow) { const auto text = capturer->GetChunk(); @@ -283,7 +292,7 @@ void LammpsGui::run_done() logwindow->insertPlainText(log.c_str()); logwindow->moveCursor(QTextCursor::End); - bool success = true; + bool success = true; constexpr int BUFLEN = 1024; char errorbuf[BUFLEN]; @@ -345,6 +354,8 @@ void LammpsGui::run_buffer() logwindow->setMinimumSize(800, 600); QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), logwindow); QObject::connect(shortcut, &QShortcut::activated, logwindow, &QPlainTextEdit::close); + shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Slash), logwindow); + QObject::connect(shortcut, &QShortcut::activated, this, &LammpsGui::stop_run); logwindow->show(); logupdater = new QTimer(this); diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index c6e768ffed..ebe66f7a8e 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -59,6 +59,7 @@ private slots: void redo(); void clear(); void run_buffer(); + void stop_run(); void about(); void logupdate(); diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index b9f4c7deb5..b3f399e3e1 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -68,15 +68,23 @@ + + + &Run + + + + - + - + + .. &New @@ -93,7 +101,8 @@ - + + .. &Open @@ -110,7 +119,8 @@ - + + .. &Save @@ -127,7 +137,8 @@ - + + .. Save &As @@ -144,7 +155,8 @@ - + + .. &Quit @@ -161,7 +173,8 @@ - + + .. C&ut @@ -175,7 +188,8 @@ - + + .. &Copy @@ -189,7 +203,8 @@ - + + .. &Paste @@ -203,7 +218,8 @@ - + + .. &Undo @@ -217,7 +233,8 @@ - + + .. &Redo @@ -230,6 +247,9 @@ + + + &Run LAMMPS @@ -240,6 +260,20 @@ Ctrl+Return + + + + + + &Stop LAMMPS + + + Stop LAMMPS Process + + + Ctrl+/ + + &About diff --git a/tools/lammps-gui/linenumberarea.h b/tools/lammps-gui/linenumberarea.h index 1d09a82b63..2b8bb3bc55 100644 --- a/tools/lammps-gui/linenumberarea.h +++ b/tools/lammps-gui/linenumberarea.h @@ -21,16 +21,10 @@ class LineNumberArea : public QWidget { public: LineNumberArea(CodeEditor *editor) : QWidget(editor), codeEditor(editor) {} - QSize sizeHint() const override - { - return QSize(codeEditor->lineNumberAreaWidth(), 0); - } + QSize sizeHint() const override { return QSize(codeEditor->lineNumberAreaWidth(), 0); } protected: - void paintEvent(QPaintEvent *event) override - { - codeEditor->lineNumberAreaPaintEvent(event); - } + void paintEvent(QPaintEvent *event) override { codeEditor->lineNumberAreaPaintEvent(event); } private: CodeEditor *codeEditor; diff --git a/tools/lammps-gui/stdcapture.cpp b/tools/lammps-gui/stdcapture.cpp index c1fac5dc3d..053660b050 100644 --- a/tools/lammps-gui/stdcapture.cpp +++ b/tools/lammps-gui/stdcapture.cpp @@ -35,7 +35,7 @@ #include #include -StdCapture::StdCapture() : m_oldStdOut(0), m_capturing(false) +StdCapture::StdCapture() : m_oldStdOut(0), m_capturing(false) { // make stdout unbuffered so that we don't need to flush the stream setvbuf(stdout, NULL, _IONBF, 0); @@ -105,7 +105,7 @@ std::string StdCapture::GetChunk() { if (!m_capturing) return std::string(); int bytesRead = 0; - buf[0] = '\0'; + buf[0] = '\0'; #ifdef _WIN32 if (!eof(m_pipe[READ])) { From 056c60839c8eb5449d5d4cf8c704b1786d577303 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 04:07:03 -0400 Subject: [PATCH 165/247] portability to macOS --- tools/lammps-gui/lammpsgui.cpp | 4 ---- tools/lammps-gui/lammpsgui.ui | 5 ----- tools/lammps-gui/stdcapture.cpp | 3 ++- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index b507d23f19..73108d2ef0 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -49,8 +49,6 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : capturer = new StdCapture; QFont text_font; - text_font.setFamilies(QStringList({"Consolas", "Monospace", "Sans", "Courier"})); - text_font.setFixedPitch(true); text_font.setStyleHint(QFont::TypeWriter); ui->textEdit->document()->setDefaultFont(text_font); ui->textEdit->setMinimumSize(800, 600); @@ -346,8 +344,6 @@ void LammpsGui::run_buffer() logwindow->setWindowTitle("LAMMPS-GUI - Output from running LAMMPS on buffer - " + current_file); QFont text_font; - text_font.setFamilies(QStringList({"Consolas", "Monospace", "Sans", "Courier"})); - text_font.setFixedPitch(true); text_font.setStyleHint(QFont::TypeWriter); logwindow->document()->setDefaultFont(text_font); logwindow->setLineWrapMode(QPlainTextEdit::NoWrap); diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index b3f399e3e1..4283b55008 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -26,11 +26,6 @@ - - - DejaVu Sans Mono - - diff --git a/tools/lammps-gui/stdcapture.cpp b/tools/lammps-gui/stdcapture.cpp index 053660b050..952c01e0d4 100644 --- a/tools/lammps-gui/stdcapture.cpp +++ b/tools/lammps-gui/stdcapture.cpp @@ -45,7 +45,8 @@ StdCapture::StdCapture() : m_oldStdOut(0), m_capturing(false) #if _WIN32 if (_pipe(m_pipe, 65536, O_BINARY) == -1) return; #else - if (pipe2(m_pipe, O_NONBLOCK) == -1) return; + if (pipe(m_pipe) == -1) return; + fcntl(m_pipe[READ], F_SETFL, fcntl(m_pipe[READ], F_GETFL)|O_NONBLOCK); #endif m_oldStdOut = dup(fileno(stdout)); if (m_oldStdOut == -1) return; From 1697d1edf65f3b4690112e3ff71ffd5ff6c1d6a9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 04:41:50 -0400 Subject: [PATCH 166/247] embed font and icon and make use of them --- tools/lammps-gui/CMakeLists.txt | 1 + tools/lammps-gui/DejaVuSansMono.ttf | Bin 0 -> 343140 bytes tools/lammps-gui/lammps-icon-128x128.png | Bin 0 -> 30416 bytes tools/lammps-gui/lammpsgui.cpp | 9 ++++++--- tools/lammps-gui/lammpsgui.qrc | 6 ++++++ 5 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 tools/lammps-gui/DejaVuSansMono.ttf create mode 100644 tools/lammps-gui/lammps-icon-128x128.png create mode 100644 tools/lammps-gui/lammpsgui.qrc diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index ef68470c94..8efd5537bf 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -74,6 +74,7 @@ set(PROJECT_SOURCES stdcapture.cpp ${PLUGIN_LOADER_SRC} ) +qt_add_resources(PROJECT_SOURCES lammpsgui.qrc) if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) qt_add_executable(lammps-gui diff --git a/tools/lammps-gui/DejaVuSansMono.ttf b/tools/lammps-gui/DejaVuSansMono.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d126ad605b72b5c8ccfdf4cdc8a7c5304bcf5d92 GIT binary patch literal 343140 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¥<2kA+A zp)`}p6f%v>AoJvY`CrLO?3u47f5QpXx5?kJd%ljmLpG50WFy%`-X;GaTdv!tJ19dDplg7%SE+#GG7DC!_Tgy^3CwOv3K(MDjY$!@faglR0D-d6O(a3Fng~(+WzKFk#OkuCW3U2@1Mm|OyCgW|R2kA7t z_i+$9Dg~X09bbp?39SzfJrK#^36Q>lCyKk@P%e-clpW*?@+tWm+y&ZD!M&ItCeYJ( z&a^wvU^sC;jeHFH629A&L;Z9RPVTNpiZ79EbO?EsA!MD9@?p83e;Bnk1$DLxr-Bd5 zoJ~ajzd`NHz?(4(*$=4cEzs^>^1pJ@J*}&(srIBzZ$mB5!DY>1gcSiN7x)wU^k7yeC%Fen6VN zl^gh-fSfInB_?DG-ihm=c0if?LbgQGH!P~T$zkOt^gf4~v=wiuG(&k_!gqfb!iLe2 zLo(*abbRns(zOF2QMx{1rZPtV=VSVWgcHRQd;M3%z8X0u>Yxq>goUSGvL+(8%g%Yu+f2S z!C-a{uc$t?QLVI5NwIC@DM{Zw=;C+P)7xg}1h&zbM_ZI9`)JP=5I&KEC*YqD<8hBd zW(itvR8#P;bS*wJEught|7%t>PeD+l~>mvTaQFw zs{+!x2|ujvMDOY+ZL%^e#pp8?QbDD@DErKaaHl8C?~AWgF)lVHI>PI5hr7ZIhuvmX zBwk+)xQ`!-5!r2gym8~w#)1~rDyfABDzzhOE48B%B$6VMl%$A+x(O0ANvX}&<^9@k zdB1Dsh0Zt4(|ODLUGKLn&opV3&gONRkwz=aC+#e^$*ru%qIiTGmrv}9J>esCugC9{4dVGkW>1@m3u|vPj zdtuP=T-x{3-nj?+>_70uu3Xx2W#_-F$UbuNhaIei*+ChR`^x#7f~675m)q#JTn7Ri0a8PWU`!ZfvEB)liq3Bg#n}Mv9}3)9L(+O_JT+)0U=UZ-B|TG1#bikFm_O4Dde%7ZVnZT&j5 zA26_8hkjGGP0ku#qeiXmQ>Jb;TP1OCmC~4g9or8a*uMRMDch!Gy->Y+&Fzz?Y@^LO z^dHc^{lNYmr@Wt8BV$Cf*S5b$<9gDSJCWNkD-(_uW#5js_Nl2!(vG_ zB~h=L?@dfd$@eYrF4DtDWvXjRf??zJt0lx%t{9%cBW#tu2^DQ&?us?MQ4QRuN{UL0 z-1{sg3Hy+Wf{6(I?K^k<@|Q=TKg(u3F%2`(1?g_rzro%K)PL)4RY;ynv{PYJ8ML;r zn3$wA7fnhe!kna032noopn6!GF6|DLQNJmz&ywi!v{Z$zYSXsxM29D~_djVCPoGgM z^OJWTp4jrCmmlplv{AioPw!t`wOe|{B)2l7>{!hOd4ZOC+KOLt&JSwYf`%QMb}6^j z^v4#gkBxaRE#>L<4~_q<^mG5ZQ{h&mgmo(pRak(nGY48HyagSrXQaK>a^iy6|WQN zmX_4In{MrBZ&W1Hlj?cv)?u`pOmjI>*SsZW?G?f_uk5N%p>q`-gXja@ z*F@)CBn0@KNyDg~f=*XWt4`~yp4y%iUd=3^eH)q^hnpK4(!ORvLz+FDX7kf~KJITt6bh!0?tm`mncuOiGy^?IY?c%2$SXC4(|DqZ z5$sTT<+a?k(s;Gd?rN(^swf&84T6L2M#=U(Z&uoN>I9<33&_a)27e!)Y$F zm;J^juEKLLBVp%hO~iF?B`X;oVVO>b9NLoT52dBFrumsHYu{jVUSHZ7^2A_h6mR|b z6mi2HYpacsWAx6_%e&MQzYjvHuc6(yL)|$sM@XWMtT^Rwc5lAV$d6s%Ta+B-!#fY8 zVq&;2!JiC+LppAB?e25e5FWprne}A`$)Fi5L&@M7YKE4fXV^0A8IBBRGt!JUW6hLi zyqVfeYo<4|HM2K!G;?+&9cf3_(b3V_gY=+1SPw@J=Q6U4E@R7-Wqg^sOk1Wevn{hP zb1cJba|7MLHYgkT26cnBLEm88VBg@_;M_%a(OqnpvWxFhcWJxyUAA5JU5;JOmJiBI z`J!J6s^{|TvKPaK(XXrCj_R&@c9g)a9Zg1^c7`<7Vq)Adj&$h4EAiHD3 z25nz^ea4K}XU&)~>!)9T{pqJ`*VyIy+1d3QbZEzxm`BY|%>(99nu(9z)Tf!t%~9rf zbAmYv@ASSxUzNMs6y6}=Em3z4lA0B%J6x56pl~_~?GtDTebxk-) zaFEoxDYb>MQWtGxuBX`tXuZJ|k`iqYht8qFYIhcbDQ>yLV&cDu3X$LstJQdt1@z#?*Q$ zF$K@Ai^-uJ&c(1+w<)b%i;EuEMd=G{ed!Ay(Ac`UE$5AUdjHVpKI!!}bv~8b;6!0z z;a*y!>6rYEFVAZJ$f26Ge)zEG?hy}TF@%z7u*dqyZ)Nfr@*9yK<(Oe#9hR^8X9QMP z%1>ILEsA=(N^}HKA}jb(-99DJA8GejL4J|p<0TjhV4Wo}Php_K`9LQkhFOkbRyY~f z5L}Jcy*n1)$+Tjdx5WJM*XO=`uJ69yt2b|6SWqxy$(+eg?aUkfVe7A`I!*DXee&j! zA5)V*ty^co>k}5O9y4h8OO-2c4+Osc$4g>zf^igcI6egRh;M6?=2?Ckri2ki32ROi zr=G7;WvZPT4&t+Me6l3j{zVpxOsC%jkLA+ghD75dMF zOP_r5Y1tGtzVt`saB1yT<`SB_OX%(m=&m}R9Z#BMC2~DJE?@V|aL+x*CIK1W?U<|-B3g;c`6aQ#G?~tDC^2DeZg#Hb=4DHZjM*0VH1!{ zM16ITeQy$c??GVQkE&1Jd~9fp^^OPzq`X`7_;2@iCTW81&NDNA~c2i6YV}DwSuVT zb8w!^t68?$Us0}1dfQiq!=}iF>&1Kl-7XxR+5vRL*Z@dnoyX6chw7a2ov7`-8KSm- z`Ihpl<~Qb#t>?1^x2v*j8mgNn&qt_#X=2cUU1r^PYc!4?`zEvGEG^=LiYRPdiip#K9tfOp*v2QRuX~`R^#rQVV ztX4NIOsi}Vty(0B3#(y7CR8)3*Qkpr5@twd@@4ukHM9I^}`#*UE>A}7(af% zfN?Wtr%dd$;)^dIVLh{N`+YbcLg))WO~HBeg<`qT>-vMj*kwqFzaEG z0_PW|ouYCb&{9;D+fx*W4WKCw#X(ZAh^II(e(L#jBZf~E#-hnZFuR(8@4}se^`m_@ zMx(ktc-rK&P{-`hnjqfhZ0L_S>k6gMWW_nKM*ar=as{7R=6E~GjyKdM(`n5140(ns z2~;@B2}%;nJAwJwreEo&#|D@EI`Ej9RK}I{H>=UtOe`QOSc%1(6ey1kv!8$%*(#8H zhdtjrmF7D(`901G{sDr%uoI7#+e6tPRe*VV9iSyQ&*YPrJOZI8mH!r zvG*z?%Q~}JWy9F6(ierF)3UJaY`Kq(IU3JF+IEth6;Ylx--OOpCS1p1C2S2M==i03 zC0wkeACw_w-Pp5bi?JwKXtpXWt1tW6zNo8g)KxrboRv@^jzlYQ`IYXeFJHw9K7-VY zsHN3~8;4$^R7@W&Kgm39Ew}wa&3TgQCh+XX4~{g?nMF8q7~g$e_Tz;;_U_%a?~!M# z{EHU6)V4j%r$a;q)~)wh`_|@XsJ>6l6aEA`2Nn-~iaKm1^@;h4EuU?|vZ+IZBGsC9 zOgl3zZOWmu@i|y~W(1}xV(0%Uh z$Xeq07>nyGKAqIJW4bQdjvSFO52|%XnV766e5y1tKcNjvKc)@MPoU9TuND?^>6cJ4 zD0o)cfpk42JuAl0ZIo>0`Qf&F$JFpeUc2sdlDe=tbgq^j;fNf8^<~yCpEJnS0Jm7I z8}#&^yf>aVC$h)B_^s#8CMAzQ{^miYMPaGeEWU&-!rQv}RF)w>E5Vk6wO&otQ!w4K zsZ3GG7KbKQe>Hp|^|qqiyRA-4EPP1+QFL6gyRvc7UA5EkAHT)eQq@#jJ^YtDB za_qTmj5^x(lHJANhUzM|6?G9QO-8Z9xN^9jY?J@mn*894X(4UD9k|_wKGPWJ9LI) zXHbU|T{<>3REMVV42MQC!-Pp&bGeMhSPr_g`ln)6BxXjpXGfdE9h5wim8{wv_81zg z#Mol(skDlcYO7+ehwZL z5_=DK=WrZzxXoBCMIENbuvoncOT~YN_ay#{m;U+-Y>e)R)sSJWC2g%eNuQ&6nizf} z5-<{YK$2$Q$kdIGgT%Cbte&`4n;*VejUT>M8{_B;=p(vGKO5^dSrPX9a3w!#LHMFr zQp>2P)$-Pjm6^J2&6(8AtThX)Vnl@S%Csp3i>6FjR50a>-^$9a|5l2Hrypo*e5JV< zBltG680Y$1n`6vzSgV*yr_gccIM@V}{pkzPjSYLu)v{t~z8i}bQ@w774cjv+zB}q6 zK6~v*WCG1qPRlVh!m`DkF%Cl;Rtk7El#;%2Y35r?UN_s(EjKAMgSRdnP&3LtoB!Ht z^H!hz`kU|ZpS{UvzF=OJW%kG!Zh-jQp74tKN|YSJJU&mX+XyGIUML{;cE>1&5U~a? zJSREF#Zo-n1T_&&`R3(ObTMtl{(Sds4OL`x96TAR1aq|cmARg1{?+OFaM zTJn%eF2zxy7WdSQboh)+EW$u{MM8NfLHW9PW1&P*gxkK3=qTi(INVumo5>_&&doeutMbNiS2d~}d5zfQFkWkqvewSk?bkx5xi!f+ z!}C)XcotRmIh_8AI!UeA&{Z>1Z9wZY2KlW`)D>cCYp@{ z|7jAMnxZo*JhMBi`2PR0u9Ja7^mXeb!^c&wb$h@28>K~Q)GA8uAZXja3>bMu6l;fua=9`x4)X~e_t zz&4o|JD>La*hOwS)fevb)MOX|M+&Iv%W%I)R{R$s>v=M8fEG#t!JyYSK#*H7U&~2b{y)^IqN6j8;)aaq6 zaDGHyFvRkO$cskWWmTbKErXHwxMhlzhe`D>!kh=R7KleMtQgt;)Gb~IuaCF6gALWd3rn0J7)TydgwpFvII8%+f ztdUap|6=aV5Fi^N2}ww^L)gM1gbv& zI_K0`<@TC@JS9>mJTQfY`hSTjsJOgBJ3#87G+ZknKd|4WHRmiR{1fe#K=z47UZ^XH&zztcrZXt*xd|DGx>XrOxq4=kB%LPp_DcP~Q{ z_Ct@Iz=kx+3wU9Zs!2>jWgPko+hHFw-bE$R{FzG`!l}-6ri6;?fnz*ImZO>>CzF>d@-X`*+I17W&)g7%@b$r0ePI}VuZP!3X zVRD+FB|Z;98ytluyjRh8M6U;y(eo1g+d*cWY!-h+db{B^PTnZ~;)&B-*>PvafgLg& z+8DbCTigQJ-E~5&+alL$UlwbHV|X%1g`{(8;0l=ru5^lr@)u43>>}I$!w*WSHni%u z25=a_-NfEQhD8=D3Qg@jbQ&y4ve!3!O9me;908Ge26KzPxush6vWDgs3bioV!4SnC zfa=^3dm*xCBWGag4?k!_fBk!vR#xZkA?=sJEkH}c-OzDicC1{ZgD(T|+S?aEEWF4d zzRu1bQ65zuJHpOl>px%{m3boELm2$$V&qGxpeYHKV{kN*1u>1(V zC0Ht8cFNz0KWoRMZ<5;pAE@IpE8vzbnyuGi!=PS=&4Y%O9!F<)?$BE_Ib%0i#17?E z?RaG!TL>H`9dsi6e((kqrn_5$vqZW~;TD}x8?LLc$8U6 zT(Z{Dp(RvoU|pH2eKZY%L<5-@NdIaBBL*6#yJOPh(p~BC=?OImK&}yMf@+L=!fKo~ z;WZI8k>=rE(=!qD>>TW1P&Cec}*1emwuBl`mYl^W!gU z&6W`-hmC)=bmJR^$u2Q#*35A;KX|1@Z_h*f#yx!BtXb5qZCy&rfB~5}VUo{Y z$6A3aSZlP9?v4yM8Keq}p~6vZsgK$jA=vHR!%bRkWVaZsEfXRdp)?ne=+zUbJA!&l zHGC2GAykyMty{fj!-h4h*LnWgYUlWK|NiRy*y=WQbz<7pYoA=XeEpiZa6l;@i{C5X zC~piISP39-)~5ka681hqNOMP;HU^)x3L7I%hE+(`3PU|9AnZ_ob&G^W+^2uAlJf4S z`zav2TCE&8srbnON`vwVOJZ{W9esOl8UErcuO1xvM8~|;RF=y^@h7)stJgcW|Lnbs zpXYa=eOUrH>;TEC?u$kUjjS+-R_LqE^=zl)l<|t{ZnGPE(7w=-H{BO-V)g7)*)c58 zsY5EOt7}s|_WW00pBuMBv8-FYdgI2`tJg`F#LmCnsvJ0kv?<(nGHpdLdp)8eq&~PhMiQf~hA^$rGum$T!ghuvDPTWN z?It0k_4aqTC>?aOC#^Ipd0<*^WEVs7Q{Z|r&gFtSexr$HlAux}wkTX&?!%1ruNEy8Gbnzg5b z#1Nfe&}f4##!#rs&ww-I4TO!Ocfa*J*t7^JAbAW?MG{T3<4F@Kr(7D-hdrdMs8g=6 z)aPH)hF15VFs7;@O}bRow~pKo>AaL4s28f<*&gnc2vclSib1k(3<)z-#D-N^B;43o z%jxE)TBbxGE~>lMZjbMQ3kw?wKRxTsn`hL^YP~{w5$sS?{0@Ny$!{Ah6zO7m57(KU zC6%pxXziw|bt~4^efO{4`v#7#>HPS*R!>Yj^Yzzfrfy5C6Z0;9_~FHiA74{$G$;+x zQMGMa?K!MpHliGvoODdj+7B)RwdeSc{fpxJ*UBAkfY+3S^R?BRcH%v(6^etw$-9Np zUF27>0F)n09FStWR7Ebn$>KJzFgfb@w@_VutT)0v>1!YQp-D@(nNOpDl`UO_teeH6g{Qo!$jrq?h5 zRSM`Y{)LGm5iigW*|dh~Y?|^pi>s@XM>eEYRY{%1&QN=a!Yj&P$%=V`p;^gw$7tZm zS)pgOlJ$&vr*ukx+HTZ~2GJs;Y^Cb%aRwGfj<$R;4R<+A=XT4IW6@Pl^ zS>@|8T&qy&i>f;nr$5-WO#3WmrTx5x^&P>yM&S*2d%aWDu{dGVHaI0w@6Rt>?tA*>b2|Et+t5;mQd5^dR0asR4$zENIj^xMzT2ZeL6T>y( z`fRbSrk%bUit)j%R|68O*GGVcgli(Sk-BhwbL3rYuFIG5VL{B(<>-s0p1Pshp}Hy3 zBzcl{l5UZ-P_qaT(9!hf575Zms%QWFOzF;`TOGZ=UK`r5gk4g~Jl(`j4e*w; z$Lv$KZRzq|mrqH*ZN|9MFzyW8wFKcAcS^Y3Vvu!0Oq5pVFjcsu`lwS8R-It8==*5< z+WJ`fMu+!_?3zf-*97KkAN0X zFDajT7KjghJ7>uko)zLlKg^`B^2m_|Mcw@O6?+i^ePQ5zJ$3*43L<=;`>I0m=l4|} zxu0KG+#~XP=)vh6*XL*}>_UZ!WD$ei(nYd6I)rnEq|$q`9{OxM#u(PS^D(a)hnNTa^>o^UCR5)KY&vou-0(#j%5hU5aIth7?qcoaDJHO zj`s7zdUG{9EuD%1FYL~_Vt}Lon(7x7$UQ5Iualf(fMQK#hXu!v6HENpzt4@YW%M)+1 zFMZ0UdlWIG8uvTcq=`P?1L>W9H3OF|DSx?medVq92i8uW@Y%S7GnY}T0vrct^~B4dO$nfXHn`jGQAUiIck%O!2T1hL>{d=y zd1{u9-m>q!II@aS?mv=OqvR3y-2dtzcFIJ&x)@BG^J_>MT+;F0e^qru);qtbn0&f! z%FKs196z4%{H%lf*?wZ!#ID6fclPWbH5S~O&T}l*I87dj_tZFd3-Ay;_?_yzAN-8+ zY2d}IrMK`YC{ajTF836=>Od1X@4ESCx|t&>{9$h8{>pH79&PV(Q~KVwIA+*%R~*+(~?P14P0i%^c90hS;~Pp*w9ep9(>E zL@;T5?RtApbJq~yx4KU2P123#HBoyvT`RVOmWyTP+DS}{l&$lvqTZ&rN0=gllg-JN zTw70DPy5i|AkrfvtNZ0wAoO;bz1-O?n=MY$iv$GG@Cf@gz{_q zzI}I$I3xFM*eXp`*Loi3YDIntgHY;@mgqj{omg%s2->G0i$P~3vz~&sYY@>^uj1g3 zI-^|D8Mz(pq+EShsaQWmD%FpZChO-(i}gVPYNUTktv$=cRSmB~clNkEdVj<9Z3iSM z$FS!&lq1q@$idBo@$T#hi^Hf*GDKP(F-DCmUJ{J82BDU{X?V*~8*(hkWC+qU3yTn9 zf;1swsNjky46?w?G))qw97(doTJc++Jb!bh*{x}=|5XP z-xTj2q&q>}Y0(HQ@b5wxExK_RQrV3zm4nM>OdmG5vP*~G_D`vFyDO*c|E)uPY2~lG zHbq5jdh*xG(yA>te%Lm)i?AiCRf!Sk=O^&(4 zyRDZ@hw^i>g5>z{{Gvkz?ZVZ^=oBt%*dGO<#A*C|JFt zA&*o>8#d}IHRnyy=flDs^%hfga6**BtaF+`>f&PUT@!HaFH;BrnTXl8c;C_(}xD@uUD4~Pf zr3+*BpxRKq2|lYZbVY2lnzoyTV1rQ?YYB1KqUkD;`h%SLxt}&J(B%T32817ysso|- zHK~%aRF5pVONSMm*Q{W3lu9w8A?wy#Z+-G<$Mu@px>l`TI{9&xl6K$#yHxd^@_P&r zMMRX~X;fG51fG&6Jmijag+)2d&07bD$3_`inp&sCJ1nwfxEtq;s$+sXMY`J}xOIA5 zi)OB1r`;T%(oAb{*jvVin`Eu9FwAUUq+QtD)ePZV(7ZwKtlAs>gn)3Lu&(i!q(ce# z+eBF?eQ)_bq^DGW&T2D4TvfJYNm==_G;G6ixR`*}kmdZ8C?q z-uK{s{H)#|pFJU5SmEvhdxC-6P7L%#0=)|*dqQX@QKzw*{$&qxYX0TWNy0jFIJ3dJ zp^@-@E--4x1sh_+Y~zH25K9CO59$GEM>22u$RHQ?(40ws2@|!6JD zsk~Bf<~}P#ZG-a0VD_jo+S%%bU|XX*t{&GtyxQ%MO8(<8+*~os)Tpti|N~(MTt6FL43=0#%6h0vM&CC zP~8KqLkk`dlFh9nliNLzQiSPlp1FMU7F-jd!r?4}Y|?<^jL-KTtsGN8r8wq0LQ$@e zhrFpM(&WLw4Y!TKT6ncVhY5Va>sH!7uqtoVly@S{mmeNBys-U+7klm;GGuGs_*pl? zudWZPrknIAqI+q-5f7>r|1JwR^qNsJ8^sMX zY9I}^ocwnalSn~U1ZU87=gw)Z=gytO7!v+2gUz!qbln+jzMc+O_oNspV5Ba+KPvBCuFvrU3m23 zdoLBvJ~R1PuU>un^y+?Ar2W*YKshtn8YcHZ?lx z@s*Ekiin)(3_E-9#dBd#7x(H_H+kaAy?WDs_rDQS_FI$9^?lrT(cjvBNZi&kIWAOi z8l>ha;lYN<#wl^q662dU=IURZ__AF}-ko zk=OJ>x@qy?=A}b=Oj=b{m9c8TL)%_GSi4|e*0RoB))v(r^q^*jXRKV(rLVhB)ts0@ z#XYlQr*(55s*uad6XRDzM<4W(;k?Q$aCa)_yQI}M^yZqNw_&7w(T5Q22` zO_DHQLlJkx$vKP!J#dOE$_?Cc+QGkwy-8c6q)I#0uX5rE<+gJB1lu!!?eTw0a$qT& z1KDAOz~j;68YEwqq8XB+z^9E|3!t5Vs~ji;Id<=FSSyWC91OZd_J1CW2D0PDYw~Mp zEA)m}S5E{pOIFixSoMv=gMtj5OhMW(Lr~aYe{u_)e{yTY(k+`yOG4Tw&#s!1QP?`?;eU@GUshb) z|`F-w;+FB-Rf4ce|nv*=+FrF2scUT^*cBp=PwSMe{Q# ziLDl9VKqL`XBh>WvO;mN=YZztt)N$_(mZJ&?voi(mdkB(Trj+2xgczd3LmH)WFKgX zB3&>c05%e4Ro`xa_JSH<6I4qPHcFh>abBy|X^0*^TDQ92jA{K!X3f<6kkO{~>`sro ze01%aS00*CQZjXV-+nVy9501jL~)g{-NL>QZuqBBS0n#3Sc7;*EsNC4(Iz3%9AxF( zi5MseMBr5THa&-yVDs}u8;=nX$ND2J;k3C$dHH~Hl=VJs zKnW4%6dmD1po!?D2{#KJ4a|URXU4x4Y)KHjBn)n|eOm-BgIT`wY;=5pcr-fR>0PUa= z>YX4V8bF66ZbNVzBE~`^RwP?jNC<9g0mu#Ww}=1-s2sd)J4kwaR|%`JM=;l|k}uyf0kvKWZ5g z5hsOdC4)&~c5Q`aV{}-xa2o2h_z0uH6(Nj3$p0HLVi^d>qt z9`E2~kX{MYcDioij1>G z$SeKfK4@Y$cCzwB<%hSJ296iwwQ;|FF7>tDsH^|CiXUHzY2p_Wy|o<2fwSxwuDLI^ z7k8G&8c}esG!hX;ckhzZgwz6A1hwK{FaTqvxD#76pMsC(bu>a&5eT!uUkwls4ZtQi z*}8)@+l=~A+9A?1VH6J_^^pRO{UpKIblEvs+`DA*JD+~B;ezKwDM%dCVs45jbvnT* z3Ae$oZvc-eJ~)cB@sU4e&$?GkGWa^BT747R4gGOY-^tlD7k z#lYWt+mops_OiLc+YN*Lzpn`R{Jgs{zR!bry{^oZZs2ajLoRyQ-TnSCQSoX_l)xjR zgoHKC5Ega1*{Ni0BEq8LP{1XIMJ7^IRE)$d39*UEk2%8MpDxrq!Fp7a7)t#${Sw`wVw1joeSJ-c>_Xq@qZ*r;`r2liSJ=|c zMK+f?%_f*FHa!O%UP^pz({OLhIMdhNLrh7*rl{yBb5e9vEdItMMMp=uk`T~|zrjiI zmUvSVvN2oYJDH*o?YTWzI_ofO4u0De9TOeyijNDnYh%qYd_@T*;TCO)J-kbYMH- zvDzO@FrYu-Aa4f_s_i^hhL4ZH6Fxq06XW00uHG4cJB^S2xNqt`F&?$LaPzD^$F%p} zIrZ~2AMfYIdHqplw+Oma>O`5H)OacrUb*@1cqfc;Avl#_1ng@=f>9+ZEYzAQWf;=K zLt~9P3M>N+20O5x;ivLuCXdbs4{}lLA)>iJPHfB<<3*>zj`FasSCto(OUstAG;gpM z(<{GfuK0qx#5W!nm;8Q7jrvkjANPDt=K0MOV73VNTTTc8{J7rRwfLE(NHbWfiE8gy?T+FNxT9}O}^#@aEb!4;c^1Vffc9}QB+BpRglCm4wa znbPB_zouWhJH9E5bRN8~p9aAfiu&4SMy-fVk1C3FMWw|GQI=Sh1~KHHJ0$1JgFu7Y zxTAw8Y!b#mm`pVicd6DP2#FcAsJ;U!oqJW&*G!VA3@pdMoCc;dAdYW@vS%);(LFd< z*~7}`D$gi;!9vT~h{eWwILUc9@h;T_ zp*oh41bos;`6=j4$bU(B9>`G<$`1oKsf)1sGNiHLUJ0azOct{#iAR_d>5JyXt{Svs zZBUTs2KzN)&fq6kX~b7sr2gVrbhNN)!Vy=}FAZ~E%-cAYrS&bN0GR3PT6@lm7yCb; zTvyhVj1#}?uV5b#71O`}`ECt8nRYitg$yWpyO`(!_xa~Im3t3P#rbjSo<0FMb#EWS zDRmqlPT5?|7{{q*X)d9e#pS~(bxgt&-rtWWwr26v-!?OTMYHtyqGqo6v}VY)+l=E0 z;BDl?1q5#+EG~lzFYY_hgi6q6J>D*DkFo7`VY{)8>EVC0E>thVc~g^V$qhkf3qw{I z4vt((abo@&MX&+fr#ZyWLv)8{p6FomEPx24)NDt;mmnXj`#fd$f{MV z*iq%b?_c}mlJY37hVUBf@ylT6N<)6G4CuI_y$*H>a?7xd&d7?8mKD;@km@!jLvV~M z9_QaIMXQa`HnWDc)>^v=-O}j^aRIreE`tjIEYc&8A{QCDlq+Q6BAi!aqq)SR#+EdF zR;jTiq@q;4HC}uFqYLkgJNM^wZohrTXJ@*u?bLg9{?wHn7j`Zmwr7{PXx5_HugbHo zynEv#^U|>yeOe|B-#d55k%;iUaj~QNcYm-rC3khdl`kYtnZ0V`9rD@5IdK1E?RcDD z7tmv^(3!5(ecI>Wzg?Wrq&>$sj<~2vyVci@+=TegH@;5mYZn(#JMMA|?D=8%m;~W2 zcNVJLJqvRz=_b3>&X}YZVmljI+{W0-D1Ajj&c=2pENzUnq3rc6ONG0Aee;CsE{IA9 zPb!qs>}@m-d!IC6UaYZCXlG5IcByl^s17HTeuP`HxMa#-c6ivq*mElrvMB=JZ#Sy( zc$ajyAw4_2U3yM>t~{J&(?Rg}p7*sL!!+^tNUZ7;5V{UHS_i)9Ra1mbjLUd_;n0EQ z#q8TYLx%Kb-#{zI#?9>aP-e~}-KRh9N?AQ>*E45N%o{Tz_mK{L9w`{MG%5a(p@$x2 zukUB@1R#_4gp5C05b+AS1fW9Rq2lu}4Qt85#sVVytanN(l`Klj04?5MdGGQ|wZgc)Ni+=5sp3nFCOS>kMyQAok#64XV)Rm3%32 zQJ#*x1bm#q=j#iFxh5qiCCi!QL_R`4W|3y>oi}Rld~x&6ozD^yE%7~)m9JvIt^H&L zi;q8)IH2`o)mzuC-`ZZ2c3FAkEOfIUp^~eK8CY{sY(2D9`RJ0fkB%6vAc@}lZy`m+ znd#>V4{#1qTDqV8=^Xs`lluVj^BK_OeC}=collc?@A+7dS|Vc|p!OOI9w~h#rI=wX|_jzuE&`Q`&!8iORh_QWn$yR$+9h|`o{fz zNN?TaL#pO;`v2oYs(agW1kJqWPPP#Q2X$oo0&^!pCM-8H6#+nUK zJ%}zTO@u^+F*rZg{A^7YEBJcBl{vju$ADahcaCq2@S`Efq)7YrpuR-tr*{i!dY7Q? zo66UFV4O`&#{ob1OmoGWA}(Za@!tR%niuV;Y0BG&`aXenp2LI7m3U!VNlq){?>#!l zBz`X7DBvse$<*fWKi8Uqm)>%=RDGGE-QQoFP!`CC)bUHOE?qBb$1HptwLkV!tm5sM zC18A#PdPln(*5BPCwk#o54tx%Hv#=q2>xK{?h!Tv@PPkmTv~@U#pDs&-~9_tr8_1F zR%5x`(h9-Lzr1fwK=v4Zug3CR0&k(5Vm;i3U?Cw|C;iKST5BeEbV5Z~bcMA#tX{Lz zD8`u(EveN9X}d?*LwY0;6#zMM5bYau9X;A7Xu!i!7t=#EJVy z{IKjrk3YWX_uu~{>W9uo)d6rkw9{TU_wFf|1yr0%q;_y}zSnAhj&pzPujRO9{$qcB zmiOt;&$4NM;2iR!aGb-dS%rws2JMJXqISwrs6yn2pUx7H(^(45d}j$+W)#{1Ie6Q| z#5){*p3_7(jpHI-x)`S=Z|Ctngu5hNptab$USEIQu}o@5?|}Y|cd2QAzTW%v=j&}c zzUMUMSi!mu2`le@eh)l-(Y^yd#%)xHuwKI59*yt=M^gb%=us1LLJ;L}Y13eHwGidt zaB?2sq<=5;4;OkJw)gi%DY{W7Wh8RtOT*LgJLEaS9Pi?d6#`v*kvm>1+L0r`X4>wc z!PAcbf#&}@z#tb8?zqQAZ*p-bmnT35^$zz1 z@`Xk$TUN(LDNp?&ph^CD@8ZRKl~ah4z!}gRRI3{S93l|s;S8Xkf+Q0cZipqy+b`U0 zC<;$Eq=mZ-B$+hIr;vR}>cMG3O6Be9Sm}N~KqEl|3`aMNr0FNRC6z}W!JJ(JctF$7 zH}U}W^A^28d_+U^Kj8D~{cJiv?iKRf;GW=m2%4P+XFw*4Ms^f#gUE7V0brCV!qnOcPN{9>#k8#AsBiuLh`h`qXFat5e*|msn@sys$9M>41Db^4&X1FL?uKKgFF<-u0gDqxflg&OyU-ki`9W0U?EjHdBzTOw{% zqV#@XXj;Q0_AqPZv9r`~zS+J#E-+B-q(4v&=Sum9&UxuUI;VfF`FT_P-2O)TM^*oL z`+Co3GI9t3Zx2mYfVXYD?YGd5xHnF>Hs7V+^u=$y@o>Ncqi_Z}-2V^b;e=EFQ#c%H z0{t3uJfQIZ{{!K0@<=5uFdPnhdlq+ej&3UChr7zRY(D5h8ukP)Ul*4g_53$$Cdqih2o_3l>r8`=KcEsON`yFbhk*M99CyC@3 z;n3Y_>L;i_=3ayTXlFHdkE@>u>@O^0BZW0h`oBi~(f*;Z**gQf3;xUVFa--a?pUaB zkp&NtA<(+(LA99CESOMpK!+rAZIM`(JQv$Qq9LIM_x~pO4^R@WBqt;s&|fG-KRnO! z`zi}4XVar4D8Au&;*%N5cSvg{=1-nZsS$uzph7&>&;kF~_)tV?BV`Bd%;s7vg&Z19 zVU`d{8!Fqt`+^N&q(E+f4q5g5qj||7%=0h$JfsnWhy)XyCIA$FEaH_CwuA>H=9eh* zyitj)*`*mwFQ#qw)PFKv`Ihgos@tDJXN@{0Bu51BTP?|=^FwuL?N8uik2m71ki&`2 zswJHjdh_iR( z5k#jGM=3q=3*>!4EJUH^ze0?Vi3m2hbjS|t_NZ-P>m0i6T8Az;R>%l(#)cvJ3y=9F zK@_iI7-s31m@QPN2E!8h^fOOyoSj@awCve;o-1qJYVOj?C(fN~SGWAtYb;;w6(f09bPiU zq2XF*H}bZC6!E{oqw@x=waY<9Nhd;*38doy36aU&x*{}r(4aXl40-^uPVH2vmW$`M zZyHvPAY}@A%*>cYeni+m)eh3ghcnR}dekaPVc?^Ne&EAtc#)~^F|Nn(@nYQa0qCng z8X`&&&^7tTYUIf@mi1_)UT_glruSH&KEx|SddIOIMKQ)i>IWX~?dP}q1fvN!LgNw4 ze!Yvhg|`zN_zX$B^6QY_tlTCRXWnkI1#Q=_a|+u{e?@rATCGw z>&A_LErf%3AGV7<&3dUuO8KELmA%ToFXV?HRhscWe1+?A!(bVhs`b!O6O}$hFT5lfDG^lFCCv6j!T6$*(sI`9@0nIH-13L z#0e!O(m};BW@gE%wEShoqqn5DT{-A)2M+vg=*qODhll)Sv-qen+3@Jv^}AC&U+@2( zB_4WC`BC}tIktAtGn=!s4yLx~+^I`PhEx!g5~4%L4joAyOXpaH^SXrhG-%1)W1N;` zQ#+6KTnAc`f=W{FqPU_~ctGtBnt{AtL`!B9%|LJ7--UL>hEn@FYDe#Y@#&3(p8UOg zhTceOEGefY=t;CB;Jsd~!Xrd*c-rxCuHgK%Ds77-Xa;-7=efBW-x&B!VE@K9mA^k^ zOXTtboPXhXi{9$^B#UzR)pmb>%v;Q9A$oFJsM?oRc*stHo&>*loHUGsd|CeSbG+@V z(2n>`YKIwCi)vu%ylL3~J$!uhgq;>obl5;)XAU-~c4nN>D)iB7mt!t`3OWxD3I~OQ zp7GCeUxC(cr)=7eh+GSCLe^e`B$OthJxXPO8{HyyMDj0g7JkCJi0%{pqyF4ckcut5N4~TBe!{XtiK(+d_pr=Je1 zur<J`vFI2is z^YQ&u#!-$ojH8afF!~3zKk)XjOg4HNUk5GScHWLpfo`aJHGwU~uC_;${-~Mj0@Quy zedx|Yuc1Q^y5jyGfL+xg295#SD|#3M#!z*bd<+xaduTHG{OV`P&Wq33bbkK~*<$kF zn_YnMQ7747jo{Q;YRo&mH$ z9iM0eM)uJLl0Psn<&Uu-pF)_RGs(3YQ-yJ-=9Cy51pil!q@(K!i=Zm4QsNl!MXo#` zeVi}IP~7KD7IOo+W8~9!3e{XO)ey==p&RHGO@jQh+>R4#gTNWNh%{%9nmm`9pssg$VLj^Uin#W7q`K}Rpf4Vzx>ZSZ~kXW z{~X^eCDnTQ`sKV^nb%dXULq4vm~eMqU*c!U_su;Sply^zhtigd(F-XR^uoD374#|A zDIgVeeTT8Tp8p@xL2J^6%*^Qa)N#UxeSjbNtF2mz6b+4eqwJ7e|FDPHyg%DJ@dwY@ zKif8KXx$x;f6qkJmK5Ztv1dUfJyV8CNV#oOk`q(1WG5U0bXvFrr7-sN_lJA+>emnH zuGx}t*{fGmlIwkJ7A*|1K96mFIttxK0~YaUUiw%RfN++6&3VQlZ-ZR$>;6vR+KJZ<`w z%hRVz0|u1t+(ikkc0ZZgYG5VJw-h+d_2ux5rJPneW>+`Te9lVtV}#Bve$N_Jl@~?(|BXf5!mlJnoYFZ>YOOb0Oy^iQ+iGG zInv31WL@1lhZJH;ych1t*(Ek-xz^d;=^e9tYe!$+F5oF7aIT;B>Hg_w%CT$*XBK>$ znP}rHrTgJ`C1c&b@}&p=s$D_)u9Iwx>PZ&a=tZVUOG}=e(e2nXK2Nec3+OHo@28yM zdLayRs3aqwF)-_R7bGn(V5M*_?wBB9)F$Qzr;R=6r9#h$Kd5#Fq*2+~ zO42BUc>XZ9tgcC7vC;tuOQkv1DTQ)($oobCa#fOd0y+l`LWAjkB_^b?Y#t_@m4gBZ z{PrP=7=L_aj!@IVmq>;^7t*}L`~`1}&)nXrTd$smAXm?Vl&D}^i||R`ELuuAW|qXQ z@a354ZD?LtzHYz(Q?nPtEfyxGMu)eF4+(b!GimE~SUBUjzxC(JKei{+egx)aPjv_B zWju?GS}6-@EUBOmqDI^%?RI?-Bs+P#{;#4hGrOukAh8K~0{bHG!U-g1-{cvD)YGX4 z#Fzu@l>^uZ{(i&#q}*zSZWD5-Wm?-A!ZL+y${T|~MdCH63Pw5CUNUI62XBiB+s-1k zhg8$=;VX3e_GNG(wy5oL_vFd31VoQ`TnU<`=*0B~Ud z4AqaewGhI#hy1lg+)FMLL8@*+;N8MM^dKYODjsq`u5JD>K{XmZ@S#PuUs&C$^-OcE z=ie4htRK4O(OnyN?0DkHk$t1z9FM9;KPlhrlHwBfEID?=<$9%g^CfepE#6oCaOJkP z*>5*X{^s4s-vZ1<&?7vCI}w5f_(bUdWd&O*g?WyNCeLjs1P*V&1t+&zWVTQAssU)- zq>CU~0M<_CNM-!a(pUlGNSx{C5G@grCr%s%)iE-~^&fDoTgIg1WKsE$H6M~x&~20f z+NbIk%_(nO)YXwAcco`kLkHXUXnBewlICiQ`}QR0Vsjsj;$<%oiRvd)I=*M>1GF6l z2*%5?1J3zU<42DeY_nM$W&1(~Wu>x`10&D8dGgIpb`8>zCN~I56pi;tW`d%&S)!(Jv;4UJC$)aKOZ^r zDswd^ms?}X_*|Wr>?iGk2R6)$v!c^;;!We^lZvA97Ukk^)w=9B`}jclP)+KA0}YE; z6n1!F^7uFTy{FH^{y{s!pJZGx^I0e8Uh`!Bh+e`7kH)*tUPWfBw~+v$Zy z8#*0hAwN3!u)z2lD{if3(Oo;fGrB$ChX6~v0bbZtJ}mnJZ6oAmWoFUl*nKz%jF ztO2}~zYSyhwW9nX$hD%FA=R%JMI|O=X*1lo0Y_Y(sqM@r@wv?nZ*L;l@Y0Z{Vciz| zkOXgCo_iN=OsHHVc4p-zN+tWx3FU-RdxAZmplmB)4;?xo|Lwoik*48w@ubHsJz9Kc z1`Fb{%(S~-@VaGQ`5_@W0)CoYO~a9i^C|42H*=|&d;i30vyoQ~70Z-{Aj+$T6x2bK zS55l)_f%hAwHVy}2*7N|er7@TgA1tl-jftq|0R3#FJCJ8{rhi?>fgM1K+gL(zL|xn zph)y%0M}&_4Z=JA9{uPa@+02aC6856*q?7r^797rZH&e^R*|dRK+h#n#T^Mm0?WpI zlFNTlv^+KbWqtcDJE}Y9>zN_1bM=lcxuEh*ljAEFn0`rRnU9j}?LzwzZd-qbJwmS~VZe6c->uQU7ktY~vQ3CJ3AfgXFs(!z z9+EDR0kc(VmD8H_&F=8-j4faO<>(A0_lCHxaKna0i#BX16u%N{hMIS;qH+N>4f9X3 z<SA%ctM;A&ilZxXu1Iaa=U8)lQVgMTj>_x_CK|2lkZ`UhXn z7<~A{5XXv+9ap^D+#sg0qjQqBr%tD-p7i{>{k6vwWnKd6TdtX={G$`@r%11Axf*Bg zBuSB3HBfD1F+NcZQ^&hP!We%AAbQazS1V@+Pal4cq_vSFm!mrF_5mS^{DC`cSLJZo zsqF0&=GpHP*#`7iu6I=)dos7n>Mfp&m=5!Ce#j5^?m2~^9UJBQ`Tqdu3cq&%*ywu z*|1mZPhmIE^S0(7Ytt`c*9|j*P=zYxSDyDg47N#u0h0n!^TPp}S4j*^&Y#n6pf5ZB z`6~h0`PuQ%oSf&>^!y5vR4czWNzjk=2IlA&=wZRfzBhJ@xPL&YtIsFZ5B`(|zxLkL zN9P@=p7_q3DVHZTD8HV3fAZtg_En8IUar}blJcLkHT7u`uK6>UtnbqE!`7`oyK?OP zjPS&XV`i-`$j7`~4+tDe0T5hqOEF`jPvGadX(-G%U|MD_*;jV%+G9_3)&I0+@u1fx zOs*aH{;kUO#V?mHSvIhypPUyT|Cgs%Y>6|A87qg5$E=KXCDsSdhZI15n+=G$H`iukt~no*Xnt?bxlk{g2=yhO<8%1*n^sy8 zJ>Te2LrfAV%idVkEo0ZotKtpR8-QISM}53_s}6W|me>z^!TZ4TXa5XjV)rD%Yw3eg z9vP4hFV-))VK^ZTYp0qB;QO3!bFQ!MuveK%O#jno%Z93j5ME#2p~J4plTK@juq@C# z18Cb>Z3L%O*ud(>m2M_jEUjF-+r1|~w@2qF;mkRAD?(OQrp9Q0~Iad!vUO(=Q-|`dH+^^ zDN%l)O!qA0C`(}TdAfVgVUpB#u;)}=I*pT!oN3;1Fa!bzF%DIJ}$vE?K79%8dSvC=tZ-Nc7S4=zDPvVS9%=RNjPRWJNkwWeqBK6d=Tex-YE z>ePuFZv6MZH`M(Nn2TkpV?qi9&tfF>Qc_)2#{?jx@6KY_>lpaG0S}CMXp*u{I_q(< z*@yO(m#bi~muTP(6Q`!;vg7*?DBbrJ_gupP;QPEx>5W{hBZWj9Y`Qvrx_<&v+oU^i z#EGizA*Y=t1GlBrit2!l%u{;$6i%*ZiT26r`TD-glI#QCH5GaX1Fd}g@*J(kcvbmrt^(h|uVuvrj zIQOrAJv(*Y^bN{)FFdj9sh7s&v6pA}dyrZ7vQXvL-eob<7aTsm{K;+y2hZ+^{St*` zz=H|k<7Rr1Xh58@9GrIG7Fih*t8s?P+8saMc5VOn>-zL-M=eH^xzuo(JivJTO|L6BK{k*vTp3mR8 z_w%sh{!gFZde7(oFhAu1Xfl6_xQ;%9^Q`A^FUEchk(b!D43PTIw{ag*)Ez*7oHu^Y z&l&rWqOKk7uzCc3&f6b;@4_SMr|$PT%y*TyW3%O5x^(!V8ifONA_CyUcr5_eVV_+T zt@{b3(eCqQPNALQwz!tOz0vm>ss{8g_V&jPqrx5eO8fe&a_=p)A8FFwmya_K_Dj@) z!#TlniE)61ynQ{|kyG5?4lHc!5BPZugjLI)4(#6uKNSw<{W%W|oEOp5v@TBjxbGr| zUnH(V?c~#Vo_xT``y1nb>1|i{LG|52=Et zk=mdk0-1tiGn$-X(zJFF@wF54R4pDCZ@Zt?df{){zY%_4f0foYj_=2H;7SjUi|YRPaUJdDM4P?iH|^gzzOO&s zJ@N?x{O{5}WUFwpiD+Mi@lyc*Hol_|@O4%3{(Sr<{U`JOJ}^j&yXv!}w&!@; zSD{_?**P?n_F)LM<4!Jv-e?fyxHkAfwuPDz?5N9b*UXzR%fhmAI!M`V+ena$vmxhE zzDLw2b+NWHj-!m_*VSiP#_{rHGasDu%&!IGCl)5=^y-mZ_v82Pt~$Te*?zjXr?c|O z%y(vg4SI19ApuC79~!_YSUISulRqT)=Wj>Bs9iwFNA( z5+>3hm!HhdX&exIOMt*=gOY$e^Q2_%HnT%~r>Rdo`O@RXdw$wIruqEg`9&Xnn$U4b zQR}#j&K(oG?%%?K*37J%JAu8U?^0Hp)N8}kQQZntEDyICIc)T>tkRhggEu}9>?-Iw zKCe}`mQg|ZWjj`Pe{9rrTr;}Yggv!2nMaNJ45Xn#FTS5!u%F~7dVgJ}T`oM| z#L4sbDVnG5@$N*nVy>MutNKx)g|U6ry=LH)^Fnr zbK0_Ce&ohMXzNU!mPqo-=YwZY-1~d?^w`h^U0li5=-fVIpD7>y>eD4l66-wGQ!me$ zae1?y?d;HDZsKhwUQ^z(^~*aIJT$2+y9X0@?nYiEs&6zK%%_29IPI^P*3zd(59OuPaPH?Z9_8Nlj|YFM0No3X=gpX{_l@US z+L$`quW;cxv~gxC&E>u?_o1PUzArwS`v&}iC{_yoY}{AIPZQBju~NQv9}QJ$*8SuY zP$R+_qFqholRDn+`y9{v0S<-D6n+Yj?*c!Ea%i}vF9&?CaXn3GUgLUvG|xAWPj2$b zK}|jv2p{`9pGV!dbkIs8-#18=yq)_kHOdjH-xA&#HNaD{duTaFSFu#$xJia8NcT{) zcu`jTNX5v_F+jzTtQ4|>aOCX95m4C$#M6u_u0!FPI}3c+2(b}4+otlj43C&-auX0_ zZq<43LJH4dP8NOs+9Bm7yhEh6>ZHfR7EgFe^LzIU@8sEK-pVnn^Kw=EpWUWG6yMcq zm9vbl073GNT1kdikeM`2xei!X0T$8|YUxGa1eV5I>03E}>xd`*cn@jus8LZzB`f}T z`DkV_AAW(TV1dnNYCR^r>4VA7%3qBMg_z8|5EF7fQ+XhN5hkQr;As$>2EB*@)t4G; zFJXL1SO{Dl3R**Te?e>PJ`xh(7bMYk`ZVm0dz>1wzU^N#aA1wNuYXDZ0R#G%{1`dB zaPh{9#RcV2Gos217FSd*Di|I)!|&waS?qNjA}5@Hs&av$l^{4OY)Y{_6z^CsYygRS zdEt)Yd91owgiumypR+L{(E>rWB}z9raGtXMB_#s~mT=$}RWt#vusm`GcMYNnZsHn{ zIjVWraA-g&uNmWD`6zh@;FLE|{*G$f4D|es_RW_U#{%saY@RGDg!1b^|7Br`2*rTW zEXBwW20xM+#wxF~{7ci7&JX7f&X~}aeaWKwrw+Y{XYN~UNwJc9=MG!_%K2{Hic#M% zekXH#B7keY@eL$XLwiJTcG#970VlfBU=9s|YX^DfQ1%<0BRPdk5~NaMGsU*{2L``! zM*M)g1no8)nQ*y3D`GLj`se3%8@s}4^K7&_M!!+|d{0r7nrU57TD-H|bFM{;^TxZ~ zSlUY{bcQnVp_a(8#m9OEn;MpMN{*fN6Z{IP9fj{URu1}ei-Q+FBu-J6Mz{EflW z+hMfL?z3ifY?x<-!#;~D|IyvRzROet9)wiYEvPynC?8$tVO#!<0%4$aG~$&IMv6=L z0ONC_5RaTjZ)=@6MdH%wsIg4MiuRETiQ8C;_|A_%o>yAS`Zi-zij{fil{FKj_t-Gc zBjVBnor-fOd*1Qr*;UWYZYmsC6ssHoJcVr8nAcg&IRm9w91BxT7HJGTI~!Ugj=X6i z3>#zvKyl-MqB`>@9)4m=%ibx2W_KU@ZPvKVC5yXsSWE?Wp6=fBJ{5LG3v+c_PU>u=nJY;j{d~p22H?BP^8M9pSLY=5rS<*!8~W3L2w zOLp76`}{ZLMfuJ5`dC_rh#fpHs&7XO`X)NeWZs%Wn z!szb-*+82iPCNhZyXV(ap>VY}xTDb?=~*u>*eBZk zwZb<6CaRGYfitEYDnMpZy7H)B>thm`$8-Gp^?)K*Q_G*;s}!&^d)cqv zN>`$=1N)qdF{x%NZmrLmEe2H|ydz>kIMpT*C2bf}I@Ih%71hIabp=OO9=y=--(S}~ zHsWOY_}5A|yjg%6s;Ryjs^W@2t)WV9VyZoPzgnTE{?}Tez=H4^@T&d@u{u-vOP}8-ww^XUPFp#BfL}4tz z(^zA+nULp>lPXN8FdI%KW+UP&V$~|MvGH+gq1hy!6%6j($L52`*!?E(b<=ty--(H_Ggu6<>gc|av3fR6Y6l5ksLSE-P#blR&~{--01EQUWu01 zq^&TZB5l3bSJzj7_K(iGsw|<^)fMj=z-0JrT~iuLcJ%GBwfxX4uYoVQ<)qY9<*afG zf6fLLpcSE$og=pg9PxzDnzlLI=Ms!L%Wszr9aM@ zptsKL7@hWk)9|J|GN8LQwV?R1N5)l7?4OwRG#=z&fZj>3kJ0H4|NJ*wUKbV@lGh7o zwghjdTrR(nrpPC~X+XLfExCpCQuK>StYF%enKQ4juE!Fa_0Z-%(xZD)VPOf?4d}nb zFQ%DMnshmXsWQ_adfE^v`SbJr3_Y9C&XAavJT`6N3iAIup_s&YDeJu2IG(J|~_C zm3HwjSASqG9OIo~rzcH2S$gP1!$0f95!QpN*F7$dxWf{lMZB$itGtz(`f^_G*_X9d zyAG?eLEs!k+{e^z?Man-d6izDk7<~{u5U$feGF>*Qe9u}WeNfO_HA$FUhZW|LJ}`Y z!2QE<3OOoiTP(%+3imP%Q0_A-+>2|Ay1jzGZm;qdfV{1oWC?HXIe@yoC+uCgj zFGicq!^-zfgV`c*9nFOTcRV5|PexZH*0&HsYaJ~N8-q>;BV}2O2z#>CE;(F5Ev(no z-0jFOb-MvH5Bb9JjR!=J)KN0LMEo@qVcN^~^9OHD3a~cG^2p=LH+LVX9of5f?2E^q z-?sbNb(w4sM z>C)@r&RyL_v*s@y->w~+b31nI+pkO4g5ASYC z)Mjs+J-UBR&gNFBg~h3#Hi0(hSaByOkH&!1)FF`SBaqt=kx%zexG(15ekyJ!SOh zDd%gRdO-PB`bZg}bj;81-Md}vld(BF=FDmH;?@b9qM|oV*m|h&6f0#L_<6&YA345tm)kE;dTqBCoU;H^xk`i zez`hr&YbBJrpqH-UPqlf=kBa}_?}wSU$FwuC+xY8l+hnwo4~S>xeorq&c>AWOu+#j8h@e=3*iXolvjFmLq2O+;lgV9INCQ&CT}t}b)`?56cZ zf4eOXRtt)%@pe>iJQf4$xa3W$F2Ad+9|5%vwoK$B)lHtgvI5f7-gjRqE0s``8hVs0O@QSeEbf{Nvn_;NUo+}8Vke}%j4<5e3svgCbi zyx7+l(ViP%>;)e$;UB2!A8{b6ZkJyel*ezfkMjndhEtc^ZoR$r;}q|;hsJ<+pzRdC zZ;rnAC{OYy9UX2}hpn$ZL-o<|JZv)ReCRu)F=8io1;u0S32zM$odVk(C7ojACtGEv zfBeI~vR3h0&A#T~E!h_{hIB3Jj&gqe#aRo6WSw*z{o8P8JpV@w!f z?TC^E0f05Y;jIM{2=+sy404ip7S8r(W*&HT#pb(gseGEB%pKRei|zNDJ$h&N>$GRU z_C4LZuUN~|f5g)W$P*w33fJh;q0QRfq^+cvJ~0oShIX&eRMg=n9KgZ_w}^oWl; zhyu2o)5YByQP90`%KoIT*=hS*Z*9GQe^`Ec*4Syn!(A@2FCl%eyv)9YJly4F5BF#u z?xG)_{J-f(+s*R-vwr^hNNz4llw&^QuomNSuE(KMvBiT>g44l9)NS?JJ+H~jaCzD- zocEvIc6xu`UJXm5_id5vtc^ap;@ZwdkIPRzQXqZUFk8DwbV&0&ivD|||0a-R93A6q zuID}Epg0B)nI9GwCd-{eLQW@i?lfS3|Nf_j44c})=KJ9}ir7(S92jG@&Ykz2eTcmK zncc&O?-T78qWw^`A4XnDnio<7g}q-rnMMAtRs7ItwhkvwSXbqt{l<+m)TF|+bYJ=C zGrfDGMI;^>c3@0Cb&@HVj1i&_ps3mbeYnz|rg#MWh}^`C?DGr!9*?}BF07uftbVvs zSzSG!^ti(2g6AD^15%hH7R+Rf68a9Xr9R;f#)>Ur?~5Yr?8|kT87^|FOGf4z`v+c0 znd{bPCaDV>)?VSA8S!BqPQ4h7p&oY&y2jj3i*B`ZtYWN&^Vv-_fm=Kiw- znujfZ!ID}uyi>5z7~E<2oX)Ln6PVwR^9C`#bNaJWXMW2s^^QALR(2|`H*ab)0nE;R)Kp{=U z3@XG*&|qcXd-C>s&kkR-aQNPP_JVr{@)s`5KTzJKMP_CTd+&tI%mm%kefz2#%`WD* z`K@iU8{K>U`JVz7ZbM*VXz{{;{nZtXI!?L%;pC3hA1RrE-6nr{eM&cs3;v5WUn@sI zJ4}+48Y=Wqb)+I@dxLuI-%`1DIqut~LpIgp%#{wQp(Jyprwe+?< zsnF|02UDW5WZxk`(bd~f|E2JJ zb#uMTCyv7Nb?+lGMOS;K(ViCsNK;~9Ddfl&Ee8LGXTYb8_Ub={33kjuAUYj3WFeo^$}<>n~zcuyIK-3j7iw zDum>aEGSMx!?Q^FT557q@}cv4GupKq`O+!2;*&`er`i9!I5)#)%a|*Bno?4R@po90 z=}n_}j5@4W&lkq8W4rh(adCZfV`KlLKav8${R_=8$*w+$u!rh_URrmE1G_e1+Qdnp z@I|Ly8riO0#@_RX&^>SF=yI{KKKgB zO06hARMKahw*JodaSkz1$htGo!5Tsn;AqOECOsmpwbxp0D6@@UpDmiVKVLUK;0SS^ zwMPzxRyw3mfBA!$=+Rd{KlW0~mV*fCY?L9`j<3o4rnmx1zw@X;miOmu@}G^J9dJZk;I*z|93tk+ zRNp=V21}eH;DpIIqG8;Ia=C4JNlAI9fdgm1@s|9n{jK!$MNbXrDU1Q!h5gN4U>Z0u z)|zndTQ}vI?B2usX=^_m=hqDM0}DIUXXL>St(LZX$j(oiw)4H&DbZx{{N6ZC&&vqD8C`?4s7Edg;;viV%5tRGCywPP`Jyy%W{N zWQWrV9)sT-`w5iPtv=yHtJKB3HM?ZrWdB`;!Ihq`z&`iJI3XnqKcIkml!u&luFEgl z|B-{3pI^J+q{0RE?_~q`K+I`t+`$hxl3X#nKZ9*#h ziXV|>7JGlUhlpzto$)c_m*wa7iODZ%=3DH#_{}HS?lYr#*6R;-YP;BkmEB1OLPQ1$ zN8{E`?>A;&PHWTr2eCckdpOnxYw4{wlcv1(_z@O7p$QDr4hvLTXJ<0b4rtqU?BVR* zy?SN!>C=z-teHG%T4|LMIwNb;$__L9{o)Qpn#{WvpDvv_H`GpkdLSybZ39KbxssYf zhik3Q$3S#IF;|vOn>3|}`Sk14C#zTQUfC48(6;|MCA9jsye@R^%+k|~cbQF*2jcwv zXLMLODr<&@SM}RZG&xQ-ZPgqnS}Jk2>`WEfpS*_uB--!Q+u6SShk}v*_x9meLa>1x z?*k&zaNri|j}A>|bPi~NrQ*>^ur{NQWn)GJG5%B06g9oUOdj5B06Fl%!=;w$Ow@Qs z8C7B1M!$sFAU9!BDu5LxkcCz#p!Op@@O1c&9UouYv4dabz4_%6WAa&}i}_>Ltj{0w zRYZ7vtBCN9!@?uvycr z{x+f4mbSnksmv|Rwai?>%EG+N{yKArL+ObE8JgTypgdJ{m>Ow~x;llFusmcl|P2^?zw=;rPYg zK|5#f*pG3MPWYP83Hu4j7a(xb5skM=gaSB5H6d&%h6ppNUQ>Duf}d=i*~XR@wx+0P zO<0;ObvDbLM}h=~L5~4E{H4W;f)RmN zXnk%3WHmBELvMLUd3pKqGd{_EP5^DZD!@4;o|vmB3nxUIpkb?exaa9<86!Twf`nWT z^~9ZENPy8?(78dNb8fhRs|?N-iuzXvownb&E9cm^-IH6N=2=QHZ!CMrx%SUx9OU%g zpBUf`%tfco#V`C%%)$<@nd*2L-ef5fV_yW=Hx_m+!BE6RYhmmS;O=Kax-S^KQd5jE z(Gdpu)fOE)4Lvkv^5iLphIZ=MqJ8_qGfR3m4mrh}XJmYqfq$Q6?9aC(?A~vg zhuZ=CFkts%S%j}2eCo(pEZlg*p=%P5mno|h@ZH4r=f5&$%qz@yitNruvS;jn8i$3q zYu#(l+Nb zIgY+PCHVH4g-JjxA>bS3jXFcYkN-5x1N(3C;k?lRP9wdG0xE4SEI9Ln7%EUOlMzs1erbM6?JOK1B zX^>r_u=RYV?8--uZ@Qw8T?&$iu#bmCPUtbeq-1`N36WEn#iJlLxfaa6)m)LCOip52 z-(W1!NDbU0^W|X=mN@vH60CJ=_^N_=ukVvq51`-<1(!>%PK0436x8W!9p%wric@{# z$E4)sv>O;T*J9neJf&^x^yy1S_USYAtFKyinV3GOU9a3G!4sm#4PL#l{UjkR=H}YE zg?qK=kyW&_%w!6We&&67gyzy}-&549XL9mD$c#;!dpCW`Au<9#O0fSak5-h>TS3yn zUJx8C&H&O^In09;iLWu|NZ2BS8WNwuidayGv@Oe5bPoxYK>?DZdNppm{@Hfz$Bbdm zGyZKz<9;O5^eP)9#HxqQKN>DH4!+qvuZfX8sAd6jn0?Qh=oq4-Cu*jtK7d^-oCr3+ z58x4pbuD)T^bMdpzT}JVXCSYSI%vY(Pq=s(NUug#GFsWo+ zMnFK1?gI;^9-lH{Lc#R$6WYZemnSz%PU$);tsM$FXF6yoRI$6yKoP54t&XR>jjz63 zl3g(RkWl^7p8p0p@_!U-3U5KC9hX9@S6^E}paTXv?9O4cfGGh=aehe4-|-U$PEISwWBT!ydAW9LQ;dUrjXdC zkl5zD*f?wRrlQT8W}PbBUQ&3f{)OC+2e9wy+rD0w?OfNs;WhOk9Yh~ZK)WFw`j8V| zz3+|6v5oeLj-O~OkLmbBb%ypE)5BSF6g+Pe%r6j{im)J5{}mewS_G(uH8Y7xFR$RA zwdoy|T)5!$v}J47jBd<6k}tpsjZU2U6hC%m>!5K{WlMT!?BsYW>%Hd3fPjp~v6Dx!b6Ud>H*6idbI7=F54!{YRKhk398m?!L&jnHGP!2Ryy>dXtAtH_|R#yKI4?zs^dMs1+np zHqGkQYuKdOvzt%vK7TQi&8%c|2M(M#gzr|y@t0e-UZwT11AWLMvrFRtU|R(#Vkekr zNozGJamJo49RmZ^18rKbTFzIY?Ys$STTbXZHzj32a0n?iWH@{ulz+q=+=XNg18}WT z2Xt4SJ8RsG7EL-@X3f%h+n3Lql$X+9nX#P4Rf4&<#+s8JwG{|o1KqBY>eDJ@)Pz~H zqGsoMG&ZZRxVcWB$jjuJBip1>#I$&S9o{#J_y0r3&2}_+U#_P2S$F$-ysyaO{XXoV zvJ~%=9=#SYG+DAn-8@q5ycz8Jf zXc5$p&6@RCqk$vn zU4QliK#17*yXq{g{a8ecSBdL)mA90Zs4svpnMba{b>jJZYK44D{|27lDc0ai@(7ZCnanCruZG;58BRd+Vb*jGqUkd`K5h&o-HGff+aCA<=}uWogbUHMAy?6o7$tP4L(>Sd|lo0x)uz#bu#fSkG73H>)?C^ z$LW-*gdS1;V9CVCI(O}VFeNe3g60#ar#EeyGGEsdV$Wn#C)@CXu6b^*z9ZmkWNX?Z zHP(i4H&=gFP=5tFwp5#ks*_Jkrwpp>t~ZbrOKw|tt!*r*65^VRN+G#}^In$>HRpgI z27K9Cn^Id3L?}mOj3H8PvgQ8T6UW!;$MV8IA-z1>wj!NY*(rmfb7!?}r$JEupW9Xv z;en;dP42Hfeq!x?^=CE@WfBXKU!ke;t$Yyj4`LE*D9)s!1P=(DqR9B`f*@`3fkM5R zQU(elJCu!8*m5E}&oKB>P#V0(9YHs&u853Y3Q>8yf%xsBS6*ELu6qGpqx>h&R?1k-g! zu$K|n8^xUZtGASe20i)-kOmy}zT{fYRGWw2B_+@!TUuz&)&~N4$jw>&a;~t4z@9*X zJ%Kn^9oR#t1+2m~unPBU&S_ZXizAVg7vQK3nh9U{fhr51nKkp7XJ*cNW?`PqHei6w zmZ$q;=AJz>>1IaW09%Iva64gaAD^v&yTCaZam*dH!^)Z7=IVtm+|)%ToPc+60zzGL zt@;8=T!tq;QZ^U;%Eq}Z<5E+?(wjtg4qY%axqV)fR;|3fSGu_k7-}KoF=I`1jg_PN zR779AY73Xl1}}G&nGN3Vs`+w|LA~tf9)c`nlEE+A-;nKs-1yKCIch@V1g=Ip{`&PI z8iFZAfGGszL<19ci8p}>*O&wDJHTYiaFsmVJls7z+`Zk6-X?Few~x24x1YDacYtef z5XvY7y9K)kdjxw1dj)$38-q>3=3t*DzD@j^_%{j&3P!PQrj_+HM2eG~!f?nR2M_`L z<@`2&;a<^AX1}OJ(;ZI&&m_aqoc<^;J>~y0O}AWe_yQ&B;J*wOy92@(0PN) z^uyakMOEbH6J&wuNizdq-4jQD-TLDkT?D;9IM;^$IP!|ttqY$lm~oo5QkHaiY{1+}a@#)IJA?7g99_JK z!l+F$>)^`?Q|r0z)QN&hcEW_#1Nx^AZMN8&^mI|{g`I7S+vntkg-mTeam4!Nw&^<0 zk^cVi@lBhXT>@j{dJY)t>oYMl)Y>u@rU4hfzTNUhnlN57`aTO7(7sj}5nE)q3`kXu z)G*JYcdisM^Mk_IUd3VjELmm7-oEt4b*Phqq z5mkdv2JCD~W9}`_SKljq03{`3&d&|b&ygw`Pq1GLm7Rqw2@f@RhPW6?a-%dZEJQo^ z@NgfN*{oisMhpWs8v28$?h4NTa3_>u*sOKi7T4fPN#q=DP3RylJ;SGpl>|tc{yC;f!<8ZH&hk z1u?#mK3CaD8j@&<+5tDsu3XU@FJlOpZ-%a`vYF_-sDulCTK!FFt-mOCo|A*Yi6VSX zpohZF>;8>_g;fhjIj9^kTxDtCz~qiP9>hx9E6l-?|oJ&ygon%E3B53B&% zuUnS_f~6dRbu87FinEOl^3pZK%@{w3@qM# z_omIe-RF9Z=r>@5yRJFbXd|r^_08CI;ARA5Vmgmuy_7Hf^6HbyTWlbG_6vC2+xj=i z&d7|B$^JOg6XjdKPMh|t?mVwqs1$Ln4F@kQp2PVc>6_>m!R|Sp zd{RJi*>ergWTl|ti7m$QfV;^b*1SP-4C(+xgP+hidilelOO^~xeC#nkY1Gp4C8Hj* zCO$^v9%VnOWI4vIIa?*lPm5{swuOa9M4Q9#Os3-*%|9zr_7>CPqn*zT$NanD8KT)( zE+;!C8;=|*#DDuy`bo{9&zXF*G7Qhs+LPsT7W;u35})0N-XK_7N@rCRi4e7Vy}FWP zOPw)5TfrKX@&58>+Vd3PQY(5Umz|=-lvj|La_Lq_pc1;18O%-Z)WoB2ADatkL_HD# zQloQ_h^yEtGKw=BbyzP$d`LNO}c(7FErO4dkdpR3}yw7`$^-?_ieONI_vvSi3mELdV< z*RF|)kMVDYEL}Q;ZdxDfnwZoTt4J{2Zoe&mUDFO@HIW`f1vWZp@nsAT)Z{)k*qi)C zdUh>%#pZa+M{12U_->x38OjPWoy}EpHTp=#MGEnY*Df2WDBOMiCKyI$^X!Hw`0;E$ zbg3mwKQ!Ell(l?7bd3C3>*RTJS`KIt(IdWX`xY(I$6E#t_V9SZ2t<%429L?${2Ay)V@#)BQw8I85U`$Dd4AXcL6 zTN|uH1Icl+COCqI@*rhzP3!;7S*ZJ;&caL1qY&eX$9(qIv=uy`gCc7Tud=tn`N@Nw zFM+?uJ4b7h!QZd?zrf%B|H-QJJST@<$Eq`@OiO#DA-{41JD>QKbmCX8ZUvq~#%!!! z{t z&ydK>PrV8+r+s)w9K#7kMR{4jBIZ}b zm$L2^6%fp2>^WDl=LAoHEFmU%m0{P}KViH1k5}!V%F%oj^XEU%`0DLF9pqLYU%$v` z@JW%;G5BFlwaNu)*n6|R3dVTP@o?w5jxcnnG}^`4N(0ok?xh6>r`_8SfVnwzf&!P|AFz&S&IqIL9^~wN&r{{6qNF9M|;zgMpigzE> z>?8ko2)x4OyB(7stjK#R(US-g)}O0?sMpGFSE2UDF?hZbnQw7OgLv`NhL4f8asst4U&r`n zpnd2x)B})7qUD>~eGUaA+W%gTm%mm

*z7(*)1;63^Yyp0jtR`&301_AYw=8^?Wf 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

;d<1Y;^BJHqz()YrcmQK+VAH2P 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 $i}Y`x{!@e;(o3= z5BL3vW=f8JUmqWl-xwdM6c0FbUyhFopv(K+uKlQP0DK)XvosQ|)LoX>pn=8jve^*R z+QyXhZ_eUB6X!1PwE6O#b~PQ*EWV-W+SnO|0iD(*PaR-0*jsGI0nv(m{h~-_$6pjF z;3a9_QQN>W5+YAjkT#xVxr>WXHGu({kEO&gxr`n;a49vKRfUW5|NLxyez8w{};qPnEwGA-TZ9R?U{x3S218+L^#EO9tXhCfMJ3MI-L>WCZf2L?X zlRZr{YUi$-qk4BjL@29WBwr^>+18ul+NzaA)dN?A(1r}m#R?n-g(TodE_}3Vr2NNt zT3spgbL&x_R)`=;byvU`rXJBg<{41mGhY2Sm06S^+hq)!G$~@XY^Tj+0Xo%>pexiOcS6%zlPvwF@OrL1r@zVR5NqcZJv zp`D81*zrQcvK#>^O=?Iug*?TdemgQGSNHx;%})g@C)*=wS473Q?DWFcj-c&X+oGel zWo-`*ZC#k2JuatJQR`5;$)clQ&f12%MXhpTn`EW=+N-MUzG+!amc~Zomrqrd4}L|z z@%;0_Jni}CLkf=A!kQE~924%GP}H|yA)9dLU15%bCSkTC@j``}(GZ`&*40;t}J zU(px#y?x#um2iLMj>`KJqLd-e9xcf3cYi`d5%tk?_J#@f_sixX?&Qb?XTEYav0XvG z`wI*2?^m!{Eb)mzves}kSlF>Ovcf0R>cWv@T{0T`S%D>U#9KTO4Gkl7BHRSsD*Ydeo+UyDvfnnc!`;Nl z!IeZXB6HykceQBD_0%)2(=tqr!lgM7&WuHA7nEB2LvjX!Ez`Ndj!;K7yo7OZ`|x=a5C(g)_=V_C3#FiuNz@koKGNoSxUoj$<7gV5PT(OPUjT4ZH{|tpD$p zX!)*@uz?pnr&$;94hM84Q3B_e_E$dgapjS9iwLg|wc{dGyw09rXW8@0P=j7h)M*-7 zRIuA!>Tw8RNW|imB2jbt-m~9K_aD(l!l6|ZfUit^4g?8lv{CE?l2u5&xxaQs zeH-m0QG`_I4cE*0+w~ubxHsQ|40UmmIi00()qrG4c zV34UHk{iednvB!Jv*Ysfa1tbn#T1ZfZPLc?nO-dF+P7y)@9BHSH|1}~wO=Q?YCm&- zwrgZ(mAzgxmc0U8eil8-5hoP&^A};j>mh0R$)KYF^neH0K?+xi_gfc^NBo;}wex1! zAG*B0V&H^ro7SGPkE49rMc}oX*28cZVhGNocz@3x?V@iva1PeaaIBCRFd-}wX;V5y zKLE@IfGK`rjy-c`pt1`dzY{PY{r2)Iz-*v7)qO@?F*HzJscMlC@i^fXkv(jvE6T!r zm4DW*DeBsrDec>fx?^ea&S1altF-WL|%6_=zfP@ZXq zGeu<#*JS-LQrL^)bLn_ec)>j^4;g!&4RT&%=e2j}l+q90kcW~Y=2H+0r2`fDcq&Kk zkb&OtE@%qfm%MfmAzyNDdB%d$>o(1Y7R54KyPcd0g;uVQ09 z!QY(4f2QSC%TCqC)7wcE7)CMRURK2iR3VDiGSYmtIkJA&&hp9Xj|y4$EefnGVd@n= zxu(W^7KUe2T4JMO-RrSh)|v|DosS9CmiBAZ#b?rE;!fD63>G7^s>-JAuvAUA0X%C znyVNgQI?Trs*y(GW26DyudX-KC_bKWPI> zpMeYH0C*>ix2Obwg!>_KB&nL@1Z{&xxVBfG#CIFe=^&I)l z=OzHcQ|ATHgLEI10Lh@&m{`VlF=!&0=K6GiCMjd218sQHrxQc4%1?sV?*C8qB3jRufxenT9P-UElJ zYB)7KlDlD>ILMS#F#`u9ozBlDO(AJPSIPA)Ag{sp>J$>$Cf~c#0h(tz*-BEj6Fk|D zvQ7k#);b9yHFrM)=G9+_rq`z>x>7#?Yne&wHc-!Vr`78t;ZjP1>Vc>`onAgluV22w zQ3g%x;UMefg@a69_bYm~8@3lsT{xITkm;m6GI5n$rG2Je(V42o;8QAF$|MulaGn21 zp7543Enp6$)F#ZSIkrgBNNDkkP-dD+i?+ zvdG;XTq4fw6Q1QrYPzJ2Da3X1-vT#-?`8E3)^|zs>v2PU^m25rHf5?wvwG!_wod8w zJTNkwvXFWX2{~7b%Q4ACJDD%h=;xH1NA=T1jZv+zfmAPpfbMp6l?PcWf^ ziG)(Bc-BqNhw|juhVt~!k z4SHNxFIOJqGun$}zgMkv1)zR8dV9HQQk?cU0n(F;a<8t^!Rw_@A2X7 z*o8Ul0y-znPAH9AZ+CG5e~w+K+lo|xXUs-0$Af;ekJsAXmO47pddx(WsmdMB7wQHm z1Dta1#evs8#mAi%?Imld&pf=6^J{0>UW_yE=x`O_$neH&tNK)^i6^ZQ5Ur3}mo}7M%O+K8CbGN(WgPq{;S*0mXE$-7{(|<_ zrG~DTD|>;<)eZ))!@n$o@CFqmCW#?o%2ZSk?L|OI^g&GHEMwAR1_7>#3)16{VApCn z%2W|2?&U2c{#QGo2vh)iC(#-7lXaDtgEEHZ$y>6$*8R@T#1)b*#+YWLmAx*U5v|!8 zT{+iBHc1x)u7L|dChh?2TBLTatK=Ul5$Y5G7gg5%SAW6WfZAN@<9b~sRisWX#Wo|F zC~sXQ(+8#HlV!UbbRk@jmaW$5LU`y}zN8D=E7M9`h>FmbfPf z5>00p^e)K@Mju4IsQ0@#9|_S3iTA<3F6Ngw8uCKYlJcN8N(?DCB!_dI#F08A2@nHE zos@>WG22h(Hu6fDBZpbyKsE@Bf>t+q&>a7Dn&@q=b0KvJIf|Qo0yr9dg7&eZz1^i4 z`AE9SCSYq^Wf32{$|ITpNAhi_x*0tL^`k$x1R<5kJusJ0H={~7MVRm4OIs!VJ)XlSG25Dk z$2;h`M_ww6wob!QoqW}iM!TT>a|fTKZQQ|wc<>Ib9F}g26W&AWi}i#%jsqa-<|#woiS#t|N-#6G^t~`Otdd_`Sf$C}kn9<@*RG$#CRD`|Ydi zM0GvO9VpMRr&=-3n9rdgFw8J8pXV6w&GJY)gYiT!kjit}VZqBGvOK9-=ym|b$1G3J zXB0@~>G||I3;2v?L5~nwfG#GJ1I_#>*Ha^a)q^xwSv+B`$_D2Y*E5|qG`Ev5U2Q=ym9t*?tY@#n0S0uVXVyrsXZFa;zqp>+ zx_CYF>GJ1Z*E78hUFGR=U5DAt^Vtx6j5G2nTRfgAd%U07J)br9dd4SuJmd4dp0Pt7 z&!9-lG1VxKrFlN<;PuS1(tL)#yUBcnGqNWUUF?g|ZvWs5h%IQ92R*Am_Fo#YD6&bU z^bk+P>UVSO9nHpW?6wrCl)?5*J}YDor|-Y|Tlv2yoLWUi1wItz-&|UUoWP6a(dVCk zb6>N3d7XO_FP1MqWg1#xLp_dRU$W_IbF+GM#a`HAL_O?}lUats$7QVLF6@h)VVQ}& zv9gZIsGE|T-Gu6At@lm${uj>ySHdyBRrNzL{-cjRqEGqO%0CnnKE#VY>8+K0EXIBC z!3Xpy-+Uq^6yxcs7)!U5moHqnaQ?iAKX1I`Pr9}~@z+?%z z&=33d>1{Q>Z*+~FT?m;B7Q#D(_V>Hrn4s~A6&2!xiV8mQi6`j$M%NYWXvGsE3(p?c zU-+#ip3u&LA+%plYUjWt+SwD8VQWvawI|pkCr-e(?b=ye7o#tH1-Bne zg|1ywyP<#lAp6H@#J{7L?Du?HSHUjeL@njpw{%<7xW? zv`#>B1(FN{4&eAcP}fPyXUYe#NE4jm`y0BY&G)>!e7Z05Qr7q|^{Td1TWUA+8uHFa z!z6t5w4UVB0~iGMQQfEx628P$zvofrMOh{=#!HuVCOlcDdb-Z0qpZWjdaUi*cC2^K zqH!luuK0&!z{|dm`feSqO_Se+`5f9G0?x}cijmUvyGT;Lt9!}F;*lqacBnYQu$rBP zmFyg>KqtWe42#F{8S!ygS(e|kf8Y&&_(A*Whf+3>H)I1vwf2*!WgXUz8K z-p`_1`XCzk1gH2hSyx(tl|Fg~o}T<{?6M-2)BDf8i_BwxCV8dGdY4Wwom@Hvf0N0d z?q+aP;VVn=NIc(wdusahZzfO1|H-LS@u>q;zH`QTzkze38^WetJ@sYwjbt6ps`Tn} zvj6?B?@`pt*^^zbZ>G9lCtWwGuIB5T>8_VET76Hcm@IZr5w%mq?#W^&)-(V6pWo@+ z1;0M8_6R{dhlcQ-0-wpUw5kL~}Y}#C9yd&Ycmo3|z<*XE4_^1t917%|`=hUb9 zzqDsJvpwSD%?~?cACry6GggTY`5$FkB~!lZ<(yoitk(iJ@}Z*JDwh86!_FOu>_h&A zx56Wtil!Kt_{IhvD9rMmPeK)VXdka+Ia-4ae3Ub`m$I?9b1MJWM(tU)XQlY~;fIyJ zIwGYkdlk0L@KI&JwhY*A=D%ytJq>J+J^ipVj?nPnA&PetC`WzT^OKAdp<2T0Q6KYl z{^6XBPib@*a@n%s;x4nr)#Z7qUlA`!Kb`_VD z{6z1P;*#24NyUlEy~PQ=cNP~Fe_v8u{4<`ME-o(l4!`-^y_zI^UtFT!>{U|oT~eQz zVxCl#*yN|8;-a5o`Xm);Tz#)cQc0qcnotra7Bwj;N??ISC5=#Mk@jvvQE{{^br(SX zj5igk?U#j?B=p)@QdIK2{-pRc3a3KZijpR`o2B+TT~gBPyQG-nb43ZaN9%b{=JdoLz z3+fT2fMA+A^c|lUcn>MFUC#lN8Ks*0+SS3%SbdW<8^gwlCrc?0V};kYD{J&|z-r`R zg}jIC5`gLP{6={0G$45n1lQq7el*HP=M0vkJSs800j>^8lR>!3)T7_f`oF>dq37|$ z*VX?p7UKXs{MpDg$3WL(43hRU8n-A7{cTrfh#uM|N}Z%kcgD$va<>!U<;!%(VbEA} zeLG2bM0Lf0#~xzuelKQH>MQJB?XYYm_qZzYgYTO$s%o3A$BnR}5tU`kR%SRK#myl_q+{&ZMy^n6#e1Mje`@4wd`RT?2VjrW#i z;GL&Q4f|-NB$4 zrJ%Y}I<~?2CC+R{>JOEsb#GD*uX-jM>0tMw&Z5I}(}64v2(}lGw+`=n(GHD(%1%KW zpr;^%R~t||soB7NVvJO6>f@)UApAly&L}hLUWAhuHlQkZiynFoFZ}e>Xa`sh*2u1W zeOpjJBD#ReZ|PX^u(4HT+P6#WSS(XXG{JzSj!w>o~#PvAL zj)+`0M0xiyeA1J{BF}^jwHmN%ppVXn_g!N;)i9Jc#=&b5zLnUOW$}tFVL^Nc+Leyr z4tVy>`(yDsaDYC=Nsr(XIP5HwVo6Yl2Z}Ml(%IqC)~!oL9zOX!+6Sx6;1bTO2={NC}-nxXt3D+I(y{W*2Q|wfh8r_JMxL?gt^QLtAI~+7SzI z5rv7vCqhPu0PAAsQRe}rwVGUayzW!ArQ|tx{ZKp4SQ*~+@r;jAzY0pLn_{i&CVClW z+^E);u9n_(f@wbO2$08DrDj-Z3qVFBx&CM194{Qes6S1XcT(k3M?@ASNl49L*h`KC zVfGA$Ky?|Zd0CLU*n19OIF$UegjPu{+UK`ylg7`rNNSckJ~O*z{#e&d&Cw#MRl@kR zHZAjax0~HArnsz_mj(pP3Jw;@#&2z{{Czb&C8puzxa5pBMGa#Tvb%LoOO8|0Ja49? zcW;xC9On!R37Hih&W^WU*gB^BrtZ8{{uar`Z}2(k?k26t7LqKjAeKBYu5lnbhztmV zS_elm+Dn%ol9HGZDYu5wPEcG0Q(Qg|4r&qGF=H~ky8)l52Z_-(dAC7o zcNq}I`HBa%uY<|p+f7|8Bgw1L3Fbu*p*~ENbze=@TyqnczH-e#4{T!#$>3f<)!Sq! zn~QV3@x=Imuom4{i_-#@Yqxaq#8tvIqHg4c)FXf)2kKs{4_BNf!3Edwo5Bsm%*bNW z0OTe0^LpwMB|u{lc{6g{pb#3{^|rH9L_I3wCcxRxHv(Iq8jR&%t5GT-_kEyCAm|8@ zHbbeXC>I~IjPi;BgSHXzpr?AILv%VR`!iTUSp`Y=iZXRRN$;1W(Ff~e*UqXx+M2>1 zN~=$DZ=Swq(A0@p#~0==c#;56@Fk^u?^fd#N>reD0 zYg3|Lh>BPU1`e>JH`0eRaa1jKrt9s9wT7^|vu4mx$$V?{HB|LS9%jPJ4%RWp(g=&! z2iKIaMkb3js(V5?rn585Sz)4*_?C^TJBw>Xa_PQ?a70`1Fxh6LjmZX!lzf2sH^e2I zH|HXlf7G@?^N9QFr>AH#8Hv=FjOLqnao%idJ{(M^$AK~08aM;KH6vFtFz~jqg4sxn z<{mIlXHC7mz0*_Rnv87O`IW~hIL*9^bLN4K5G))0M&fU=fmWnzfIA#UUp8=(^>9hA zxjHHI+L##1N*S^bI1&uKJQto6JjaF@uGG8cnhgbg%GGa)s-O${lCDq5xdL$!Yy|pD zrrt9{U%$z-cq1RRjVDaflO;^`e$sq7VkjI_9#!K(S7>jZ{lbo;5A=fw5>nXQ6=TP( zUNv^y%C>nF2lf6w|Ok4Z1ex1H^(Kl_#P=GtTGk7}8ebI?l-xh8cE?;&G~ z<=Vmr7Ciu4G(H!KC9K1y%BP;9CBmnks@$Zs(OzBGv*$Wqf=}mH{ABIWp|x59KBaE2 z^EugQ(TdVyC+*T??AGmbAgl5n5m@p#uVA%AU+oLj$xU02{CdPaul&3j+vSXt`AgZ( zQtd0{yPM}_vV5}1ePK2%Z|2S|dhw>L_9kUh-s|!M*)K&;5A4}ao+isTbtDI(X4KP@ z5HG-HkGDb`e00HadBpJJ5jggFK;+j_p8PRlxTiLyTnWfqc%k&Sg^z5B0;=k~ z2ermBi{3saeQ!`#DwimW2x&IEj73tvuDhg|J|3x^8Zn%I9q~;)@>00J?%fyu#uEeb z#A6p0<^_npRPJ^C%q?e3o5@F*s=q|`je2RRFNVOvLh=RiDdc=!Rh@^GywV%mCv+Q@ zX(!U{F-fq?405l#jJ5=*Gt|cDU9i#Bm#d#DY0fW7)xbsg9;XJ@{Z9BZScAPe2o9&4>k=mLS z%jk$_;{aT1Jf6j;;xJ?V+n$XxNbLBXZGK4zyiYq-ZD(bBTD_B@ZGAVL|6d||?U^FK z_4!FFN}|{1Xg@F?t5saKDsx#NE`C=Fl!=4W-+}p})xHe&oXl;_w2Jep%0lL3^7k|M z9LRdIxw2+k@w&btOEP<`=@;>(wY}B+|9Zj*p838K*GhRmQyHd;^HwWE3>LIW7VHd9 zv16zy>W9kYWz+tBgiEKhcEQGNS!zy47D*pjk$H+G;GrJ=Q3?ISJ2uFyJC=BRlejSZ zn5ag|f@U$%z1Xp}xe*~%~n*OP+O>j#g_KI zwg&MbJ(3!*^yZ>rj}TTE7HYNn^k~+Eooe1p^-XH!XyMN$Jn__E3wV1l&Tg7*eE};T zAz1y1N1UG_mIp1{E#EL77R;hp94le7QJ;wXY@0nLH9G=f4)S2#u;IK8`K=h=6y^Ye zf#RU0q(&ePl#D1M&l$HNh73qABc?$v!;LpCiH=hSC|Eo|{FJO9L=4Ez3I}!Qc_K&@ z8IhRK5dj4f6LQfubOLO4mV%_&|6y7J>z(#yU^8L?-aF~dQD730@Gxsiu0)t3`xD}h z>x#PtjK7eU_v;(o(E7ka->7E0)0omcRZ+yR%@n11Q$^{N!j;q{&JWN3^W~Q=&mX_4 zV|wQW!-uWx(lY;%@J8$YmdX2cbffT@Yx8t9YO+$TuYqQe#D z>&w&#&VAKJQC1&?MW}Q~31^Cr+OU!8+tHyiA0%;b#m5>Eq1w6PP?(Po?kL=@Mnq7i zE2+&>#H&qNvy{4~%~S4o-0H)F8u|D%3gSLi-oTgJ>{Xcng!|Z81AlHsz{6-?-{=tLt1A8txXnjonn?KoYapdG z$pTVM6hbOYwZr9!WI+>4hWe_t6yriX)pzgUI;bSk74l$pX7A zh~bXN4Sgnzyr?T^+Xc>+aCAX`#qNCwsZ`%CZx6NI;6SZaPB*D?Q_^J^>w$qWm4XhDCR{hsm{E{hsm8d|Q_8vW? zj14$`zC#bA0<8%E6KG>gBYYd!BJdD!f~~I`NfUgjjCZ0W9GgsPclJh7z@Z}Xxru(E z=tN3tt%>yYvql8~IVxkLEF%CJ=@-}%dQ6bIQO(9!hVvL2vv{i`+3IM+s{i&Ns}@@y z6wisRf8(1dNO7H*di5$>4?VJtB@B65BM(^}T)FaNIuI`K5ET< zwFQXlk|OfI(@r=#^K}iZU+}ynf9*l-;%QNkI)dj!MmFxqAA*Y+!D|bDtTOB0={yiR zZ^9cOJg6{KhUCmuzG&A-`;i^$pD6l#C4vJp*#XVJu&ed&{Sz8%?}^5ri}ndqc|=gF z#@X!KtIncA>(Dj?Ux9CKNW#PQMlCK}ouFV~(Mcs>1dEswj z2kZ0O1{St{y*O9)h4_@U{9^f~2Oqq&yj}nP?NW-8l8OkAAkgg{YZG|ZMf^Y7-UBe| zD%&5Q`zfq1S}oJBm_O&=r*;2r9@^6cKyb zb=|eEyOveg-q)4Pm;dKZg6OX9zW4s`2a|6v_j~TS=bnB*g+!>RbCtDlUfXmz!>q($ zLqI^la5$_Sc&I3m>CabDd7 z!*mtQVQvUKMVL*(7l)Z7@KPx6Gj!0%wKWBE8XD#_hSC~xf{l&XVco*9zke$n8>>`S zY?+A9DH}gVbcOVau8bK`SiWV_ zYDRo@?ATW$TG*cLM?U`e$d2xax{>tANP~Jc#R~@cz6f`Ke+D|PXne&_x`0}_)D%h7 zfU*fS1d4V%{q&CQPe1vvPP-Rictv=Dcwe8;N|gKA$xrRv{`Aw^cRrP;*6l-0rQeba z)MG-?jF-TNvdAmOa=+o9h0aZ>LX5T#W#S#3N(cyLI zz1GhAVV@!QpCx1^%WSG1feqoxSsYv?SBT&Vq{p~B&pibVUt%~5T)n7W)G3-R>JzOO zT_?I3v*Z0}v5y1mD#rX547hEW4>3i$frHdP7D#D;UIlvvNZ-o-M0N4PK=C z$u={EC;1z;>+@btGZZ9;PNx(ayf5eJw{IX1)~;AGuxjb@y3zfk+WPw1+WJU!MFvVZ z;jdMrP-wLZh34vdW+W?O1WagmUYs3#^O$~xU<+e zPr7c)hGoL}!es^ChL40^a{WgQ-hyR?Lh+^x7dCBt^wACVGiKB`OrL&68xy0|#l(dE zrjL%+V}pDg?~*ITDveVi7pm3HNExqDIU!3yNV7S#Fo0{d+Cz#2tyUuz+jLr9q0#CR zB%DU8eM*c|Hc5CXysYA73YSvD%OaiRlv*rTI5jGH=t_R1<~uk8#w)SXE9f+iz#V;qU(VG zx}R)2#pr$@3eW{bSg~D5xim3<^;%$n^C#Qv)oUeUqwXi$G~?aRk=8wg(Rj8KmTcg< zX$aSY;Qqk-QS#*_20K;1QAW`13X(rqq%*o%(mjKV+uFXguWeL+-=;|w6_YADqcobU zzw2b2M2cRgJ$(+_6597tiCOrB1LjaXiIf{jHiu%3MhRUAk8(zZLdIe#SCC>BD>)Zl zemR7LW}x5mL)%dj371y2c>cig`HQO_a27fJPgOW1UyJ(M|k?(B-uFItCk^Kx2ZbjAk_pYtk1rx3KXHM8Do8RX;YJG= zNbwlqQAT)#9Ye~6hxoG4ClTbbdUOcB*K9ju3Vl2V!DI#rs6)(^0q%a@AD-_lu!g39 zLKKRY(|LqSRuGDu|FU8F^&>wy_5V-tMB*7kF_(xMXZjM(L;A4Cd+r`Q*2fx3xWpHT zu7vj#GuZYB;}SVSvM$9Db!3z~zPph(^^C7E6k9MQagr2?OUdoZA5>Fq@(wd88PEE= zUgy%UlSC2sKX&p_jO*ZaVk}qFZTFkuWz9~`!nkh7apIZ5H3+}=NAMA`szT)PPjm?* zi&P|EqvkkCkt2#6b~!ky)va;K$> zKoC{g#K^I23(!)@Kuvd+9XUIx3I~LXZcu!s+$0=~^L(+Wa)G5g*3;m-xmj_N5LjZ8NjZQBrA~rzXaz)C9_{bC~$7FjrNgA^w zSeG%}zzKgbqxj>4Q=t!%bX>~PDksS)4@AZ$_Ea_%Gv8&c9NyD;$ENW~wNvI@ zE;s5`+pCA0A|hm}9GgrD`CrU1jT!|flj=SrF{zAk>~%X`hBA&MM`^TX@<*>Ff5g<{ z5`UvDnHq>05jL769t(Wu%QqrTMn{#iD@2%PxcXM7-bX0n> zCBl%`6)6r_qQ`VI%YSGcJt|Av);1;~e(JclhbLNPMt?w~Npp{{h%?$`(Jk)?4}bY3 zDSf9UT4poGRg8D1Awi(uD6_(Y4{-F7L)>lLd}K|A&KdYcvDRqvL0d1DB)GGnpUuQf z43iLeQHg`i0*h{t=uMf(({7aLf$*7B!HnGPCclflJVKSdUiDa_LFHf~=hx^|inP3l zCwaEhH$`$qNJ;Ry#j=s*GS9pFIBR8{H<*`~GF5)g%+2S<4Ku_#jDO0PZI{%QyGT*t zrM9f$Pen4s=9MC6x3yYUMAoXgP1dF&b$q!kv0iw8VIi|?s1Jz}->?)qCJ~|Ww6vx} z&_^}k*e)b_Bsj?X;;1bcz5vOQF_4gA608w7E%c2o&7e~%6WOT_o!RKtZ6cR^=_Z{@ zLkJT(XY(3edZtH=*^k6py+oPov3L~`EHo3biBVpQEGNvAvMemmHoQq8QPd zO?-|}GyR6GaLTKI9BC7k!=}c=R-nmpYXWGu#*L6Bx&qlvh$Z2b0c{5Int-o#1?dUS zh18c2vJ|$^Ax_;<*5Js>WooMH>Z%%RtLkd2W689sn7pyjc26ZLY?L#FsRO6UyqXLv znG`Ux?v|Di6GFPa}qATzHlRE5?n|o8l7%;`-awo`!+XSOVVvLStvwi*yL=3I2Fby(^Yf|uYo>S z(MUXli7zY5RBtaUyH6szQdTDXMaIl3D+|rmB@1syyWwPev>-Eqqz5d_4YV&pyIA6+ zy>msxoTI(9h0Dh-$;>M#%q=LU9aF%hCB}uOGAA8AlHEE&L0U(sNXrQHQfq6tU#|QE z{c>>-w-957ehmVn=nADwGyN#mgcW)U{pGUrZYS^u#$SydSf-I+3nB58@q_d-xH?*0 zTUS-vSXEb7UBl#NIR-wCV;fQnnewUA&?Qs5wFDbVx?t{YX(`a3XleOVgz!X53z-xd zA}uYf+Y}%ZZRs_MwS`H-=2GjxA83a#1Dvpzb_mI3-lOYdTn$}`AY&<@Yk8b|1U<46 z($!AULD30Fn+hcqW47~i9Qp3CHhYEgGfLrXAOxZHsU0SP*-ITKSmWs zJ5^g_c9-}9ewYR`4LAVnoEQnefp&TcEeGlim+}%Dz@{bm>7)=2%SiyvQfngYT*w;^ z;}9f&Jwk%8m4~8aAi`9jiX|pr5ZB=n{IH9>;9&Krh0uy*)R=$VAmX4h;aN!M3;0X{ zJi}5&-IDO%VERsa3_K&w`TRW27!AfS6Xf!XotQ;1cN7tqU4j(m;oIHe%aO$%kE4Ig zg1^m5spoav(u8PndO)9Ee%^c9U!9xDx&1qH*Q^g5awW)Z3EOTI2boM4ow zbi9Nl$yuFDD}17SOaHF!fPo2U*->VdZkcYBF4rt97{zDtGL?U!MY)}6jlA2Xj_`8k zD#6E^bh?qcoAe5uO3yufQ(Jk?n3g&|+2zYf>r9T(ImK-@RkKX#h|iobp|+{1NnhC! zaN1?EX4MjLs@xdp=Y`E|dYPdv5L>W!g(^W4 z5#!mWFRQU18=i0}{YYf)YHoR@w6t$|g)plJj`I0&S<;pc^&_L>3{p-tQC?>#^T*2h zRf)2+5zge%E=l4V;rZJX2ZCMk+w!&5btMz)<7U~?G7~wE+>^?CJe?e;PIITW7MbJBjkVdW4u!4Nr{eDL@TvJ8-eYl#6ZMIFBJ1H2 zrHOE)1Wy%l1Dz+7)~Qr6fGr&B7x1Vun}RK>zB(A39#Gk;7{SLnlt zM&{{a$%s(dnl|Gc@(*=HQ$(mGEuu-zzqGBsar30mp~7~{ixb)QCrpRwYvv(VpfdtPX{fwp-Z+=E?;Nl2S0`m?!k`;Fylz@l`+DVTaH_VXaCql zw0p<{8#a9N$kcbQyPp^yu7aN88{?+AN8D-RMCaY}KB^b){F_pJlxHIA8B{uninbq} zA{;17)dy`(aY>pc&&pjCUfO;_`22-MBzOBx6Vd&C`j*-+cH9D`;~ZjHx;~Pa&#(i@ zRU|3OEWBLF?98j@B0oAUlL;@g^B3&!x;zHrDfxRzoGUlkQWh7_<)y*-Pz+gI0{;VV z*p?9sj=M?J4Y)u@ggFz`nRQVT4W*!%hg2h$Ky_#g(=t>%8034Y1_)#c#lgVlu;7ZR ze+Q@(N>qp??tnYYI)?2R0hqAySZJPL_Y<2WE{RLbyqO;4EtZIJ`3gQ`af(S*ddjaA zP8DY|@|uy-IObUWLYsX-2}vGNTHe+%CEc;PI=^vN z)8Wu)jizT_8%KssywFs0v2sRqo;l0X#gQJk)rlIQ`(4A2gZ4oOt4J(#)5DM>VUB2v z=tj|g%rdt_`+EYF!ygcx7hM!RDSA%yB9gM8mSE6ja)F!&-2oE?w#)5+ylHm@S)<#f zGf?{Oho%@*8ldN>uZ_X&cZ69UdH|pYyaVjDgDBXBOWl~4XeZM9U?K=V7^*hhtfQCW zfdNc5VmDrW^(5vY6pMESQJw)_aS#rEvXIbS%t4spOaZ4U5Txs&MLaawVq70yK>dg3 zyC7mf{f7aCN*QSoXu}2|@Wa3#pWbc=KraZ*56i2wBWBBzN0qluc2_;5U{)7j2bKD5 zZ81vHIH5pieN$$Rhe*feB_(EKCblw4^Yn7z3dbz;Hr z_ZV%ey1HJK!(^1_Wt$l1#Gp4#@@jd(g71bmkW%At$QX>yfI^W@qe08EgftsTX~XdE z=CHrD8nvC7vUsJzR36FB%ZXDd2OIc2GlaxKzUEm@^lZXcbY*NIiJ>4gnNm@!SxJ#p<>F>*;xqf(lan_VNayLg=W%Sl(V(=-d>+@hR;@}Il^)CZHL>daLRDNaFU6jv@5qgB^eimV zOsU*ZA(`L4qg1wZ-100_kIbHur=Ap_+u>fWDOp&&TvD;2d9|!`$HeKTtmWg6J}f?6 zW#8K>&Wt8TLSzoT&Y{;kbb5yjET%p>Q{1{28bI*G6EIHZ@UKF?cL4icKq#Z>DyD*r z&`2N&yq};C@oVfZ34()|mzka(BI)csIZei#I>mB}cHFXe_n{r5XcdlwyZ7G0{pl3L zoZ3ET^xUoozGj%OFLq28{vITP;{FpS?kC^CH9lf8-pz`ZfcIck)`^*UY{Il@6JR3CJaXd1kz@DXC!8V^ z?!C0}#e2y#;mrMfzmT`^wS_27_{`Z;r_T&r6m|*AUViz#_sC{41>a3X&tVSc`RBv6 zOR2vZ7(yfv!4d^U;l~F*y&ygpOZby1&WKNn#V1KXA`zYupAiesiNz%A1kaz~pXc|B zZxGKG@8t*9LnFGB-;13a#QVeV2*UQapX;Rc{s?`v9iW2>l)eDTm*^|$YiOb``bwMu zym5+LBGnwXm>lODdHjUd#jyIE<+znX3qO+MM)KtDl^oZ}w}V+4eKNAUFdD>ZYzt49gfwsQrO^>@5hW!&!Mt{(cqTY z{XyUWGgE!?4(`10#o-#FoYD8}@|nfSM&VBnO(R(w$qx*lad=(U*7Z!*#=Cg;s&wJ= z&A$;IeyA{oA8(Wq(~;-N!rwOt(@(LzhgCCYvZs1kfJ8*Al#0NAJPNCBqi7P1{U?-T zrhk5XKU7KyZc5*?s9GS?!1@9ZbN!e`sjh~4{e?vb36wNwA?^YB1|MI9!{Al?EVSls z`c>e(4TCBXC_b_%)g62SI2Q0SZt|uv%VmkT2Q<*_MLA-k9i@>wnZ#&`lzcY&{xgNH zlJ$o1dEJ`q>;ishpF)QohU!N4qaMOEsY^aV(sr`z( zP~diF^Hwh1$lC40qi1GCa09QOBgwbi#hiRQ_RahJTF%BrH#M2K1U73-!H%6TJ{ZN_ z^nmc;lMJ(6yE%c+Za)0j`4c4n{HWH~@5o`9sE!-%aUH**loyw6Kfn;r6BK@|Xe#8* z9=-$qMdOiah{|0mXtJmrgAoh;E11S0+%(lJ7&t05QF{WNrQT(_abu`E_p_s zxMRisB_~Gldn6CN+jY(qcxKjw*v5&Qc-!HP58bn5)w~-g)U(3$KCzK>S!z2@bWM@H zqu{sfQ;^1)@o%-~r!PaKdo*k?XShSK{Ahvy7U&F6lXcL?f;s{O^(MlKMLMG?ngoI< zZw&_wwxk4qS1B zjQZxj@nj2`#0sB=zTC=@zY0;}Rk;7Xwnr}!9V^^Q@rZ+Eo`+8CztEC6kq6bhK>5Mx zWYTw{DUxtSwVxW;`7D@G;YtGkiy_w*+HjO=x@G>tTZMby`$%|Ft=qA9-a#@aBR(NL zJ;9nDdfr>=#gDZMhkp10T*gHB4NYLW4Ra6N(f=1xB|Q1V=A8#t*t}jFy@CGOyy?~- zgj>mYTscX&MI^iOg{Yr$ zA0Z#P9MhZ*r_-0^a0wa7$!&&~5_v=MguMj?+ou;cMV1XWw&AF%y)3e+aQgOwf^9R3 z>LQDp4P=WYCSq0{Nw%7HH1rDpkZ2C(X_+P+|FWtmG@zFLL6gVCh_#1`BZX%zv9jKJ z;U!}{u4LZxIq?r9%;j>3CY}`a%y1gKvA_~H({0;7rEZ5P3IWBDk z$9D|pQ5^p3W5;Glj z;hN3x4%TNxpN9p5|3=$iyaR2Ay)&fpHIs(_e&ZKKJSTji)DhV;#QiU=r(^OO?5Q_7 zY!?3vd8b{=J9KWb8$buPf=dKqhSxs>HOVT}!V*xfEv|j?G$R&I?iKS>rwc`VXD`o9 zoBlKKekz6V{SZDRKjQAjI>MBnI|*OJwXE^wj&^-LANHeYHPFMWxkNV`g;Qb z5t&c030@iyF?Q%a@>2GMjD+^ctSOmGD9?Tq=%=550#YvJ?yT^z3hPh6mOzlyKwU!h zHYNk7QS(p^Vzh)g4=4lCG3$t8ny~bqyVJdmMBTSfIJ>^%dJnlM+?OP7z3H#bF~YH1 z5Acr*+m1daEDudkiW^QmiHL&DZ#Jq~nX-VrD8vZ!-!pT=cYo0_CW2%W(n-fI1F2eq z$dNw}w#jLQvO!G(P}rauh>HfxN42wPAetBSQ-Udh8b=KVjNLCR6h50qww^wnp4KFM zvV1>j*f?&tN602kDdLfbJ{%rHM&EvmgeKQ!Q3-wbo?0+Y`8bqOk6ak@c;xs6r|#`bh%(vxPf2ALAX zjU$%Iq^J7r?c&DPzNO7gP0dUDT4`VvBf9R&0j`)Y#QcNtNVUyjy%_aELp^EAFa1aw zhd#<3{wVhD3FFsp7(f2u4Qt0w2+i8EdGq5JLB{6n`ty6t2Ij>V$v$@ahOy(ujoq;R zbbI@ws~&rN z*hJTcsWWX7({uIJ6UIM9UVIU+eDBY@=75l1e0=lfEpwQ|?QOzW|21|jQMR?Oe|^eJ zzbDg}*HzP2J$8vUt=kM3B$VobYKz2*!#w|W(`X7%aQqliU#YbIGeTlkJR-=lnZ#}8PlV+)KVU!96NnL_ zE}r4fr6H*$5r!~C<=nu z8JIi!ckbNK)khYRMavc~Vi+=_q;(Nl+`o8nOYtaztz`=r_IGaFN#ghK@1Lvf>N{1j zVBYfO^A=Pv{Ub}%Ozr%+D^|>%A3CEhrmmBN=c>88`#N=V`)OMl(JP`P_6PKr7J5b4 z5m8<}JOFH(!RR{bibaVoMUy`x6;ABR@v706 zN2x=>%a14W?)jw?>pf$aJkKzZ%h}yQ_5CC5fSw#U^<%O{3mX3WtXLUldhV|Is zu=0L*00j`J>n3R%w-5`{Lrgn1Y}g_EEwo#Bf6K=H^Z3U_X_FRLS1)zz2JX_i`fF+y zr)VM!26mXi0A43cl*!%9tMI+i(0YN(yymQ&0vooGqjEilA2Ke%Estu0C`@z;VlucK zw6ljGQApUQZkjo>p?;=t1g_|RT=rY?bi|CimMlFoBL5k|Sl`>bzjx+GP`D*8`>hbX zdgf_nP5=N@jETOh41ixIOb4<8W%r#fw`uO{lJ- zcvk@by&HfNGCE2`VINX7&}7tw8w-bO(Be!O0mA*Hy&A|zT^#6ii(aGj88kECBIRpy zqAaUROS3JO=P%u|=fV|sVbQ4E*^@>sAJ{p6_S!_FRhf`FWy;fudUNX3`Lhkpq}aEn zq$Jm3SyfWT^lUqI@xWoB@|KxwLs56nq?6>1V+*g_IM=@-FzP~Om&Y@zJ3Ygn)tQ)D zL>@y^(RQ!!5qw8hz$cwXSwgcGmhxg@c6Rz=1-NASREdw#07nr{pAzNl%8ZZ|Xu@)`I>Gqr^-?;<%LQ#;Dj8k=@ffTP*5T z+!>l6v^+xC8+y50=r@cI-Ou%NA3+mhr{f+lL2gz%1S9o7!H7b02(%iuy&^B4 z*|?F(-;f%|D;b-sJ*m@Rj$Rx&dCK@kvubHtQe*Vm%*5b3qr1q2ZQI!ilkz7ptAMcN zp5KI2%%_AOMaTmuLviea{Wq2DsM~kzv{tfP~GEf!PT& zF>0>3=|1~MVLa10_rl!JjZMsSVH~65YWqfz(8J`(7qNIEG=3CwYaifhfS&Ln?zfof zy%aaJl&={aW%MJV5e(=+a6kejS&ZACNeLj3!3Z|UFa#Df;3%->Fo6RIy-Uv znHfPG_hofGgP0s58V6Zn9&Zn4K|&O#1bFMWF~o!_&{|zk#KH?nOWdg1{QH+;zP^q` znuQQyql9m+`#R6qu?@x*i6xs{OTt)R25h`kU&)d4yLlNQ(y3=kW2YoZ>OuvAi+ z0Nfk~5kbzeK`Rx&IOt^-W(WpN1C*Y{LX9@)-G!SpVMAHw)yF6a<0B;6oxON=Nl}gl z5t=iISgXk?ES{5}m*cj;qIDNj9$IFN^$%~|(^QZfW0pm>v^2G}C}ifCy!@s;t;4h8 ztU{a4uF)mv@YC3J%ttI^Ggu4f78cHqlZ(ajxY>o+u^Ma)E0lcrq3{NA$~1|)hqvr$ zHZ#!~kzzJ6P+A&DgbQd!G-Gbw(=vQ_qDCgX!OqrO_4sKKs6b6Hn1xXNjq8J7T@}1w zheNy64?md0q6dL=dL_MJ8#F?kHwWqq;R9i~KsDbXk`t$f^O@)+@x)%JyEGE+AT zA8ln)LigpJ;(4W79j#JYH0o%jSp36wK`HP z7Cx(UC>4=vwMC_jQK^)2#k)-_q!G$!mD-}jK~*HnvI?fk=r$PK#tgO4&sZwKW8!DG zgf21jOil##=-tLdU1$pvbXW(^l_)}=kj>H7!P}~YTZC3}{7=Vo(r$GwUrsnH*@bB7 zXuJR~R^w&DTr)Ea(a_Pcw5eEx9@8T+3pQhv%9z+_Da(W&VwNLHm|l%fQd^{ACbY*& z7BTb*^eTFcAs9=ufg=+UTNewhh&!CuSOkfc$_fZPfu$^5$bcGjV8j9QY(Um!m?VQ( zfM>>-a>E-8B{@F*YWF8yO-)?`s;*{OK)XJ?ktrXT&AeR|Dy%AIPM46-3w-RxjoX*6 z5k#w(?bxww9T`}=eEY`BH>IbuGv~Ip&J8`;HG6hfDryZ1Ht z)CT-on9B$=@0bknKg@Uxq2r+2D@716bVGb4)--?<96wE_58IzXhdDHjgsFsywTXbF zR}oQ6E=F0z5gD-wge2IDO=g2q>nyh0ik+HBqsd(4uoGgBLmJ8`3t>JO`1Gwew{4ra zZQHsGXHi9wGwTdv5cZijG#R&<;_N-LlZ=5$h*92ElPp`BZr#;z%7C951cmj=`cy4FahI0U0D3ANiVS{ z6c9{(ZZRw=5+jIXP(tBpsuRQdQBrsQxFjw!8{p{cr4bcDRSCX z9IJ1b*wZciBNUzLUHx6wIA*?58|5nb=vez?OY~I3q_=&}ShrarJQ$O#h|+o(Pec63 z?C8ekOOF)la`UAN*lkOGn3|MCn46IJTQ)tvtq?(o9CTM=&d*JQ92yIKdI#VXCP71V zMjRa4yGl&xbRYq=e#E1pjUn;t2 zkSh#`U6ad<3UX=S-NK0e-k3O}+FG2eH|pgYTW)+@o=p|0)0?tO;x)#Y*xqFk6>NIe z0~02mMJ7Jx)z-SCq`KC6kLMYMUM|-wt{1%9`pZTqNLEJ?%O|3w$wYtmj!(M$@FSxf=radKWkcku3xSGrt@o!Ix9D?J3HWa znlYC?%2-0jVxu$a8@AQt1fmd!USD5RU$2NTS_0WM+ZyWAV`7DcTB}-X)o83*wN*=! zh4ky6j8r6h(?_JHq{JGSh~y{={tRhzT8H4w&7hB!eNzl%flDGVQJe zBfZdA5gB@p{3hBycw3#YQOG4v94;#Qsli5RO)45>4|8eplM=cUe5H><=_M*WF zqR4J5!USP3nhPCt;)wG`h%J`42flsN@Y&X_szdM1LIGv9n-v=sdY7H(V6Z)fj;G~@N zDhg%{ADc9;(=`BrOJR79aTKz62)D!$Ck)g^3kSFVgC!Yc!B zXJl?AqG@}@Yq^eLQB{9^U_yt(Imoq0e27LPZwSwI zK<0!dh(>Dv59scSi1mx&t!7O^MWNAbh}7DPZGgHKP>(98uxZWl@ryRd#A)8upA~Bq z=D32g@}&t1smdH*L8se_c(YofNLX54RuE^7R2P4?+DnyDqLt7KHp2!BiJNM8hny)O zSJ@$9Bk7XgZKncOILC*mh%nRZPd&z4*QI2wXh& zH|Q-e!(`BMZ%=>)$v&hMCI$CSF!8dnj~?%gKO=0<)$EW=L#o^OJ#pNFXRQ8Y1i+*dx}%|UF3ZaqC9iqy8ig>V@$%%cti2= z2d>Ydcm|sQ+E)yCNHK#VlFA^GxX`2sj_D?^2xS(9(3?yCD2yYA$sH)r*%-Qo51osN zV3d_I#u|Dn^akT3=P6t>@tlKr4%G(Z>rC)|@rCU*VO=Kt1?_NZG1%P!jUPdw5MwD< zN9{Rby)5+-hNl0X78yG^gDI#`Kh~%_Zq0kLg(*A64`YTub91ZynLv_sSTS2+&bTL! zZ~U+1v^`}%`uoHi&1^8^H;Uc$7)=z6e&SReER5~h0^$s2Y< zj7Phu8K_a2kTz_Tc1@X{Ir4eK6yc*%=@M;1B*Dyp$-ksy^3=>=1KI`~2%Q2yz7cw{BUcom$T9>%4 zt^I-W{1^T!^c@p8axXB0KJ!}tqxX#l;zCcL?{CQw5@kZ>81(oD74pzQG1DQROW~LS zI3D6hqQ55$`Rw5JszKA-f9h&zUeV30KAsp{0JMs_JcP}O(8h%~fCgSFxKsaPYDvJR z4lx*hm!Fw=$4J9CZB%B$b9Iq-$K*fJ%9I_anDOk*BMi?5ldPFh&8Aa%Pi&F3O_V&9 zDW08KeD}CWtvIf{X7%P_vfrif6We+$hJC5Fz2&c(GEMx*BRSrg8+H7twDh}&%f#>>48_t`*-GeFP6#pG1pn|9H|mMUwNmDm7WYPsgM8K=$|xe=1mBFIqPPn?Cg#r z$L>ny;elj?!vBEt=ezvRcXi>YGGzP+ zlS*V-6N7)Xf|b`z5jUbx}rJz zPt=qg>{_$zg(C|CW0vm}7JGIyHtc9>+R@Os!(+=X+Sp%F(Z8`M+lCJ!b450GJbyHt z&jwa=bU!7S;mmoc`)nu|pG&npW#OKT9}6dlqms+R_9wH;V*5;7KDV9X+-)Ko=f(Z7 zcEIXBWbgxNpk3}pG!dM;;L4S0(lCMH(x~6OJCBRWd1aL85B|SCW$b9-kBXhXywWwB zI^w*IrDg7@0qxGDTlx+89BP1q{~gawq6t!d(tt?>WFN(z8MK#e)N;Res6!l6h9Ph}%Z{n8A1V za~CiU&0#GVeF-!vL690qN(?voBvzU1%?1Lxqwj**{zyURBLpk1yAAdrnwgP8NQ3wvqlw|&8lA=gZFT~w zPUhHKH@>2cMrGeDvPH3XHvBgS7W{?%N|@Ec@T&*Z!l`j2{x?$EUUCZdB`bdt6n^M= z&amI6hKE8*<8#6Ucm`e=c?{>`g^NrkA(0G!k{7D?GMDdwpTRSGxT?@Y!mbU}6P`XV zi0AFc^E`uom?jOJ1E4kw(gpSY4Fl*9+heRT_zoN5YUp`;qz!n{kpFmVHX zlF@#EMhr7@WP~xj^3aZ- zoM7%IP4T|ujDqlG`wmuR#4@8sF|ip{2ls_9E67Op#WxXQ0w98gOwPO>QqSgBWjCkJ;Hu6CLe3ZK}3`L!0|!gN0})xm_Q0@>h^>A z6iXvKDXHdz8e750zMxA=)VDA@hwBp)^}_wGB$qqSLp-@|SE5_|)EVjY>C!V#^^O_S z(b4F(LCEgs<>(&X6!Z1%!W`8KWr-)9G%3_!zE5AEb4#DnfZ z7L=3dIUB;}F!ICB#DO5S*cO20rBfX38rquylR*c&Ecjk8#&?j;Bk+2|i~@k$fCWBp^E&KV@b3%n&J2xb(R}h$(lkj_ime$DNZ?O)K}kO2cxpNlxkKk!!@vD@bWWgfHdHnuy&p_Whne_BK2l`8%sB z*QbMO>v?3*%nBfOW`DX|gmaS>})i;Xp#hziRXNr{bniOz}nA{lohmkm2(JopAWLVX(0 z1?mW3qkbny>lrk;C1MylVDkcR2zN!h!5uVE2FJ}pA8gPQ^l=czdTRfWux=gBkT;iY z+%op;F4@0-XOd2vv1{_F=+ODTVFhX0V<}ZJ zscG&TI`4_~*hxD{)>RsXEoJMobNs;`OT&YfWrHcQn;iOUd~|-wotorI zr6pzru?lzj6RqqQ`TdJ-ym4EiR^#0{@or1#*(K%qDVjTzE2C3VT-QxJ7UQvz!qR;E z9967a7vt1KH)xfWInf!`i24tM**^a?OWj#ZpWET!=a_XB)1a^(-%!pq(? z7h8qkUCY_Js6Hz%uKOXIBzaAkV*rnG^!YX}33EgNbRUxekHLWX1PoDXBLH#6*oEIa z-JsgFAHhQz*?)@>{{}YSNz41^I2$svs@!Fz1vyPEzN|o2Tt#7^(LQ!oerUQiCO`G4 zCZ$qki5*EC!tH^?1Xd_mzIgB6?MYf~`t_4eMu#pft;kQ)9s!6_Q(e0z-5ryd0Ee*r zr%;j}tRW1?f?WU5MeL~+0w5N-|TWCgk{_2(@89*0vr&#bTLmS)YIPLZcl z$Ps>@p5|s-NO!m8T)m~w#*6Di*~IHL>7j>rfM2{DaTN^cK9cN(IYx;O1u&^1-tLEm zf}k)hB0Fn3x5(mOo%P^-m6WkRma425Wlb^C)v*Bl&o8M@Zg>lz0S9P z>bcm^Z&ub6r|a%btBp-h_Z*n^Ky0#uS#*h{2!E)WIkQ@LD=$BoGb^U~Qp}oUD2kUv z8ER%rgYzKUBzbFTTAfETGZWc$WY(;hOU==15;)0l;oCe?oEc>Z<3u6G$S&k%j15x( z>T_wsM`l8X0jfhN{0VAMjQHPt`OqLC&ycG3xp+<2!X>?qy3AmiJHMq96&wYmIoW62B}64$?%4W1`nDc z0?p7OP7@CE@CP3Yh)~avaKKQ|Fr;<92A)ADlK%*ne=|PDy3wE{uXjdrrn#_$;Y&R& z6FOVRbuO729Sq(4za=1Vq_w7|wx(UEQpw6)eC+UwvX%wYr}RlfZ(buI9{V5(>6T>8 z_-7I_Z7L-pORd}>2}v_k5&{~M3csD(xi;`b(cl+gGY7sPsfg`ALg3ej1UXGsJ=gn) z@PlxZEw;#eN}E=rijHe1>B5cK$qAgNc+Ij~Zn+^vr_J0m6`ukK`OO>A1a zd*77%;*#vl1(#5ZD6yE_yg+tubkn2JtCE~<@uDbwb+0ryceY=em{voi`N9*K86I{a znK?81(Pqo41YXi4{3DO#W<+7eVDW7td|NGeAvbc5hIM2AmgxQZCpG*pKV)NWejs~h zbkhZVfXhWcpsH6AoHN@W5&nQY;failM0OGBoe}+LlVvrgye8rMJd#I0KrG5ZoZnvL zOI0KG!;LI7Rj@Rpf5QA5xF{P~HH7U*upeei1JEtN0u^S_5Qtzjg_$x0<55W;;ZJn7 z1OujLDf?wd*6%^y3%Uq1ail~AYxso<;Yu}ogGE-~Xm#v-T0dLuWY+dG)$+J;@-^B$ zp^lZLbtlVk+#WHTudhAEKr!oyGBUfh=6&q)N{)MNlmjAMcG1{G<^?t9k&p--TT$}& zd8&&>yKv!mnz*_YvEpM*tNvA4`uB=>1L4f(32_n0j4&`tFA*+lM!vC@LvZQ@hhrke zPsxz1Pix&cLDBLtg2y0JGG=}_)xjD0S`0enS^){bg|al1QHKs8oT$N0bsUJ>06&@; z1k;+pgPW(kC8j{1$<2e+_kmLa;|aAHGD-P)2rq-Y=QsmNJy#>V(7%Nh&fZh}<#p3y z-DC8rFH5?Z;(VoAC&Zl-vvV`GMpsp0o{W6BV04YXK3+cXd_j)1$H*9FNOF6~%BlP$ zmRl2(*34)uUvffsX0!eR*Dw5S-Oapk=H6VAv|^cu$RFsO%?!Vp(U=+WS=%&C#G5_x zOB0l1$D59@&viQ%=canbIW?zJe7f@q54`#ab6*8NaRZ~^tLmHLA}Zq9wPBgr^jFTC4#v+(4JO5$26 zEG4pqD;z|5yh8Y5@n+#qcU6$bKlW&o3x?~T%k9;id{-uD?aNc(RO`mK-KU_Y{Sm z7yfWtDPj9}k)*o{g@Hvxn^kRP_E{MBBe4C~KH~XE zLyzNyDi!yJgfBYX&Ha|Ew>iN#4Cf1kOKtab1)1e zfhbBG_+U(+2}0d==f6OkBU@+Il=iP9T_kW{qwvqSX$fJ26c7WXU$+)uY3h%A1%2H=w@bZNjG; zZWGR*Dkm|0capOEii8R54F{N;u7BRRTddesI(89Ry_zfthvO8QP{Uyr?}Xlks`4{|4j47)cBEs{!A()(Vr>XWq^S(30TPyNI+kGTryFGJ zdNSMarCiBUGzxbt2b=qkji^W+mGu z7H+rqNg51rp|~*ra&&O!g$R`|frFA9Ch zjlO(GKRYQbPhEYV7k&U#<4!;Jm)`hm$FH`;^z)YtwuHQRtyR~~helj&AE`q7RN3}S{*`wNg7eBRIBK@n#Nhpycnl3qg`$v@%Ecxa6JV9)t~ z4nfJULHvI)dj2PnMb?;qM;_RiUqCmZ?nlU98v1aJ`-LRzS^?~>D`iuc30?$wO_2oZ_U@MSATs|W?EEKTBg@*25MnG zOT+y68*a%^n*zY8|8}b!@Y>bW_N9@m!2hI)q4zV=ES6LYZ8EpyzuDZo%-*4GOX+g=jvcs?5$%SpCXag%dJhV>02f5?jY|Ty-c6NW0jPmBVh8;G ziE{&4`O3+Mcl=)6R6yP+c>bQ}9{NC-bbSL8o&2Dkd|{iiDuJm@PBz&3XZb@1@}Dje zXvqL%;^4V)d>mv`k?xYI!gBObH(niyI&kjPq6Lj0lw>Zqgf&UhDSJ7X$%Z=IT^+07=;5A=~{ z)O9CHrgE&|@a=lMkYV5oU6p6S4$9OCI^W)TxPIvQ9jv@4e4xG%7P=b;*`w%a&|emTXJzU9MnbV=&+f z*tpV62_&HeLP>ytDS;F)!~_U&APFUe&`C%_Aju27VC!ms=gy2R8KT^AU_M4PB*uopNI`&F2jd|W4Ay$g1OuzoxL6*`neI7i9E_*t#v(DcEVL=o z>1E{Fc5C=6wL8c?!brc<3ae<0)_qL)iHJQOh(<^hKns87!0@q-|4n5gq+IuC>b$K1en5MO+a?@UYlfNmnPDUzJ6m;6{ z^uSSJBuvov`5CtvPcqzxBoP&{(my~#&`MGST-4$TQGjTlRZGMz1QQS72ExR!t%m+` z+m9bVF0|txbN?+#-&Mz%aA@bm&K;AOUyXeAA~R{nft`^M`Sp$V)UEO8PZurvY3vzh z?Z`ECb>e^KOTW=Oa=0dw&E*!rzRbw=wF`2&Y^H`;4e{X6#*P2_*G9lSD`b_Q;8x>1 zNa5bt8zSApSf()}F@;#@%fe1o$V6V*dwwEv{WzD#zhM4d&5ruj7abn@0sG*@1ud_x zAg{D8oW!M@rQVC{n^Ngj>2%}e`DvBauY;B*c!Wl3b42`m2J42AOvbv|4Vb6_e@b$u zjI_y8W6c-f{)_Th3(+tO#}GxsZU8Fue5K&yc)B;4>P=^+rV_p1<1agQy|5JIlt>&4 zp{M7**S1RQa_!wcS6sDkYEOGLmzXs*ot`?YH<=Vx>>+mrp5J}x=2vb$blz4Nzj;-? zTk4DMxqk2D$$PKg6LnMg$5MF>?jgXx7Tl0U)we#>oFIR+xNYg09vj>$Q1y(d4p zLsOGlTN~-OtGDs|HnqLK9G&;ndvi28y@p1swvS3)7GD3&Z%AzJx}KhOJ+%Ki>}56g zeZEDM!!rWQc0(^C3VRG$@Pz6yD(&E+U4@kNWPlAn*odVtZp^>`6BB+^ozPljy-^D? zXPzF^fFC_tN=E#s=~t`_wrHx5#qk5u3X~>A1Au@eOqI^1cRF=$a%551Hf`HNe{kx` z@!DkVnlz~m4ltHlrjSV2#819$3oq&k1$~S94N2|zPE9RIH`Ug{#MEF-Iw2j&jvt?` zoG^YG%jlsa1@|f@qXGJKq$13+ohB0Qocva26_*KB5T)5FV=6)wOm)v&lRHV+G*K!K z@d~d?Kdw=?0<7O^!$96MIkK+FuwcTr@v?ROyPFjo1~+GIOBKOnK|9Zr9|&(UG_7mc zEE~VAdyArZ_uOT+?B=1G37M+#BBN1DM@PrxYz>s6T%7Q_jCZ-+?&?_= zPVYBcGwG#ut-LIgOlC-imsM4}-JbhuvU1Mp_H?y(SR&D6G7`0PGI#2{2EE&0aO(|T z-2F@md$ka^mJudHW=#cn337z5BU5(f3U%Bvso-QXaQw26^`Pwqau@iy{jjc z>FekWhdEBpTy^u!S20zD$>^<->KO|bPOpww^%Y#zp=r~nPdil2SLm(bn&}G{^wq%S zLxv&EyC!yZP2A-S1~nj&=wbiAwzhyToh_8%xNx|$qpvd6z0DUy6MTXD3OTb~YtVzc z2$?IrArf?L@0vWhYdiF0WRfIs?(g$X$dH=Be@#IDYb&+G4iQW`#q>`KvsgeEFwYSw zUSYNYY0(Mx(14hGg1)e>9W8V;0y3Iv4$wF z{#2mxlp3J4Fy{K!Oqg#4v#|;}oAxJ?qmocemNk*vrRE&VMo4f}l8i*stU8fS2mdnB z>7F{sFt=RW6-x!LB!`0GI6wKCTM08b)oq++GgMbu+}<=%*QINlW?0?sp87(%UQH^z zZgW+&p<>P*bB6AiGw;q>v+oqT_D$>AH>G=D&(!@)^}%a2zQKzQ&vj@PKQv($X`j5J zZTymR3*Ga__mJ-FwTo4*xraB+3uvw(t$mRx46|mKkq%pR(^8v%Psr~#r>4Ps)i5qz zYZzuqxYy+!dUAHm*V?Yk)+bEf&6~Z%m~6-@J7BSQ_LD>2%}4H-Gv|&Y-=8yQ;^h4| z?Ct5SM;R7K)3|W`w4qlZ&5tM+*FK-N}2@Qg+hbtk6v!PmcUq>(J>O z+Twpy2;1p$u8R+rBnB6&R-|Hc9T7Hop@2n0;j*T;Qi(@%aP?0bTLO}OI3cR7)tMqr&? z0^Pr-#5(EPLP~nr|Ha|*fTB}gAoI#d&L)dNzFmnqb0wZfo=AJKA1saKoHpJj+s!2_I1 zr&cOpNry*$YK>9{hjGAm=v>YP?L!5d%NK&)C^3SWQyw;Gbc&OKA;y@JEcl1P7`(sZ ztfQ~Wb0zX#PR}(Jin*yyIi1`*F!gMBOl2ZZsoad{4?=D= zw1lNnjoN+sk!d9_2l^WC5I&x^zERGrloo^6-r#Up%xa}lWzl;bo|@JkGaU57MX!1C zgc^^-tGB4od$YyiXs~+?7Nv@pH?E&XOm{T)1x{9+E_+Nh$7Uaixa;A%~+H(6hM>pQJkZC(!yQOJ}6lv*$zwC*l#siIK05zz~x1jZkXZ>i4%hB z*Vv5((<^j7%exLZ2r`VB5;{}GdlH=ziW1eJbf6}uN~LIrSiZJ;)UaQh7)p9_1Y$vr&gRLc(@tk0nDtLoNrBkXDayWxlV2`P> z;S~y&!xV!4(nKb6*K#bpzFz=L^@!wU_{OLpwS;OgQ0xF7Q8$J@h!p&>^CF|dnc_TQ zjx`YV0GOoQcFfYLZ8&C9#pw~%X`~cm#HT!W6a_s!v&R1(d&WW%?PQDr(ae91g3rcav|1$d3d=5Pl* zA(z|cQ6QJY6!Zi#<687TH_POJnm8Dwc%T6p)kBq)0^b-D4C-Lbpa`(Ey8mYZqINEK zL494$;n2}Kt<_em(VztAq5(&yr31>yyxp{u%pkXVTJwibE>~k8m?k!599E~+h=fXm z(TZ$hfRn4BYW9o6`Bsmx=P>Ay@FOPW+42K(gH*2MIhj?Zu$es0@lKn|2=Jz|IBb5G zStCt27Btr>)E4=ngK{`UuWMf5NXVd(>++c4Ct9U4*&Pv^&uzDx;4xBq9AeWjXD$As z4(bn#hB&>4 znvDjHS}wDVOTU1PQp^Y;2RxT!f%Ic%lPxTq z+RL>%!}Qfl2WL&3914YkQ#uA`FIzOH7_#`MCKHL+z_b-B)~_F4+&?`Y-muZYV1F<&t=ZwynMq{@PBf)eW|1Y; z7Ap+y@CLKRVA5#ikw|z_*UVW*vu3SWJi97$PVeGn>(5)Ua8_?Rl}gN* zzI^HV=d4&Tt1p>KX|gTUaDz>)y6!#_mTD8p>Pnw=PX9!k-fWcyYP{yS!tSd`7~N8x zDrApXY%JE8UabfRVotYQrimxBQL5h&k+g6>5dFaVAuHC4`2s5hBrG7Bg;O(T%fdPX zG*I9KN;D6YHDz)6LI~D<#Sdhq$KWS)%+CaK@J~zA7Yn2pt#Y;^yo;Tc`D~a>!dW}d zz9rS_oQ|+g`iL{=pBf0bbJ0XHy8LZMX3q-$P^!Xq*iZRwrO86^LAgS&x0ot%QW@m< zF&NCrrSk?SPl09O$mB_nEMGpC2EyS`_r$qF!y8vEo7s;+j?eB}xpLEatCu2_OvYzV zU%85`D>SOqKeaj|!H^5OyM#30N`gxX6g*_Yo}Wq$jfKVVPh)q5f)U4ToPtJ^1#8V@ zD7FG2qbLtXunPeEZy)=d?~auXDq(T-a_8=Z8>HDr10L_W*I-OTBg0{qyJjbK|-`4HwUGVSChGL4s7-Od&#wAaF9 zqVQt|27w=7_X!X1y!hU2<)gym-~b5ca5I>tAAEoXrctSYH|}_o{PRsXk~Sa1Sz8f{$L*zCjkf*Tp9+mQ7|&N7GVi%03W24 zllkI=vFjKU>vuy7PVV81X|p_}jWk1kOa&jDc9m}Gxl?;sI72nU&PsGaQW~=Bae%V2 zct9zOCJbtlHks3M#^cS>s;x=B;WY14AW3KZjL>Di;dSPRMUNP zwj_YH@(M@Bns{kOUAI!EW2qQz5+bAyqg<*m`kgvOEEV_EMx0E%)~4}mc}^os&eq6H z#%8rb!NH%QvcS6A62|-Gik;VioRlkMQ(X-e5u(&4h3^|ek$4uK#xydy!6f76>GZK& zMy6HBby@{C0P1^%P8m+!eEH13owN-KgP*eGL`ODre)|3WHtSm#fITI|9M*Vqe&p z4+qu<(<8SvC^xqD2CY8*iO>X|Y-8M3t5yA$l2u8Qoim=)*o?tD+U>Jj113deOE_+{ z+`Q0YnYZKGRXxr-oxNriQCgIDMyFM#+^r7jN%gr4HZ?L(p3$h>#9ia{E945!+1@i{ zh`01D9qi7xA6_tc@A$5LIa4NJg^j^jZ1qGptTev&H9SH&Ijf4E~V$rh| zh8JU$jY&gvEX|ZPPREb{>=poi>Bod8g8vcxFJyUQMFt|F*}yxt!tw$IopkW&bd*1I z?-x-d8%}!!z^6OPv%Ysx)eP{lgVc zO1G3or8%Y&DyUOKI(|{f+uXg(GoUF3Ac>fVTwT9tF^Q^OQ-YUShO-PHj*dlv$LSZt z$XRgOu^6)ejuamMfv*JUxCJ=;Sps2-C4x;TLO?opCH^Wr^3qhmR~ep_AJ&D#y2Emo zXHI@NVZwxqFJ|VEdxV)Iw_p5M@^_^l#tCaEf-%8+8%(U! z$}*5Yl0o($4`nSnlyuD$PqWh}Oz|8k5O_J25v(HxF6pu-G1qCkiO%(ibF=E=&8j`O zY8jq!A0GKirzS5mIWL`NaT)O=w~G_Y%T+QgA1oqzv6o^|VbV1^ayJ%+LdbA4@s?!G z){1n!=_wf}*Cd9evNyL&n2P<^WTyh6i=wGltH7Z;| zrF2cImAD|HVB9P@x#ExHo;(&bT|VjV0EO6Q)!eor3%X!cP{i0 z0gZ|yj|vH4{@WW3yU5LCs_;*P*<5M1P=btHVbEI;FdK+Ycu-ini#+#57dz|a7K>C3 zpY^zMYm|1SmKV!YORcRh&1Ak@+0M*7VANCcn;usL0HcMG_$f?gwnq z+t8_wobIwX*JBZG>;VzsX8uB+5jdgsg+$^7@+3JaH1Z(5XoFgvN`obPIzYa#x!#?} zOnqz`JMUeWU8`10WiqK+jk}T_cl1(7Y|9OjC%HQAV$tG2@r*FiMMmKjE`7z-Mb{m% z2aO?ISU-C?f44p#QOV~o4fda7Rhma$TphVAoi$gtG|glV(n?m| z*d}AlI{U~)PfxI^F1mSB$_>dijOh-^ddU2=fHw-96|gr8+pbx-@X8V!^9DKZJmG+F z;5>pa{39FBV`dBcH_+e)vQdmB=fMmK%4wDSgqsc2W{1D4poq_ul;?S zTcHBCQLE6{uej*&ozN#Ek{amNe}_-OW@4!y6!g%RQ}>PZn|?5Z#s4CA4%#62rn8D3 zm3mYD2KXA&D^B9H8D&-lV5#=Ezuvh+=QR2mwZ-js%G5r)**106b3HmEI0B48Z*}-x za=G5J;RmZ{nao;~EeVFbHmaU`>GOY3@=2$uhVX#L#*p?&;gg3B>R@?H$LPE@7QMo5 z@BjV>=UbV8ORaMHbhbF^uozw6di;*R<{Z|PJE*p%ZTH^(=btO-dS$T&cT&fnR3F0atbm<2wW>XO1iEU9nuq6W0b+>slA9num4IxJxR=fxBjyD%U%2gM;Wje=W%kLJN36_WUncWW_g3gM%z(WO zn<$Z*t+An__>JLq8Op-v9G-2!9>me6qh3Qto$cPW3#ykt*|qCZZ2k6K_dg|kMWjy= z8E4rg{AA>zUF7*)q@Bnv{R5E-Up+PQ5YzJ%dUqxC#@e`}r{@`_8Ut?V zhLHG7-@#6F7Gk7g%`jY=&DF3{;TNBMMjAf5|Fh48Iy^nQ|1lyXXa~lnoCqUSzHZi7kb(Muz+suoGL`eXJK7610e3X&_T_3Pj-NKq?akLr zYM#Nap3yw1X56@W)5cG%&G~48KuxZ*qr05o=Ky~#df(N~q`v=yg0TKf?NV0e&e$i^0 zDZrWnDv^;3DZ&7ptjTIX{%2)1e8`4?sQ|wYkB~KwJR)3+zr&9_LRM#Y?t8?m=!WSx+#npgarzA(-FPEuxB+X_ z2RQv8B#)spO~m1*P#6H4g0}KVQ=F>=t0_T-jxmicVevU2v~&U~z$+nWHCbjteISvX zlS~Ba?FZ)O2D?G33U?3Y<{q&BrwC@we@y8(FozZa+9HaWbHH(`2nw%=#69{6_b_(_ ze8y7BUzW<_V4W02dPSy6QFsRc8-ymhZn6-bpyF9YyLlq2RFux7IkTdaRx#nJj1Ab-QEJTwGO9B#@q&U6Es!7&Ea%9 z9A584uh&5zU2Y?I(#Q&PvCgk&wd&+V%&IWDU1w#r`E_bN`4YwI{ZUZ0&N zb9xL)6e~xuVv9n}Q{iybXuZk1ymoTDFek8*nf_dtm%Zd`FhihH$;xt9-3jHr|v?JIxE@pP#1 zDPl#X?Oy^3<+GQ@)8Q^3uB9?^B`_k+)S1!c!f6T2c%9L$1d`zM>I@!xI+RXD5-yKH zhmg!H)%mr$nn2p2RA}YiXf#<7ih0~dz24~d#6lHN>GsOC3Z*X^&g#rgg~lZF>S<0_ zB0MWxEJp8@nKTN#&W2-NT8yVVl@3QeP7rfZN;I6V3`RY2EvG{%%;K70!U==MGEYx3 z9f^AER=wWj@nkN|@Wm>YG45^maLy;p8hD^XW%vB@$t z8I{F6F4|<5Cl*ep&}5KeXp^guUZpn5y*{+qL3y zEOG0Km=1=yJdT(|2#}X2$x@~^iW4y=jVS7NMz}n)BKCB~M2qMjw74x_FXW6&#pN+} z`peN{mID>mqwXr{|FLM==`}MZQ|ZPew)2cKXy#MdYjWl0(mPqHwZ#D$lZhF&87*2J zrP=G`I0LKcU?qzBCmCeRH=Gf41e zolJ^^8mkGPVnR9YI`7C-8mrM}Ef=lRS`0R`MW>)8f#PN{R)}q&0g&@;Hbc2ZIndA8_gD*$)tloid-r;K=6e&sn`fwFAX6AYyqv=1m9pLogUc~I;G|v zIVja)D||8q`17<8Hn0h3yj-s}8@b)+2)YIC0qqFw7VWa#X!0s#GFrsjvSJZ2R8QZa zdDOovMh-u;A66SsU4x9qLF~n1PHHt^j>_~jp$&tjl)nSI3~savtsdit#){(ySWU+k zjiuc}xh8N3QBtuHNJ+<*rZi}k+P7s&qXGR8YbrGzAssk`v|e;1gMrq7b$DtqbQ*{yS<;uuT83QW8&D41- zmk!KGB~!6ky(@<|ZX90OJ1d6ZjDe*q83=w3^bIe&VAJs8*?npJ^bIarxpDLI6*C4B zY2c8N(GS5B+lYEvXicS6Twdknol}CdFb^Saxc}6WPrEzX#^pUOx3j*sy}hTWy}h>H z>2`VYsvazr%jlUFStEL2GNBggD72*uIL+Dyz2Z5R}A+LB%%AwNaC>Db~kKWndq&V(ictm z@SqOSXCD6v8z8I#lFWew+4#b*$i~l{!cD@>PBMA7Fo`VLLza?dd&m-D5_5PS99lg- z5BhaG4;>;~ndgOh!U#;SvT&hs8xd&|jAR1F>>!te#0Isi%m#Qig5LmJ9=)?prSkS? zhPMbCN$VEUO4{&G*m%*pWefUxA#xj?F?Gq(bJm^;^(Jh+Oayxg;5% zK5g;h4QrOo>+el~Sw}m6>EbFZq$ywu7UTnq12N}iEoQ22*FaDZb@V`#s2H{30 z@hnQjL&Y|S;)$_=!7GGzvf>J|f(+xI(9Rs5Pr8Ih=R*r}+m%;BT5%RyjXq>Esd%{9 zhj2WV$)XQ_6WJ#W3Mb&phZjzeI|;QNUS3y<;>sd6ILC|03b7irtvu(a$8xyijUP>T z@JADV^hWzK;bEd)K~(ggT6lQ*S!2m6U*7T34*Zgp!m*>mv8SIV^+(A|UmL?F==)v^ zduCs&-$eqvDT3cXK?bSJf-P1EFvG6?c4tSsv%TNBi`*sLvrD*3xObiQg~DHDCVV-`D;7I{bo19*3Ue-JlKe;;qA0Tu%|~ zqnx;xCpc z4h3L!u@#Yp)c=; z`wu-0_6Z^KNBS_moAlB5e?-FRdEvfp)D;G-{UQ9?P~;ClL<2r0xTO$N1HW>(kt`5C zBM-wilS;U?u>k^9N{BWe5k4mixGksN-hw?bnLHx=4_VkC=Ag1~PQZ&txy#3_yAYsj zB|Vks=s}hdV<*GvqqKj6IFd!)5*7WWtCI2t4B|K&Oc7Q?Oi(}LO%(*PAh-T$4te~o zH%Q(5H|ER{e)*>%Vd7hV5PmuT4?{y+NbC}l6kfSRczw%-!t0j^uaM*=B*w0v|Hrv= z&rC|{|1_68@zx)iX*Bt3W0POFg~TtR^G^MHy$>7Q63jcsC!!#<6$-*L!wbl3!ftY* z5MMA~h?6bC<>WPPRIuGH{8)JWcELjac01`L6K|(w_(tExJ^Q@k7@ye}W_Tusg-74S8WbgyAZ}=jm|`l>9r!{8iSewB8J_(D zT!b8fGl@~mf9{3ZGk=vAK6?l>KFLEwmH!n?^Nc=3BWBJ*#ODtQql7#}l=)xHnn^Q0 zMC-|d{&6dC6LAgDH4L9dS!e-^JBQN9=pMDn02E}bxL0A5G7DW{anI7VPj_0Z0Nz=F zX_&LKf5#_npOX3z$Q=Dx)#F0Ku}|CnvAut1DM~mN!mhp#k-rF$asQxEtRJEKXwqjt zZToa*|E@VZ26p|k^&i47L!^K*W(dzB&nK;)>=@WFXBVyD6C|c>ufjgLh5L)-hX{NV ztptcxk;hlMCKYeGp&tZ|s-^K$+|Rmy0ncj!6Qq#AfNmMd2G zDZ%2Ov04F9%I2C$Do*dHHyBe@1%F{kZ8dAk1+>UyHj{b?ug@-FO`noum3`k(LfveI z)h1*9SGjU=U29(qLTG)hbxT($d6kJDx3tmk=FKU0*l2D@c(OchBzkET@h0lc#;_-8 z=H33r6}6B%<2A!ekUfqcWM49@VOXV6R=YyXpY$MqeZot!QoTv9=d+$f1M<65V*b@x z-mIXA9wRA?{sXqMUdI{u0>b|dr^4Ap$&Yljfz;5sqV%x;Fvp;PojJ##UW%yD|F=0t zA!p5TNv^)U21MMxILBK;n$vtR&Dg-CCd~e#^6bye`5?LhM{AgUb!SbJQXyYGUCD8Z z8LOa%&{Wf@#@yFo?z077VX!>+G<%C&YB#C}@w%K}HL;k#PXVdy>8s@m&u{cXQJ_x9DzL8y4GTb;tRTIW7!g=w8RU_ zQ&MS>d~v#lLY6T`J4)y(6r&%&66gT({@a1rHPZx(f028p-{-Kn=*0MHECwK)uxfh(hYMO8k~ky za{8q%+t4Lbrp-#WwIyfGn7AodVYBTSh^7qA2Bb+RlzOK%qmji@4RacsZTe(#`eiOF za!j3-YHh6;n9+$GR>$rcahjufupyO14zNok0nm&d;C>3(xjQ63mHZwfiSeWR2V0E7 zG$42sT%83O=`hf7Dnq@m4^)v1czU^u+d%|(XM@A?WPQV?EzZ{28OHpf%>xyXc|X+l9}rLEHENOUHgzRCl-^nlB!(@v@H(J3wAxq4&exQ=+PSvM(P z(a|}%ts*x`*Dx;8UdWgXb3+z|zPn+HR_ApMr1kpbfScxQm|{>`LvszLOrbMIbLJ}A z4|G)IC+Qjs$qC~sjrzG^i&EE9kBolTKuY*+ecoZ0%PXp@q@2o7t57<_^%gHV)abP| zgq=!xtx?5EtE(&IGKVA2s;4!?+Y07T$XsZPHwa%SoVYG0>qEXwsKL&8qkU@wa{YuQ zlY0gdEiLK3p2N|`-f(@=PZ-B?h`G64KC|9s^ypcWzp}ldp}o>?V)Y)Q zOKi=sSvuLqlJ&&dDuUYbvcSR;>2;^W#YI#o6D|KE z32$uq%q{1@vTMR*Hk%T#@j5mzFY8GqlBq}t&a(8nkS7(%S}hT02!PG#3q_-uY$WB0 zXmBX1jQ&t0mdS?G?vM_|T_5PlAY)XxXs8^Q@k{C1M^jc*l~VF-*ldj?E3)=< zY8FFP`MN9(=@M$AQ5WvV_f!=U9o~ewgaCfwVPxl0H_;ui}+yM>iHzg-v3F80d$c`lr z{2xptL-Un{hA6}kcPrhmJ^&di*-e4S=^b2>7J;2qamE2GiXwtzQ{XZv!i%w5CICcY zzkpMrar9H%`K8>DSfFSCGt8lCyb#q2BP80SSI1A zrt_%_dnzJJ#3*1T(rVDXQmJUTm<>@?Hfz*b%od8qE32YuPgJ97Ixj1gYGq1=)$Fj> z*&R^7P|Dy{Gv{`|nVY2#6n~`>8i9y&noQ~kS&JdCK*qZrZlpC)jWuM1bn4@2waMfZ zOR!MwGgF_%9?3b5o~MTXBUR~8n@|X{@v;R0gXNbVS19HMlR_W#rDEC2L^SL&ae6cO z4~a~5EaeMpjYdsUsftx)pfv0?V~HUynW>7Ylu77Si215Bu=I{N&g2S56O~!y3*z)P zdt)INbI{DP-4VUpX}6f5QKB+g>`u2n(#^6Xf9F;9h%MA(aydM1M>*c)B;5v6eRVvV zhq$a#h5kSVg(}*Cg?3^Ax?d{B;r2LOrk;>3Vpsh|3*H%Mvre}U+IA-B)iG>78n3Pg zKOffet>9BV!Cea~)*{IpFr?K&HjvxNQ{>+aMf1hAROUXFUvtxk?U4SSU)_Bf@J)-xnG8Ym>oRMejo}u~0MMz630XAwy zq{s~e^RfK0T*H~^qpryucxQ`~eV&B6j5D@0%yi<^{gv|=IR=+fO?dS7a0xi0P$ z1o-+UhJhln1?AJ=^bnLfSv=;;K!Wb^EM$596L>)b%4^{COptvXbH7F=gM4UFy$XC6 zg-mll!+po4x5N!PrA(&O8O#u)b1{n$pwpx`|_cpy4&LasdixZtv-lW&#bV1co-#-F02JF*h>a=nzgv=DHSTpQGo&!ArNfmRC`tO15Pl96htmF z=;Ky9I3+4Axlk?Jch+lzQaeqjSuKZPf2Vet+^wkV7$bc!>@ zm{FPxP##PnGr%88=`rFBl*jdEGx$U}4P+?GOpSoiMS*V1DXHj9w?BZNQ&VwT9H2CN z)}Sxsj`}wB0~S9$-e4d=ClG?E8h5Ov%y(~zfsL!yV4?T}!GPbTMJ|sw z4B-~LQ>_v9E0p_`XAHkmp_J0$*Y@gEV8Yo&{T?0ITPg?nK%<+cQ;L&9wSMqcuXOBF zsP-s11v6&wrO<_y3)g7rx{;#5GuDlApGtnv0cCd?u4>@KVcDQ2a-mAG&!Na`n7M1l%TaNJGaqGb8 zgGN1mbOtcsbZ%xb;lJgXw*nrqi%O1ZZa;CpI=>(hxS{B0O6`OgwYloLDRX@2AkV zgk=7lXxvW`IDNn$?;l@Nmq@`5iY=Xjc28SPef(6Y`M>CWZQLZhwMF<732q^QP3M!q z77)+>xQb%iv1n$l2RVavF2 zG(ZgL78VjN|lpMDJbX&orS zw@B`hJOV88W#}v6u5G{=|Nr=M2xbUwtP}|ZwvLmkcufS$0w*55%NFu@Kjzw4QwD-5PZ?=N=FUI<@urcw0VW&<}>p z3hk7-E)A}jeaY>?xZPWEfaDF;a-}0wXZ8wPh35=4#ekR_xT6GFaMgso9)iKKumVkKI3mTEQi2`I(l(kmGmNZoIqp?qT}9Vq@)H$A=N3-~TCs`Qg^(3p$4vt~~hSHevaK ziNE>H#0ASow!V09<-+041)5ll;{_$&g+`IR0d-n=+_U+wEy05^~(B8d^_Hqw>xkvc)lKxBf?73**65*38 z{`Y^cAcji@F50sPFNuDS|GT~4?Zxjv@3d*X_?yvtOYbfC73akPS>ngICq*wKXe*io zAHeh*?L~{kZ?rmQL728aR>;Az0R2V}3bEoha@cYRGj)qLOn>?hw@s>=yng!Auf6{C z^bK8AQ*L_&-!$U2+a^~{!uRX1KHaxrN>$fwZy%ZLk?xo58)c6DEUc7bv zfwokCYS%j#f3g0+`2N1}``4ei_?=y;{$$(1^_N_Xcd7owu6MScJomtObOCFt8Z_hY za<55tBT%9`hyYz?JB6%|CG!Gbi~)-l4d{yYa{(!GMRE5sF`|f4(nF#U6HgDAilgwP zi20*18zdB|>0SD&Xekf_SHeVTBJK((i$!9obVR3p<{7Onl1{}Ucx4O6Qi*ufYGI!- z=p*U$lvz{K>4@I&3~PZ2uT(lp6CvZwD9xwQ#}nx(X|bfSxgtn;DxW1r3s11$PDhG$ zDAeoM!)>^g76@@TJXj#CW;ASgPb#-gnT?G2XO&Ce+h8z4pv_W@hZGu8mhvLSsR){p zSI~?WYl`Mn@Wq^Ao7DH6DG`qtj8Z) zNqFR#@MbHV#C|1)gibNEFQtNtDPdKHSq2q-FsRb$uf4jU!sxECHrLv!?2(AQ%2wNK zt#KR4#&3MhET2DN!u;_gZ;?o=@CJFDgj$6+-xJY zDWygW8AfHCS#DwKRHJ7aRSbhhtLfMWM&AQncf**mPl0zggId}zk3GRI7XPq?;Sey! zh@&MAusED_nH#_1T~Su#%!sgvIGy>9wJbZdY}p}!dvE;v4EuiDdm~T0KmI-D^7q=_ zmumIi&_KvbT?hQ9hmmJzMv^X{&y|eKj3!-PuPez;DL+Naam?0(%aL#}bW z8!}c23yE3nRe`iz^Kt{{3boM;FM}l`W*`53p>%GsI~hshM>WZeg+!+I6&9{B)iPOr>K$a zAZ(;yMDT13V-zqFoDoYa6kI^ukXmu?{OI$Kb}|a1@onMBYlw8W(P%X6CDN;fC*L(N z*5`!xi08TOf7!bAFC&WxX@2(rksTo9fNGXWSP(TgdlT+D`PrN#hGdHpio}AjiB_^Ku8285%@UuH1*FbG0i#kUpg*FZ8 zL{2zK&LJEXHXL~d-w5N4_|4SOw_=D91mOgOy$)%$5#j1$D)f~wu2D7f2!Auml@N#k zF^}BD-~8oz=^+Hki=*J#^EVdb0tS{9Uf^&1a)b0B;-(8Pu-p07r{cDa{FYz+p~j(m;fYfkwh9?zw;}_w=H%Fr7;w0o;3>>8Dz z6VYV4stTP5nPBWGgbvbBRO}MYi;QF?aJ}UU-oMf+_0q(-Ir)dq`f|yNpFjoo90hx@@6JDoYncx)+(*bj;n&XroyQzNeTDpJGU!X5(@ry9Q$v|wcrKRScn%c!&m?I1b@fCKQ8E9!|Mj&``F zIF5AZmb!03>f&I)`!@ClJo83!*4FAg`Ihj~!dTkxXPTz=S@NNP^!!pW-@aiR1cAeH*HU7Y~I`orBJ{`S@eTUzPb6!F% zubi<4p=e2!d&-QG8up#*_wG7(?YME{YS*vXz4!XT{;9hIet%#>YhUlYW%c=U*X+Lh zh8wTgzHx0`eJo%7`>op!U%74Ts^tZ^P#arUP$B^>MkJhxOQdKhGdqP zk>#Vi+0}d>aBIvSobT8IQCM6v7T8s5R;^kid~)H17i{6DKOtNrTp=8K{O4r-BM*~v ze=fF@tV7-m=2~p8^8k4Gh`i6Y~Iw+aK7-x%G#RceE4zU<_8{l=%F7! z{NRIR4Ov3#o-ld|dypT1ysLx{DPUZfJ@9*BKiT+uVed}nZ_M9EC`d)RcBDH{N{3_$ zydj%}{l6m{h5e<3BNoij%cC>dQ664=P+mYmAc`SCm)b|(ff}{-?sAD|q_ZKJg8Y{J zRj@+g`W?YnN+y=~;%FPJHoSDYJdPFCLJ{INa*Z(eXY53F(#glrKFO~~$8#+IGEG-3 z@7LsZB)b}(2Iv2bokWu%AtBERAFy)%e2P&)Vi)u$Tm-XB`!lot@|Ri9JU#2r+|fVJ zdRk2PH>A6mrUPvbgeg#Uvdn>EI&Lvio@k~i>DV}g$JodC`BWwZeieh%nMAbc&l*oS z`tgo>>XgDjHomMi>|@tIctOvybb5LB1rJ_dwX~^i+O)Q&rN?$&_Ux;BR&F1@{IzE< z-7#(3TL-q=?A!OhwQU;u_a&@wy~eMky6tduNTsqsXrUVz57crkyl3Mi6NQo>#z$+U z0iY(?&{w&26FO%OghLb7ZEokvy{|vlK7sa4GJ{ldTiFkw1uRj3W&mkc0GmsMJKiJG5gqeS;j8zUy}}(t zdJh3+hV&aHS99~YODGNo`UdPRL|FaE(rcOdk2j5ckL+dU9UfUqv?JeZ7R$bk+X|n@ z6sO~JJk^Y;9EmV*WXV=xCv#Wmo)D1B=Y;2q;ClYc$AaN(1% zKZf*OB*E?BnqUP7^Z~kkC=3-ngA~tMSh)dBjA{xuGd0=3DYyeuH-MU8H*RBzNEiySYhd=0G8 zX!dKJMm^p;b^A0%*niX;5GR(bEzQLv7_Vp%zs1!7_8}QSA4+@V7kD|O8hE{9#K;iIm%&2 zOUs3d-<`XT9N8tjS9kBd?+*+dOeWd87yn`2{68!v_X-22|HSoiDc0Wq6#F5zW=wxG z#C^BeUq-T!Y~Gw!BL~(C_i=_3pD@Q>cmdi3_X+o57?J8C@;z=Q z7cQljMFL2#f0CIY*o7zAH%>;F_n&$Sw6Z6KCuw?u^gg8jsdz8JA|)HY6jS|!{933M zs*7pzWIx8TiOQmzfZ$WS5*GnFf;ozf&`(~gaXI~PuQp5vapZ=u-|uv3w9N0xFdkhF zo#wFcsPO1vjn3in`%!NmJo}rVyF|+@A$a8yu}bl=WdBo{|Ne#&0iFn%Mx^Xc?(OoJ zVhu6NsHiKqW;97e-|j!n7|u>y$0Yt)N)k> zCYNLZS^h<4V9CTAN4{L88yR69SxlbavUud4{p1tctZNPlj~#S9TW%Tc-y+E?+_~(% z<#MTQhZx1AP_iYCeI0JyU7JZYsopH?MS1;_o!li{bFn;00R;h+!CpSpRM0q( zC@|SGTZhR0>B7b#K|h^5kQMagQ_?LQVSlz=IPW&$yd8}F_V0sld0e% zYyxy}(eaFx+ZUp}M}uKhjh1T(+`GzhMT7Q*4 z-!(Y2V)1;)g+`*$V0Y)-q2)^ustJ%kQxu2&eto_x8jXg!Ck+h^FPS^g1N)%}RX6T{ zF`|vzQKv#O8)J1L3+clWJ;jUKqwwYfb6K#90bk!^{&F!)NeMj4aHhsWwlRN($B>eRLjx!6G{}N#I>JrR91@UuyKo%&VkL-bUJ9n-d zl>oHgb5NLh@F2dJ$A5JB#EF;xXk7ilUs5lCw46b+9gnhVTc`zE{Yg@cqgU$>4|V&ksq1n=UOj`vNliLp0GsX47(sWGec-3${yg z^xll_(zTGKrr9XThDveeDdJ?Km=p!E;?XZ&B4`wC0Jrm!E9)CudO{ZAbB8a`4hz7- z0jhx-O-4N)h}Gyk>_z9dO<1^0cn1NMOF4Nh!IphQ&y*{BTt%eS6v;M562TW;m< z+<(4Xtr8xCe6kf{C_+x7bK1lHNW>quJ9QfJ0t8d6kZUHBRBHG6%!-~Xdpf*Y2qT%j zE?*=Na@Z+5!tM+PB0iVb3_&HWx1;CE;uvm{+>g1rUZnicDM6KEWLL$}6bG-otEd1T z6;h>M`QVod1lYMjX}wp&eeO^~0LmuZ<<`Q@gxej8g=686n+#gLzE&9N{@m>AsvnoX zoV)(K%kuU0U4G-|F36Sn{2rU|eHR?agknLDM?>?H*;dFGscl~{8ect*eY%EnBnjC6 zcgX*yU=NZ?^P@%dQyw;P7)2|EnA~a`FvD^jC6$+!fEXo$3LD%_J@)oJbEr``2x6VG zaXd0fr7>Gw&L$U;GY3W%eeP;<`ixc;bM#b_q8Vh3dgxx^6Nc+*ntjx&qn5mtItc#Q zVfWkp4Vr8nUf`cP z@3a?RoF+aohkTVadJoJk8=W(nn`c1i-wvtlN}oRzP9!2B-_!HvJ?#rc5{YoAxIUuf zXWYH)o$w<>`D-#!teG~4T9$#BW=XmPgc#B04&8UfX@N_KV1^Ns)PfgO6e$IQUA$bE zBr>T|5{2JlF`{In7!WaU@RaZ6`KMVBH(`<;#v!fL#3Y9qhY4a>hh)1r2-fjZK`T`$ zd1fBV&VxxwYDkd$OUnOWyuAxtRaN@`zt-NH11icL0TEEHB8qYmP*hY5jx3a^~a6wEMu5c2rL8u666lll!G-CL;xF2y{EvLNCkT;lqhb^zAHrzq!MasI(_Oew-L*CI~$v$(_+z zU09YPhM{yj=8h(nS={>|m z^2wT_P3H?kq(Kljh0!UKFE+*{Cb0aa#-`q?&vOWG!^_cDW(60N$Vgvrd*A10)2ljk z9mh7+nOyH&m{n=--(<*;!tOAHj&ph?xu#6yk%8)t5L*@=KKHZ(4I_h^nK2?(5 z`~KpgcMTb$`+GaqDtF8yCmm{zrHP&_Vq|pH_O+YKf7#oO)Aqx1T5YOh-t|wfe_(Ym zJJyJO0&pCqei*S+yxqMrgQENyWdEasSjIsR6mD=TA`+j-WF}kASmuD-K z{4xnYyX*Zx9i&w4fY?kk|M>BWTKs4qhp&BJfj1RrDc9m>pd(PtDd{P%Sh-FzCH;5) z7%SEKUX5z;ZlY6@XyyR>?|YaQ`a5(rv&_vV9Vunwu>GUe#KBj%nynIt_1e>_x@;Ac z+bu}Dtro|%+iI7akagAK8?Q`rsY)l4%?g}2X7fUYj2*qxI&?jM=V<#gW3)2u+R5ui zdWK-C1|()N!D4?ldgt|g>yV-{e3S_fHj7}yp*{>oUfK^KWU8?0eb%&5#3~r`iv|wr zSBbK8aWa?`_|bfZG;>f=gp3mb{vw{`l@Kn!F`u#b*&oR^vaI5Pvu7W$e;jHAF`0I_O9%LX8ITncVE4_+xSQxvh(+FWe6{MXpeg7JgMiQMqc=-e;Rlxj+t-o zeu`(#9Q~T@V&~%3h^=N#jVZQMtrZUSrQBv(HmX2SOaPm9*?Q%E%S$yi_i#hZMpnJ& z7~!>luf1qIXTN88*F0MDq&eQ4ys^fwCdB-Q`A^F2Ht_=A?=JOsh(}!QpZq8BUhSXY zGfs0kGG7F1$IAIeq0e>SbaUT-jdaLqZ2y@ zYQLK=o#tyUTKV!VXc3(&N4-4Up6Flusw@}V>6ga z7TSA9-5;$Jd`H<^&F83j6YlKfmKF6kpwj~LtD5N9)|+wiO6}v;vFo`?wwwF}{Rclr zu)K2p1-GXLKVGW6P~oV1U2Y1+{L8y;%y2|Kg) zaZbBTs(oyLd|SS4cQGc`K3@Cyjq%ZbxxI16PpBr+nKJ;&1$U{3!pAn-4XJN)k4b)VDsbyyzjCb4O5z8tT?zGU_Fc=oT-D%IPvN|EWZS8jm6)`@pU&*9(I7j_)DGUE7b{#kF%8NCDJ zjuEq$ot!;d7QXO;9Q>z0)%q*P(W7Ud^w`LW$44l;*|SF+Cm%N1Mb>GrvwYh*krj-9 zHfdG}Lj^U=;v?4`WqYaSO!ZO;JJ$o$3J1#?o8-=)rQ^v52WNE|cH-mxgBDMEJ*C6w zm%n&s^r#b`J#hcSo1?t`_4)f-UkwS)%KDvMDHlFDw)XaAJ$h76pXTtd{bA+W73)>G zoX&oL60a+?cgzM!-Rq;is1XxAiyHn5f7hms0DrBUnLC`$^x-4!_-e&UX?;0sL}~5W zK}8R39Xx2z;H?i8dG*@*Yx~z{h&jRP<>Ajuj)OuInW%1 zCc>JaXjB3zGP&64G@dZb+FEOZowLnV4~w{iZVmUmG}Sv0+J<;eIH*q;1^APbd{dUJ zMA;7^U)AhQdVs&_)vJ8Oph5kT@11|oJu6;+>90$cEvwwot8-D&;K}BR2Wm?y$A0nI zq%n`JzK=`RzTLK6KJusxmMN=eMm`-eaL(a#lcySgkc_pFb9>!4<{!}=!-Z%Qo9Vhz z6*XHG(g62LADfr|_;SZTugbr>OSeV+_Z}QH>GWrR+VkoBd)mew>X>})q_KJG&_`Zy zs`!{{{`TCCgFC~Vp~f|Uv_IFxO~82-{fhRWd1p_W~Y->)54zHWj&N522>pY0Am z8#T3mb%eGlU$bsZRER?!8CNxC>>4w|e!uppTA(qy+h5Clc5z--V%xFfqvDwOLcf&X z)&&^o|wLnfLCeWdMg zZKD3rF~|^gnvyi;132myS%zlrYTMCFrT8v{-IPCS*JKb{E+%>5( zHmvjeFP@z>I&l52J!W9r{7#ocvmC*xAN9{)zj)T&G2xxYjo*3vpEM~-&T8a*kTS>2 ze|jdpBgILHY3gRBqk%lJ)yBVTqs_N!u1>k_Oo!e>ha?T19aA)EUQTWA@jI*s_UyQR zXNz&~q~v6^+7pmaob@km{2{+yw`ZB3QBGUZu2KhOdVm^Os#)x32-D zh%SOg{Nd=BQ4_~a7+?9yop-ctGp?*4;ms3{4n10i^^P~*s~P6w8=HS9Co*!vgeQx7 z^)4ULyR^H}&9;9%EMMrrryx3WXNgB|GFcX^*Qcb?m*jh9S93mPlCcRlg`)<__vG#? zPDk*j+842sqj5Lf?y)QZ#2N#x$lXq_HJfS^l>2+=>GS1D<==~uQ$V`0?uuRJyl0c~ zi7p#l0A?C4cTy77(=_a|D^B~zO~ybqUV+N|x7QVa2YVW|&W`yRuQF0g)n+;tH7=7W zd-lkGR(X|GUGL;o_Umq?+y6IoR$Nt0#s7lNxKdTS{eM9x4^`PGZ$%fci{TQ+Av@nXg{#^9n^sPl+7e4E=s&=^X{Hi{hc006RYT8(}CnKHR z8^+qM*NV1If3V2d4z2Ng?Qm!fBgv>Xc0;T8&Z_bVv3G2uk+gjIa$hd_NWS09w;wou zoHV_O7F7u$veH``yIr(iCHL1Hl6OK|S7#*QVYivjzR`E<+tFT>>DRr^s69AsGGh!k zfk>Vfngn5;ATBW5wmse%_ zw+V@n&&=Dk!E93dNAn%qe!rvae8!0R6mmr`MwnOWhi*;J=Qcd_ues>gqtmE9oz+Uz zwFXT_jl)zi3a|>567xHhnA(p{oG{vXovl}2jK9|AsGi?&&8>)|@M=Z-)EZuBdUPq8 zhrYZ#q%m`I;`F;#Y;Za|@1FDgbBg`Tus04qeE&<&*RFE}*Y27y>8lI1U0hnyGTql* zB9FeY5(6EIJ8e#t>~9V*)tFbcP4o-uVNlsazM&xdZ`+2ZAvrhvmGK_&Q*CNGdls0f zJQ4C_2x8x5KPo4yG&B6oJ;q^ZOcD4JUq-itWmx`aE_W9GSC4g4T8we{1w5QJm=09! zC4s(i*;&zMmk zUVP@o9`>c5Gn4I)TKC>aCz{OWz}ciFxI~IbGTf!x#nLxcdj0ogM6aYK5RXN ze2k`05Xlu)n3eunDuujubnTw=w$D+ov)9wDcYZx<2g}~pJJ-|kx5)n58b?`RuYvNV zW-1!8B}8Y7`ToXje`u5$#=+VzxmGdClNr{8-Q)$l*!f}o0U6W|5Vi9umc2^dB;`Z# zrL4%39u?KkJ#<3;^~4D~=Y&`4$XT8HKJl_D9KW_#1%-6_mUiJE)L(USirfgH4^qPw z7Xv0e(pzFByDpbw?-@S)9{cI#rKSA#`f};grRB8`$@}fu#_i?h%P0`0=xJ<3FNkJ; zRwuz|D3Bu_O1)~C#$l5-s50tmhY-{{H94$1b^7#pt>n1IAzoVN@%}_64CYgZzGEI< zS8X?4Ff(gWLGQ&~ca3e)tXcCxTemzaJC=Gu&LKZ%Qz+;wH|HyhQF^PyouFZIHcv*gs%n;2r38(D2VXCntS1LT21aT{~yu< z0&{XYi`3k2FWW!(^Q2+U>7-g-&Pb|Kpc)AUH5AS0l5XDPbk098X^^qSX~#R?dh5AA zIRY>JqR{jaisk{E(%_EGcI)~f-8zT~XO1!d{HOjv3vh8aeGRpiDd{MbHy|2gK z`bOI)Hn#r_|8V)*E%}Gb1s*>W4$86e&e=E7j zV}AqxR&u+G4`&|tnXffUpDZ&`r4Qfh_{KcikUpH$>!8wy!gt78&?tTU&97bd);HEn z>^<`rKvNn3n zhCf;a=k?>LwI*w?u1jpo{(6Yy?6jrj)} z_loda@DDT+>i(|y*JZo;2Z}?D`D5?mA1F8fH~hnmWU=iQ{KMs&qPLbm)XhJfz32Y7 zkU#vt<=@IkyJh;cg8#T1__q=@x8&cdG5@-gwvTn2l|}kbb(f!0#;kA1htKqMnezh*omuk0o=ta}I-+7I71Vgt=wYznzFh@8z zm5J_7zo>`1aRC`wt|J4g*HlaU?kme=i2f+4^i1Lhi8oGSad$VTP2YWhuofuN| z)F)js+8yi>*l~o>!mjKaC@Z*fKDm2rkKlu8N&UO0#!QsW?kyizwV*I^dTvhJ&b?*I zl=#x*P~H@Ep)ZGKpnB^8%R-u*}`;zC`E zH1>)X(CIjN4+)fmc57yCu)K4Tws zLtT6?>&}t~-x|K`_tGaY^yFegN-V9(w>iX zZ8O;!5X+@HBQnN~Y~ir~JvX;o&jm8@h5KK)|3IIx;Pl^(o9{f4KD;zL&)G>WFC&Mj zd(GNnenXx;iv`Q0-1q$>dngmw&CKKtBSf~Jl688X!jo}&<2ch6?Brn!8jt!atvd3d z7K_#VS-j`a2%l6=Ot3ajw5tveSheec{JZ^~EuuOkb(-3>WnhO+gHnc``P(o3!fM}% z;{&*%U3+o0D91RPhlXcHCa&OXosQsir!ym6%J{tH12em(v~T9`-)G9;ywYK#n}oc~5-kVKKdPic^)1aQk1@X)}_t zu}GDRy1VTw@H9xv=e7B=eTEyd%P8{V5C z;J3s@M;-hIbAmEsdzTWuo~{;~r7A9FTSX^tSMiq(v;4%y{G@Zrq=75%FCXcYMOjE) zKJq@-xJl;Qq2|WApW)#e)9J9iR2z0rL)e%TRH!anci1l@qY8U@107}$9kwny`y%|$ zLASz1XJ53w5zcx#Y&Bgc>n-zX$5rT7HsW`+o(@}0H^TbLT;%P5ZdC&v<^*NN){{2- z#c=jAe2xt&KWT+;^OW~0=ycy{ttO4$aM@emVxQ=;A#eI?`aeP6)Te7b{hGR;HT?zB z_*?7~tu-Q1zTu%4MYK!l)8<>>kiRr}-bWea+^yqb_+I z*4kfm{EQ&gzG?flBUI~%G>YC;#w>IuRmK$mx>2=Xc*>eNLGiaQ)Lg`eyUd~U+15p6 zU-z9o3ww8&Q)R?uFNC(&WsVkA7{^q*uF{9`cae%GeUd6mj3-^iN$s#Vil_$%PTAMK zD=w3BtS7JEuBt)#WMnL`pSnSB4=`HUPr2=t-k#VzfUjOWMO*IH8`(tCSZ@!I*X%Qm z>V-!y4PXHed+~YQU(A0gz0_Ku(tuhsUF)Sk>NqLAG*JFU>7~BU=rk+PdUA|M&&2i5 z#=S}&ttTtJD^OM&O7CjWV`ELy4Err+$&G1tgS}2O_}r)`2gz3&_-j2mNbbIge~R_B zM~_9TtTszje6{?CJbEnlkD4jSd9xlEU_5byo<@2av+CYOPV&s1ZZ17Az~Iaa_8vX( zj9X9h*x#rJI+UKt_|L6hs-2H&#*@tEp-)pil~KifX_8 zVZ|@i+&lJZdAD<-G>&cmTpC|Y&M-rR+Bx&2%-mr%9kX-%d{y{$yRP&@)-=@(oIKu{ zU9#9#szTRKeJ^AV8#Zqf(7|RH#SO2uA z$}YLZ4=+jTR?x0dkdy1>F?|U#xZU8k^PRi9+}1JP6LM_5OuEeKJh%2y#>o@Pcz`@_ zMYzktFW9R(bdIuBpXZdFa;r$$8_msw4S9}z%?71C_ zA%2$?ACo+7SG$yMK0PaPqx-dK9o}cz%6^cxOZ5u@aVqj{nLh~_=Xg8o7^|KD6a3Wh>#cO zHVXfVM@rf@(PAg(#rDieiFd~KyZcD>kcv`OFOlb4&%K> z$ti8y=1uO_rE6&6kgR0isJ`i$ec}_sg8O#O@0*+zo%d8k=!E2WqvY9p8>dTItETmp$_es%)_;q1ta1 zPq%%Ew!c%``%}h_7@H__x062xA8u7;ZWCuX`l*&$#m_yai06#GyJn8sj2Bx z2CN*tbn@QH+_c<2@p(Na&lWsft3epyLr%X9x&GMMNHL-&8L>-ePH6dzMp zsm2AYUS56Z*680Lbjg6hy%ML4TRE_Od@pBU2ajOO?x~l}K9?NZ{a$BEamDPxVZ|;9 z79O5C&?AE@O}qSG$^qk+6FWnym_TP)q>$M9*$3Zr{+_xKK7#}1EN`cUol z{rjDs%&0FVnSJ{>heS+sdX-;q;VucTa)2C!8+}u_K{tk_^4>^k2(PO4x@{B4{X0}q zT-GRM8v@W7?F!@n!?=C&$^Ry9jnX*5B8_$b*T+<8?@nvo&tOBIFqTtofjduB|KqaP z<1?48NM1GA>v01 zd|e8jy4)6xk8Dlc`fB%tsOJ8aqkb4QIjDKT-C6k~$8Y`el>O4R9qn$H)c3Bx6I;3YOwC#~SAt*0C$$4SL^qJis*Q(y(`DUoMZ%kaT ztd23hs{U)e%lySkR{Ke^xVgclW2T3&T}Stu@gZIoO+fc2-yWDzc5>Q>XdkJsZMw0Q!Uyt)A;v zn)*i5aL1kY)Tn&p?JJ+$-n(1UZTaprm=f4LYEW5pe)n0Q{`2kK#Cht})R$j&CdDNV zAD!626YF--9TF!FicU##8pDZb>+$1TtB8`@w}<##n0^{J*z@kVirvXbd)QhrXppPP3<` zXFi?y2CCV0ciH|1{t0S6UE6OnnLigkb$_*<(CyG%oqtbaR&}+FnqiYl*;gYGSC-M` zyYy4l^|`*t(`aiWq&H8+QJ%x45j-HFxP@>2l(Le+y|eQ>5o7Ex{Z&~sD2vOAI!o0T<Ex%mP@)1jY_z?z3lSJ zuTe?O!eip?gNv5jHTlu{u+-SS-G3jJM}=ks8NthHzT{ZFCDj#bRHgAObK>2~gWJqJ_URtbMx$9a||e$j{#PaciK?Px>XsmrXFM{EWkJ zgUajDPt1h+8E>Vbgi9;1b4vSxE3*gtrB|*Pw{+6{AEnH5_Ifs{|FqIc1yPP*SGuQ< z?YS(qZSn|d-djFr&a&SAZQHHNkx3kKb+;{-2vf~t&}(?oo_$uAMi$#wYF{y0e8Q}t zoU?y&xtbWX)Of|^Ps>XC9It$7EvsQ7B*v&Lvai@*e)ox<7yRTBMXTw=M> zU?sX*sqrt`W%^*+<$hXso6GLu3^?myfvW_&ri4{NP}(fTfkjgaN4hQ|N7Jw(B~zkD{C;IAiu{gW+kmuu)?;lhUm{|}Ms03_tTfAzs>)u7Toym?8-DZ;(zm>sV zaBm^VlG`?Xct>8PbE8L)!rre3c%>&yt9bMUJFu}h9fQ0xrcA6CX4vmK_egdAwLzMw zig;ay_4)&IN(pNHLATi-7(dX4xz-{6;A)$VaN1_tL|5Bp9HPzitVIW~lcj!+N86)Q zDLzJsvUkmC8ET%AIW5YEp37o9*;LmOHO)XikoA1Zrtzu<)~cAO=EL;jvk$%tO71k| zfw`9HlyM>1(X;N_J-UB~gnO&AyS{dEri@7LoHp6F&!`^l(&XvH_Pbx0JS4@L9^I|K zU#A_vzb9Xqq`RK~=M+K*(VYrFhO2VvS*Y-K^~(h3S^==?TVa(w?wgP6OS62X(aioY z8G}3cxfU@#JukhwwMZK9hgCZkJopFWv}2-gKt|_f{@!g`%jP%C?N>FMR#3lu(dWR2 zA7|uD?S9vcc21cepLp-=7C{~RM77BsTtJ#3yWN~J^Sn+oRcc%#A|<+aplfi0zQbg` z`?|5j1hY-1m)0$G6y=4W5b^eMDYM7%;GO z_Jm|-(ddj>_Z7~QO_$w1sn6^?XEf>gQU9nz{aA9dmR0G!Mv2m2-Z6 zqi^_%VbhLKeW$J7-Q(^K8`7sYHJY~C*R9vcf;FMdokcmtQSBmHXAkU>WI1K^ieafE zoJHfen%-gUN3Dy_d2}E>VCVAth9Tn(YZkP3?llXgEjB)*tr{Np6j&@`s{U8&j=JX>gOUu#|R#Mz&5_*)gweZ0tRK@}k=M2PbC^u6%K0(ZVekd>wK7BjkMr zcdhKYJUBN!#WyazWB0+SV*(ua9&zq{M)Hj-vtVTIuwi#b1jl9nrTpIFxzi(>2gLhz zRQ*XfI<8u0anFIHPmHpCsdIN@uhv@<)ZDkyC&UqLuhv}x-RmwZ|L1j=x^2u0M>)P{ z&V04KO{P$%59&Idr{;^@_IcX=CEYd*Q}o`u^xS)6`Y#o|+n&9z@NvYhO>JzO8A>SsW@6}2I2&^wP$A2?z7T~&7I zpX8p_!SPPBw|(Z5;r$N8IAgY3eQSEP&sy&^)D|Cjj@NO~dWh=vJ!(`v$A*46!R*fSUXlN*{Or3$26o(UQ7SYngW#WxkW@>D1X8*Qp-< zYNdzs>Z*yMh2c=PYvY?bsnSWslPk5nL((&iN+Y!PyV~!Jc|n1F%f_{B^Vutve;zk+ z|KORcQhSUZ-a6X*gm;+TvZjUIQeHBDteLo{dva3#i1OaOik>`@opUI^;Eqw9%esv! z?OiZ&#}?aGa_wham5)B)I>95@Ek(n?UO>H1*`z*7VQ}E1<__8B1DUmUZMf5EO{lRd zD$MOQmF9LM>=MzVEYdruGa{VFLz}_;Eatnk+0}1s;Os$XwQpOkRO7xLcg~7nrv1nK zCg#D~%pMiYu(isxne@Xv1^>m`KmCr|KYK#)-(H*Fg5IIcv?;jHtoxgJNSiy<)4!$7 z%;w|%5%hDknHCcB2+W+DfnO(W-hjEUHZ$vo`#i!g*Wt4(0ke{Ko_6OhMCHyITbDbz zi+L07oI8SFrZ%hi577R*XfvT&PigloZQg==cWutr<{aF&Ycs##$3HheR-Z8kVrD-m z{JUv$L;7k;jhBo$BQ{6F;bgV`n0mfVJ_3=3fyN}6EKg`W}QFUJX)KH zC1;0}`xtGmM4lDeT&~S0aQC++;;z@Kbp90S^1;bn!v7g}SNRLp=IxkcwR?y*tN3PV zbEq~?!TnC1-z~Ly6Yd?fIZT^X{=4{xYqKifS=yah1{Gi22Wx(Q*Tbi*(%wO)>;h17qvG2L3R}1q2?o3wuo`>c& zx5VcT!^i73OWr1Y{Lj?rUCU>3FQ;`91NXHkEqjeieDY|DeHic_$qvZM9wn9iz8zNY1fCjR@qE}^rZ&Wj55_cMchy`?aHtdlK$gHE>ciSn0z!aFp~yGazXojDf3 zj#c)s`k%?IAz1=i@bd{t1H6MRy%CC_xJQF(lGUN$GoR6eRaG^ucsqn}3SH+TF^<(Tx*d6s4UVD9j`#(C_qc}*muY$*>;sjPZ7dQ5yIY+MM0{h_*$y0L|Uq}q*zTTEkUt~ z-mym0*FM@yp^uGv5D-%mO;gg-5>3Drw@n_jX${9|eE@<8-%4#!ipZ6q$RY(C{ZlR0a_*|eC@ma(o) z>@v04<1*%nX7l}S8&*=`>sY*C(c<~pSvg&ZyT?y+5xw7ApsAaAO`5gvF7}bdq6LQ> zTn$Feu{2s5ef%-YRoZ0geBX+aVYm6sZ}!CI&5wJ}?2?m}J%8~cf;OaMmGQ23G4cn# zBtEAxxQ+JK#ptr$9d5{X-tjJehw+Fkb4;>Az198i-YT|&&z<>5)61L2>ZGfU%RQ;W z=46IKIdy#z@V;G@9$n`R@v38zxzNo+r~=jo$a!z>_(uN19}g|1&5*R!=0lYEIDxJs zIi=t}$mbaev6|n-Gq2~Tw9*izh#4=u5fq%ociWTWdt@i(9%eBhgfdjR^j3)UHfT_NTunjHE{B`egmXy8bN(jqkbHz2E0b}E2|!B=WIW3;ync` zM|Q|+?FA8Kgr};7S73i<7yUNwb!CMdOIWnw97wTFv*Bps!7NCCY+Qt~su6J}wMpBZ@N=h!Q zec_*_4-d(W_Un1u%E1$TT5cO$G`jbMjx7fdSTgeg`_D#r`$65(!=+4amtLF@Zokyh zcWkG$EW;=mxgsNFYe8IE;gs}^r#4lkpxV1-V^4(-dn(YC)g5iF*R%?h_grm$3CK`^~CXoK^O*uOCc`iVOB>`Eu0qw8+5h zu%=;A`FU}?vW;Jhx1}Zb@7yOXz?qZd3`iQ(u_&d}rjae2O=B`cTDQ;44-F|u>lhZ1 z(S~%>bM?jr_W0!ecBHQ=AyT$ib&#avdZQciGDz=I)$=OunRs(!?~V&|wm6cuv>Q1q zds14kBf=^h+bOE3^8SZ+*&mE6=;7?qs_W4i^B!Mpg$AXzO>7&I8PqhVs3NtgSM%8R zGhgl=@k~KbTG<0#Ka|d4Gani-SQ>}#UHa^V+aK-UeP!-YdHbS~17pLRM&?9?=caTE zZlcpyuVX}M;#TuE-u>3;XYB^&OtKQZ#0 zz4!E6HS6KFtxK%XLtQgUhHmh;iko;pv}4+xm0m3}_-I~e_aH~R&T(zxvN_B+Rr;t+ z)JqFmcWsrjWJY4-qXS!}l|B?7wQ9O_e$i`YaI1ca;Z4JHg96+4Rtw$Kt2#%0-J@Q$ zq+%ulb>wR4w(xECELE{|MTA_{)jEf}4pUb{sDbLlnyRH0s`@D!>n5Il>egx(9UF8t zz2>L?XkRX`v=7!?<0bEGB^6iaO5>&4{>Dp=wY5L&HyCOu_kWqy-Z>t3^~Dsk+Of`_ zxnFMav?B-QOSBK@-)c@vo#Wy*!X9dtokoDNoz_z3Mn;xoD=g}n=j@r6*VCDIJ}I(w zcDv-rR@rNudHi$c_3TM_4>4ZIoZz$O3VFCH!oK+($K0gZ)k0ccy_ye>5Cn% zc5L;b>5IdSR{d5lUU;XJIo-Z;w_m-Arswq|FZJ4)Zm+W8s>@-c_KJ!hpr_PaZ9;vq z)eV@t7OJMrT+z7Qvd5g6c%tW`H3MC3)})-NiETROJoD~@OOF!UFN4k97?DKJForpIrBxU_J zW&O>kbwU>NIk=R<$EN*m|1(d|zG@h8&bS4mSKU*3s8g?mhJ@9ffpn%6xuwT{jR%>9tdLJV_*2&d!Gx3|J z%b5FIgFcr_F?9*v=*)*}c8ocH>%NNLoL^|$*I6j)UfuPZa|;tE{IdNC9j~ zXv)Y<)i{nJUaes`O#5X9@a3=o&he^)yw*p2v8bJ~NlvyOt-XurQvP4(ZjaBX-|7pM zEA#sCVQIek%onG^Bf{0ik6!T+5#hbtM0gpNBV71z@Vn1fv|StL`*6@Baa9S9*znLM z(O$xAEhA!^vxVs)KxPF@1HpC z&y}xy)@NKJ0`9#QM%`-I|{g8BKydbMXSn3u8W{VUworI0t$+ zdy%s0%6HOYob#93A-@~%m-~~5R)aAizW5<~x#xYos#ba(_UVcl-Px_l(H?uxv|H0E zpT1sI7wmP|ZLd7J{#o4BRjGdR)?f%wg8##$cn)`+?2+ZnQI^RqvO-=GQ^Xo(T(&bS zIfa?KHQdg%O57ta(X^N8=c>Me<5}$2GxMkD*NeCK2Hkq*5l3J<58HY8+`uZ`7F83O zpNkjO@;xy{juwT)wk2F&=jNHkJnHXJW?o+rmzn39$?x^ZwVpYtvxIw8Ft@}kS*183 zKBM#bOwBk^{?5Yv9TAVsUu91?wh;4?A6nU6w&z!G*;jsw@9D_Bfoq7b5?(9)ypAjl zkATmc?&mFHp&lO{hk3+7J=-vEaX<069zynpryXIaSg2>e`&qB!u%39Rr;JoM>V7JT zStX&bsmBIf8e=_te88Kxz!dBnLxp3qxAZN-y$P&))R3015dLMJ6m1-8 z81XwwT-Vp5kT!G^d9X>w==TPl;wsf$NF{GPP=0R(GLCqv_*Rp99vnsDU`pHT=;pcb z%N65@u@C$n6IHt8tQS4un8E3yUc~DyafdD$orzCtEu{n9xdSCFo77aL?5tQI?yi@o z33KQJ#17Wb!w9pQeM1r4@&0?tvwFWFmKvta5xdYGR6eM5Q}Mo){EO;yiLDYkJ;^asN`2Exm3J>94aLPby_JtsuXzq zdEP2Tck&IURfN8PN2OgVw?VXl&k0uOeE6LM?k5cvizB476RxU!F5-z2&+%l7efVBX ziZ3DtQz+A_gx)Xy0_QSpcQO{QRbn%874ZG-^`zl;>hN^R#ZDf@?+|jU=WcRz z75P1$JS$|}RS4HN#P4vK#@qFb7pDog3;f=uw*JJ4a%JC|TG@qr3m*|L@}1mo#i!)y zCc=GF_Tu?gKEg9pb|TFJ7B;y(VS3Lkt9*AyFQ zpM?A`%cu(`Uf-%RWJKw_a?;YyB)py?Twbb+w!g27u6xnuEQjnu>3Wu$98bxpCO_s; ze%E7Ct*)!?zDbEtWl()9U>^10Eq?bU$B*JSonH@Ach+OBBEQ#TcbOHCqufjXB(}xW zC)N5s0c8<0`Kv@eapsE?|(DKSB;ru>bf&MFSC;Pw>H zTbMQ=+dX19Z}rg9)*VKE^;^~KnRVau4Nh8n%$59Au~YGD1Ers~Rq?Xm;fbBKub8mAl@#zJ%YDbEwF-yg1DJgS{SqUQ6JeMi+-F3W#pE;j}S3SZV3Pdki(U3+da15q}pbwt!whxwRo3w_v}H za+40fe$=cF__S4}X60eEpaeG2kQnxB;e_vzw z%2d*LHNU1{bBK247v3Y0Gf5Q6I(qNUJfo=>A1 zJr_AOa*`*I$G^^>oNB6CB=)KtARl~?W+k!soRklz9_2TBI#I*n%TrEm+(ufgCGXzm zy^QB^aa?vG^alx5h30u&p_b_|59rVYd_DgEAoenw>GJOsJ@}%mYT=gf#gf^Ss)vwa zI%|JRcqZ{o=JCg65-EKr2!y(nR2X%Ay?CtVFMK6gKeTlVM1I{BqXl_3UiPoMg0wr4 z@DAE}^?sbU`s?}q1nHdxI`CIfC|89M;0X=&_ikJiQTJGpl5Aplx_>v;ur5KPG%Hny zJP0Or)NiFBsJiVzBRxv%R3k_~4?OkM^Hz26OvS_tf1}yP? zCsF^pPW z8BypR#J(Y|?EBCL#@OE@ok|;4T}dhA)l~GS_MhvbaUsp>)8Q~BPsKz@Jq8`(9_V|@ zmJL$b&!SsATlcOQfX4A(w<=(?#}#U1<@zTXXKF2M3*)&D+z-7yTzk@+>VI;t3>C}W ze@Dw*;uPaAQFjP`qv=)JU}lXPovl#%;;%oy_%tschE~rxo?h6v#&EZGFQA3#N=wuk z%4}Nmc;2eT7(~0gm>x}y>ewUUZl#m4i)YuWIwRVVb~sb*vY~fSnnY9T{YJ`sSK8lF z^rfb_^k(c3&$|<5Rd<@XM~<%Xqx#$QH#WUxr0~Fr7N?%xJfnC#_R8%3t*Gf|UFeO@ z@RIv^g?4u+Pa1Bj$H9jYs;SkxALe9br~kTsDHBhl@E=7hQ%}81BR6FiF8;;ef8Fr( z*8QBazk#c!Rz8$Qd61THzvy50Yu&G61*teys+9-D@DnVZIC z)8Mz^*DBgik7*oZ)FHoliYf2v@lbi*k@#FCrZMy2Bg*Qo)m=lU8Lg>C@Yf@QhuUK< z*1FV#!u_baqF}^}<_h?{jdJRsTs_OlzA{odQo)eu6qVR7rOY@Oca=$@=@hN&Q6YJL ztNi!a#_L}$*D`Wg*=v)FgZ{gVd#x{Pdm(+uR|om%kvv}ga)+jVb)l{43q`fI>&tk% z5R-aJ-0h8n^Q7ttH-47k?%!d?PcjVcjx)df^*5RUNr_{116}U25hjm|T#?)OZG4#rzXT(k(=RS1e z<-u=#HnuUQ(Ms`;U7LO3Hm$+U_1m5Lt~~Jk{ge?lzm+~*@9wt4MZ0Nx&u`D$<9}Yg zFOQ9WD?QN@zSbGlmjW75=(5wu>@HU~*tqF$qon_V$H7=L4UA%rpexUDT9o#TivrQ> zJ2HplgYG;D&E_p;iUu>Mk;)n~J4<+4(55T+qPh6MVK6%OLb#qpr;Ea7DqLD|6VVmj z8>t?t8Xf&LzE}4EGbjC+iRptz^${~jnb2i0eoRFJPa}*Fq#1|n2)?uQIWrm6^e0`! zR`E4F?`Cw>0uE`644d)pEIP{BjDx3(08;ypq{js0PNnn=WYitUC}AL)dIvPSj>y%K zmV|O%|8&GgJtaKb#2ospXxiIDtbv8n21e0Nmw>kD>i3O zw2RK@5y;42OpQyk`}ZdDb_D#VqbD4t#4u;hjFp-{u4V*M=4rzj$=1(0-SSr{H}EE@ z2R-HvZiM}Z;z$2c#YQ84em_S17E$8ArT1JCzTGh7y?VFXc>AH5h-ztXM|9^Nh z%AKIVZDgx7o#)-9?yRfD(cCU` zk3ZV{qWU;|&J4lL@%j()snNfC20+VM7ij-QOXPX`+iz;K`;EpHtjzWAMPjQqyWgJl z5z%$uYkQx%C-u9xXrkXMML+!}{`!rq`b~UPTs-mNlt7*sR`(^X(s=PFt%>Runm;Az zPHKMZ|8ms?PXG5SCAV6?VLlNJKbkpARTEmN*-7Rt%fzeH!0wb+2RSs3R@(JXmoCzR zoxzR%Jw*OQt31**M9qa9K%eMBu7;~^Wk~vZJ#`Vk8e===^Jx9N4PfqMC8~x!K`CH0 zz|FA$oMJW07i0rQ9p2D3i2=AZO#&B%Xofu`!q+K;x}B#vb}g#GmqPeufaTyAE5i`^ zGx7-Z0q5AOgnck}!Rk$TAt`|HLg5>VUFc`m3E4sqMG|pKJSRj_ zF_VBrV3!cd`-Es81GWp1k^-RbfP2SWfLkhVse2iuToa=61tHQ-agw`ChztVBK!!}- znefrLDnu72JG$VVT_HqHHdrl0*WKW<5V@pJF7NIWz;5cm#(b_jfj zz-I`2hu}WsfDl715DD-%vI|V*s}ivp^Mq*NBs#Mu?HYAO+-uaxfQc1iQc?a0XmvvA_b60J^eLAx06u zQAvO}jVc519tH1FJAo6N0;B~~r($#%=mZME1h4>X2D`x#a7BnQabTYi`Xl*Mu1B50XG0CdFof81> zS$Uus!2d2EfXCTkV6G5zg28bi=HhSe0ze$*l>x%I+aHtzCsX{m&o2eYumBzlioj+7 z{X%#wOaYh|VqP=@ToGb1eixq+VhOZM_`T$$5KB7&+?NvOGWaZu1IV{*uRx^*gniE; zA(mSJf6EDb1vD$Rs_7Jf-<9WtSd|T`0pYCn1xWz6)k^@htM`Iq;5@i0#2RSUwj7f(xKVh;`7dO9A-+x^;8GMz9MU0%yQwp)QOU zRgoYAYzO-QajyCjToYowKS1X7#C?4km<6i9PT&Nmz(pbMCC>MTflipb{(x+rd6?T!@XO;G)n=h4+Q=CJy)22yuTAs0IhXNkDw>$9_{J zAP$@Gw`m4g4WQd}2%G_zh1g77Hxt(8t3o`$`vJmvutG4!3?=~Vx8iRrejf4#d)3xp z0MBiwgm@TPA6@`12(ca6w;vGVk$iAQh#koPs1K+DH9}O+1?Pl#4Eo36@i<{Uu|$ZS z_}l3eEH!}5LOf-GS>U`7Pp1HWKYdb&U3mcaUB|#xA)cuO@OTE^&#nfSh4@`5Ane^4 zU^~G5IetIK?>$N22!Q^1!hF68;J!B!lmlpf?*kSH@d9=)VE4iy!H1PWCD;qD2(hmW z;O~#{{UbDg+zQSJu^+nqMPRoOfAR-AL5&axpg91a7dwFiLL7wVAoMR)0Q|mmO$aA$ z&SHT5%lQDhSFn2p|F6R55N?Og3-KB<9*zU2g!r>Bm<9F;7V-fy9yuw*>nQ-0sP*+BE*ScfZYlBoLCLE zf?ePMI0nvu3qqXq2ZVcaF2MaH?kC~>jxQ(&Ge8xi_KNSg(`BWv?4vqVIUzn-0II-t za78fb1N;FzKV1$s1Nfc~2E^xlh7h0e`!jxj29M97`yBtDL-RR&KR*R7vQrH{Uxb0( zLVOts$^dcvigfvEE+8Gg-U!tDst|vJ@89ylRv|9it@1;193rfM4LVO4PcPGIG0H1##=RbH~t`_2Z9{~UFq5A&u{*8RsD!~Gk%QY6Ylj4kPk`$Zr67MCpa!dO&MRv!MzsuTHI=DxY-q6Htu!ss@u!ZJO-%mbuQ;^}`DX!Vh0EhS(u|I$hV>anM7pw;O^*+bM@jd{3 zlVGp_oD{NYC$LM%X838gSxDb}a9POa%fWVlpBB)!Aj}pQz*QmrED#4W05pEk`{U2Q z9Lxn90kQ<(FJJ~(0C1fCWfkj|7xWJ(#`~~d!ozm)Y_i2~t2gz<=m@wlhN8at0urmS2J^LWcQ(7_b`PFFXS*0q~B<1Ne{F2;dz7 zkBF;6wz2@Sw1R)Dd{7E10RCES1$)6U0DUXyBcYFkJ`(y!=p*47ITt_|c@7X(sg=*>;z7L+^wOF5+Dq~D+-z@XriEr+6RsR=%T&^SA>j)HX6C2&j=Y) z2%w80tTy;-Qw^YLyOjf7K7cS|7XWDE;2C#L$oLHKrH~1{6OcDifSur~kV)`OIxb|p zT(DKh^=}EYG(C3u` zWXd}uWG@RW02hVqEdX@A;nBMgOaS=py%iu!Z^G++9$Xc&4{m+%*XJZ4to$TExQx?f z0Xzz@FTlPpeELG$_e*e1$bS9++J4aXs}ZuW3_w@N@BS5l-vg?^P5_UAGr)FmK**we z0Iwow2Ek(xZiA3-&}QHS#AmPt%E37yhd?_79>u|+0>EQv2B-vk!6_k2pf7>GWG>hU zc7a3S47e=hFx-bl0{jgt0`M8O1Z)+u6#G)_heIRDO2|2A0Aj7naLQc;H)!>Sd zxBG$_LeB63gf#=Y84JKkA!l|1_`d`CJGKgWr$5*zy%0hOA%qY@QVD~Q z3KJoO5JDJ)5JCvy`K`0AF>&Aj`~N)m=kv&S_Fj9hbzRqbyVlD&XK%0!tOr||b|(W} zK^DjdW5ETC zda#9QcQeoxWPyAz7EA%N!6MKGHiB(TTbKzDZz19>M7)KFw-E6bBHlv8TZniI5$_%w zL_iKG2Gw9Xmi`Ob2s8D_9HK!49U~n+bY?0bmqp05idSupF!hTbQ<# zfvzA62V0o-5CdI77RU!0mBs1#3Y&*uk_FnE-KDAnuBMFcvg`nE>%uApVLrun}xw+DZnH zW@S$>0E_~NzY_6R&IilEdVsjA5O-BqkOlI=STF_528%!&*a)`aE5SC1fE-W^s=;(H z7qo)4pdIXB+LM`}Cl~-mfd()W%m>TCda#9QPchIHWPyAz7EA%N!6MKGHiB(TYqLQF zg^0KBLO|Z z05A$PfSF(}Xa$h_bUWC=v}X|a8QAeme^3f)!3;1DK<+ab2cCi4XCQZt4|)K^U4yu5 z5O>WqFb6CJtH3(28SG@*vt2+hkOX4@;y*hBApWz6|19ETAL{>!=V0%1u=lw_Fa^v9 z$j@_-^Bi|JRujseRQ>vX2QjJPisgIa(z zFE0XX0A#nhEm3bg&#C zU%&MPW5HIY?VJX1{r4UK@&AB5e?Z?KkoCtFru~WZf93$h|8oXd1a>mciopV~m2oWq z)4&?WIX;5t0|4%cEHDRbU|jD4N&&+9cE$~y8#p&MFm84M2%89-2wOeDbg+?e8#3%E z0J0q)i~@+~tY_TK1cd<4!g6un>js(uWcWE?F5?-9lTi(pf^CfN2HUXb!?Dl9cZZza zH!+?W0nm{NnR`I@9%* zfw*=cWFCmL2hC*sV8}dp23Q2v09=nCP6TNp4FG8(TNytjA1r6Qdsl$?hr<3taqQ6( ztY`c%q&*xq9FfI%&mLetK)NF#_b8OmI%hu-)W z#uIZG?^_JyaU7;z`g}9=n5d` zB-}fx6d=t>TNxkR1wh{5F#z(hcfkj@GhT>zg@{+U0BmM_NDlxxLuP{Ij29t{y$fD6 zm+_&Q0N00ZWW2Z+r~tTrG6T?Gf@8@Xu!ZqqIba5WeWir}$Kg{L9}xioNP-5i2;km` z9gL5J%#pQV7FY__fvt>>>H_)$=o^K5qi}CDbdAmguzfUa7`=`0Q#OK~jGx*A6avUU z757fXy)pSS08^X!Pz%}T-m091qJOnz;Z*AxT9ITLZt90g_p=$g<2K=%a5s_g|Jt9A}p3f6#4 zU_0XzVZ+23U>;ZoaIG!}KyDrM)Zt!zCTIqbUB3WqV7#G$@w57a`JkO~?04`+#BapC zCR}eS1Y-c?H$g@d%b<)n|pyZjJH6}q$!L~&S!iIj#ImVwTz#Q@Y&PAag9`p9^5ybRF~uNIM;Ir*C8Yf*dddECPsg0j^yLdoINF3!&%2>0kj^1GX@Jkq@#! zF=zm@!7{Lk@fnam1NUYi-3-W_f$K9+eiz#S*DoFgaQ)&|u#xdgaQ%`1ApRw|ehIE$ z0y&pL&ZWHo;$MpEmo5eC!A{0!_5{UX3RnPeedZ3vFT?fAAm_5#U=6^v%OT@(l)>e5 z0peW&eOC+s&0rCLu34EN397*y&<3_Leq|TXAK?0xxPIkYu$}R%BA^sZ2e9j^cE+#v zK@O+|^8j?sM*7*1J9`RP4j}WIZeR?6jn_cWwG8BgSzrs}*L4L5Uxzf;Edp!7X2$3A z00RKh&cVGouxCyySO<{qdL8rx#h@9$hU;3C*ybG`kkY|6oBh@;`*IC7{99v zNCKq4Yc@b0?%D*9W&!M2Pza`hd0-vb%J|*gKz~pR=70^1FU$g~7{4bIK=-0)j4#Hu z#VCsui@Ue>K*{AC^FF#ZaTudHSKRmgdDC*$ke7=I0EULVEy z8{HUxYZl{g+l+6FF#Zl?Y?{aT`(43&hKIxeT>D@L;~yeTJLG({mGO^fF#ZYdeX^YK zPkVyRjDNO(@y~M@-vXPqApFG?#=k`POT_sq0MNS?I<_M1*FC^`#=pV!Z=mPfEHIn# zZTXCUrvvEu9%;Yd$oLOP^8;jTp9Xd?{u9DGl3)|#zaadZ&-hN{ z6B&@P+X5zbU&llyuI;gwi9NS4vDX?Vy3Al=@0m>OgX>*&06qKR$$I-UfNKXJeYb5) z9MsH21a?K%GjRywAA)P$VN3V9ppA(`BVa6m-X4&D*iI&n$OMqlGXS`LBsh9L6TK1c z)6PUz1!x5unaD=^=vF3z*-Ru#nK;&G;<#l@96yE$%*DhBh?k4=fjgK;<}eWsU?K(m zgQ~%HCNRGe`Ky>HKpqNEPA7F?Vz3S70OY$6=Y_=p`7PYW#E@DhilDy;X@@Rn;$+Ah zhBza}g0)Owo+C!?WMUNT865$enK%XUF^>_aBF?FhIR@9qAl{fAOq>SUr*{Rg@${tt zY0p6Xv4~TKwB?9X*`JB3DNNMBwh3F9I16!_MlsQ{iit_{n3!D3#1zPwI+qEI*lb8!LV&dR+(KLgITzvH4A?RQc3h%^ ztxRC-6PK=GVkQFv0OHO>US~qz%yuR&vjJpXhIp6F0FZI{Sb#W}uL1~P0ohk10p!iX z`7GEpYZicwS3=K~0jK~o0j^yIc~^}A2w%01iK{a~HCV;OY#%`WY@A=y6+q6lJ;8La zmWk^k0LM9ycRk`_+z~g-VB$vDJ9h^YH^Hu(<}-0K^xj+zaQ)`(Ox)5FK<6!pd&^P) z8Mka^Vjk?Bmk*F`-UcRah0a?MzI6(i3pO!v8|=Le`fo#=+ZF+&y=@y4wy^8>HxCtLR@@SAnw}A!~&cz!1)5?eZgiX z?ydmKm{`~o^alvv;{$nY2RoQp)D`4_QD6#~30lEMCKfY*w2O-Y?k%1V)&khG1o>VP z0Hj+o4dC9AHUK;B?Fy2h0n7kMvlM!l!iJ@_U^x@_A^m+lKp{Z9`;h*=RwnMx1o>bN z*vJINCh@>JCR!n{bu$wWBK?Ciz&x-F;NFAs`c5Vug3O0{0mOZ13}^Tz8A?~WRpdBFY6FmTIcmg&&0UMr}0p@{aU>(>Db~5o~7XW*oOoB0> z8O#C;z$&l-AnsGs0FKx<7T7lyZP3{Uoo&$B2K!bI0HZ(y!2Q+o8ti!523^5cCZ2(e zHQhh}3PA;s*P!p&F#xtdhwyWAz*4XVYywF8JmNkNU2CCdE%dB~p0zW8P! zG4Wy&;QYmA0J$$N0IR?T068z|pc@E4A%NVM5O*Equ3O5)%eekBWW2l_!2VZqKt9;a z#H-a{2NUZvK~I1*>tV}!TwmYL#B1}Ic)b_s57q-*dt(N`^*5G*bpUd(4=Xlw0f@T+ zx;BgfuwlbmCf>~YAHY5AyNb6W0CC=e?zf7;SkM5bgV|s{Xa#LxJ!l8pn0T9kOb`KC zU;rovV?hI$4rYV-pcS-%^`ISWV`3u%nIHnPzyMGT#)1Yg9n1#vK`Uqj>p?r%#_#}2 zkO?9n3k(3oU@T|=)4^;oAGCrtupYF7ZA`q|4a{NUJsdaX1KfMR7~uW~T|ps0+7D31 zA7+C705U$@%0#;jdVm37CTImH&vxAV2=YFf&BVvO0Iq#9i;2yslg+4)&2zzeu#JgN zGr?GZG@n7vXSnt`u6^DUApAMn!RHMC^0(xGV$cd8b4xqe#>5wh_hkUEAIn%qHt&Jo zMNVKQc2P6gP0VJ@7^&^S45l;2_R)5evC{vY!P@9tW10ARj=Ij7uAN5bc!8sa-Pv?( z9p{hHxxswxV>&n4Zajm|ZTu#B0G)g6Kz zr$y+TuV*<*KP}&5$6_l>ooDQIIA2QV zyRqtntMR+hde(qn**4;-K~=1pHM0ooiQnfQiDQ&y;a?1A;}9dl1|m)~e$(2F*p;jd z&uZv}s|9$jO*wuW8o_TvYw<6F-^_K$YD$MHk){%9CgE=dV!AAevoj%K1b)34LF#Ip z*FnFG8Ns=fAAyuQ{B1y-agbYscoC$phu*UEJ(sb(`i7~EHC5Hkk)Gv8Mxt3+vB3J_sj_iWWkqi{S$SsJh?Yosby;0iWmBZA zu`*Iq7inl2S6fpasi>b=R#OKBf46j4+D>WX5ZF-%7>OBHR@W36QeTHF197efpk^ku^lqweX)LcCU*A|&*}JY1w^O@V(9uRZ+UmcyP1%lR zyOS+x9RAiK^<=bb*;4+5kW1C$KQXguU&nK%vo`|3@4&RH{oALyH>KR z)AuULFIAvTU8Qwz}`qO1h^#uS{E! z)+_TapO;Vrc`AR(2bQBBO+O)dv zXPL-yYe4DMLw^hON((!zsYvHQ)@cpOs0A|Q-3}ccE&X3LNa?a1%3)ax2hYEd0l{pVbFl$>gBs-3AE%5hD3Y}x8Mb2K?!9uuMGf7c*ORi+$| za%hAU8ItuaTaMBwM@yNL`gFdV5N{mD-Aa^}EN>O3Lyv67GQZMGcGQr}xonBDPE-qP zf?t=tvox(qmf1MOkt2I&9dy=IN0~}p|LO_k_$lSeRwnb&Sy~-^rL)9#^#Qx4lev?# z2USzj&;PxxsnU@7k@ElN`jq*UX;s}%OdnNPdaI5y`k!lC#+jO~)A7)wa-_zGj*|LM zX{C3RGc0Al)Go_h_T>(bCT*AfP4-Xaj|K zJwbV9Sw0=TsS;Z>xhhQ2n8!-%Wy^nq6|%p|6rnN!Pf{k*v1{{8OWt?EP}Ik)6(<|zwC9g9Avwavmw>@;|YH#^?aD=S+p?G>vDb9xBEQPa?SPzz@ z@5v_tMKGT$!JQFUFD7v{i7VX^L*9}1yQh2ONSv3le8d}`mZfBrAfA*x8gZp;xza33 zhXx~l5oAfPC!cO2b%c;6r4GfplsyDj3vrY>WjvWeJ|}88!t#6&t_>u8MMx#{Ama}K zrDSO-u6JtvyH!%M(kCq&f=~(M=abFyX@Lc4dD4EVKb4kSlujkn$&!HAfqIG9EAJQ0#y^Ltnv`67`kPQL9nYdZH3e% zb0=d;t4eV{7bPOoORa;`SCwV5Ok^!fTRNr4b(GYt?2zR@g5=3IAoE{{f3j?4ISxx} z2yt}?t|_@nY6MovoJhM>X$(g=iI}n+WDcbac~91gEKm9Dp7FSRVm2&DN5Ju$*5;lBTAlJr|y~yDQjf9COYdw)qu26whO7Tqs%&MU+R=Lci1Ca zvutG@_0U-=vj538CN;@cAVX4v>?5*`$y$>4I{K&5(NT}X(`h@T%5;Bk{j!zGe$)}K zBi(=U9jc5vbW7Qtd6%tKmZh>#*0L&%|6Q)~@*&1GIYKt1{j~DiYR22K{!`<8=Nw0k zJ-g07WodMblbxeThmRhFkwvZsE7PUc5wG*AELFMskz-cpDo)Dm7?b~Xoh);ycHCsV zU1z@?vkx_kRBIzSCMx^oj7ZMY)m%`{`PAB0%`N0iT&=3*>|d=+J60`nH7Lj9zpwY2 zV51!Sr4>q7$C%$KORlx#PLZ4~NNr7jStGTn()>>|gnzCO<;qm9LmDAxa{9bEZB-q@ zW$DpUt|n!ivk~rCv#9+5nTO80`rqoHBQO73`OEou6Izg3Q`MwPSk5PVLzm2%v{bFn zI?7ko$N2O;IcM##QkG+9>yvZrW7BDOorlW#gq*3XHl=m~-UAMThabitVdao0)t1BBTu@hX?SXS3uSH#O3L-BE0g){kq(c5h8x6||INOIgNjuC9!zea*7+^7@Gl zh%O^ES3^3sh%4)wP{7^OMbiC92&;&cH8s_j*OWmY_K(Y3CRWxpmo>}1*YP#A*kSG| zC8iTZhSiU6o{Spmeq`E`#>$4q`ihqF%Cwk@8f;$IjB9DGOxqwe{FR^=_NdEiTPma_ zlWUr*>sy*(%)}Z}BsHYB!?77#A8BbqMrC$-MJ86JbDiGZZmRAT>D19n>g-eB7-_1+ zE;(Y?z*NfqKUB*+LM+M*3aRMQiY8arPyAO~BPgixEsb?GP1Pt7B&?{9G}ZTtG_{O7 zv$DKdUQuOSizX>ER9;_KQ6mei=~&k-MOMnj)laHS=Roc8rw#b45!BT;qZ-gKq*=07 z(uS!PpzcMQs>_h6ag|hRFauls@=|9$>+8@i8Y2_y(O>>uwj<3`8!E?_K@s|cH0p1K z5}8;wRmz`OUr{r@MmDsv+GaF8oIq$7P zk)b7#f+59)1tG2#6y+5TPZksniVQ@$qM@ac!h#_Mr4U*=G@X=06@*BaiVO)$^70`$ zcVIzbLFwpTkyJrxk(8N&(A-FIZb@lD-tfZQl1TCJlH#GmLdZx$Y*9f`ssviXAt5pW zL3u-qN0$@~$}jDOM5VacD^gmLn+%8KmJIGCEgXt0mqgN0dc#V{h=e0#;$iu@g@uuU z1*OAEOTyeCGOjG0K}AD{$TAvUl*}zH7+Mq=7$PgV0}JIv*oIQbE6gnz(kqh89g;gp zW~W1mj7Hh%EDo7qP*@a}vPVhaDkS9%EgBY{JRBDg zuR{eYBtJ~&0~yH0|9NT4(%COUcBP!sp(Q8~GG%1Ju&`Gox1?a0tdUg7P?#(06DedK zhod|ZwV;UXm31Vq$$Niq9f&1UQz<6H+(HOMBPsgVxM*GBl=8|3^tGmr&aK>I+LbE* ziNOhdQaJ&%=s|VpxawN^6#WrBD?P+15BHZJNPp}KPoH+b(tW^1Vl-0jw_;KyykL{` z_~_I1(wR)I!C)$fmd5&t^)&7^mDNHSQvDSxQc+n}i)7>&(aHbr5IP3LhQ=BQp4?c| z3}+H4Yr!ztSaUWF#n6z>)jx9}wfxim#>%D!j8rv~Dr=|qhO$OEo=JP*nen;gM9O;F zHnz_q{c z^Zn<~Q2R`-nNZWG2JUc5?}qAzKID_}{R4(?N~Hh$b7T5}l$r{4{>{k7xrSH*-=Q$@ z%?b!P4VAvB+y6%GKZSTYOWnJ-n+5Pb(?rwOV^Feq5ZG;_y zeV#*E4?I!#a6Ce_Cq8*P3g6S{h0j3c6Sn0us-yVSI=~a46Zq^p2T!~{7Ei+NkEc?f zfM+NVNUtaJ(z_I?^j<~*o{&8lB`^eQO}Wc)GS;Yar(rnuBIJ7nMk6n$vN3pT(&=~% z=2*+#OC2QVYw z#;##+u?=`HRW+UtE#ClgChBkkRwA{i$@!SKpM^S;)8|#O2@O12H zY&p9Fk8nJXO=lOdt?V1NLc{y(HA6EsOS9SU><`V+T+P#byq$+>8F=^Q?wY1$;>|jH z;(a1rw7s=`@a7OaxnJ8~JAmzAzu@fy2Wki5dBPFx5Usm*sMbR}OgmgV0#DaIQaegJ z8qd>y8_&8v25$-KgLivmYf-$NC&0^u6L|h`j@C~*7SBxo1n>Rmk9U2XfM*jAz_YIh z$|r&2O+qQW%_CncV6E&y?Idk5-aa%$E5e(Bit!}z5^Wg!jqPNc*{515-Ul=S?+Y5G zjmFy&PR0A2PD{U)Z7kjgG)^nWdrK+b;oVeEYENlx z+G_1-?HO&2_N?}t_B`HY@PhWD_7dJf_p$==3pM;qK7rTr ziM)>2^9FtvZ{$t9nYZvsd@`THr}DG;IeZ#Fm!HSa=hOKG{6c;apTRHYm+(vZOnw=^ zoL|9b@hkaN{Axa%U&F6u8`($vIzESA&u`#2^11vbelx#?&*Qi9+wf?;P3(Qvj>qzS z$ZzNK`5pXDeivWB@8%2nJ$w;g%$M+c`BHu#zn?$ATls_hA^tF5#vkF2^2hjc{y1O3 zSMpW-3H~I1insCA{AvCSU&Ei}&++H^TK)omk-x;(@t654{8hf5zs6tZZ}1KLP5u^t zn{VXr@OSxpd=r14f51QF?ffJDG5>^b=AZJ<_~(2J|AK$Xzv5f@*Zdp)E#Jn!1}+#?o=#bSxLS1c9xiTlL^qE$R79ug0WW#SR>sCY~)7mte-Vx?Fmo)Axpr$n1r zEuI$7h&AF_@tk;GtQ9Ya7sX3rop@QiB3>2i#cSeq@rKwS-V|?%x5Y;Bj(AtRCpL-q z#RuX;(Jnp`AB#`KX7Q=`Onff3h%dyK;w!OLd@a5a-->PGJMq2vL2MU4il4;KVu$!e z{3?DEJH_wf5AmnYbWP{F&~@F=P2JLM-O*j$(|tWd-%a0L&(!zO_tf{&yXbrC`{?`X zUG@F+{q+O%Zu)`xLHfaZL_b9Dt{PPBF=|}6m^kekidLKPY&(@=Q zOb_(9p3wX1IeI_+Sp7J?zka-af_|btK+n|&>Unxn5A~EjNYB>`^po_#dZ9ipdbM7opQ%sK zYxRkGonEgu=x6DTdXwI)x9F4f$@&z1s(!Y9jy_F4S3gfbU!SgDpkJt8q|eYV)-Ta7 z)o1FL>6hzQ=(F@I^{e!&_1XG0`nCFX`W*dw{RaI;eXf3!ezSgyK2N_@zfHegpReDc z->KiFFVOGS7wY%ui}c0%68&C%seYe+zy5&Usz0bdq(7`L(;v|v)gRNB>yPUz^p*N5 z{R#a^{VBaoU#&l_KclbFpVgn!pV!ywFX%7oFX`*_m-SclSM~M!Yx?W@8~O(QP5mwX zZGEHuj{dIxp1w(cU;jY=P;b{i(m&Qe(KqX#>YwSK>s$0M^e^?V^sV~W`ZxNw`ZoPL z{d@ffeY^gn{*(T*zC-^-|5g7@->Ltu|DpeBFheuAAq?Fx4AZa-+i(om@C@I`Fm^L` zH!_Vqj6IFLj4sCB#y-ZrMpt7$V}IiSqnmM{agcGa5it%ix*LZYJ&ePQ!;K@1p2m^J zQO40mFXI@ax6#MQGO~@R5iF-|j1H_kA|8fC^f zqui)4Dvj|*l~HZf7-t$2j9O!&QD@W}4aQkUqtRqE8!g5pW3n;Dm};DDoMTKg&Na?6 z&NrqT7Z?{B7a22*i;YW+OO2VvWya;k6~-*%O5-ZyYGbx>jd87UoiWF_-nhZI(U@!8 zWZZ1rV$3scHEuI*H|8667Fc@4;c>| z%Zx{iM~%mf<;LU23S*_Q%6P(f(s;^fGgcc<8_yVPjAxDKjOUHD#tX)a#!JRJ<7ML& z<5gq5@tX0v@rJR%c++^xc-z=$ykop;yk~4O-ZwrlJ~Y~mkBpCvPmImRr^aW-=f)P} z3*$@UD`TtiwegMdt+CDc&iLN=!Psv6X#8aSZ0s<8F@80EGjNoxu3bed4So?JkUJIJlKqw zhnU^XL(LxMVdmlH5oS;GNb@N3XtS4jjM>}lV`iDzX4H(Cff+XwW?wVM>}MWp9%uG9 zk2g;+Pc#RZx#mDK&rF)3nKB2N`DTH6k~!EcG>4c)=1{ZPJlQNUhnc13aC3w?(i~-u zHcv56HOH8znWvj)m}AW{bDUXjR+yFMc(cl^Hfzi?%?W0$Ink^$>&*u9EVI#UGMmj7 zbCNmPoMKKj&o<97rW#oF82$J*EG zYVBw3ZyjKDvktTlvJSQ))*)7R>rktQb(nRyb%fQ^I?_7II@;=G9b@&j`dC?3wiUHv zR$#@ggw@x|vHDrZTE|)at>di|tP|No>|twwm1_;e`{*8HYpguBj6K4hwUT%Q{nPAH zD`fXtDfXN-$jY}0tdp$4R-rWn-;96CDzb)J#n#DIi8ahBwT4?GtdZ6zYqWKWb*eSS zI?X!WI>Q=km09Dga;w6sw8mRiR<%`QooP+5YORS@omFo&SZ7&{R+H6iwOEs^$<`EW zs&%$?jy26X*E-KS-l*7? z>pE+Wb-i_ib)z-cy2-lPy2YAj-D=%t-EPgd?y&B(?y?qGcUueDEbAU?k+s-bV%=*k zweGX-w;r%stp}}#tcR^-)+5%V)??Ok>v3y^wbEK;Jz+g*J!Q37tF5Q4XRI~Wv(|Ig z^VVAH1?xrYC2O7avh|Afs!`fiIX}x8=ZEdvPvEH@bvo=}pTOU{-TJ6?H z*2mT-)@JKd>oeZMS~3ezJbHc38hyzgoXp zJFVZXKde9TLUPUKwy<^Euua>tZQHS3+p~Q;!`{u_-OjZ4u=lk0vb)%O+xyu2+FkAa z?EUQn>~8jf_CfZ+cEmo!?rtAy_plGM54Vr7d)i0ZN7+Z)z3gM`-fXVj$Ih~|*&;h? z$Lzq4+X=g`on!Z7H`~YJ7aHH%$Jzbu?y*m^Pq)vo$J%A~IJ?}g zuq*BHc9mUi*Vt#;6YN@hqFra#+YR+d{+f(eR_SyD1_B8uk z`#k%6d%AsreW87kJ;T1(zQn%No@rlZUv6Jv&$6$yud=VUXWQ4<*V@vK_5*gS{hrMPxjCD4*M7TSNk`6r~SMAhyAC+9L?d5 zaCFCTOviF;$8lW8b9^Vm+0EJA$#nK`_H_1gx;T3~`#AeLU7h`${hb4xZq9+uLC(QW z#5u(2?i}j$a1L`0caCs+I!8K3IY&FaoMW8cP9G=B$#$Yn%n6*hlW_VvIZi+4Sm!vW zzjM5Ef^(uXz{zz6I(bgg37wQP$jNsKoRgfvPN6fzDRPE7#m>o2i8IV8b%r}5oRQ8b zXS8#QbE-4OIn6oUIl~$2lsV&^a;L(nbjCYXPPJ3xoasz(YMqHrom1~LIA=MHPLtE@ zv^bNT$<7pKs&lq;jx)_U*E!EQ-OAN?V|XS?&G^ON(lv%~qt z`PKQ&+3Ec5{NenGFZ*gPcZI9FhHJW(YrBr?x}NL18SZZG?rx^Lhr6e{m)phN+ug_A z*X`===kD(w;C6ElbPsY5b|dZ~Zg=-kw}*Qed)z(TJ;Lqj9_b$C9_{vWk8yjuecUWJ z+l{(0H*n)_!tLwkxc%H?-Q(Q;?(yyk?uqUIH`g8L=DA5XbW`piH{UIAPjUylh3*iy z$Q|kyyC=IP?l8C19qx{BN4lfj(e5eksqPr}H1~A(40o(s=8kjA-3qtT9q(4T)ozV@ zraQr{btk%YZoS*!p5->WO>VQ>;!biWyHnh$?%D1+?lkvY_dNG}ce;Cld!c)gJHx%$ zy~MrLo#|fYUhZDu&T_AGuX3+;XS>(9*SgoabKL9Q8{8Y+x$aHw&F(GkJoi@jHurXS zzI%szr+b&Xz`fgD=-%Tlau>Tx+?yreZ+m#eav0%KJKn? zSGud*C)_99r`$GowfnUDjJw8t)_u->-d*dy;J)a-RYQ2eGomcNQcxQQyUX$1CwRn@f$=(!is&}?`jyKIa z*E`QU-<$4T;9cll0G?*{Ki zZ?1Qfce8hkH_yA(yUn}ZoA2G>-Ra%sE%5I47JB!1i@e3&67ODbsdt}uzxROG>OJT^ z#wMp7oydp7+*zFL*C{FL~>{ zm%UfKSH1P#Yu@YL8{P)*P46x5ZEvIZj`yzjp0~++-}}J(&};WT@;>%H@iu#(;@6I= zz0bVQy)E7s-k082-d68x?;G!1Z=3g>_r3Rnx83{E`^o#++u{A<{p$VZ?eu>4{_y_v znXlnRufo@T!#91)w|&QVeb4v(41YI&cR$nL!{5{2%kSdv?eF97>v#3{^Y`};@Vog3 z`Um+3`w{;Tzq@~^-@`x5KiogU@97`uALSqI_wtYNd;5L-EI-?i`Y}K7<9@>L>*x6W z{A2y&{Qmy&{t5nx{s2GMAL!@#Nk8;c{vbc!FYr(D2m6Ko5WmPD>KFSb`z8J`ztkV@ zkMKwOqx{kSDgLSc82>c?bpH&0tY7Aj^UM7TztSJ?SNYX`jen*;!LRiv`gMN2-{7C+ zH~LL}v)|%R@+bRK{Hgxg{yF|M|6Kn(|9pSCe}R9Ye~~}Kzu3RTzto@UU*=!#U*XU4 zuk^3-ul8sA*Z9}^*ZFh&>-`)28~wTdP5#aPE&e?JR{u8tc7MKqhkvJkm%qTj+h6G4 z<1g|T`%CU+zEdukcs;tNbVYC;g}VHh;DM zwEv91#(&m-&VSxt>%ZW?=)dHz^I!H~@n7}V`>*-0`)~Lg{5So#{I~s${yYA={(Jr= z|9$@h|3kms|H%K?|HR+yf9ikcf9`Mbzwp2Gzw)>GU;E$q-}>A9@BHumAN=k9kN!{o z&;Abo7ynoPH-D%9yZ?v(X9mmAGI)l_&@+q-GsDWTGn@=J!^`k9GBS3{*gYdNV~>nI zGxo~plCgKjJ{kLFbj{c=WB-f;GP-3Pm~l|X!5NW^Lo&K&9GcN1&s zQ5i>P^vXCUqjyH1jI508jHuHzzPTFTgQ%>tawnFRH`do#W$I|=j%%!(RB4u_4_0n{ z6+T{{V3nz(mseiXh%elXudSTom3N-IdH4vftQ_CfX?Dy1IyIB!We{yvs6!HZ%9^c^ z6ygg;Qn48-g_Y@p8~&Brt^DiM3dxL0bu>dIu`+$|26YiWR{eGA55l)1 zCYC8<{iO{V)#3{rHRWbuSvkJ0WY(q+e&Me1YIg~k zg{pvR(+9l}xz}s)$1GCm>s0!pU6S~9y9CT4mA+0Da9vqLJ-#Ycj|L;cx++mwS7i;Q z%;WdF>1rIRGGCuQWDKotsjDh$Y?)Y#PlYq;cMX{(%7#W|L&+{`{l;AaW{I+)Q5}Y< zR88rFH>|Vhyr#}`zjPM?e)BE?vs8&`P9OAAS*6XgN{6c|ZBbP^oO0Ddxf-r=)sj9K z!yECTxX~j2W(?moPZ=${hOFUK^)2e?jqJ40o4m{U=v~gIcAlH3sJxz?KDej+)pp&p z|2j2l>+$)#)lyfJm7SAC$80)A=@_G9K*u;86LjoL#~eELqhl@|2huT*j!8O(bWEvZ zKhoci^!FpZ{YY;=(%X;p_9MOhNN+#V+mH12Bfb4dZ$Hx8kM#CS8AI_+1MEi1zsiPO z%5yI1&L!Qsq&t^%=aTMR(w$4Xb4hnD>CPqHxuiQcG=`^jwsh(oNckN|x(AZ(fuwsN z=^jYB2a@iAq(zIjr|rU{59p|J5zSJ$h-Rr$jAki)(JZAenx*tbvs5WYvy|RwmdaN&OXVw? zrScWcQu&HzseDDVRKB8FDqqoT(w|NGvq^t8>CYzp*`z<4^k?_=hwb7J{ia<4Do5F5 zNj6!MO_pSnCD~+2HdzuSOQK{+lr%?4bCfhkDd$njd6aSF-PW`;z{?q`xoe?@RjolK#G=p9aWi4(ZP!{W+vRhxF%={v6Vu zL;7<_e-7!-A^ka|KZo?^kp3LfpF{d-fQ-@r8SO{T*sGD?GGlm^RaF6BR$^baKcG+;()z>Ly>8KnU;N&{w;2Fxf8m{A%qqcmVfX`qbK zKpCZhGD-twlm^Nu4U|zDD5H5)k9ky&c~oySU`A=cjM9J^r2#Wa17?&4%qR_*Q5qnl zG(bjaz>CsA7o~wNN&{Uqr1ln4dkd+(h1A|cYHu|3MQP}Z($E%7#T@+3Vv_t`_c$j# zJjt`PZ;NF`o%9rTmn%w3j0U0@4MZ^-h+cql7!5+PXw-+(PyhO+GgCA&#b{)T(a02|kts$aQ;bHY7>!IZ8ku4=GR0_Q ziqXgvqmd~_BU6k##b}_2k)w~1V~vqxjge!GkzP4HKCY~-tSR%uhNc=UPSTg{5Wkm6-!H)aK>ExdI|EONGW@ z{JxrD$4kf7GBiCN7Z2Inzn!!*NBqpdSh5k)xM&yCwrW#+$ z>9AyXiqH{u%l;|=zjBwH*f2n4TjnEu)}=+=??{@yXr$BY;}G4bl9@6pDr=j|ERv<4 zjT=JV#8;t_B`M69kj_$VI!mey2Ild)7CxoMs#p0Ejn(xge(y4|EZayQL^JY6`b7is zRSsZ|f$vUNmHAR^hgrM-!%UxKs@kHP>42L~oIX`%B(u!4nc4Pml~py^#K>93l7SB0 z*=9Oj$31HQw6ciN$|6Q9ix{meVzjb|(aIu5jy6Usix@fF7&+V+&HZC3(vwmHZY-r7 zaE#UjFImMJ3@M9@8aKut-z>lTWfEP=t0WY96LXf5O z2ed{AXpIoi8X+Lp9FS`c$TbJFMhIw)5YQSSAg3IVQx3=}2jr9ka>@ZY<$#=WKu$Rz zryP(|4#+77oN^FV<`3K~W z1Mj!&e;klM4#*z|7X;M)Xu%QCf+L^>M?edXfEFA9EjR*Na0ImA z2xuG$Xu%QCf+L^>M?edXfEFA5 z0r}T}CbR)fXakzi1~j1!XhIv%gf^fFZ9o&+fcA0%+RF)OFDIbAoPZ|00qx}ks!g$$!LYgCb5F6mi<1h|>l|oHi)pv_TQ4 z4T?BzP{e72B2F6=aoV7W(*{MHHYnn>K@lf^6(@fcr+IXo=FxGQN5^R%9j6V7IBihG zXl|oHi)pv_TQ44T?BzOvGtp zB0=+s1kEQBG>=HoJR(8!hXjrP32OHV8ov`XZYOBmPSCiWpm94v<933^?F5b62^zN( zG;Swo+)mKAouF|$LF0CU#_a@++X))C6V%@l)ZY@+-xAc{64c)k)ZY@+-xAc{64c)k z)ZY@+j}p|664Z|p)Q=L>j}p|664Z|p)Q=L>j}p|664Z|p)Q=L>j}p|664Z|p)Q=L> zj}p|664Z|p)Q=L>j}p|664Y-Jv~ic9evzPlk)VE&pnj2{evzPlk)VE&pnj2{evzPl zk)VE&pnj2{evzPdo}hM|pmv;~cATJgo1k`^pmv*}cAB7enxOWXp!S)daXvxgc7n#^ z1Z^lKXq-*Z22O&;zXbXH1o{00`TYd>{RH{_1o{00`TYd>{RH{_1o{1t{Ax)3ETn!G zlHDQM8`6efNc}0KjlGcOB_YjALYkL^G%pEhJ`&P=B&7LBNE>t^ZP10ZK^M{nT}T^q zAG?2@>G=_k>G?2@>G?2@X?-}R=Sw)I*JC)Q*JC)Q=c72L=fl}qYW{*F z=~wd?gh{`ezaUKd)%*ov(y!((2$Oy_e?ge^tN9DUq+iWn5GMVq9cO2$c8nwCU$tX| zDgUY+BTV^M?HFOoziP(_Q~uR@6k(PBq*`ZYC)N59M`dqPt@pB%YMqCp%2!g&ZxB}H zl~n#eJE{CMjw(M%<)^cg%0J_%$}y?@Gs3DIlgd9MtjaN|{4>I&Px)tr$u8xe5mx1x zRP!N($sW~Tvy;ky<4Agy|3;YfD*ufz=~ez4VbZJoH^QV>`EP_tukzmrQ+}2IMp)Hf zQu*)fr1IZ5s`^VR|BbM!zohct2&?)_s`V7Ys{WE{UWBl!zoeQMWha$i$C2`*{5ryv zA2rX&PO5nZj%2r*4`e5mpTUvZf$}p5Q#mR>lbuu_1mH;JsQeAWq*wW6gh{XZAOK-1 zNA*Df!c>mRA0bTksC5*=RF29oAx!0{{8DyO`6V2w9F<=}n95Q4C4{LQm0v=b^s4n1 z!lYOEC4@<@8b=UTdPB7zlO3x47#x+}Q0>Pctn`LzKL%l?H&pW{gjM~8)Sp5%kHU4O zKUDK6gq8kK?Z+TY`qg?PJ5=ip97(_0k3pE^tNj*)Rr?6lybNJguOao`<+H za8&&=RO_DXP|fpjRQ)m}e-M&C2-Q3e_f`83)jSSiYJX}ThcLB2wZ1`^+MinAWQS^f zgCn&MwZ1`^+J{=-AWZFp{7y)ICsgx7+^6=S)-woGe)^`&k?BvU%*pC7GW{u)IXQiB zMs{p7JCi%kFN7(-Y959#+iZJC@ec*~PC?l~Swc>=b$L6nXCydG8c??-Y6O6nXCydFvE;>lAtG6nX0udFvE; z>lAtG6nX0udFvE;>lAtG6nX2^|LN}BAN07&I-bq5lVmrWO*TzRZ&W~o1)8uklQU=E zDt6y@yQhVMw}J{->L$Bsmu_~`z4W3+Dheu;o3`PmfXdaoh!{+Z^^T$PN=yAdnedC!QKh>POx`^y%TJmVCw{1C)hf{ z)(N&wsI`PzOQ^MkT1&8bg3S|bo?!C?iznDS!P*J7POx=?trKjWVC#f>OQ^TxQF)m> zDp%`we}c^uY@T5A1e+(=Ji+D(Hczm5g3S|bo?!C?nm{-RiL5}v3nsi^!V4z6V8RO~ykH_L zkjM%oykf#DCcI+8D<-l6iL5}vOD4QzA`6hn0wnxmBKl86{|Wz?HvJ>fe{Tn^lL}tisf0o>H6pQEiS2s!8{cYRl1M zi#KlQC7hZq+qrfvVpnCeE58d;lT7vXk)>U?Y-oN+S6Q;Ex6`q1?rzPW<#60RX&!C4 z?fBwySLU#$nNG{B?M_MGV!@q~a2#2<{ixJ#@5rrhF2;frsb)_1 zhv!uWF+97my26H>lT)bHpbwowHOHDhbP5$_>^X%BW7w%vm_Bss6!!g>+)5?4jxvqe zzA}EaZnxxqC_V93m7aK0>-#NTDhji`OTVgg$*0z@VOb4E7S`5PXry-@y9GvV>0+lU zL%E~7o;NM7&X26$rk6eH!r{8nNAa(?BuW&drj;dr#m5iy9F;z0AO2$;lm?{}lrMqrz&-HiLU6t;-)q1~|?z)A&-%EGh!rt$t zyKdn)#tFF!)D-Nl$J8Iz^EbA9jkSGhSx-JNSW-Q(`OD&3u{_4~VYcP{Mr zcR9ngaJR1I&TFN+bz#P?yLDkMgS&NME`z&u;pEp+1l^4c9}xl@CwAp)tdDtooL#FM zB42xp2ECcdCqY@$9n0I~IM?5DQ2lCVo~eoDDD}Xlik(DwVTCp-r<$U z)mq6|_4kA#JNXjOQK3J+1?Au2pX<#|o5kA2T;3S-~%n!;)4 z!Yvz%x9ZKp%SXA29wk?mN6BjaHm*D>7UpVtR4mLsJ^B^qoRDJ`a;);`x2in)RqHfX zAK0Rw2(S=cT1s3 zr9zWkI^h!wT`hC>a(>?$e@HniV8*qxIhOqYq1y$&_aZ``t=;hHx6~h*lnBY5m06k4LcPnazqi47KjcsKXHU z@kYHwMZJVt)`NMem(X(WN$MqpId_G(ihBmKs$t|BMy8HJ%bi1NLdF_CuHoYv z@m<5qHN0HI%Qd`Q!^<_iT*J#Xyj;V}HN0HI%Qd`Q!^<_iT*J%Mc~mvLT*J#Xyj;V} zHN0HI%QYcw?HNotG?yGT++4%WwP!H(J-rTB*KlL=*a>hO!P92MuV-Jq5388C3=$a6^CPc1b+8U;c&{eRsNubuFr$X|YIv`P_iDn7nlPg#%%}-7YR?c#IB-5h7&Q?_O@vVsVbnwz zH4#RQ#I8MaCSg(UxK58Ry1#r|hsm;Ake9H)@9O}o1OnJV?kAA@39w6mT>|V9CI{M~ zGC&Vo@Jk+`moS;S6~t+qhu}|9BthIOg|a)wNoAAHuHc;=4XyA@PJadrjg8fNKg zPx%<8&RKzD@W!Ef{64_c&pe3%D+&?1}B>X$En3k-|AU;0VZi zF@?Bd3b9&_0IFjOv6eg4F@;#zWf@b5g?(r;g;?0BmMO%-PPI%S7IrtIDa1NJ6=LX5 zAFAA)`k<-TzC@klAL`r>-8!2~6dm|i(y#s@x7~hJIp9m`-2L5FXFuet*)7Taq7R}u zR^I$dg(<$I+}uxIkdJWlP!FG7d2`Pyr}3>0ZywL#%{}MS>NeMP_I1M9{hTv`;X&pd zOJ*}X;6dgcOLlXQz=O;?)^ctUc#wI=T2AM{gUmbDa_3>@9Sbu!(6V{n@rff#D@Sj3 zR)8m&cP!aoZ&%*qobRzus!{Wfi*vtaY{H^JEV^{;-0!iDZVl3{tLy&#(z@QWFuzdb z|J&zp_O^@10_ny87Y9;9fz(hSH5AaQfz(idvjdzR;Oqcrhh7@d&x9>0E4_02wre!# zHZL}$9U$!hX$MFU z{SMjOjThCitw;1@R*J6l>0Fa2`GArSDEWYr52SnoNk|l4WO1hPJXtWO~86Uh1m zvOa;VPax|P$od4bK7p)HAnOyz`UEdg>^L%?Ps78ZhKzPY*wG*m8Uz9*1=`LXQ-eUD zv_Q+MLfA(^L*}PJA2dG6qH1`E)F2NU@I!pbi=`=ncuChCrkt zlTImvw!=PwNrN_^#Gz`?29!Do`!J-`LD+{Or4GXG7b$fRcIu_nL74L=bfMHi%bolv zbr5#yr&K}Nklx6eaz*)<@06Rm^(?Tp4bMz9L@^Dny{Xf-V|sfUi7pj244(sB-%-&} zQPH55!zY5FqCv}@yQydpcF#dYgD{7WTc@I-qM|{q%L*zQgt1QqLq&s@W1k47A+yvF z!BFv_^{`I_(-6TlL@-TA#o7sZ3?ID2FRF_e){iwFVd3H8rUm_o-1hm!IXz>VXDQ>B z&_yK?JCARyb?Lz_i8+4G=gkL+R7WUL#Wf&`Y4F|+-n$`+Y4F|+4uxt8CAb*Ec<+Wx zRD<`X+Cu9wgz(-CnWzTuP4$J=V+axDGp!D4SA)8yi$XQZt&0z9=gFpQ|+Pc7-M+o1`plfp&O#7hUlrmFE%_ciBMF8 zq9PO(p{Pjg5}~FDHAP~V2o*)BC_+UMDvD51go+|m6rrLB6-B5hLPZfOicnF6iXv1L z$yZ0HC_+UMDvE?D5h{v=DG@4)JQ$BqQ6x%Xnph$2Mp`b`` z5(!Qs!AZnZM;^IHVv|VzI})2jvM`a@BodoMp9iLdtW$7=zasn<$-+dkFpxnCp7IdWe{?#sx18M!Yb$~mH(BiW9~{TjJnBf>c%oFl?HBAg?_IU<}R!a0)d zh-5n=*^WrIBchulx;dho<0dbVH;(A#h+dB9<%nL6=;erBjyyn(JV1>+K#e>=jp*fw zUXJMEhz^eE;E2kMsL4paHzE-u5-}nXBN8zp5hKzrBJCp5t_MH&;O8EE+N0lkY~Mrj z^^kmhBwe5TyU%#)GoA)WxdD7RfG-E|fp?aR5IK z;Ku>{IDj7q@Z${k#|-0phVeba_?}^W&oF*x@SijI&l#fL8T{r9{&EI?IYYENgTJK8 zLg{<=pHxXGjqjR;DhXlt*R#%-ef){q?8nq*Kdm-v6}6e?)MlNaHm5+;W;=cSi`uM} z)MlxvHrrL3{j}O_S8dixYT3X04`KH2{zI7kyT9n;FVwO>KM!H{=l-G}-QTO_Jlx+4 za~}SjNtp9+9ngI3?E5&?v`g$e4+~@8c~}_xK8}U4?>bNz`#zq9vG3zr82di1g|Y8CP}4oJ z@BJ#w_TI0;Z14Rl%=X^DnkLHjuJeRBe)k)~9KZVmVYYYv*7Q>BIe!ad&v{VOOF2Ie zO*PGw?>#gX_WjLrJ*igFbW88gS*|D5Dq8O2XqM|pm5P?TomsBqEZ32$6@Bk^sag@n zF4vLjU`_ADu0J&p_HjJxdRiF!&ey^|j;UG^&i9vEzb>=%163nDcl4F3kD6e;4Nb-MuC{vCn-@m5`Rx|E^broyTWAB__=H_mr5XMKk_9B__=H^OTq{Cg*NXt2YcxM)#VLo+AtjBz6VLwjIr{1=qTHVm^8b$lwl-^X{)ZQHSCV10$6TO-8 zrsoYi8#tQrCL2D{~gi>tf$XpYXD{WXJPru(UaUB~oR`fg%ae(Cd=ov-T&jo{X zL2{s3xXZU}bTfBXmf6AK{LPL$J6`Xf_i6I_aOk$h`GxV##fR3E(p$3UuB=Zei{;0E zXzh;UM^={BG=XyN$l}o(H1|cbB=g5gpVu})ok4f(O*4Dw*y8eBHm&r^p~dAz{q9Eh zjll7R`9%j!`roT{+l;g8ytf<9!ffe=xlLP#J6oHp-Z*#c2A#yD2$GteX%FSVJWCdq86%}k&+GtVTMsO~I$d-n*FjWhmax=#+L;Lk3=BEF5>epTOZE5xS zy!?N!eumwKCi3S!`Ty=MuhEk6{CU^gKX-M}KQOdQKQV6l>F@*kzf(WFZbPGaefZ_Dcx`SWmIZh6VpykuzlnXR?0edVP6cWeLE+C!E7=NbEtllJ8Y?<&6B z+L!Mie(-^377yNK58gTaz?U9dJn&3=V0!pVkF_s;;fci;AF?kz(f+-)e{1buEBlvy z_Rpv6^E$-OxAytdUw!}dSBF1$wSD$8^TlUR*=OeMpIZC$r!Fo&-P)%vwtsBxA8xk4 zZ|(2S*e5@6Ve!d_>=PH--=4C+Y3;9D`}oK97awo!WBcu+r|csi-d}vAwGY2!XYt|v z_E#tEFR!o<34G`Z`-|2-_<_;lgROmF)ZX9PpSSkD7flrJyTtzNeEZYZ{^XRs_r(W_ z_qO)Ot^LtSdrxbB*xDbo_WQ5dRs3FSzuVgHwD#Mr-LL)Kzt4Va%-((9nd058-FNTx z#eHY&zB`BSJ#(PA_j_YwuL^&WG&RwXb)y_G|O@_Idl& zar>3M_RFpPQak+>`^DCNp|zjiYd_c8+uk}}ysfggj@w(_JW;&mGJErcz3Ghyi#MIL zHy*T~ZS7}T`{~x+@cIjjH_Y4XU$>`t{e||rJ@!+h_LHr>Rz_ai+G}>%t6z1fcy(*9 zI%Kbu{a2o{Q}>)HPPKNA#@0P&?4CP^?|%7#;_mD1?&;y5Xzj;adxh{T&e+Qj*voV= zUe>pl>TF-S&t9_A?$Uz0=IzD0XfHlsFPg9)Ywbr{`;pdO_=1Vzg{{3{!hX25A8PIS z6NBRU*VzxYcIWN(ydOAOJg>DMIB6#@weN53`^N2iTf42bTU*;$A1gL?+s5gkEz=(z zULUjd`-j)|+S>H+YHPQ&cA~YF{nnv_@ z?X&M}?K@g~#>E#FI_tzFmJx3~6fC+%BX`<8w7&8ZmEkgb2@uI)m`lpBP7n;6ute76R>C;1Z3SBuiQd~J^SDqf4o}M56rq-UMLwM3d z_KmH5!)10wYdu}y-n>nf7Zp?2T5PR3xUXnh3)kA=$%~4^*IKQnZmrUaRcocbE-$jl zi|mQ|^u!D7(8&44p)+>y^7D#=`|RN9t)1D+_e>O*pJ$hMhkI)H36DQeJfXG6Yt6?W zu*Yq^qIg_um$mlwtvzUtX{eJLc6H73tPLOwMS?Vk4Sd@{)5H&1KYoEPqF`??b~DLX}$CI z* z*jP8V;_%MaMs+5mt&N;-JNDT2*0yQa+gdC3nd#*8OWIqtVCxk&qyrc_Xj}H!(CMN1 U7rbQX3IBiow)`JIl}B#*A8`KU0{{R3 literal 0 HcmV?d00001 diff --git a/tools/lammps-gui/lammps-icon-128x128.png b/tools/lammps-gui/lammps-icon-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..0c39f1ca2587f44458c7c761656f1a81c4d25315 GIT binary patch literal 30416 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 literal 0 HcmV?d00001 diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 73108d2ef0..0220589cb1 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -48,7 +48,9 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : current_file.clear(); capturer = new StdCapture; - QFont text_font; + setWindowIcon(QIcon(":/lammps-icon-128x128.png")); + + QFont text_font(":/monospace.ttf"); text_font.setStyleHint(QFont::TypeWriter); ui->textEdit->document()->setDefaultFont(text_font); ui->textEdit->setMinimumSize(800, 600); @@ -343,7 +345,8 @@ void LammpsGui::run_buffer() logwindow->moveCursor(QTextCursor::End); logwindow->setWindowTitle("LAMMPS-GUI - Output from running LAMMPS on buffer - " + current_file); - QFont text_font; + logwindow->setWindowIcon(QIcon(":/lammps-icon-128x128.png"); + QFont text_font(":/monospace.ttf"); text_font.setStyleHint(QFont::TypeWriter); logwindow->document()->setDefaultFont(text_font); logwindow->setLineWrapMode(QPlainTextEdit::NoWrap); @@ -396,7 +399,7 @@ void LammpsGui::about() msg.setWindowTitle("About LAMMPS-GUI"); msg.setText(version.c_str()); msg.setInformativeText(info.c_str()); - msg.setIcon(QMessageBox::NoIcon); + msg.setIconPixmap(QPixmap(":/lammps-icon-128x128.png")); msg.setStandardButtons(QMessageBox::Ok); QFont font; font.setFamilies(QStringList({"Sans", "Arial", "Helvetica"})); diff --git a/tools/lammps-gui/lammpsgui.qrc b/tools/lammps-gui/lammpsgui.qrc new file mode 100644 index 0000000000..eceaeaabba --- /dev/null +++ b/tools/lammps-gui/lammpsgui.qrc @@ -0,0 +1,6 @@ + + + DejaVuSansMono.ttf + lammps-icon-128x128.png + + From a2657c67dd40384641d6d9560527b7e73652039c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 04:47:45 -0400 Subject: [PATCH 167/247] fix typo --- tools/lammps-gui/lammpsgui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 0220589cb1..bf17e0fe84 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -345,7 +345,7 @@ void LammpsGui::run_buffer() logwindow->moveCursor(QTextCursor::End); logwindow->setWindowTitle("LAMMPS-GUI - Output from running LAMMPS on buffer - " + current_file); - logwindow->setWindowIcon(QIcon(":/lammps-icon-128x128.png"); + logwindow->setWindowIcon(QIcon(":/lammps-icon-128x128.png")); QFont text_font(":/monospace.ttf"); text_font.setStyleHint(QFont::TypeWriter); logwindow->document()->setDefaultFont(text_font); From dd25bac428caacf1a900d786261a806c83f8d13f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 08:20:02 -0400 Subject: [PATCH 168/247] fix typo in plugin interface API --- examples/COUPLE/plugin/liblammpsplugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/COUPLE/plugin/liblammpsplugin.h b/examples/COUPLE/plugin/liblammpsplugin.h index 1520ef638d..271f6b9b20 100644 --- a/examples/COUPLE/plugin/liblammpsplugin.h +++ b/examples/COUPLE/plugin/liblammpsplugin.h @@ -239,7 +239,7 @@ struct _liblammpsplugin { void (*free)(void *); - void (*is_running)(void *); + int (*is_running)(void *); void (*force_timeout)(void *); int (*has_error)(void *); From 32091d9f32b232c75d50a2a6efbebbbfa7ee0909 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 08:20:02 -0400 Subject: [PATCH 169/247] fix typo in plugin interface API --- examples/COUPLE/plugin/liblammpsplugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/COUPLE/plugin/liblammpsplugin.h b/examples/COUPLE/plugin/liblammpsplugin.h index 1520ef638d..271f6b9b20 100644 --- a/examples/COUPLE/plugin/liblammpsplugin.h +++ b/examples/COUPLE/plugin/liblammpsplugin.h @@ -239,7 +239,7 @@ struct _liblammpsplugin { void (*free)(void *); - void (*is_running)(void *); + int (*is_running)(void *); void (*force_timeout)(void *); int (*has_error)(void *); From 2644c064e1d1fc3468b1d3dcf6a76cd8b5c3352b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 09:09:06 -0400 Subject: [PATCH 170/247] update version number and "about info" to also show whether LAMMPS was loaded dynamically --- tools/lammps-gui/CMakeLists.txt | 5 +++-- tools/lammps-gui/lammpsgui.cpp | 26 ++++++++++++++++++++------ tools/lammps-gui/lammpsgui.h | 1 + 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 8efd5537bf..421fef2f10 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.10) -project(lammps-gui VERSION 0.1 LANGUAGES CXX) +project(lammps-gui VERSION 0.9 LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -11,7 +11,7 @@ set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) -option(LAMMPS_GUI_USE_PLUGIN "Load LAMMPS library as plugin" OFF) +option(LAMMPS_GUI_USE_PLUGIN "Load LAMMPS library dynamically at runtime" OFF) # when this file is included as subdirectory in the LAMMPS build, many settings are directly imported if(LAMMPS_DIR) @@ -106,6 +106,7 @@ else() target_include_directories(lammps-gui PRIVATE ${LAMMPS_HEADER_DIR}) target_link_libraries(lammps-gui PRIVATE ${LAMMPS_LIBRARY}) endif() +target_compile_definitions(lammps-gui PRIVATE LAMMPS_GUI_VERSION="${PROJECT_VERSION}") target_link_libraries(lammps-gui PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) set_target_properties(lammps-gui PROPERTIES diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index bf17e0fe84..def0dbf4b8 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -41,7 +41,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : QMainWindow(parent), ui(new Ui::LammpsGui), highlighter(nullptr), capturer(nullptr), status(nullptr), logwindow(nullptr), logupdater(nullptr), progress(nullptr), - lammps_handle(nullptr), plugin_handle(nullptr), is_running(false) + lammps_handle(nullptr), plugin_handle(nullptr), plugin_path(nullptr), is_running(false) { ui->setupUi(this); this->setCentralWidget(ui->textEdit); @@ -89,11 +89,16 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : ui->statusbar->addWidget(progress); #if defined(LAMMPS_GUI_USE_PLUGIN) - liblammpsplugin_t *lammps = liblammpsplugin_load("liblammps.so"); - if (!lammps) lammps = liblammpsplugin_load("liblammps.dylib"); - if (!lammps) lammps = liblammpsplugin_load("liblammps.dll"); + liblammpsplugin_t *lammps = nullptr; + for (const auto libfile : {"liblammps.so", "./liblammps.so", "liblammps.dylib", "./liblammps.dylib", "liblammps.dll"}) { + if (!lammps) lammps = liblammpsplugin_load(libfile); + if (lammps) { + plugin_path = libfile; + break; + } + } bool do_exit = !lammps || (lammps && lammps->abiversion != LAMMPSPLUGIN_ABI_VERSION); - if (!lammps) QMessageBox::critical(this, "Warning", "Cannot open LAMMPS shared library file"); + if (!lammps) QMessageBox::critical(this, "Error", "Cannot open LAMMPS shared library file"); if (lammps && (lammps->abiversion != LAMMPSPLUGIN_ABI_VERSION)) QMessageBox::critical(this, "Warning", "ERROR: LAMMPS lib plugin ABI version does not match"); @@ -376,7 +381,16 @@ void LammpsGui::clear() void LammpsGui::about() { - std::string version = "This is LAMMPS-GUI version 0.1"; + std::string version = "This is LAMMPS-GUI version " LAMMPS_GUI_VERSION; +#if defined(LAMMPS_GUI_USE_PLUGIN) + version += " - LAMMPS linked dynamically"; + if (plugin_path) { + version += " from file "; + version += plugin_path; + } +#else + version += " - LAMMPS linked statically"; +#endif std::string info = "LAMMPS is currently running. LAMMPS config info not available."; // LAMMPS is not re-entrant, so we can only query LAMMPS when it is not running diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index ebe66f7a8e..3b4939f62b 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -76,6 +76,7 @@ private: QString current_dir; void *lammps_handle; void *plugin_handle; + const char *plugin_path; bool is_running; }; From f170d8a56da38aa7ee450442ad04475a82f09b66 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 09:13:04 -0400 Subject: [PATCH 171/247] update todo list --- tools/lammps-gui/TODO.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index b01df689e3..692367e9d2 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -3,19 +3,17 @@ LAMMPS-GUI TODO list: # Short term goals - add indicator for when the file in editor is modified (-> status bar?) -- add indicator icon (red/green "LED/lamp") to status bar indicating presense of a "runnable" LAMMPS instance - add "Help" entry to menu bar. Should open a popup window with a one page description of how to use it. Use HTML or Markdown text. -- add "View" entry to menu bar, where dialog windows may be enabled/disabled (e.g. Render) - add dialog when exiting asking if file should be saved when it is modified - add CTRL-q hotkey to log windows so you can exit the entire application (add do you really want to? dialog to this) - add "render" dialog where a "write_dump image" can be triggered. dialog should offer options for size, zoom, rotation, colors(?) -- add "syntax check" with enabled "-skiprun" flag. +- add "syntax check" with enabled "-skiprun" flag - add settings dialog where certain properties can be set through customizing the LAMMPS command line + enable/disable OpenMP (via suffix), select number of OpenMP threads + toggle whether captured screen output should include input file echo + select Font - store settings/preferences when changed and read at startup -- add list of recently used files to file dialog (and also write to state on exit) (note: must store full path!) +- add list of 5(?) most recently opened/saved files to file dialog (and also write to settings state on exit) (note: must store full path!) # Long term ideas - support single stepping, i.e. process input line by line (need to detect continuation chars!) with highlighting active line(s) From a8de49769bd7b34c072e067903b59fd4be0c5551 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 10:43:20 -0400 Subject: [PATCH 172/247] add missing entry --- src/.gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/.gitignore b/src/.gitignore index 2cb2fd315b..6e2a8b92c9 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -60,6 +60,8 @@ /pair_lepton.h /pair_lepton_coul.cpp /pair_lepton_coul.h +/pair_lepton_sphere.cpp +/pair_lepton_sphere.h /bond_lepton.cpp /bond_lepton.h /angle_lepton.cpp From 034b7458bc71dbd291795b287ca101fc16c919c3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 11:53:23 -0400 Subject: [PATCH 173/247] add dummy help menu button --- tools/lammps-gui/lammpsgui.cpp | 7 +++++++ tools/lammps-gui/lammpsgui.h | 1 + tools/lammps-gui/lammpsgui.ui | 34 ++++++++++++++++++++++++++++------ 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index def0dbf4b8..da0f1ed82f 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -69,6 +69,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : connect(ui->actionRun_Buffer, &QAction::triggered, this, &LammpsGui::run_buffer); connect(ui->actionStop_LAMMPS, &QAction::triggered, this, &LammpsGui::stop_run); connect(ui->actionAbout_LAMMPS_GUI, &QAction::triggered, this, &LammpsGui::about); + connect(ui->action_Help, &QAction::triggered, this, &LammpsGui::help); #if !QT_CONFIG(clipboard) ui->actionCut->setEnabled(false); @@ -425,6 +426,12 @@ void LammpsGui::about() msg.exec(); } +void LammpsGui::help() +{ + QString helpmsg = "This is LAMMPS-GUI version " LAMMPS_GUI_VERSION; + QMessageBox::information(this, "LAMMPS-GUI Help", helpmsg); +} + void LammpsGui::start_lammps() { char *args[] = {(char *)"LAMMPS GUI", (char *)"-log", (char *)"none"}; diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 3b4939f62b..5a7b4fb0e6 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -61,6 +61,7 @@ private slots: void run_buffer(); void stop_run(); void about(); + void help(); void logupdate(); private: diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index 4283b55008..d2d1cc9bad 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -25,8 +25,7 @@ - - + @@ -70,10 +69,17 @@ + + + &About + + + + - + @@ -243,7 +249,8 @@ - + + .. &Run LAMMPS @@ -257,7 +264,8 @@ - + + .. &Stop LAMMPS @@ -270,13 +278,27 @@ + + + - &About + &About LAMMPS-GUI About LAMMPS-GUI + + + + + + &Help + + + Short Help + + From e6e5be44778ae961a4cd601f951ed6272352de2d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 12:08:48 -0400 Subject: [PATCH 174/247] move initialization of plugin before opening input This way we can load the shared library from the current folder since the file opening may switch working directory. --- tools/lammps-gui/lammpsgui.cpp | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index da0f1ed82f..bb6a1a4549 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -77,18 +77,6 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : ui->actionPaste->setEnabled(false); #endif - if (filename) - open_file(filename); - else - setWindowTitle(QString("LAMMPS-GUI - *unknown*")); - status = new QLabel("Ready."); - status->setFixedWidth(300); - ui->statusbar->addWidget(status); - progress = new QProgressBar(); - progress->setRange(0, 1000); - progress->setFixedWidth(500); - ui->statusbar->addWidget(progress); - #if defined(LAMMPS_GUI_USE_PLUGIN) liblammpsplugin_t *lammps = nullptr; for (const auto libfile : {"liblammps.so", "./liblammps.so", "liblammps.dylib", "./liblammps.dylib", "liblammps.dll"}) { @@ -106,6 +94,19 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : plugin_handle = lammps; if (do_exit) exit(1); #endif + + if (filename) + open_file(filename); + else + setWindowTitle(QString("LAMMPS-GUI - *unknown*")); + status = new QLabel("Ready."); + status->setFixedWidth(300); + ui->statusbar->addWidget(status); + progress = new QProgressBar(); + progress->setRange(0, 1000); + progress->setFixedWidth(500); + ui->statusbar->addWidget(progress); + } LammpsGui::~LammpsGui() From 739bffa5e66fcd7e8d3015d2de1013ba1760193f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Jul 2023 19:20:35 -0400 Subject: [PATCH 175/247] accept sphinx 7.1 --- doc/utils/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/utils/requirements.txt b/doc/utils/requirements.txt index 9c8522948b..5b298c2975 100644 --- a/doc/utils/requirements.txt +++ b/doc/utils/requirements.txt @@ -1,4 +1,4 @@ -Sphinx >= 5.3.0, <7.1.0 +Sphinx >= 5.3.0, <7.2.0 sphinxcontrib-spelling sphinxcontrib-jquery git+https://github.com/akohlmey/sphinx-fortran@parallel-read From 2da71bd2d6f52d751d0a696c45544cfbb216e9d6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Jul 2023 01:04:34 -0400 Subject: [PATCH 176/247] improve cmake settings for creating an app bundle --- tools/lammps-gui/CMakeLists.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 421fef2f10..15efc3a0c3 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -18,6 +18,9 @@ if(LAMMPS_DIR) set(LAMMPS_HEADER_DIR ${LAMMPS_SOURCE_DIR}) set(LAMMPS_LIBRARY lammps) set(LAMMPS_PLUGINLIB_DIR ${LAMMPS_DIR}/examples/COUPLE/plugin) + if(APPLE) + set(MACOSX_ICON_FILE ${LAMMPS_DIR}/cmake/packaging/lammps.icns) + endif() else() # NOTE: the next line should be commented out when used outside of the LAMMPS package get_filename_component(LAMMPS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../src ABSOLUTE) @@ -25,6 +28,9 @@ else() if(NOT LAMMPS_HEADER_DIR) message(FATAL_ERROR "Must set LAMMPS_HEADER_DIR") endif() + if(APPLE) + set(MACOSX_ICON_FILE ${LAMMPS_SOURCE_DIR}/../cmake/packaging/lammps.icns) + endif() # find LAMMPS library find_library(LAMMPS_LIBRARY NAMES lammps lammps_serial @@ -75,10 +81,21 @@ set(PROJECT_SOURCES ${PLUGIN_LOADER_SRC} ) qt_add_resources(PROJECT_SOURCES lammpsgui.qrc) +if(APPLE) + set(MACOSX_BUNDLE_BUNDLE_NAME lammps-gui) + set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}) + set(MACOSX_BUNDLE_COPYRIGHT GPLv2) + set(MACOSX_BUNDLE_GUI_IDENTIFIER org.lammps.gui) + set(MACOSX_BUNDLE_INFO_STRING "A Simple GUI for LAMMPS") + set(MACOSX_BUNDLE_LONG_VERSION_STRING 0.9) + set(MACOSX_BUNDLE_SHORT_VERSION_STRING 0.9.0) + get_filename_component(MACOSX_BUNDLE_ICON_FILE ${MACOSX_ICON_FILE} NAME) +endif() if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) qt_add_executable(lammps-gui MANUAL_FINALIZATION + ${MACOS_ICON_FILE} ${PROJECT_SOURCES} ) # Define target properties for Android with Qt 6 as: @@ -94,6 +111,7 @@ else() # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") else() add_executable(lammps-gui + ${MACOSX_ICON_FILE} ${PROJECT_SOURCES} ) endif() From 7a9694b8497163e851d6d8078c0eb4d3d51fe5b1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Jul 2023 01:15:03 -0400 Subject: [PATCH 177/247] update TODO file --- tools/lammps-gui/TODO.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index 692367e9d2..2c1e70a647 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -3,8 +3,9 @@ LAMMPS-GUI TODO list: # Short term goals - add indicator for when the file in editor is modified (-> status bar?) +- add support for drag-n-drop of files into the editor - add "Help" entry to menu bar. Should open a popup window with a one page description of how to use it. Use HTML or Markdown text. -- add dialog when exiting asking if file should be saved when it is modified +- add dialog when exiting asking if file should be saved when it is modified, similar dialog when opening a new file - add CTRL-q hotkey to log windows so you can exit the entire application (add do you really want to? dialog to this) - add "render" dialog where a "write_dump image" can be triggered. dialog should offer options for size, zoom, rotation, colors(?) - add "syntax check" with enabled "-skiprun" flag From c1d690d190b4ad94ab9876025e2a01d254911a74 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Jul 2023 05:04:19 -0400 Subject: [PATCH 178/247] implement drag-n-drop for files --- tools/lammps-gui/TODO.md | 1 - tools/lammps-gui/codeeditor.cpp | 27 +++++++++++++++++++++++++++ tools/lammps-gui/codeeditor.h | 3 +++ tools/lammps-gui/lammpsgui.cpp | 7 +++---- tools/lammps-gui/lammpsgui.h | 3 ++- tools/lammps-gui/lammpsgui.ui | 8 ++++++-- 6 files changed, 41 insertions(+), 8 deletions(-) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index 2c1e70a647..f6c97c12b6 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -3,7 +3,6 @@ LAMMPS-GUI TODO list: # Short term goals - add indicator for when the file in editor is modified (-> status bar?) -- add support for drag-n-drop of files into the editor - add "Help" entry to menu bar. Should open a popup window with a one page description of how to use it. Use HTML or Markdown text. - add dialog when exiting asking if file should be saved when it is modified, similar dialog when opening a new file - add CTRL-q hotkey to log windows so you can exit the entire application (add do you really want to? dialog to this) diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index ff3fa2f300..13519b0652 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -13,7 +13,11 @@ #include "codeeditor.h" #include "linenumberarea.h" +#include "lammpsgui.h" +#include +#include +#include #include #include @@ -58,6 +62,29 @@ void CodeEditor::updateLineNumberArea(const QRect &rect, int dy) if (rect.contains(viewport()->rect())) updateLineNumberAreaWidth(0); } +void CodeEditor::dragEnterEvent(QDragEnterEvent *event) +{ + event->acceptProposedAction(); +} + +bool CodeEditor::canInsertFromMimeData(const QMimeData *source) const +{ + return source->hasUrls(); // || source->hasText(); +} + +void CodeEditor::dropEvent(QDropEvent *event) +{ + event->acceptProposedAction(); + if (event->mimeData()->hasUrls()) { + auto file = event->mimeData()->urls()[0].url().remove("file://"); + auto gui = dynamic_cast(parent()); + if (gui) gui->open_file(file); + } else if (event->mimeData()->hasText()) { + fprintf(stderr, "Drag - Drop for text block not yet implemented: text=%s\n", + event->mimeData()->text().toStdString().c_str()); + } +} + void CodeEditor::resizeEvent(QResizeEvent *e) { QPlainTextEdit::resizeEvent(e); diff --git a/tools/lammps-gui/codeeditor.h b/tools/lammps-gui/codeeditor.h index c501e8771c..49abf81553 100644 --- a/tools/lammps-gui/codeeditor.h +++ b/tools/lammps-gui/codeeditor.h @@ -27,6 +27,9 @@ public: protected: void resizeEvent(QResizeEvent *event) override; + void dragEnterEvent(QDragEnterEvent *event) override; + bool canInsertFromMimeData(const QMimeData *source) const override; + void dropEvent(QDropEvent *event) override; private slots: void updateLineNumberAreaWidth(int newBlockCount); diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index bb6a1a4549..4f6d7d74fa 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -79,7 +79,8 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : #if defined(LAMMPS_GUI_USE_PLUGIN) liblammpsplugin_t *lammps = nullptr; - for (const auto libfile : {"liblammps.so", "./liblammps.so", "liblammps.dylib", "./liblammps.dylib", "liblammps.dll"}) { + for (const auto libfile : {"liblammps.so", "./liblammps.so", "liblammps.dylib", + "./liblammps.dylib", "liblammps.dll"}) { if (!lammps) lammps = liblammpsplugin_load(libfile); if (lammps) { plugin_path = libfile; @@ -106,7 +107,6 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : progress->setRange(0, 1000); progress->setFixedWidth(500); ui->statusbar->addWidget(progress); - } LammpsGui::~LammpsGui() @@ -141,7 +141,6 @@ void LammpsGui::open() // open file and switch CWD to path of file void LammpsGui::open_file(const QString &fileName) { - QFileInfo path(fileName); current_file = path.fileName(); current_dir = path.absolutePath(); @@ -393,7 +392,7 @@ void LammpsGui::about() #else version += " - LAMMPS linked statically"; #endif - std::string info = "LAMMPS is currently running. LAMMPS config info not available."; + std::string info = "LAMMPS is currently running. LAMMPS config info not available."; // LAMMPS is not re-entrant, so we can only query LAMMPS when it is not running if (!is_running) { diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 5a7b4fb0e6..1ce4946bec 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -36,9 +36,10 @@ class StdCapture; class LammpsGui : public QMainWindow { Q_OBJECT + friend class CodeEditor; public: LammpsGui(QWidget *parent = nullptr, const char *filename = nullptr); - ~LammpsGui(); + ~LammpsGui() override; protected: void open_file(const QString &filename); diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index d2d1cc9bad..d9f9ca077a 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -25,7 +25,11 @@ - + + + true + + @@ -303,7 +307,7 @@ CodeEditor - QWidget + QPlainTextEdit

codeeditor.h
From bb96707ec842e51fa4b57437dc27d4369edf120a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Jul 2023 07:12:21 -0400 Subject: [PATCH 179/247] add support for "modified" indicator to window title --- tools/lammps-gui/TODO.md | 1 - tools/lammps-gui/lammpsgui.cpp | 14 ++++++++++++++ tools/lammps-gui/lammpsgui.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index f6c97c12b6..f9fd7b4dde 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -2,7 +2,6 @@ LAMMPS-GUI TODO list: # Short term goals -- add indicator for when the file in editor is modified (-> status bar?) - add "Help" entry to menu bar. Should open a popup window with a one page description of how to use it. Use HTML or Markdown text. - add dialog when exiting asking if file should be saved when it is modified, similar dialog when opening a new file - add CTRL-q hotkey to log windows so you can exit the entire application (add do you really want to? dialog to this) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 4f6d7d74fa..f88c892f7e 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -70,6 +70,8 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : connect(ui->actionStop_LAMMPS, &QAction::triggered, this, &LammpsGui::stop_run); connect(ui->actionAbout_LAMMPS_GUI, &QAction::triggered, this, &LammpsGui::about); connect(ui->action_Help, &QAction::triggered, this, &LammpsGui::help); + connect(ui->textEdit->document(), &QTextDocument::modificationChanged, this, + &LammpsGui::modified); #if !QT_CONFIG(clipboard) ui->actionCut->setEnabled(false); @@ -158,6 +160,7 @@ void LammpsGui::open_file(const QString &fileName) QString text = in.readAll(); ui->textEdit->document()->setPlainText(text); ui->textEdit->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); + ui->textEdit->document()->setModified(false); file.close(); } @@ -175,6 +178,7 @@ void LammpsGui::write_file(const QString &fileName) QString text = ui->textEdit->toPlainText(); out << text; file.close(); + ui->textEdit->document()->setModified(false); } void LammpsGui::save() @@ -286,6 +290,16 @@ void LammpsGui::logupdate() } } +void LammpsGui::modified() +{ + const QString modflag(" - *modified*"); + auto title = windowTitle().remove(modflag); + if (ui->textEdit->document()->isModified()) + setWindowTitle(title + modflag); + else + setWindowTitle(title); +} + void LammpsGui::run_done() { logupdater->stop(); diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 1ce4946bec..8e729c388a 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -64,6 +64,7 @@ private slots: void about(); void help(); void logupdate(); + void modified(); private: Ui::LammpsGui *ui; From cb5470ece3506f9b9f02e53f0bd6dfd7efcff2aa Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 28 Jul 2023 07:36:25 -0400 Subject: [PATCH 180/247] add dialog checking whether to discard changes in a modified buffer --- tools/lammps-gui/TODO.md | 1 - tools/lammps-gui/lammpsgui.cpp | 45 ++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index f9fd7b4dde..170211516e 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -3,7 +3,6 @@ LAMMPS-GUI TODO list: # Short term goals - add "Help" entry to menu bar. Should open a popup window with a one page description of how to use it. Use HTML or Markdown text. -- add dialog when exiting asking if file should be saved when it is modified, similar dialog when opening a new file - add CTRL-q hotkey to log windows so you can exit the entire application (add do you really want to? dialog to this) - add "render" dialog where a "write_dump image" can be triggered. dialog should offer options for size, zoom, rotation, colors(?) - add "syntax check" with enabled "-skiprun" flag diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index f88c892f7e..c997b6d950 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -143,6 +143,29 @@ void LammpsGui::open() // open file and switch CWD to path of file void LammpsGui::open_file(const QString &fileName) { + if (ui->textEdit->document()->isModified()) { + QMessageBox msg; + msg.setWindowTitle("Unsaved Changes"); + msg.setWindowIcon(windowIcon()); + msg.setText(QString("The buffer ") + current_file + " has changes"); + msg.setInformativeText("Do you want to save the file before opening a new file?"); + msg.setIcon(QMessageBox::Question); + msg.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); + int rv = msg.exec(); + switch (rv) { + case QMessageBox::Yes: + save(); + break; + case QMessageBox::Cancel: + return; + break; + case QMessageBox::No: // fallthrough + default: + // do nothing + break; + } + } + QFileInfo path(fileName); current_file = path.fileName(); current_dir = path.absolutePath(); @@ -214,6 +237,28 @@ void LammpsGui::quit() lammps_python_finalize(); } #endif + if (ui->textEdit->document()->isModified()) { + QMessageBox msg; + msg.setWindowTitle("Unsaved Changes"); + msg.setWindowIcon(windowIcon()); + msg.setText(QString("The buffer ") + current_file + " has changes"); + msg.setInformativeText("Do you want to save the file before exiting?"); + msg.setIcon(QMessageBox::Question); + msg.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); + int rv = msg.exec(); + switch (rv) { + case QMessageBox::Yes: + save(); + break; + case QMessageBox::Cancel: + return; + break; + case QMessageBox::No: // fallthrough + default: + // do nothing + break; + } + } QCoreApplication::quit(); } From 62ec8e744a0966a6e23d0f936efc252118af7d7e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Jul 2023 13:40:36 -0400 Subject: [PATCH 181/247] WIP on preferences dialog --- tools/lammps-gui/CMakeLists.txt | 2 ++ tools/lammps-gui/lammpsgui.cpp | 41 ++++++++++++++++++++++++-------- tools/lammps-gui/lammpsgui.h | 7 ++++++ tools/lammps-gui/lammpsgui.ui | 18 +++++++++++--- tools/lammps-gui/preferences.cpp | 25 +++++++++++++++++++ tools/lammps-gui/preferences.h | 33 +++++++++++++++++++++++++ 6 files changed, 113 insertions(+), 13 deletions(-) create mode 100644 tools/lammps-gui/preferences.cpp create mode 100644 tools/lammps-gui/preferences.h diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 15efc3a0c3..18322f2ecd 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -77,6 +77,8 @@ set(PROJECT_SOURCES lammpsgui.ui lammpsrunner.cpp lammpsrunner.h + preferences.cpp + preferences.h stdcapture.cpp ${PLUGIN_LOADER_SRC} ) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index c997b6d950..c80417f662 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -15,6 +15,7 @@ #include "highlighter.h" #include "lammpsrunner.h" +#include "preferences.h" #include "stdcapture.h" #include "ui_lammpsgui.h" @@ -38,23 +39,38 @@ #include "library.h" #endif +// duplicate string +static char *mystrdup(const std::string &text) +{ + auto tmp = new char[text.size() + 1]; + memcpy(tmp, text.c_str(), text.size() + 1); + return tmp; +} + LammpsGui::LammpsGui(QWidget *parent, const char *filename) : QMainWindow(parent), ui(new Ui::LammpsGui), highlighter(nullptr), capturer(nullptr), status(nullptr), logwindow(nullptr), logupdater(nullptr), progress(nullptr), - lammps_handle(nullptr), plugin_handle(nullptr), plugin_path(nullptr), is_running(false) + prefdialog(nullptr), lammps_handle(nullptr), plugin_handle(nullptr), plugin_path(nullptr), + is_running(false) { ui->setupUi(this); this->setCentralWidget(ui->textEdit); + highlighter = new Highlighter(ui->textEdit->document()); + prefdialog = new Preferences(this); + capturer = new StdCapture; current_file.clear(); - capturer = new StdCapture; + recent_files.clear(); + + lammps_args.clear(); + lammps_args.push_back(mystrdup("LAMMPS GUI")); + lammps_args.push_back(mystrdup("-log")); + lammps_args.push_back(mystrdup("none")); setWindowIcon(QIcon(":/lammps-icon-128x128.png")); - QFont text_font(":/monospace.ttf"); text_font.setStyleHint(QFont::TypeWriter); ui->textEdit->document()->setDefaultFont(text_font); ui->textEdit->setMinimumSize(800, 600); - highlighter = new Highlighter(ui->textEdit->document()); connect(ui->actionNew, &QAction::triggered, this, &LammpsGui::new_document); connect(ui->actionOpen, &QAction::triggered, this, &LammpsGui::open); @@ -70,6 +86,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : connect(ui->actionStop_LAMMPS, &QAction::triggered, this, &LammpsGui::stop_run); connect(ui->actionAbout_LAMMPS_GUI, &QAction::triggered, this, &LammpsGui::about); connect(ui->action_Help, &QAction::triggered, this, &LammpsGui::help); + connect(ui->actionEdit_Preferences, &QAction::triggered, this, &LammpsGui::preferences); connect(ui->textEdit->document(), &QTextDocument::modificationChanged, this, &LammpsGui::modified); @@ -393,11 +410,9 @@ void LammpsGui::run_buffer() clear(); capturer->BeginCapture(); - std::string buffer = ui->textEdit->toPlainText().toStdString(); - char *input = new char[buffer.size() + 1]; - memcpy(input, buffer.c_str(), buffer.size() + 1); + char *input = mystrdup(ui->textEdit->toPlainText().toStdString()); + is_running = true; - is_running = true; LammpsRunner *runner = new LammpsRunner(this); runner->setup_run(lammps_handle, input, plugin_handle); connect(runner, &LammpsRunner::resultReady, this, &LammpsGui::run_done); @@ -491,10 +506,16 @@ void LammpsGui::help() QMessageBox::information(this, "LAMMPS-GUI Help", helpmsg); } +void LammpsGui::preferences() +{ + QString helpmsg = "This is LAMMPS-GUI version " LAMMPS_GUI_VERSION; + QMessageBox::information(this, "LAMMPS-GUI Help", helpmsg); +} + void LammpsGui::start_lammps() { - char *args[] = {(char *)"LAMMPS GUI", (char *)"-log", (char *)"none"}; - int nargs = sizeof(args) / sizeof(char *); + char **args = lammps_args.data(); + int nargs = lammps_args.size(); #if defined(LAMMPS_GUI_USE_PLUGIN) liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 8e729c388a..7db1ff2825 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -16,6 +16,7 @@ #include #include +#include // forward declarations @@ -32,11 +33,13 @@ class QTimer; class Highlighter; class StdCapture; +class Preferences; class LammpsGui : public QMainWindow { Q_OBJECT friend class CodeEditor; + public: LammpsGui(QWidget *parent = nullptr, const char *filename = nullptr); ~LammpsGui() override; @@ -65,6 +68,7 @@ private slots: void help(); void logupdate(); void modified(); + void preferences(); private: Ui::LammpsGui *ui; @@ -74,6 +78,7 @@ private: QPlainTextEdit *logwindow; QTimer *logupdater; QProgressBar *progress; + Preferences *prefdialog; QString current_file; QString current_dir; @@ -81,6 +86,8 @@ private: void *plugin_handle; const char *plugin_path; bool is_running; + std::vector recent_files; + std::vector lammps_args; }; #endif // LAMMPSGUI_H diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index d9f9ca077a..4e06f3b62a 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -25,7 +25,7 @@
- + true @@ -65,6 +65,8 @@ + + @@ -283,7 +285,8 @@
- + + .. &About LAMMPS-GUI @@ -294,7 +297,8 @@ - + + .. &Help @@ -303,6 +307,14 @@ Short Help + + + + + + Edit Preferences... + +
diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp new file mode 100644 index 0000000000..58be0f55fb --- /dev/null +++ b/tools/lammps-gui/preferences.cpp @@ -0,0 +1,25 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "preferences.h" + +#include +#include + +Preferences::Preferences(QWidget *parent) : QDialog(parent) +{ + +} + + + diff --git a/tools/lammps-gui/preferences.h b/tools/lammps-gui/preferences.h new file mode 100644 index 0000000000..0cd8f374c0 --- /dev/null +++ b/tools/lammps-gui/preferences.h @@ -0,0 +1,33 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef PREFERENCES_H +#define PREFERENCES_H + +#include + +class QTabWidget; +class QDialogButtonBox; + +class Preferences : public QDialog +{ + Q_OBJECT + +public: + explicit Preferences(QWidget *parent = nullptr); + +private: + QTabWidget *tabWidget; + QDialogButtonBox *buttonBox; +}; +#endif From b75407684f779d67c1266bf5b90c384966dde584 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Jul 2023 13:49:21 -0400 Subject: [PATCH 182/247] more accurate pattern matching --- src/ELECTRODE/fix_electrode_conp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ELECTRODE/fix_electrode_conp.cpp b/src/ELECTRODE/fix_electrode_conp.cpp index 85f59127f1..1b6c0a37d4 100644 --- a/src/ELECTRODE/fix_electrode_conp.cpp +++ b/src/ELECTRODE/fix_electrode_conp.cpp @@ -417,7 +417,7 @@ void FixElectrodeConp::post_constructor() input->variable->set(fmt::format("{} equal f_{}[{}]", var_vtop, fixname, 1 + top_group)); input->variable->set(fmt::format("{} equal (v_{}-v_{})/lz", var_efield, var_vbot, var_vtop)); // check for other efields and warn if found - if (modify->get_fix_by_style("efield").size() > 0 && comm->me == 0) + if (modify->get_fix_by_style("^efield").size() > 0 && comm->me == 0) error->warning(FLERR, "Other efield fixes found -- please make sure this is intended!"); // call fix command: // fix [varstem]_efield all efield 0.0 0.0 [var_vdiff]/lz From d9f4ce04af68b6128daca58d12496622829892b5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Jul 2023 21:03:24 -0400 Subject: [PATCH 183/247] integrate packaging related changes, build script for GUI --- cmake/CMakeLists.txt | 18 +++- cmake/packaging/LAMMPS_DMG_Background.png | Bin 0 -> 66554 bytes cmake/packaging/LAMMPS_DMG_Setup.scpt | 58 +++++++++++ cmake/packaging/README.macos | 46 +++++++++ cmake/packaging/build-macos-dmg-with-gui.sh | 105 ++++++++++++++++++++ cmake/packaging/lammps-icon-1024x1024.png | Bin 0 -> 611984 bytes cmake/packaging/lammps.icns | Bin 0 -> 1550873 bytes cmake/packaging/png2iconset.sh | 30 ++++++ tools/lammps-gui/CMakeLists.txt | 17 +++- tools/lammps-gui/lammpsgui.cpp | 8 ++ tools/lammps-gui/lammpsgui.qrc | 2 +- tools/phonon/CMakeLists.txt | 3 + 12 files changed, 281 insertions(+), 6 deletions(-) create mode 100644 cmake/packaging/LAMMPS_DMG_Background.png create mode 100644 cmake/packaging/LAMMPS_DMG_Setup.scpt create mode 100644 cmake/packaging/README.macos create mode 100755 cmake/packaging/build-macos-dmg-with-gui.sh create mode 100644 cmake/packaging/lammps-icon-1024x1024.png create mode 100644 cmake/packaging/lammps.icns create mode 100755 cmake/packaging/png2iconset.sh diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 604339f345..f5721562a8 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -798,7 +798,7 @@ include(Documentation) ############################################################################### # Install potential and force field files in data directory ############################################################################### -set(LAMMPS_INSTALL_DATADIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps) +set(LAMMPS_INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR}/lammps) install(DIRECTORY ${LAMMPS_POTENTIALS_DIR} DESTINATION ${LAMMPS_INSTALL_DATADIR}) if(BUILD_TOOLS) install(DIRECTORY ${LAMMPS_TOOLS_DIR}/msi2lmp/frc_files DESTINATION ${LAMMPS_INSTALL_DATADIR}) @@ -866,6 +866,22 @@ if(ClangFormat_FOUND) WORKING_DIRECTORY ${LAMMPS_SOURCE_DIR}) endif() +# Packaging +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LAMMPS") +set(CPACK_PACKAGE_VENDOR "The LAMMPS Developers") +set(CPACK_PACKAGE_NAME "LAMMPS") +set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}") + +if(CPACK_GENERATOR STREQUAL "DragNDrop") + set(CPACK_DMG_VOLUME_NAME "LAMMPS-macOS-universal") + set(CPACK_DMG_BACKGROUND_IMAGE "${LAMMPS_DIR}/cmake/packaging/LAMMPS_DMG_BACKGROUND") + set(CPACK_DS_STORE_SETUP_SCRIPT "${LAMMPS_DIR}/cmake/packaging/LAMMPS_DMG_Setup.scpt") + set(CPACK_COMPONENTS_GROUPING ALL_COMPONENTS_IN_ONE) + + install(FILES ${LAMMPS_DIR/cmake/packaging/README.macos DESTINATION . RENAME README.txt) +endif() +include(CPack) + # extract Kokkos compilation settings get_cmake_property(_allvars VARIABLES) foreach(_var ${_allvars}) diff --git a/cmake/packaging/LAMMPS_DMG_Background.png b/cmake/packaging/LAMMPS_DMG_Background.png new file mode 100644 index 0000000000000000000000000000000000000000..2d812bfd1c694b00f21e648e9f7b9b593e706cd7 GIT binary patch literal 66554 zcmeEtWmsHW(mRhxH5%pO`4h4}A5ds1NML}L#9RdOx{OczOcv$dDYby>4_yxgPUe65z z0=4&_AIL$c5_9l}1nx4r?ix;(?p`LY77$)uUaU5bc5Y@S&K9gru2xy+!h{eI1JIEWMSb5WsHv-zIgFw5 zBM2plLzVfOhXxF5sYj22g-P7XvsR85cc%{t0TrfZAAu)tAfk_7Z+a*1+YNGVc`w;+ zRz4SXc~(f`P`H^zHvhTbR4tZ1CkO3z31KSFg4_6?``wgTNP?5jyHJjWRdo_`VJr!^ERPSEaQz8$R_Zfpf zGG1w~!ZjBe*s>e2cH`+h27j^BGB)C<`#kUtKb-x9!`H~dpx;^$s_K~lAP1kt6@nfl zm{2qxGd>@S9`wAx0k9I0eF6V*`ngUV=-jr)KTde%n4^<$w(@$YypJ9bIdWq+uoP|L zcZUD$a}xbl>8^tv@RmfPC0uIL6kHF3kGx;PhVNbD&q* z{PkizTaSH&Pa;C=nIBJd_G&D)U-W#(Nhf?COj;KM35*)i^G(+#o{3QFE`fO+roeMV zR^#pcgt~*AJN!>>Dg;d}lw%#2f!YQ^iQxV!{5%WM>09bJxBI8VM2_A`2R?i^t`#w& zeKU6Vwc7(mt&1CX(fz>BheW#m`$&KMbl758JMm@%k4+nB~H+9p!tw>H!%;fo@j0q+4hUC%R7-nFUG zF)c63SPe7eNpCErsufVH7m4LI&Bt9dLN#4`n2e6__^}u9&KMI}@6m~<#oD>8<+)6k z<^C#a&Hb6sWmC3?EvYiyI#K8F^@)-B8w%SD_rrk3VE9jmt3l0N@MInw3w^E8#mv3J z#r@h6io!=~`7ZPEG=fj`qvkTYSnpoHEw!+q&+6EH@c}~XvOQad$Ij}PI$!t zJXgG_yXHqJwmP_WNt($G7nr&nORV`;;7OU5R1#Yr?ehWQ5bUo$fa_^loSF1vCFn(%_$V z`(jwOLQSM*>4c=fUNq8#8Vk_N_ge#1^11Kp`*1JFrk@^y|3KPe6a)-AJW5sYuZtot z{_%}vfG`MN2Jai1*KLC44pC$|xaGf&ipvr>zsGNC@v|8AclUm+YK8TH4S*Nw1PBk= z%niC!fp0h|QgzSeorQa%l{APwWSu~qzxDgwCfrQfpf`d;j99eToO;(nodU66qCSmb zf(xr*`FRi7dC%@01u=SR>2w_3b@Sz$v~ML1di0hvENEHg&&N9!ho_P3Dgl`&&A{W-MKz-yj+rwl zmv#V#Q*~Wnh0rkI>}R$R>^GZ-*^c)t@7|lsr?>QYOT=Y`>l#CFd&e=*s|&kG&^1E6 znzo)ZW(nZlcuYrvJr*Z6^{sawP7bdo_$zS&$C?LB1(H~a>7TDBk6TVPWi7t3Na;1t zNRK@^%_2s~hsd1Cs|<$`CmgVUH!hW5QQWSc1Mu%H5i>Zhuhs|6vTL4MLn=-#;Uv@J z*?C4~ZEq9UVy+lpLGba<4e|GzaPoH@=e}GlF{0w+bFs5$gQU6&^&f$M6k-1x8Y%Zq z0^z=mFMrn>-*wdnfVZK{)`P3v1`@r=|t3c&WsAQKq-19`$L7lzb7{iA(@Z^_-cO)m@p+N zN@GOaq@3*+iG0%<-|_sRKxZni2jV|+TOu~GO~q#QOEM5tX-VWS#O`+I{#;&AljSoK zjvao=J)q#jc_#WtpFqkoX`Xp`4!g%aH-#pcJ$pzWu}zOWCwqXMB)h%Qd?jFxQNbV{ z^T-^T!LB$3YAM^~k8M%zA%Cj+bqd{M5m&6%xGCQa_6>vL6Mkdz;90Q7b-J=@&h?8H zX^wGW4H3*t6oZxug-YCX8MVtwbOENukiN|R^P~57TY;!iqd$Y`qJ`Z32i8Be$G7X# z=y7JSZx8^3!;32k7O6E+#I>ZqZNy6dNT=f$Vd*KG@PQkcJ?`3%5+>qh(-tVL^x%xI z|D$2%4qaobx5l=fu+Lp|Q*aT>Bw3LSvcaW4NXB;Kh)o7RuP&28t{t+CH?Vxh;Xv#S z{!_#e2bJNzlk%dK3WQEI2J=$4c zgzR;vvPd1$U#ckpBjskC=**DoEHcBbsJe5bspFHui5MOcol zfP(Fi|~D=XTWuy%{8bxi?a3|E-hoh*4#O2?jgEBG2c4ffs*wHzs^{$-dZlKzlR0a?UZ zI6=EY-uKmIEk7I?_m}3V4dx(eciBPw*OSvZZNy=!SWTqk!0a_?1}@!%Y0A7MRo2cJ zm-2%1%|1xiX)ts^VSGa1)X0K}39~6qC-}3OM|VCr_gB_F9^&biKK0l01o`oUS%tLk ztAc-AIX>&5YBWcJiJRH{h>4J|zZx^xu!u%W+=+C2$+@w_rR9Rv&tettzi$sv2w|yG;MKKdN zc~ndMkx3$7t;#L}p(+kdy!eu0&I{DDf4TLOgst)=;=l4pwRHl1-Wjar%YYaAu!>W@ z$CU&3oq-HPLl#w*Xgm`;UeGA4;<8zREZ@wOn@9zc6R3WN*!Q`Yao`@Q^oM%E0BJ9g zp2T2A-oTlQoB3?<5FHx2wFsKY(hxv2(gtm+;aUYMNe}tr9k1vmNCs>QAeZj%&o{3g zJAvahHB}S**v&?;;=#8uq-gN&2;PQ!STELJpAiWCDhtxRgMVjUchWo>vVD(#TDQ7jfKz2ju0S^=aGxkBzNYH(+6BWYUgPa4mo&J&jYc_)kxyFAR2 zK9Lw*lOJi;c23Lt_~n)5(9|t#XuwmQsrawH58U>>hxE(2mG@-VmV-g~?5YffN4n{; z%*u~76|>1KhJhwG^BX#sCqL)NiJu1ebV5(Wac+)3EkNV=claE{(E5{w+A4{}Z&dFG z9{-q68wG7!iK%b|Uq(Q zJHHVA3J^2%o?N`*sQ_&s6(k-PrXLqN9G!7{bVW(pGs)$GTMfcJpQ0RTQLCN(Vw35I zHGZ=hs+O}gHQPjqEVMDeqdQN0bX9!Wlq>Zzld$W#tQDIf5kitinOHE83(i*x?Dk0> zdkvA#nqwZPq#jp~ePTPmX${Y`T&wgrlxK*#qEWqcMpfCcpsK=!&rw8|_SUn#U?*kh zeEu#nI6a=%gOgouI+g&;@sBU^;hW|Bpe>1=ez}e00IkeAoB>6Yq3!&&%wUI)gtS`=V-g>r!JSCG@%fiw{ zebF+atcJl8;Ks{tHf|WEuY+ZK+U@L#LGs9w5mh`NR;B;b?hY@?-B6l-CTe|E+4MH! z`H_{eUqK%)AgpNFiDqsouF6C-<56uVw2PLjCByWYe*4_c+VC+@Quzj+dm=xP4fCum za%|5MG3w2mlIbu14Odv^B>575C?VvpfCpfPf4sjbo2O0~LHRl5Tx;~_0<3Lo8s1Bx z+S%2i!3T;8&K#x->KP9VkUSl#6JJzP@i0JGO0+Xl(Is<%OH@%~vLTGH?F!l|DV~&? z=Ni6ciFKsKOuDtI5R6sf`6hce*|Q`?<=Q_E!KaHF;BLpxNcm+(6~k5_)L4oRXH>cV zL)3Me1RDrrc6lD|9&bX1VAiZZg-x&CBJ6+4E2kFlR$iw1%v$Eqo%?3)9w6p`_-M{dix5CMi->fPDEttX3Y? zS|DlufXZoZMxR_RIoB2Q)1y&YKmM7Ls7k@1Vvq8A^Q%Zfu}Zv4*wAUyH0MW0Smxmt zibwKfA2<-o_NN~WZnnqY7v_=AwSPA@hfOUDwf+d$Gi%c%U1u57^?}Q8Obw$ngqMS> zdH)K`Sd(ULL^6*fDDRSQelw7a%So?f#iUYA%vdY9){UL6IrXIE+LUZACGs-HEgkLv zqfV0gv91i~S>o4iQr9B}OsOs!vQ-&|^~frpPvFt2H18vaBsntj;7xb>9s8^#^seSV zbJbUp&n-n+@M01@;Bv}Bt~71+fN%V*N9 zn*ga@K=wPSx<(r~?(27v$ysOLux1`^NH<%s1`i3lF5_PXzsz|t`Xq{v3e>Z-#C^Vz z>=}2f8M7?%4H5^V56hlM_Exe z54$%A(c#3nq}dx-4ZXZNRGvCqDv{w@qluF=&dsaw2}mZr=Z-ztI0h4h8TODmmvfaL z=Uc*nS?aAwcg|2I_J@?pxAQGxZGI?9z~tdej7Y-GMV!5Y>Jw7`0)OW=SfAE>DNqGYy;j zd2uHA(CxUxkI+5tCMzm)w?b@pZ_Npv~c zedjj2g?FqJ(4JmGx<0}an8Qo_jcFvk)(`H+^N5ckTEH3?_O;^ML}y>2#M+2Wv!qFj zqzJTC1)tiMOb!x?HI*2B0cDQ7QnC-7glYG(-N#tWqM;-emCjQmc1?%&R56BxisHTL zqZ5d7K(`gxE!BR4Dn~09w-4k1xWEJ%T7fvNm!$=<%wILorv;~3hrHvrx@{G!!313^|GE;2tew_$&N8ufq#TKaz~AH!Y$gJ zPavQBmoq$@yzp53M2;5_Y1}0gVB-P+(A#7`H<{a@sx*~AAAVNlG6lj9tsn%T#Rtm3r_Q#dcrwtuz2TOdO(cOfC9IbO6>?Gg@s1 zYZCK5-uaFQS_MwH&L?xMuMU9E3toA=twg{5zcFnhk1L0q35_7D3P;(XB}S3Z<_QBB zYEolZ(Z_OW1pK9|i!TH?YxQAwQ(qr3+lm#ue$sLmp8vM2NwX0^DW2a zT^4*LIw4fWyi#uWa3d^Wz!;V5ir6GCdfG8m`HN<(WcnSxmq|J4P8pw+M)KAZo?>jQ zSg^@MQhdY^oi77Tlgm|jh@OaZiB7GPF&0A*TK_42|0xG2mTIkUc>gsQjM*;m(DR%c zZ+#pcs$83bY*o1-TR5;H=BO82U5abf zyG4^-kaoG%k8Zj2>^4o~SU+A2l%2~>v>?fgr0OI9U~LUG$@(&XOLwm^oKW_nCf>j< zA^JqAQDm5k3=mC_B0b1t%FmbBcX5AJ0AwZXrQ}Jf_j@1phvYi)U;f(buCY?^5n`~E zV<>_fRuS!AnFm@ZK~qryEBw5Gap#uk)wUMk=yNwqa=e*g&epF<*866`7|s9&=~MXG zTdz#w_#sw#S=3w&87@)~u*-i@Pqo<=4Pdqt!QPFIO%RJRxk*gFR+A_F1zedZ#8dKZ zg@H2)`!twKL6WZ8pkJsx49rmRgd7|KIo3L9 zBfK`1Ddy!$Zqy4>@cR!RpAX^qKMbl@DR4up0%t*NyhdSswb}muY+z7ko$1Ae!o^C# z^$u+Y7bsr6tL{Hu&OnWt#DD)KBqwc_`^2}bMKr>5BV5QIHnR zc0phFy%0Mx-1~xCNy<*WH{VT8m5S>CB@YD=G0^|G4$||svLBofYk6MI3&FNr`Um$y zYRq1yRtY@L52W(98*0|VHNSJ3N)UK^1r!Vax)iZ3k{4sWwpE@=?Mx!ry`!N(>+}l>t{?RWuMs6j4;2S?A@qo$j#%s^c`zMMCu?OkcukUztU4iyAsH$}PW1^xrNmA{*zEO)z z3Wd-g9(lt$optz;L867HAQDTd+087!!Vk`OqZ(bBU*E>RY@ld z=inBS7bP-Y@IO#}qGLw@EQ1e2(YUhfBSqLzk;9dov!CQY zklNKGM0_<|UawbgeT?s%aOcmREryvZX6K_89-43sVq|fgq9s{gM@8C6WzD58OceF& zpa|{9^Y21_{~LOXm*%U?b^lu_9Ks&P0Xecr)u2EQ%PoJ~RN`SXw5=%SVvBb_4DC!1 z-g#g33phn6){maS+30KPA~bs!4o;ccWP4gFmLeuJiZQv_sn0#k`btqz!-du6oY+t9Zg41f)M)kt=FAJp^Cn)sDYN-l6so&-j(e>*c>ZONqC z&IcCTe;BVmrMUj?gF7E2(o-1ic`#{Gfc^S7!yxBo`!9oXZ)Fv%50O~4m?qRNpL
    q^w0}Y;w;%1JreEeUlHdyySB9fLx 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
    K>I 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

    }@9s$g8==ea@S6WeO$u;a+@cl;3iOP~2D0cKFSZ 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 NQP)w+IBIqEzX0q|v9|yK literal 0 HcmV?d00001 diff --git a/cmake/packaging/LAMMPS_DMG_Setup.scpt b/cmake/packaging/LAMMPS_DMG_Setup.scpt new file mode 100644 index 0000000000..b3da5bd094 --- /dev/null +++ b/cmake/packaging/LAMMPS_DMG_Setup.scpt @@ -0,0 +1,58 @@ +on run argv + set image_name to item 1 of argv + + tell application "Finder" + tell disk image_name + + -- wait for the image to finish mounting + set open_attempts to 0 + repeat while open_attempts < 4 + try + open + delay 1 + set open_attempts to 5 + close + on error errStr number errorNumber + set open_attempts to open_attempts + 1 + delay 10 + end try + end repeat + delay 5 + + -- open the image the first time and save a DS_Store with just + -- background and icon setup + open + set current view of container window to icon view + set theViewOptions to the icon view options of container window + set background picture of theViewOptions to file ".background:background.png" + set arrangement of theViewOptions to not arranged + set icon size of theViewOptions to 64 + delay 5 + close + + -- next setup the position of the app and Applications symlink + -- plus hide all the window decoration + open + update without registering applications + tell container window + set sidebar width to 0 + set statusbar visible to false + set toolbar visible to false + set the bounds to { 100, 40, 868, 640 } + set position of item "LAMMPS" to { 190, 216 } + set position of item "Applications" to { 576, 216 } + set position of item "README.txt" to { 190, 400 } + end tell + update without registering applications + delay 5 + close + + -- one last open and close so you can see everything looks correct + open + delay 5 + close + + end tell + delay 1 +end tell +end run diff --git a/cmake/packaging/README.macos b/cmake/packaging/README.macos new file mode 100644 index 0000000000..3f494e9391 --- /dev/null +++ b/cmake/packaging/README.macos @@ -0,0 +1,46 @@ +LAMMPS and LAMMPS GUI universal binaries for macOS (arm64/x86_64) +================================================================= + +This package provides universal binaries of LAMMPS and LAMMPS GUI that should +run on macOS systems running running macOS version 11 (Big Sur) or newer. Note +the binaries are compiled without MPI support and contain a compatible subset +of the available packages. + +The following individual commands are included: +binary2txt lammps-gui lmp msi2lmp phana stl_bin2txt + +After copying the lammps-gui folder into your Applications folder, please follow +these steps: + +1. Open the Terminal app + +2. Type the following command and press ENTER: + + open ~/.zprofile + + This will open a text editor for modifying the .zprofile file in your home + directory. + +3. Add the following lines to the end of the file, save it, and close the editor + + LAMMPS_INSTALL_DIR=/Applications/lammps-gui.app/Contents + LAMMPS_POTENTIALS=${LAMMPS_INSTALL_DIR}/share/lammps/potentials + LAMMPS_BENCH_DIR=${LAMMPS_INSTALL_DIR}/share/lammps/bench + MSI2LMP_LIBRARY=${LAMMPS_INSTALL_DIR}/share/lammps/frc_files + PATH=${LAMMPS_INSTALL_DIR}/bin:$PATH + export LAMMPS_POTENTIALS LAMMPS_BENCH_DIR PATH + +4. In your existing terminal, type the following command make the settings active + + source ~/.zprofile + + Note, you don't have to type this in new terminals, since they will apply + the changes from .zprofile automatically. + +5. Try running LAMMPS + + lmp -in $LAMMPS_BENCH_DIR/in.lj + +6. Try running LAMMPS GUI + + lammps-gui $LAMMPS_BENCH_DIR/in.rhodo diff --git a/cmake/packaging/build-macos-dmg-with-gui.sh b/cmake/packaging/build-macos-dmg-with-gui.sh new file mode 100755 index 0000000000..b871bf4775 --- /dev/null +++ b/cmake/packaging/build-macos-dmg-with-gui.sh @@ -0,0 +1,105 @@ +#!/bin/bash + +APP_NAME=lammps-gui + +echo "Delete old files, if they exist" +rm -f ${APP_NAME}.dmg ${APP_NAME}-rw.dmg LAMMPS-macOS-multiarch.dmg + +echo "Create initial dmg file with macdeployqt" +macdeployqt lammps-gui.app -always-overwrite -dmg +echo "Create writable dmg file" +hdiutil convert ${APP_NAME}.dmg -format UDRW -o ${APP_NAME}-rw.dmg + +echo "Mount writeable DMG file in read-write mode. Keep track of device and volume names" +DEVICE=$(hdiutil attach -readwrite -noverify ${APP_NAME}-rw.dmg | grep '^/dev/' | sed 1q | awk '{print $1}') +VOLUME=$(df | grep ${DEVICE} | sed -e 's/^.*\(\/Volumes\/\)/\1/') +sleep 2 + +echo "Create link to Application folder and move README and background image files" + +pushd "${VOLUME}" +ln -s /Applications . +mv ${APP_NAME}.app/Contents/Resources/README.txt . +mkdir .background +mv ${APP_NAME}.app/Contents/Resources/LAMMPS_DMG_Background.png .background/background.png +mv ${APP_NAME}.app LAMMPS.app +cd LAMMPS.app/Contents + +echo "Attach icons to LAMMPS console and GUI executables" +echo "read 'icns' (-16455) \"Resources/lammps.icns\";" > icon.rsrc +Rez -a icon.rsrc -o bin/lmp +SetFile -a C bin/lmp +Rez -a icon.rsrc -o MacOS/lammps-gui +SetFile -a C MacOS/lammps-gui +rm icon.rsrc +popd + +echo 'Tell the Finder to resize the window, set the background,' +echo 'change the icon size, place the icons in the right position, etc.' +echo ' + tell application "Finder" + tell disk "'${APP_NAME}'" + + -- wait for the image to finish mounting + set open_attempts to 0 + repeat while open_attempts < 4 + try + open + delay 1 + set open_attempts to 5 + close + on error errStr number errorNumber + set open_attempts to open_attempts + 1 + delay 10 + end try + end repeat + delay 5 + + -- open the image the first time and save a .DS_Store + -- just the background and icon setup + open + set current view of container window to icon view + set theViewOptions to the icon view options of container window + set background picture of theViewOptions to file ".background:background.png" + set arrangement of theViewOptions to not arranged + set icon size of theViewOptions to 64 + delay 5 + close + + -- next set up the position of the app and Applications symlink + -- plus hide all window decorations + open + update without registering applications + tell container window + set sidebar width to 0 + set statusbar visible to false + set toolbar visible to false + set the bounds to { 100, 40, 868, 640 } + set position of item "'LAMMPS'.app" to { 190, 216 } + set position of item "Applications" to { 576, 216 } + set position of item "README.txt" to { 190, 400 } + end tell + update without registering applications + delay 5 + close + + -- one last open and close to check the results + open + delay 5 + close + end tell + delay 1 + end tell +' | osascript + +sync + +echo "Unmount modified disk image and convert to compressed read-only image" +hdiutil detach "${DEVICE}" +hdiutil convert "${APP_NAME}-rw.dmg" -format UDZO -o "LAMMPS-macOS-multiarch.dmg" + +echo "Delete temporary disk images" +rm -f "${APP_NAME}-rw.dmg" +rm -f "${APP_NAME}.dmg" + +exit 0 diff --git a/cmake/packaging/lammps-icon-1024x1024.png b/cmake/packaging/lammps-icon-1024x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..f79b034b120bf74de5105f1ee627a3d10328b02d GIT binary patch literal 611984 zcmeFY=T}o-)GZuH=+b))y+~6;Kw5%ykt$7E5Rf7uy-7$2MXFR4rAYNBg7hjaR1uLb zy#xU%N((&@lAGs_@w|V-`{91cNixPc*;Lff9E*6NEPje_e4BI6>f{UGl8i6-Rlfy zmMW}`e8saL&bCcRTRQG=pMZQP>AtraJ*(Vru5hVSVKejxK*{r=KOed4>Gj|9@S7d@ zFe5OUWB}-A+Ck52k^a@896j0_z79Lb^f=$*xioPyfz|6RnI^WTSUth+e6`QDL5{_$>sFU!Cd|I|dDopF;n zUj+BONs7EUdK!o(K@~P{HW;l4 zl{x?4rn(3&{tKdJy|`D|PPQVO6g~T6R=WEDm1C6E?Qh_0wQRce{#A6V@#%pUmiW5^`MyGK4=tU{*6y+Ev@JU@TkR{EtqP0cIZwd zn&Bfj(L{J(<$l~>hP4BzTY(ROyaKJW!El5>_k4aZT^vc^R|(??kYH*_`wq%vPSij4 ztse;TJgfXhq$}cJYYYLs*}=g+f73wD;>fw_p~qu~`A9Vf4cx4$|}lD2NSX#Oyn?o9Eo?=Cm8` zJ)mq$_#2{#WS^eZ@>SoUM-jQ^kCmE!}lD{Z8>#K-n zpuHDV?~^mILVx7*Nf2~2o5HzRbSF9HvAx+YI{YV#q2{;+)1 zpTIR*b!YL4Jr|u4Ir`y+h^eVe3j_kN6N1wUJ}nP}*Dj?o%c zG2TDN=(Hg3#7gSuM0Ioz{EP*+=BViR!EZX%2NA2@?z9BFWZ1szjQU&shriGhR!b8I z3eabo*Ktd2V9hft*vJRDdLfsE9T-1r@5dwR6pc9%sX0-RCJ_##;`yN9o1lBNd=O-)lwXvBYE>m zU(y|yZbp3-*h?;M2nz%-Ff&pM-xj_d(FJr%)bZ>RoYjr^ z?cH;k)$p#ff8`A6su`I!uzQcAfpdgM^K)9i78^uI{Y9cmRGegIx}+*9$W;dvz%0yQ zrsL9GtSY}ZSlR}?3mh4;not)R3nQ%sTD4Z(`OoJB{rUm=$Ogz~B|)Z7rr9Qi!Vl!w z3m^p0O3iNvkZ?SN3HFWB;zN`ZRiNG5s3X$N%|n|twJpcK?rOwtmowJ-fsn{jNKax` zds3FP&X9&^X+ly-P$EoURLdbQsOto1aTya+IeOeVNeNQaw;J9y|IXo8-*TP4yMmYC zXeTB)aLx!F8k!Q-b#}maauJy-os8gu9{or8DZ|w@^_u4MG42~}bh%A8yDI38aP2Z2 zHMQ?Lzr)WSaWoWWd(3|4K)$CAT^~%+XJi@(TQAL4$q^hC5e}iXnA47X z=JX9DMpk6ELdDK}Lfg<;ST`5>c7C7n@$PkH2o?O~-6Kz`4&zerp~4~gp$qQCXFT8W zq#l6lIrE2-Ec9b>oX3wcA|m%0k()O6+Li9403DZ7y;>TiGsK;BA`=iu2?pyfv4IQw z^d&OvZ`D=bf&D}d!p|k#Qj{OdtdL@r zpTB}iPh%d~Ivk?tfFuX)TwSi@Zf)RF)zNy*;qkbYpr7YXPwQH>K49FsuE>uIh>Hxr z*F&wbr56__@Zgs!_q6jlOOIh-gcK0#P&F6e6xP$K;YHsrkDY!+q zW7z);+XpM67MH$AiPwc6-7i4h_`*L0T{Y))tr(1XeYfzH=VjUW|H+ zTd5%pL3}Kf^eLFvX`qD6gk!U_pts;Yw^56N0@oDSZG}usFAfCuW%-nom~|YEBoFXf zq_oaQ&k%>cH}G!!&m=gJlE(e!aK@4IcYD{l^P>$i?ih(NrzY)-)@x`mWa5HO2Yau? zGh5P0BsqP3y@B*AAClbKnn?2}dJO5zJikW2*#OHPfr;C9jKB#T4F!eSBgjW-86An6 zHS=2VlU9Zf$zD3_w$Yfe5&`eA-c*AZFHk?rH8^4L-}?woy5}hZxFJ1S{A?CtCw|FD zmQJ2-)`&NiY9qTj(UqQ`!*nmcmG$C+dT3iNYeIvx57#yn%mW#)Pn&G`41R&G7eGN& zH27RP=d{g+EbbMN;p)s0n7iMWgb(bBXuC`J!o@nSEcxy24Ww;uhRMObv|X%aCJIY52ueg(=`9PIvcabZCYp4=5dLLV7uW5^x*#4`PZ`3_fRhy*f&3tbg8^;Hr1Zg^_*7u*NR z$rT?e_W`pvVO)ySfHl&(4RXxPvu`bpQ7OvC)xyFGl?{Jym3nL>rUYr!Y5ajS5B zeCs0>wBGA{k2W0UcCNY}TOriJ0{&nBM}Es`!ubvWCEZG%cRHY~Lpem5CswC(=&|1jXr~7DfDE6TeAx@FB>-oJm@x!*YwPaor7cGb7 z6&wN3+dSnPxVvY~=sx%vUqom@!QR%p0|MxTr{YaU=Wj+TDh1t*aJl_{r`J9slUShI z`p(pW_u~`o-u@@ zhtU^0BU|PBb??vvJ_lm%?GTr+tHQZJu(-elbI%~>W3?mnom@Bv z_!V|SRZ}(j*nXguN@KrfkE-pwo6NVk7IkB!I`gR?DRBLRa+jm@j+ zYj}p^E zOXgute8Eku9|c^iyJnXak9i<%dwLx_>T<@?uv}Q%eoWqw2O+%+|Ixs)`(to5h2XxV zdEgs2{H^sJ*0Oc|#3^YNWm)zpuS|$=i!<=WVK>?v7=g$hSP3GHK6N=y{uU-O&4&3 z5_*YkUM4_|EtPJ8iF#|-MV*eeufs3V!$}JOz=1wNGb2~iW^Vx0j|ldXJ5Vl z67_cC}WZ#dqv3dq@R4Q21h@ys zJZc05oFL7nL&@h(|J@alIoZ13gxvX+hGw|sTCzbdr>d)fNS@zT^MSFRHP3#phoM%A zJb{XsBh-zV0#O0jQ}t`|(w#e^JIgxQ&wat)`Po&OyXArLV?<4?b2uX#jQ4j*X`=n0?$!@k(I2CyWujyi zP3P`F@UEPJ7K?Zu^5^ADA@e|U8iLQ6M7l zkNL8-77_;(A=eBP9$bk@XX9n7BAAk609`cd^bQ|APr*55KL=Od|6U)vvwR7D_Zf?a{G5JkhL+c0w3w%O{@9uf57i>_r_OYZx*d5{e$uZXTiO_Tge4d1v1=_7-(BElfp;) zjY3kX5(JR^w_;+y#VTBcRHssXi>L4ZNZ%h8Jvy<}D5Pm1v&z@MF0b&Ic<}xUq|Xx$ z)|AshbeqUdn> zL&AYnHt|z*0_vEp1X1|T{6?lM{OGaxKbU(xK{spSPf6#Pn97zNXUFRyrE1gQ&fl8iTcS;x<_Cpq!p*Z!R~4IbLS?05T;?4-oh%=;XYg8;8z!c z?qQUp6LvXu_JfOJRF=xunDiMV$apX@*dC$Hn-RN2)3Qo;A7X~Y zbW`SI1WmxA$?_}`9$53_An)B}JZJsxth3=NO1tm=?kUUAwv*lzm7#=bcB(-4l~=&I z+JKtZKG|%|xcAD=NyVriSkCh!z2_E&#ur+)O&iQhD$$ynsB_-kR@R@P2!juuaZPa; z+8OLbY=3Dxm+^sX#~DS|M3f5Wy5rJCwBU|kf$_zz5s}a4Q$E!(+4Nv8d93uBR*M!} zp{Pk3v#$Q!*MMZ)O1e>O1BtL$Wy4i3{AkP$t9fDps*D4t}A1 z>NV%{ml?8%XM>SUbpG}_rP8V5FlWUV`QgFx=7E$4gMT#4E>IbOFE_h7vGUvLWL0f9 z-_Aj!u5C8P0L+%R>4l|M3j05jQWpnjK|k(w!9O}hVm$w$7SI+ckv&p#`vc;oO6Pqx zjJYULbDuNL`U3TVez%Vxjp zRIjMAsYpS}A*Gx{tQ5TQ@i$<=9#m%8 zRs+G$FW4Va^}Q=uBi_($C)!ADULSzO3uTUU{WZl323ExdmqhL~g!?`=l^Q4$oR7hGL);p;Z`N6=xn zhK~6ak&6b=*W{XEG1yJwx8Q$ysp5=GVq1q3%>4u5TLCLAm70@<=k$fdH!(0HA1LK0 z%#$@u+e(;buB4ao;SX$v>xQa$A;g;sUbJzbkUc_tv$NU4Wh@{c3?Y@v6o0v1Mi9XW zc%25bbqBD_MF;Pd1cARi<9(aVz?S^gS-I!y?a`W2mP`-sT(nC<2h5pEqdWYXE>*lx zjN4H*o7kj)lTUi~6zw*Du>hwqWVfn3RU`0eLAS(6N9`+)6B zFaGdNwGy<6&~%B~rKrEdY8`LC~Hk`Hefh%NwvV z{*8nv$NCKgDLdld+VuZu!{fq(+0Bmds_l#3GMf-dgaIoBZ!PLr2Ya2W+|}>4XIQeK zK3etWs)Hh++U&9>t!(NgrirW(N%rL-z6^X4A6oy~tlYQg;^zXTB?*vCoD8kiXQdYK z=E=B2v`<5PM9YRtbi$GHLmM>z@xp`()DyECMW^^oVvY~gOK%pGK|}$^*J|2rL&yVs z6UHio^&+l~rTov>WL%+na58pbE9G_(p69p|R)X{M5ePpN6wYsdppH|YdL^HoR!vH7 zqpya8a=OMC@WJILRs1aBu$;vvRGP+@OM$AJ&fUUvF>3)6+*tvjjYO5u>Q5UfFkA9l z`Dbsi-LYlsgNaj-hgidWqZdi<{!s%MS-OD~sE?xK8KZp}^3-vnxUV$WJQ+1_x0 z3nkvLZGDrh4cg<0AV}ZxO+>}c^?x-={cntfw6jz?E&AhF-n6L=cuTJDGoyiBP{s^= z!Uin;kdE-GdgYh%I_jn{32V~|uTN6CoIOt+YA6KG@GrEGr3dA3nHD-LMwRX2-~I9c zKPRv#GiB4Wkp=ESN>Qd<=Bc3kPjhjhG`|n_qwW)R`DQ`xkgK$JMY9R}d-Py&aW-~> zJP=6%uTTf$rux2 zqai*LAYpNZwV{H zGM?60NRsm=E6WUAxu(t%vzn^V!u*bM-@!S8EYs{@n@p&-Gz1tU4$Hzb;$of-p~n$t zj{26*-*cD8HGS&9JHV*>bU&f;NNxO6-3XoX^QTVyw~T$y?-+Y z&#v@mDPL&8R_Yk7m#8MYSS#f2%+4!{1m1dOTULi!^A^ru?7ot9P!!5L$nZed2OV_! z>C;XOo{nXvf`yY!-cEP5o&klco6bUN{~4tmkA<}ILeGVwMH|Vu_i3MHQY=hxdsY=n zc|A!=ehz>!<)zH4m3O&&te}q173T5c*{7cjzu64OnAvq8yZnHYhTC@1#F+k?tMg%( z-sgXi+j#Be_lQNaDVkqAOsvTP)@Vb%LcJyNB&ZcS!F-r>{dpY=yW>b?*|{Jqx!|+N(+TM@lKxI--!YD=VBCW`Pv^tN zuwm>@V$N`>%Xme3?!gXYXrugf2mXlqpd~}pMe&+E+4Xz@DQu6g905`#4ieuEU2<~0 zs%8=U#4JTE*yiVJwo?WAV7J>|O??*fk)|=RXhuw60s5)w7GvdjEb!$3<6pdZKp;(U zx=j0!&jENBZ$C8arS}gx5WYw1yIDr7T4GQFJ2v9DlI!V_ifi_w;pFZoOX39+h1Lox zC!LPj&doe8UkvGLf%GN}xuk1jS?VI!DI*Bt<)7~ZRl?p(TyAk2gJlNM;?$bqavwF0 zK8{>1i^YX}XLu`yc%p!*Bhz1H?FE?vks0S961kCD{~lV3_UaBMQM{%grIyT*+YqMi zL702vnPMrHM9a4yPTcPQ7<(H4R2uJ0X7mA4aS?a2jIAuBKGK&1hjy$=`>u)%2x%k| z*PJ8{(VsQP`(U-dNY_3f$Y+}fxT{By)F28@ek#Ks#=O^KvqE*I{QH!4x`3wp#*c4P za?F`mQ_z?V2t}}SGAxlb(YG=?rLBuyUEi(kV8VLue}8hdT=5G zq490UrLy0r_m2K*{tGe5U`&lYUDqP}uUia7kIE+Z(79+!uo^JK=(>2pd-EtJV#f7SJq1&5xJUTo>fyrmSn~A0HAL=ula_yp9vM|rLC$Bq2C_(L9DG`CJ8<$aYn+}Kt$~! zXHQW(bs{_2FFR!(!k0$ORZMDMhv<(gf5Eomx}+q6*FWR%?z z_Mr6WaUs$q^R3ZxsD>@sFVt#{w=yuO%ZNtMOQ}0fQ|!}4fT-WMxZWRy3|zUbBQ7}+ zFWwLA-jO+Ts%1y@Cq5+6Q}xZ*rzF8?)YJ%O)-|Mczp7$GGK(_|6>5DQzk#oaMskz= zN~ZE$jH85@?}b&M>1ct*d`$i1x-V1KxdH;?u?zH;Ve?-J9li;YnCb8nru8QM#B8;I zea|{4X4RN6isO=-Bh*g%z>;Q84d;h**lUGx+waASiPfSb`h!^Z$}~hVWqWehO71iz|Td2r5*7IQo54D>-ITB04ScFp=7W zSxzXQ>GuKng&tDs7Uy^5MS8PTH+6KnJPvIB^AeeMfBPU{RdGNv8eR`R8Gfit1G7DfmVb|P`tJlHdD$1e2{5*j%n4nS$O7K0i1>Fjn~O6} zEMZOkuTW&zV?)`gZLbnyj^`H7gNg8C(vS6xcs(~g@_u+Te9g%5MGjYJF5eroS_com zg))kf|3-@x7MDa1DKz%yRz>6 z+G=|lP^;!Ohs@ngRo6(YTw7}=4IneSY-;RI?$WE2G!X>7=zr)Q$6>XZQ&qBdEmWu~ z@~t&qRR>|9!I+GmFi{N3{fqWAAjBmh^Qf7y;b`6b6;t)d*v>tv2olwv!I~~0${qFJ z7rg$HjOnEYG1i)%9{K{mFg|B18NnZu??3Ecm`Xc+&r>U&jA5oZ_|h?AK=H<#lV5@x z`Eq{uE=MFXY;iDFcy&GdPutjF^8Vu_RbliayB470Yh%Ftxgr32VY0{y=B(_c<1JBRpi;@F%BIUQ2O6gcqXQ+Kyb}} zLYD-WZ_a3Z`*nntxHTAwPYrl8}^& z5N`>gt4)_9VXK=v7dPc@COY@rML^3^2Y>;(QXm_vMQP`kn~^pP-Lz`dApovgl#r95 zH`SZcTnbUBColp>!M`ek2rUsRkxa#q|Cq4kw?oeln zUkR|F=o#G6w$5IBtCud>LRu;Y(AjgS^|zO*t5ioWzW#6cjS*1Ipr zR}&j|;;9>Ts%)X#TfnBnKnd~Pzfc*Gq&5$!zOY!%Cx7D}bu*)wd-5W<3%(vI zr`RB`THe0tVkE(bs;n{!uR!u}rVEi(y6$VXN*PUd6jC7~6}uqPdSUw;;J9iSOR=c? zwA1T!q83xV9ue}`Y$k8WzTo?5m--yJ+2#8#>+aR89mHKT(H>oWLp_^uJmq2vNhNE+ zJdn)1yLNJWaw6Vh)nj4!OXFRLbVxgFf^79|pu=TC_!`%{J%)vto$3!>*RVJxv%SPL zgUMsJY>D|H_l|1IX-ZF}efWgacr|rR`vxbI|L$ zT3{J&hq6)df$%L)VXcKJZEvhhx({PY6^PvDq{Lotxotyd?QuO8N zG}>%>Z1}dI*M2NYiI=vt!Dfg>YTO zqyCB#b@KD`0o6jKR1lMp$=IFWDQ@%h?#jr7%~`)Y_ig=0S<}JJZMcxE4HKq>x1xsS zrDO~vL6-H-e+prj(E_64yIDHg{~RM>lUQ!;x+iMR)T&U$TPmOck;$RH#Qu#G%pJ_N zST5!{1&Yhydz78#sc}2s>MhCLj_WpH{eF|TL<<%_tVX9kat?=%|a;v{#k<1=I~eQR~i+O zEwkF-0*?-YN2+)_r);4ZogCQ|M#*Ea=-0k%24MNv_j@8r19LTJ5%#mlOTMyAt2fB6 zC7SkLvasC1*OFtgF}4v{=PPQ##4P>yK6t5}3!x5(og{wkFGG<#I=wO*@|tmk@G9IcRpi-@fRk?`+aBX({UY@EHm#Xk zewSs7saZk&J0j&==PQ|R*7UAk&r7bIZOwd4g)6F;>SBR1_uXpjJaqfOUTGXR)7gxC zyaJf1Qfe84EYVIi#qu$y*C+fX$=Ipt?VW8X9l2XhM7nR@rWvAPYfFvlVY9)gU)sei z!Q`!|Ajm3CK8e`wU94sgDYKL+B-f8N7PNXgOS9;Q-}eib?!jpyZj(!LUM%QcxZ z=}rBm-vjOHcrTLm@gzCbP(jtSxivxkN~mSnPGxJ1<<-7~$w9Ba#}B3NCH&9tz0aC0 z1vJf-7<2~N&!LZC|0oTLW>%^Q6!zkju@rkPZv{3m;u*E(W!oU^U{W@P>ikp9$UGlx z?4ra*3Rt2*{eIR;O1jA#D|D@0h3^bnT`^M+P;S>0A)SLbAAjji_QoCE!azaSraI-b z`w4?%wu^ZX6O^YjjYRTg z=v);jG*2ZIj6cMfa zt$yl7dy!G!!zt5iM3m;P`S$Stg!$`R&zPUsGFK}lOKvIAbI4~1^Y6|= zLc=?`Xl4NTrVDKyTAmzvp9BloG7uG6=xsT1Z5d?p_?Rq81V=Y?qYqkQTcEV2k zKXH4BX4u~eW01xuSSb0RcW|taf$Be2&C^kzlUt=jeNV?Bzvj*7p&!p28i$`X#q`9N zKmwg%w+uLMs5d)Kw5lFZUq>^DCAZWE^`dkrnBQr3`eEtGs0XE}cANU_I79DLKYAJ7FW5S}DC_L=}l2+Oj_{s0}k z>+ID$OLIv{4&W9f>n;6Po#&&Ud@nZZmqu>+v!_P>h*v7}ZX6iH=J3;IPhi+Y06dt= zL@$n=_(1*hGwh=PU4X4PkwwPYuZ~b`Ky?z;gFrZ=`7}v2;D!&++$W{hIIa_w7Twnl zZi-RV(~g_%nE%{j8ET{tz593mC~TYBfr^^HiIwF8<+C)Ze6*9}&@G`s@9Dq)SceJV z8)9y|L!;|md50gztqOFb@|bibNL+>f@x9|tV&DZ0;GT)Xi+ss@Ha7`WejhyV0i86? zr$+~$F|;0?2pK*!7GzxLq2(>-Wf0}U{-A0dLS5Zgiw8Ki1^GYzA}HA<8e@`WQs{o( zCSngK9%6t5@}d8s{B8)Z3s%!@5_F&0OS<$`i2QtWY4+P>Q>?E0CNFgx`M;XoV9Jm} z+}o9OhJJFCyOp_&rxFJ>P#4G?$F(&}LP#aKb=UjESh=n+-hT3&q^Wi+qSKHNsd~#w zy+})a)l)Ujah1*i{Tf{erdHEd13ej#@bo_Sj`GR8sUIELRBlsNp>wWY4GAY)9p!$k z)&szc)UsSgFi%OD#E-nN_?;T=b*G;I7-O2BFY{)lT})~3c1H+rhLS7b)$lJ=^uw1P zia8X-;&sL>^x?f6Grlr>2cPOs^xGfAh$y=9zsVcuTrv}qNjCtVCK>fQV$bGAk!luTsFT<1<7zQL)W96v_0BCL*qQKYt!QQh7C0R$X817 zS?&FkRi$y>_3>+8v0c!!8vb8mm4NnjfK`_LZmcyjRi!g~08h^mNunbTSpcI2f+qXI z$@`Kv$jg=EFS&1UPB_tI>6Y@>2X;lHc2__z7U+|qYTL)}hno(ffoz8_w#GEyKpd4I z!r^F>+!d0g>#|q^pu?xBX_W8Kt1mIkjrpiwYdm36C`i|5*_3enH5 zlcA(N@0+>(oc981*?OP4UY|S|Jm1X_L-U4=cih@Lx+2u)$xwMY+m0Dqp^#zNJeGJL zQJx1~o1~Ou5epN3?l4I9{!Pb)wsk$`KM{5nBV`c@C}~xg$AOIr4U;Xbu<(`vZ=-7T4Vq+S76NxCt3`L5kHF%edy+XvsQ3^$ zphF!jw_diyko)X+kAxfmRQzH)nEPbVm{QjGF1pF2F83XyT#Wnlhsv-$r5xbXEJ-T# zg<4%i%a6sjT`KD6aY`P0&%y?fq1Mz=wJfKt!zIZv*cr2l)@UR}(UnF@ZCa$KP zXJ}#;=t+G47W17Kw{rCFRFIPxU4jmM+zn;#h$IAmgT9p@EUy;ZH*xe2sI)w${cUWn z(Gj#N*Y;2q0Ra2HKG1V&#&J9&T6{Aa*tRjhu3?*!wlFZ-lBptF?7&xf|9lcp|NW-I zEp;h=rW?Gr_ujSWxU{YLRVH@VD@d|B1SdD_H*_|DpWD1R&qrf?5n~`9xYAysWFV#(#)fw9|&? zJCWle4#6))J8kzP1Sn)Rh5ljOFBYFGGm_t)Rey6=$V_wM&vWO;Z}x_6akhV9g;Mdw z&Zrf}meuI81izhPw2E)?4;%Gk8uU2Cn%Cb;2&1%}ImGJ1gOgvZ+}S>{#XXzXWyjy` zjb;Zr90Wd74y6AO#`SYn)Z*|X%e!f_+a8`oc>2b~G%C6zF+3lVmOe(3MZR-NjPD*U za|^F#r<7$6CT2|~wnBH)FMItum8+aOI#|cI3Y^>K=`cC_uu1-UH?e$%SIA%;fW4cb zBYC3OmOyi?5>hUPXk4<*We(56?fP2QfGx;Z8A>)t-1w}Y^Tfhq@pHS+n#v1|7Mbvp zs`k~m87CkCEJ)+oU<5HOTf8*IWmr8cEB0#e1Z8v}sav-RTX2G#%yqj=Gfrn5on9lV3z3HTPIvYUe_QXy$ksea3Fh zf*t=evkj{mjOSX~R-eZolO)2I+A36XsY%)GiP=H%+xEkCo1G)zkVzP=7p*ozu!GSd z0`X)pdSz0BX(9Rs6M8wwCm5Bx<;eJua@qvI?vHq=8WpXM9)h1kf+T0}|9CB_s=d*| zq_#vM{>XO0=vb0w58gbP0Dg@-Iinc zXgo&c z#&2Kj^h@@tPOEZM{Z`G{?x&IniO#7fN1wp74|W>(Mvar!SO;FRA@}{APCtSV2|COt zA%(tsSD{tDqTwrdJ6P-8L6yz%U)JePphL)W0nd5uExb1|BggHz<}b2e*V#o??@ymc z-@NcFko-!uv0Y3bNTQ2L%OeBivC{Fi>h24R50T4aB|s&n4@g^zpF7?wtT$;QD(4UKZySX}DTsK*Lzms}H5JFWV@1=eqShG9TP% z3$2a#lzkJvAJVPg*rL~T4ek2H_$8G>RrSf$0C|s*rJ?1i!nTdoseMtpJV(1dXZ1?0 zLl|I&Y+Uc5IgWVq@Dtk`;w#e-Yf0~LBxp6(qg$&);5tDVo0%9RyNJx`@h2Q+P$ z$;wz#KK}~o`+9gSjDFsv471=acg3Hj=KSrJIktGZ>RG?Te_!kyiiwX!F7kLUyWGC9eR|cIqg9(AuyF*=r#i4kk>5Sy_y;52 zQ!KM~Of0Tu%52O}(WE%`V3fs3U({FmnU8jDz8W{3V=sF=A7s-Um-5dFk!+H2^rdf9 z$d_f*TKb~m4D%G>ob;co*wN?dih70bo>noGhO(-0`UA0?yku+GzTLe}-R6sVp_B_2 zI6PNUAU5U4`7Pyw1&_Ek1>iZxhP)S`uiPczoc_j?e@?; zRQ8~{&|w{4ax;7BzU0i>;FDX&1(@tV3I3uFE&6>|m&8Hj8BITs(>>-I2UW@%p1^9? zM7SYHUV}FyN>!^ZuKR&wMo$E>IOt$MjeectMN+XrT#D)M>>$Bx?b#cW&r{RW*Oow; zjqvuq{$+};?vRR}d%ssC&1o7TN1M=RvRoe**eo3h^)ei`lahhXyye6%RkB*Kyw$27 zicBp;6Bm2GzACxvbk6XeJ~}=9e+)ftwJHm$w<4tVB|qQ-Pa6JE9qFB-7s=`!#*km> zZ#|^l=cEh%PEMvry9GsCFZ4O|UjxF2EgVDuZ=dMY*&ordO%oGPuJ9j5y=!T2tBBcM zeU%=nA0ul2J;_rzth9ru)pyv9MJpw_Y}F6HzGF+ z&c^aXPEFU=3`d57wL$MK~gBzg#x7v0E;I4op|^daGp&`jmoY z7u#$r#t;4k{f(>PCQ|pWDlTD3utNBw*%t=U>xiq)FHv31G=kiTSU21ql3lMNK;GA@ zdpnw|Oz!mB*sAgZDQn$Rpo8b(Qy@tjvT!&J*f?ba7PC>)bzrnsbC+TKoPA_!Z+q;_ zy8lJkj`x&=j8P2HDHT1YM@4Uk?!8^42QCTXyaCttjk=??#I+@nXv8B`tnCWqB^ke3 zTTifW>LXX4om$hpcxs2NcIkft9%rF>bBm+=OxHl#;kDQXrb}sjk?GeqTYLd(n{5BJ ziGvx_I?b9(zu^E1e3NAyM>AT*F5FrrYg+KGXq4)RfjK{nuhpB?KtrMRD<=aR<4Ui_ zcvJR~(>uwf_wbAbon*h-HrOUO7S9qe)a^P{GCv0(u)F%jn}6%-$|isCQ#9t(SoiU9>7 zg|F1`GZVExD7VFq_cjVq(SGI24aNXLnicS%zCJT|vFiHaPr`uCkfY8JuAZ)JcauzcK%068N48*AR|oSI1Zo(VV#gz6Feb`-{}59B8#egfH&1Rhzxf8MV&fu=z=5 zSOf$icqk7wjuN^GT@9p#+2~S-Z|?Bmma@0zi`%GZCu(R$$_o`2z<29xUIo0aL%luM zZY?z3&HzMY{Nt2f(;*?@F)E}%7u0@P^EXafIuS}k6N69^T05Lj&DGr&Vu@v&@7LG& z|MPe7S=pnQfVAZPnk)o;ORwjh`xA-!GnCdy(;kYk&Y2L*IOCVULjv_=%VUfuam9?_6~c(=Sgts!`7jg54Wjf>ey`C2 zTNyWqD(IvX6A?sdN3B|Gr(YcU(C1J#!;5s>gu%O(x!qcMFzcVU#Y1o z>~9pSe&o~*alndXr0j3AH#RaRfr!m^j9O9gsXw#e!;i?soHAgbAje(yYAF9@YvS7jLcZj?)es5%BcOj7_mU z;ci;;BDG5^WA5_(bqUpgLXPAW?}`_k+cv09m#(lAmRjG>HOv6=FONw2d1lEGlEZ+Z z$2Bd8WKi~hUd0w!9K3B@*%DWUDgGOzOKyqIIlIiUKGL^3^>t{A8-iurU{HCt4PoiTB!Zp?1I**cXro}qxhvffJcgcYU!ha0<+G7pp| zo#Tn^LU0Ld=0oC-c}b^rVjG+{TV@FdG0{MsTL&j{H9`mQXn*YmO5t3r6Drz>G6bdLt^T5ct*mjpdM+M0=7b-MgPFo2R< z+6g}HWMPN_Ih!rdH)WyMcGWgaXQRd+3)K7lsM0Ed=z?~S(yZ_AuOw>WI3(vTUHqElM_R4BY*I`z0dsXurgB(VQ z-5(&-oUDdwnhq=Ulg5N5Z6=cKEZ@rY$tf|ZkV$ut>Ak>BUVj3gIlPSzNMlcsX1V3( zhw!3-P<@P^ai_Kufm%SWp1@m61liQLmfKg0hLDm@Jo%laOaVwhaNd0?=kwm{8sY=N ztJ5))m6-xSiyGN2%26QfzjxOV(_#vLYNqw|;fruPr;3OXpR+UgtRb|P_;mqiKY0De z0XD87=&2mcs1odJ_ew1env-AELd{@#*?Vv7c{ipKpAh5x=Nmac+gG|RO_F-Rob-Qa zI?KN(zCH}k?$RMC9ZLv;boVX|k^(p?VPes^whnY>ac?Y@MIpG5gzUh_A8_soq)?)WDE=qT{8 zt<0h?h_i$HFI(jBr#{AwKioZBywRjfF4G_Q&-Gba(^vU}mpa6aRF109;XAFhb?wcd zs>0S#JQvH4PvxS#+Jp5Ktr`=L^`C7M_Q}>SfEZ&U8zB(L?H$zp_S^s=EO3roHHU%^8_DZDmWf$h@V z+nF}@nUEa5{N<^-E!Rc|XGGMOsKlN| zvQjm)Hp`nj)uqM;W}#+h#;>U>_VM$7W{s^NCVr&Pwa7K1iIT-$$keA+QE2m2p>V%0 z;pAQ%n)$U*xMzqd89h#Xmnccg%txQ}Lh_C=EjG6iFE0?cHFY5WyFFG#BIF4TWQdT( zNrW`)&C*yD>cATqXT~R_7LQ!C`HGi6ogW>AZ`tJa^}f~l=#G>plSJD1B{5IPbA04B zk(^v~e@vxZa(#1GcmraN>E1~V(D_OMFDc?AeTV)er%-H2GZE&mYilWcov)qVh@E?P z)lxL>74+TUI+XDImGaWYI9D4D$o-iFZt%mQ_6Wogz2QVnyILe2TlnwXK+<&W&3K7l zgMp`OUE2g9-8;fab0rJdg0_ipo=`oxL3B>A+v=5NCvzp#^yS4tW%C|KqL%3FL#lip zN>xYij)w=txW9@2UXFj>@VtNMLe{GKC9XvPOk<{W&@{-J_EGU}W0e3X^5sRD7piB# z!Y|G5{WYzTYMJEy%cEAEN9Qkd|HF5F_kD-OGr^AjN_V4$>UO|HxV?d(RplFfvlB4U z$?5%U`_B{Rmq=O{%zm!B#LIHVGF|br*M8YWb>S70RB{W9N#cuab2a$?DJ2U@NHO4B zt_Ho*-Kgqi_)7M^0)^p2DgCBR#YRIJK<@Gma9Bju({2-pio&Omz;7!oH{uNIxbo(t zs6W2>is}pFM>~cwxJSvYy5U#9;zXUIpIlRuQa^U!;Ts1$8Ecl^Mct{`uSJTjhNvUw z;Bzv|g`k~DJcXz(7^DV?p;nd{6;2u_c?~D}(DjpGXqu5l>!fpl?nN-?C?>VX z26*?qcw92sa`>y}=o~BJ&rOT(zp_+1sE_s*eG7gwC^K=~4(-USm7Xu`QjK4xiiPu) zyJwVX#Pn_P}pt1 zr^C}tG;_Wqg`}no^O{P@-(T>gslf1OmoT@w%5TVJpXBbtIZ}(zmaq)wPW7~W8sFPR z!l2Ljrf!@e7Jz2=y1;_#l1;===h&0$ZM6)5DM}iquuxwg_6COd?}S(lIUTxQk#Sb_ z3$krSsmKny6|kN6LYUA&X3k zHqf~}g2JLFDI}y}%D5%p)q~8|CJ%8JIM$N&NKL?tX|23COmcT^H67#h8V>7h*Yv+r zd1H7u5w;opwE7DQ!Ke+etM;rY-?pM9~MKpHz?*4=o(_AndLI&#fg-j#s4} z_Pe-W+9A~b2fW_urv42aUrZnWNj{jy-p=l+yL!^~V?^&nyo#be^$~oLc!CuE>7Co3 zMB<4=JrLp1n zDy7)Wuc-;AE^opB{q+T4?2U!lP8!I$WcpJ1zEvHL`$bL`q~?nIR*HSSbdLT8PkDLw z%Vw=Gr{ch_G3-v6#X0VX{1&%yW}Y}LDKuPq5xBS-*nQAWT6Rw-?E$8(MChn^ zO;WvhzN2%Us-~Yzamk^%AGVKb^qhlUc7Pf|6%^c4^ByXI=W6M=@vn9bz8nyJCBIc6 zN>U%jJ;8&c{z8&H$5N!9v#HZ>~hGRo(iN{j-cgT zg7xJ{FL7Pbc9}AjtI2U=t3Q)Pxv+qmlrg4p(@a35)XMY`+0N6k1Fs^Om!?}SOt-x|X>Prc^mQYtf^39a z`22?;Zi+QuAqi=U=YhyY@deqds5X|i(3YUf5hHOcfa{~ zVIN=8iJ4+}2Y~zP*RxGlVZ>t6TU$LPjiY!aVihg|BwL11zk>~2h!gXh?>Jj#`d8}u zdsjYx!XtgB70;p0SF@?M0&o7p=SPvHeny&mMqgGnLs$uy_&o);%cQFiE)~dp$b%}MWBBRIHbA?O~lG~8#636Z7SN0TWS7Jv( zfVW1aI0J`+QRKIILickd9+0{h5>3vQ>7ctKa7MAnv&1&-p65Gt`~$ zlyJ-6-1*k#t3xs+0aG2(-iNv}O^>9}~y+brLJ9#U6Nk>shCWlJRMHChha#7@9ILDW&V01<{8ZK6wO(+H5Ka11 zCVix;hBVZkTsOe{^9TIjYe{O=2CT!J_xyBHB4~lJHj=>3P7zGu6$rmoNAr0ie~@SP zbVUA}Bh{S!uLU-#0PVD+4S|bY!AAVJkDHO@*vHu4M0mky**n&kW2tqP0~$Pwh#CDe z{yc(pLI4rFPIycJ{5?6kQdO(OFk3}yVp7SL1s~V2n(Q~9BB{9Fr$?u|^fmpcuVXTs zW5_#gFeL~_T|K3a7+%C|CFJplc**diT`0{EAI9RBiy8KXvR*s0L0@R?sq7Q5C{>3Y z3*+T+1VBnOV2>{*@Xvm125$MVWewTbu!`ct{R5tt2E}E{Ce371IsU1|&UheLOPZb) zbwRL^@mA;e#RkHg1r(4$>JSq@3k2q%=%TK6DN2j z{fJdNuj@yM|D54R)uN4te5UZq27L;(Cf(d32*h*VkPw!s9+~R+!?brIT$+4D5X!@E+#T-ZjGMp80J;hh<|7-hK6nnaNbQzcz zr|wy9;=$*f!?h~%5zoki#YBKq%&)8a)Q$K0E&Xm&ze3x%cxcIN!?3`Vusm2v!D}=o zBVGtMCVM-GKR|Z-GG)<7{v7L8-}u=J{l7}{@9kfu9XfjNY5c_1tuOML;_Ufb7ikWy zF&RGg(RW01pd3ve^mLm41jAc84oi zc;rvvz1gz9>iJ@jos{>u!-L>;WfsR(4mn&?2(XgMCX{PL<<1?)-S}vgR*5DQP8_@D zjH~6%EWIGIQ^z=W%I}211uOE12!39+4f}aK!or+VV}wAp>SGm3q~Z7;;{$n9rmsl{h;Cv`Ne71k@?I4~^@5B#->A1a9OZ&1!bUQM89VS3EVABPpgQmAT4JUnI6$ zyaLc5B{UeX!yki-sJmG^LIhH$ZTlDl0Qgu8i6C6z2ZHe|eF9RAi`t&oY`yDo@VTp; zT@jjeeMw{Kn@_#VAO8Z6deDz|__Gp-m*rlo&VuRM{LYmO9gtfmf(8O=9YA4o*Rknq z{5la&KmeZq{)s3w@dFuufchALtglqp~r zs}LkT^2oUyMKT6$pT&cvp6w=R|7UyX@gg*I8f9ATIAPDVpGd~eSS*YD4ZNaFFH!(e zNhnUP|0Hbx0Di1nE)^+a8E%l66w|ik+Vvq#pMcchA$Wy884HmA$ZeY0`J+kRrJ>T= zahd$tqA&!E4e!>r?8Qnz4+=5j+r86RuivJ&!zRAnxBob9WM>UM^9ea~05KUXW3xcG z_3WT_rLpJx0$fWJLN;OEI1P1$ZEolw%c@1{!m*xg`P4&=RA6%wE4Ow13ic}~W|b_G zvva3c2j<2q*hOC~+8TcC9!2)oXCI5_hFeW6G(|>h-CDr#E55^PtQ0S6G=F9@FkjnV z;=G{QyHz-o@D2C*H&P-zNBMt@>f!yCIlTl}&dvIgMX^MG9g>mF#n^i@Y+~}*IMCrO ziT`F*bFtWtqQMHYcK{=4@2hWr#c#%1=o@dq^*G4db&5|2#$N{1t>;w+|HRBqY!iY< z=DsrIGve`(P(61WFMd~#&!WsRr3Ran)Lna=Rr2{m4(m5W4+9NWZXUoke;E;ROpinn zA~B4}vZD~x%$Sk(m>Xty%-4g!n+pU)Q=VKYVgsR(wjP1_0wfM!Jc>d}V+OCN@mie@ zzix4hPAWQ`na5TBnzBzE#%jtUxb)T8Sgmw)lm4bE{loM%TG~cv9#tePOm6)B{I@80 z7wC|_b$j_TLagEV?c)ig!jBchUO7RP3SWwEf`%R+ESTay-OZLT3rI`wUMjyr{?ud; zZssS&GtK1Rq;5O*okLjctLN@xwXOfzf2QA&z*2|}GMbi#-wanhj!6VgcY&k9$yfFH zO3g4`PRv_kYdYz#B%*P7Wj}d~3<q2#{`zwcBzDyHqN@)_CNfNM>gPrq zzo%s&)R0hiXcDKp#4NsmKn}<`#sx0)XRR_j+UHbN@{$mrz0`ch!n;H4Mbvzqxv^#P ztVrRl(@Q7$(s%FnI^k2L9T}JDvMfR^By@8fCw}E4h&-&KEpWJ)Vky27P8g@!0(^~c z9~ACY)kR`h&wxibl3M`j(MC&&yN@f#>kvGh`&-RTJg_$u=tgQr!DTq;Cz$W9zkgP7 zoJPIV_Vc<$%@8+b2ayL(xrDcKDuMgSvRe}Sw=Uv?xhz1#oR)GB+i=}+pLcejY`d!K zmTndXWrb%D90!84CnbWzTVYO95*B=Y()n)aVnzv9@#s`L70azFXx~){vU5QWb8!{3 zfhH|vJb5dH^b?1#H(U}ngc;^@&P3wx`(WdlSKw#02>&^(E`JMzxkhuum#=Qvs|5d-Ubl84^}VZ$osZ)!sUC1(wM57XP%7Z4EILp{eGl_6ECiofm;{%p;Heek`>K z2N(jQTFa;PI{f!Jv6vwZ5&3J%Zim-zwjYO#J$2(b9~RmP>&c$`qRdGeyK z!Vz_u?oOZEpGlk$?DEH;?L?bx#gp`;eUpyJ+ga_Np1?)kA*&Fj;3UM?M(J1D7s%HPZp0o zXIYUDZ-f|=YPM@*3hDRU)k?)OX^crxvs}s$25P6hzSVB@56ZJoOXUL+i^k4H=nC)r z?wiM?JPz>G$aKCAngM%`ag^M47z{AI?4&Y5I55bZ#q8J?=sm^M_$vzNSei#{Fz_Qd zTzFRO!7U+CxY9775(3-ZmCMKqoDNeEKjGhVGr>AwG3o~h1@f!^!ya5S9!KiOjdZl; z-%x+_WCQ$}laBDN-?N+?0WtyDz`phw0=u&V?s?x4n-h;R4Xn`)8U1suyc4X@FJk%g z(1&1~h*igQd~y0aTOC&5yGI`&aS_567K~e;L)=}@+|JRggme7PC~Nu-4yq(mo6f$2 zdGq~`OsBUNSa2~?xfz83>XkhF?q8o{d<>I6Q=3iPXQ4KeiGcTZb3Q1KjAQ{71d^mPCA665vYW0n9fNQpjZkU zl0&$ZS%%`R&H#QTGK!IZW#Wp}S)7DY>ar3x=OtjK_oXGaAOFnue9blUKK;r!Z|fE5 zy1E=LTXG_P;jWN)!f&tNG*`CvbM z|2KV)i7D{vZWZ^H+#C6MfN^omy#Q3~A_6;R&sb32zlfvx#BLcBIPIfHEeflIA{Eu6 z^X25`GB(|;BrKgUCI2*_AVN4#EPi^|%9`>zRXS9b&~ktp?6n;I#JBuB`S)KXR`Cjf zXV@R`yZ3sr{z>yAw4h_8rTl`u%qujMGat158k7rfBDJX9Qk73 zx6}ijkJ)!Id5~)xz|h0Vd@E*^%G#fpW+~cB?y)F4l-Bz-{R>(1kjd-@3MAd&N0CL} z=B&I|jZGsmeZN$GJ$@WUQ(QH9-=izJ$UmOQ^!{7F_E z9uDEtE7w>&W$qio1m8yMoKU<3`UC? zspa(0)3l{$U~rmLF6g0Wl)Dq6Hz@H~oxDNrWI|n@iWAeAnywLHVytWCi2gPzPIGlM zu#NtYjceLnmrV!7%?1g2ekT(HgWL6yu$iL<=$L#piwGR7xvWKnq zJy|$X0@Pz*t>${8a&S)aiPrwA+d8c2F`mez%y8WSeV^{+@t*7l`i&e*usXQO&PGO8 zA;H&`2oT=L+xjTCqiH^LYk1GkH7Srs_(RJ(gO)u74t~Kw9&79;(jd=|G0sI@QLIQH z#(E($4Y>qE5bLhITdyP_(OF>mmxd1AC%nY>Wd8zQ-wNmdCITAEV8iQFN(qN8(^0P6 zN$DJn?gKB>%-X0UiD+!;JAL8RSa`!@;n@1RJH@$gFKmEidjZP9nG}b&#bRyz7qZo$ zGYSEnSKKe3dUXD*`wWELTb76SwAmIDJCEu6t`3!Xn^gEiqFfUz=5?zY z*LtsgTW0B4Il^M)iXxH z&{}0vI|WMJw-x8V3Pxha=9c-EwB%Qx-wiuYL;wWnA5@xrn)RNX>vkN%-%?VEE$L%< zJ*szHVu+y&LESMIfPhPNDJY3JatxSdq;do|={&>EW~gwArXfi;>nu}QRB6*|`{?DW zTMP{-9BL>P-y0y6pt|>($Y8PMh-JhB{*kZ?4~oxiBKk=A@QIga@~+T~7H5p3`Yw-AXLcpC55og14jVo6b%a zqy4zM$}e_`Ri1ID#Dfwbu3Q{MI8cVKD^^~=uCFr6#=L)c%%(CPB$ z;s+E(_YHQ%B2r@+=ZZuW>=sKIn?qkB#C}@5A(#}dRf+c_>vm%~wH2R}Yfo@GSdDHH zAQJzxAuF~ig;hlyCcN@Kr&J$A5|<^MK}niV)BNP68sGM3K&e`L%^>_T(}`I_=b|A6 z)A;FAD2WkU_1e}4{u|xA3nE~hRW}1_M$nlM$dL__w!xA_3T)%15g(sMic6#KDw9SH zW_wAYaerUXgVJfRo(_;=y-4`c_p3IS*g!tgMdmeePv+WKHDDqv#H*{tUM?b-6mrH) zwD&BtP)-;rmc!#R(RYNOo@XUq3c1LtWT2#QhLeOduhX`)20S0JfEvQ4sQwq zM%tdlWggwgC9U1Rpon<=&w?%u+Cd3^G;HGd~h0ED!^pD~F{& zwa5&Jc=+?d))yTEP(U4SOg)d{Gu+x_fgt9;td_p~BDlCF2=b3uB4^muTzV&XF)+wA z^)M#_du8Vtu(A;p;ChR|S$Pk%`uxa5@Sb1Ort3gkK~JZ)rq)|tY6%nxUUQ|@jR4~I zVYbW?Gn=?c13?=mc)Cqk#Dn6(0SaGFB3&N^Vd*rNcc4OZZe!a}gd;=R_vgp_6y2}> zLg)oxkh6fBC3Qly$mjRaFNxbz`epsvJ~lo+qm-ed?+eI}KG8g}jYpr_s%6&uf9YYD zb`zki$|SIwY0t71yQy4wKr&)6e+S&!7ZNTFiP+%lMBO?y&zJp zaKTW;aZ!)H{(#P*8rH5>jjO(tiW^b_V66g9z**eM1kc&N7c4H?-| zF15;O&uT4+=A?sXLM#EKr}*%!CGX<=_crGcsLEbm`^z>M>AOpWUla&z^%@Ln zK7KEjgebx2e&?o(s2@@*dMCcPWD1DFHz0C2E0)N4!tTl)-yb&$&d9;0s(2j+pWN;d zf^)X@aOh*Sa+t@9HLL3w=OA#aX2*N|zy423CH2wH2Htid)gE^<7x_k1iKlfHcaiy_ zV7u$d_rza8&|2!*ZcBK)yrmb_ux?MuIlCy`WrNJ?6{C7n6{2;hb+y9qUnb}H zoC*H+grA(M0&){*i*^58K}IzZ<&;69N|Bj_rm3VMJ7YL?FnelQKfaE>ftKpf3IM~Q7jfJzn8qD<-DA*?nfvW_zqe=_dgNUaOl zwKzP`79S`%Z!WPGhqu>%F((ir?e7!kOzoBA(&bkR_$( zVb^V1DD06$j052}JZcx+lB}?|{an5d5TM)HF6s@@hBSRxU=G1ny2K>Pxrh_{Sk>m# z5X6$c1se*}wGFq!|nR|2_M$$9?q zQIp=CR{Bq`|GUcgw@gVqN)jFtW2I@XON*tqwoW;~X6S7;t88TdlcHfH)HEkuJukq& zq-}pIqhq0W&WHqXI`5o4n4dt4myl@&TsTMW@F_7J^jmev$NLR3K{flM_}+eq6Jvh$ zj*7H&r%pNO&3du68~d-=4+CD`GKF>sLX5dJ?VXp!Lw&m)>f0Y$-bMiVYIBkt9GSga zp2hd#c&kK$3vc^x60;$NA9;L`X}UAjBEFTP7;f4X1FtZj?nz2yfNcL>X#ajPs=f)H z|6jb#-urk#+XGAK&hd$BTc&$E!uBl@%rHF!Z}V)Gfgv~iW;HPY5HQlq{!}NqALDd? z>YzgQjf;I^%b|__R4>l4E}vp?|1Nw`pvbH@t2BQJoA9K%)?JK;Ds%bW6bNdUXPyjaMH6SGj*lN{_Pk7IPm{@v$% z2>&y7j>W*-^+Q%S^-woCY{S@jI@*CGh824xemuBoNY54T3}vW8DlDHVi%Dg~GoFKl z{Ot7Nc%ad1Z|gc=qlKTEZ6K0-W(jF&tZQ6i8Rx*kM4P|d_fvcR~-2YMh(TL2njX4g3qGHvq zVLRw&OLpXKXqH0|ohZHFz;g!8K`aQjH* zH;J4ud31vLxi;Z_`gSJeV=N&T0nA76O)jl**gr+R>-u2hE#+P$>X=6AP9rS+OCv_=GLf>!?WcJw(!G$CIz=7flW z*}4pcuqA#((%HkZqAm|uovq)oqKiBnxDy|FuV2B>aG{DnwYd9 z%c7A)Q{xi& z2mDLtys-}%qf0_zcyXf`(;|6S+4Qiy&$;-QOpZqItZuA?Nr-0FSeNuml3su2NpIq3 zO}K@hDr*e+%Tu+~pOBSTa?wF!v=m6w?AU}LLSuKen-^FG(r$y3AA)3@7nQiW@ zIb2>Zp=}VogCOS3Ubh}SC;?Xu1-{`6*}KxMTdw%| zqy&DI#hj=YUcT_O8XIdZAI*ANzLfPYmi{TdLZiu1%Bu5dR0Z)U50XP2Yhxk5kJ@CD zr{E_JNsh9F-`4Y^dnm`|w_FIT{ThklRf6NJ z?^{V$oQIk1RA^|K)At`wPDb%s?hl&}JX)rDI=GdL)q#MQm$NqhkHX{z-J>kHqs3I*5PfaeZ`+~F6hF`WdT2Rb$MRxypn?k?&(r%)Sn zPg|aP@R@l0Kioipb})d>=vaCItT46)%CFN}e}`;ctvEhaHpy68H!Af!HsnoAe+nO@ zmMutcrpzJv^5OmV4B3Z*j7G;d`un0IvejDu{^*C8-sj1q?j-Uw?@aT<9B!$HxU9dE zB$D{XUw(~oyQbWu=-xg4MPq2=)LTq*zYYl*kN2Y=Quql}u!K@lr1LF?#rNquu5Opw z0r?r*>3x-4$6?d6pB$px1`d`>fpxC2Qn4`QvnKTfW)1;nwy1g1(CUu>oXEmD^Ch$i zSI6c@{7{_*ou3U6mXJM+kTlT>sf%X)42Rp`yfdq?(U^4j8u|w4yxa;XU;%jU6nO;x zj-$n&-!Zp0GBn)jOgafcADRxOBw*ti3L}WofP9gxR>$J@c4WimI_)wWb{GRFsni3Rev3jf z)TdJMYPTq1Z1e z(Pj{=xNoOg?{%ZGM9p6k{N?Eb$UjNdmS|Ic;PqK2H?hnLojS|^KscXLeQUF$$@+GT zq}v-q^3VHjE9MkoV^~|@M+qDQZ-8qW^*hYw*Gp#7(0Hda?0$=$?aFXR-G|X$Ir*R8 zCd$&JX=bVOYd>gMaltl*j*)~H01V>p15z}^4?aD7P;>z`9LgMM{w;{C?{%%KNt5vzf)lpob!DpytUvq?+}+YnP^A8&#+=?Z zsWimHu-`@$sT7yQi({dDTJV#7gfsN>P189-<05Bn!GSG~)J5+%HPa!(L6gW*Fri2D zBU*8!{yTmgcp18I^tgEPE_ol$f!)2`t|3>?L?kLi?#S70TA#ZuR48o&d!ZHJgi>qF zypOSpv=!6+bJIYHu&fifnF;B1APvRYXD4J2|EHMavgZIF_lIL+2|=G0R7%^4yVWI1 z^2+ z!|aFM#xsT8MhSfoAc!e=s4uN25J~GFzG0OM0lu!c7KdO-oL}envC}|g7ZL_aDiG>^ z$4}Z20XU;@Lk`tnD`-;O&C?MWuF;JAEv@|zoc?&#iwe))`{*@bIu<^VE@z@*`3c~V zw8V)jV@!^?^h!O$@*FgonPC&Y8ni^>Kyqz29jDfrzvOqkQt-HFe+kRaWGI0nRpR&u z<-er2dtcd5p+IZ*ZlG&X-zQA3aY0Bj z^)rkxiW2&5><+p{tM*A!R2emMh56I*%@)qXgx7m+KM2ui|FL z6-vAA_$u_-;><3hYp?L`vE1y)#g@;Y@Jm?I+W9cq8b`w6shyDFM{s{H>dSmbwG)G8 zPqYh)Dr?|GjJxezU*;M9wmz)4H&!i6nNN(i&=E6xE$i}Shkp8k=jjMyj&RsH;W?r7 zcZkGe)QQONg;%f9PdTlSBBujNf@F`i{ByvuTr>lk$dYiN528{ohT6FzmC-S&Nxx+w zOwq1Gi`DAdFOk$-Agw4MbJ^JXLhA9cpz3F2Nka}@f)a93MUQ*mLun_B;o9=6`D2aG zoOn03Qzc7HIYNAM2#VBpmN)p^M|3Uu?sE0fb{>Py%Ml=CAeWKLScnn6<(u0tJje|O zLAi+In!}=3!LE8r-oXTxkzO`nFqg2zD^OId$Ya(znZ1o_01OxHD7eXp2aXqzO z12>zF&`?K`;{W;1IoVq0pr%gHZ(?Og--Y%R&tGZW^fqqc{ApPo9LiU7M za+Y=6*1wfb7mId3QlENTJ3_qDAzc2#a&2N;vsRp)DPuUh#L1b`EpE%Nko*ASjZ?8gSI?{=+tS2r}^6mZBlA!yW$eqQ&sJ ztdXX|K|X2v)_|OwnLt|X2rZkhTDo(D7|WNzx2|W*@2uF*=sqwju16-VuVe6$9rL0< z=h67pDF+fm)!Bh_+?N>QW^v_&`&(3^33uxeT!j0Jsun_JBl&QtE+t!qkmuXe)|-P0 zrxkKh2g2HAtw6ifyEjQPN=183FA$7tU%g>Y*2^io)XZ#}exyB%IefQzUhO1>WTOWW z0^tOU7V^L#%-5cg_mc$?9`qI2HA7t~HF_wgBf=PijUPj~qbg$XN4JaFdqqbFk~TmY zQMPhTYSm2m$PcuC%!Je#Yu7LbobKyx%D9HgOKz#&@fYaTWnHAb;r?EY>nJ}sx#8Oc zkocV>E>PV)__K3My6UJ$_O{wiPs<95iR-O-a+gKD06J_09MS;!R<%a;82 z8QgNYQ%10gp+YjGg-iU7FYx|&lh#9*$}aFEaTli!}b zwFJt5ga-z#9l9&OEOI!qdhq(Ujz&IslZ4k*^14YZCiT#*RI;vgTqVHZo!iHwcQ4P3 z2_AgVp7z&rI%M6lkt0V?6y9IsK?|wlj6ARe^2!iSi^q-ItZdI~8fR~*vq*B#Wp*{1 z8WGfZ7$2IPR=fSJ@*zp5j$6yLhUo`=-C6FthPe!f_E#i%;pJIo9zr9>SWf+;`GcXq zEXWwU?;wA!Z`SrLvVeLdGBdCdZqdPy^^+QzTH0jv27RYq>0KZC@6KujRPy6*5CEr@ zdvYiY6jmPE^RI_=1&5O!vT0u>gI4&c(VnTgPb3y1`UkYD5Xp*+T_mbdKS1?s-)i3AnHx}`C;ZYfecW(v;(#zC zOtDU)V3uiH)iC`Ju8-gm}=!klKyWzhIgnv8eHi=%kyeWhLM_8#R#%RlQ2Qj-abt z&&>$}d3@xFkOZzJk;}l}{pTO5p8=gM0GhHBfxl8@ID+Y}<8ua7Y5Ha+)^QaH!6LXJ zZ%~@OB+Y%*&II$(#`XzaLbYxe=*FA8ER3lBGIkrL^)DgL$)fjLjMUHe6a4N?(As&+ z;&jj_(F{N;lKzn%jzGeObybl3JBED8>(5t+?XpfE7>`c)Nx1c!)iu?l-C@@^&K|^IioZKdn(2&YIa_Ri6OP}ULnN{b)4)3a|&+Zc_?LBEHk`>QvNaTN>fFG_p z`LsxYZ^Ha%3;kBt7Q1gR9G9;rVUhT~am3aM_e2~sLHKy_2@f?x*LqZHrx>-5%cM-! zCWwL&OyyBnYx}_VvyCoinWr~znA6n-d>G_w;RP~fWWkS)JFvj#-iN%z1x9t^JDeR< zc-7_tTm5p-@C8&}#0D0N4E%2}eyqzzrq%ylfcMoyOr$=z`(X?6;E2UsV^hOR)zpiU z&1KE#A!Qaq!*Cf~hQK9D$JLB9Y2tKn_z)qn6&^06}Mfd z5!}t1R|B1Kw$OQk&N-B#KJ3em{@(4QEVNZA^2ave32pZ|oKud3e}K00HP#Q@qbd%l zuG13lPMSSQh}_j@l7N8~7Ty;jK?KKVh6Mo0KgH zlKa6P1bvEqP0$K^4u`)v9iQyX`4DsQ4{Yp+fl5Fd!u){IEQW ztRi1@9Mo^K9asi0(+8;?32+m||xA2ENy%APohB-L_vrjZv2 zUD#8>G>%+oz{ASZb@Bngqk;U@4$yH35M4!g@7jQ&BOil% z0rwF@ys!M9{hXAks0}%F&RLqrN&3LmVGV@Ika54sO_!=GtGGvmSKp8`9PZ2g`8o^P zBDI(BV_Z7o{P#<5{~`$Fwc?<%!#*iM07o$xAn5OdK97qVAT*Y_Q?!NeMbi+j=meQw zCD?zEey>GHQ|AdfQKiFm7VMduopT>X6TN_UzIEwx-yvvo{V3=18)Nf`VDQvD zLm0famQn@^wWI*1Us2j}qgeA;Tn<@W3f(xSu1Ttjb59GnMr}(mjAkjZ=UyMh0 zN;zKTCQRC&IdJd>h?+f)vCir~{_b5wG<}S&r92X~ZgoukDK&!hxOX(f+LQL1mIpn! z*?ABA*^07|AU|%ayF-;vnoHj)~_~B>pXz z&+SW7cy0ynx7!8K@9R#F6!R|-2Kv;5#Ml^rzf!RELT?)aiy@33y*>J6qp)FI(1-F#-R%WY)w9L@U?UjX{w ziFwL`f*k*cj7a`YKo<_mtXiTE81W(QhutBEggbWA?Uy?|W#SuwcHYrs=EeIz8ASq{3IFjyXk(Sxb zpGBRTd_=vj{<9q*zWj3$WY7ESy2Nl&zuga$t6;s0YJ_hE#v=Ok+M_L$e5lMgiX8sV zD`*nLf6!8f&GBd00S{KLedRr0U6!=>tsX;5u^tXN#SL3E{d1$oAII85g5Oi(MDtNs zE%I@47Nt5Ts&@uZ^)#txelKolNWgPj_V3??NSiFM?zmX%pZ!p0k(1dQ4u3RCMC_|= z{L|=~!+=n18=eH-Ym4y{2Y>V1PIzJc?gM>OqOXu@LQJ zlLPCp3D3GI#ckuhP_5V8MXKP6VxoIJVo|NKT$EFCrE*7G(~fjweS46%S5ip7%*a?A%;^Xc z!)H6_0&oX}fq-*REuL%Nk`e8oo>H?c*qD6CI4JV?Rld4C04xTZb+6CK_xpG;L_6$! z_(PK4Q3kkbp`)RfOAaE)RjbcdMgD_FfzuaElWS$+&yHFhUdM?8P~XoSq~ZI|@dSRL zL$6p&&VFKS^H?EQk!95coB1@_v`(4CGeOP~=RadNd|V!U5f30fibUsV+&p%p0#pOe zg@h@wrhw#{nX4LH{gE6rR0$N<7z4*C!>GapV!F~#D1X+uO{RC43CCl4>__gOK4hb5)P6KXYlKWsG?LO&P9)y zvCReA9(EQ^>By6ehna~@fQ>g2YYv7P>MDN>A%!Vdw4VpZMpflT9YmJ0{6iHi5E}Zl zDhDrvO7##q<*wLKyyql|^PMTG%w6{%7&rNZ^Y&<6pqc9TI3Pso3J*oxiv{R>za7 zPGj}WG%C0>Mc6;6!S;E0vb5*QO$Mn0<#g{$^T7G&H%Gr9AG%ErdUk*z|MT94mp;`? z8)e&5IC#TB(Q&~KI1%@_Ns8M_3k;)4blV|I_6w`%Q9RK>{9ZaG=4ivaWoeq*9A`17UTOU#ZilSHHP67JB((W80 zH-M3Q*Hfpe#86ER!0(#Nzxzn)9aw(!3z5)y{NVvn{z_%qhj+Rs#(slY?jy_b&)f;j zD134K3y`evqs8W2qiiBCY^WV3zh98MwFSLIui%r*Tb&4yjv57M-GB=Vd@w0j$r^AJ z|Ks8%(H}k%Y}{9keCPsY>cxCUmNDYyO#qW7P>Zn%0I26C(kR&yL?|L$s3;F!m^gO zIYWapTMvLPS4beKS{X~wD3y@$RYNdyN++;81Fw`6x96OQf0dd{>B1GaPdTSe!JtPB z=qH!o9~=#lQv}0}Ba|Bch4Py|q)sKj)b5;^On`HR3Jta-;o|#HBeVTK8s`$y>rb98 z3tO&3A;_sN-_bRP72@ylePIrSNj{!`+pvY|&~7`Kqx4JLhl3D#x;NQsd)FUNWr~V4 z`^`0+1S2PLLHA1U?iQ(>I^@tsQAY*XT^SprsTuyK`aF1j39wrZLEZ>|ucx%`PHjFu z88ZMAS-4`G(q1Pxp{f_ajOufkW|BlvfxC88J`tAx3#n3sv6d3iAWu=v&*^bbZ69%1 zzcAixc&lFDM*Cg9=n!*kixsq~A|1>MB|KgP;KHVHnVOD#G@^PpSPGhD<&wn1J7VB_ zPBUag_sBsM{4dt1R<3-LR09kneyKU{o0qNugi&FyNa9#pP+=$?mQ#lhOUD;Edp}(j z)Zp#6r-Bp`o~Jr;0Z^4kZniD&zYS?SCvW36T%{d<;;< zE@qms@0zi_;APg%litFY+y=6-O>4asm|r$XMre{`$*2j1w^8A{?WwgIc|7@BTas$x zQT@t81w$;mq&3OVXEm)C`&)0m#yJou1~IQSXdYb;c_ke)#00T;uhV-I6yLbHe{-F> zE;X$+Y@cfeOlHytq5o1fFoL-Y!Hb6~8o z8T8QuY5~_++q+XwMt)&zjw+1(FH#Puotqdg^oK7pRAY`7VgqWx-%3tn8}p0lG~#d^ zv**BsQ+_g2&KrsVcS~UpET9X&T^+NEPyAO$58rAZorw1^HwpfMRpgt$ zV)__i`J`9Gm9u@2-*UL&wCe_yTAt_uP{693klx6=N<6-38IJ zTp@!fhy7?F!c|G`kt0Lt{Y%Sb7x|Bgzu5N#<4RCpL(zQEH#LV}nu4Opail(x>b=|I zGgC>G8FgAAimrF=JZ5cp;ZfhgjS$v)X`*tm`tzrsBK)kgx|RY8rWvqiZ_I!Ea>hU-4i+Zp3FH; zLO85P9pVj@yM>^%tsZ;mV;Y?&$yF^mCv93ZQBHO7_r9LWCebK}0`9$YBJkD{r9_Fw zD-Lc&`IrH6t3uP(y|8#$A^Z2D1k1n|g%6Zy4BQ_B7GlizT$Tbai`_u+Ljqxn9P8#MAU{9kHRo;5Dd- zCL{NF7Vb&~0@p_xVe|^P!;_EM^WAz4aL<4%IA=?By8Kt|7_kCVv&Y!Gm_F7XEx;)u zIUEsrIE|ef&M01RmA?XZQX%hprN4^r*KF_SHgw0jPZbgnxf3N}?>YT?O*@_95?+;mh77;yCjSH| z(N^*S+HxlllVB2UDX`$A!n%Z4Fisz>CUd(pDdh0FvO}CrE)vZp18Z#n_}wxvZu5PS zaECIXa)8sEf}DC#oUhGP5!;+Ah+IQO9KC%?k98Iy+KQ-sWX$ynaC}Y_YfRmYNC z{DPqwF1Ag7e@+fm5J{E4|ULqXx3qQ9CI@6?xmy&K3g-ikaSt*bZpopUDqYcJU$n~~YGdFEH zvFvyk#UDfU3){lJ3DBNFA<8k=x+N*sYA zssgRnh*cLy7YcMqMS4OI-0$Q5d}pGQ?Np+^$=#zJH$!8GVi+!tDh~zBVZBJIxRv|R5|{5Jx#Z9VD%cX<+mHBp zZE{`x&TZ#MB=z?vB$_ft0kw|j5zI~jRBa6WO4XDe?Dg?^``QX8FAk$kh77!TYAQ20 zNt*k?diNYSna!WUR9SierDlroZ(p^hK}5$T@kL3(b#VIwCg+X$F#Gpd?li`BX20Mn z%35|i<~>gdKcN?5=iybS5s80@rewN3^P<@1^z|Uth+xymdUu${pMB31PXZYc64il^ zU9z=Z(ny!Qt7#Rb7|Q&1Am|+#j2LK@=bUKwb}P!Wr=%FyM9zbCcm-crvz+vw-G2lf z<$QMWG2U}?%dAJ1>I!IXA7GD*{rI@{&gGj!277Py4<8wpGV)RO&((u-w}5~MJSx(*1pb>q<<GM-_HpYHi8_{eDtk&&0mtU+r6*m z__WUTA9X+ z4v4Jqsq^B_=G62}48P;CV8n5Q?)79hR6)5$@coh;eX(4(gZ9~4{#k$Q-U|k9zWn72 zP)!($0&_{-^`{$t7Ln|9!bpkIrg5S|G`+fk;aA^z1uPA5bp&|;fQttDmslq%&u$>GbGPpECB=22lWz;lj83Gw>rDsf|{P)wO z_ek*ebFvtja=p4Ot)}%#Y-Vw{;>HjUzz@F4Ey!Gm0+#}1o8H83QFjse&@0rrim>8Q z_l}#n3Yd<|of?@U(muOwy(~YOTMu&z03b}zwy^=#qD1lQS-<5}L~uDD^XA5_NG189 znKK@ku0KEJA~RDt$Z<#766~r3vS3vf4r{aM*c4DwL-&j&VSe6`PUdr-B?Tl`rY+&= z&X)qumsF7SgLaW;z8jZ9#+L@~tl-zum*anagBmR^d66it^hxwG^Tw8)UrEeuL4X?_ zIIi#;lFO{*#fS{|yQuIm=J~!b6&nxCwTabGbQq8{+AQr+o@){Y4ZPO0N;cKt-=v^k z#dw^>Su-p7+(0+rq%s*dKaj~>j1kXTzoW5q3vJS2hCmX7^iFuP{|S8|=2Pj+Hcn;t z`izxA0>PCTk^}YIyVmtb|D((z-SU#Q(b&zYLK4V{kmG2w0Paq5m8O6$=oa2$7S3zG zn5p0XS~3~cACP||uUZqB}-`S|Pn z*k$)Qt$#>iKH|l*1Nk?YC?~v3Tr-~wH--)|ZxqyuQ;9o}AR9WAnsep4_7tA!XNaJI z(^!Um;rDPj_fYGBQNg5?%+rXMwM6CRHAIwDGKU~wf|?@N_M-#0U}5DL{<4bxl=+%!~7PtFJP|}*2z$0vg!bYs zB#Wsx;<(_aM0n+&G?sJB%Rj_3gm#%#3h!2g7}25Rm9M<;wB*+vPVab;bMpIkD~9PFpKb4@Qw&{7U{hWqYGbmY9bIQO)4dWn+W+_z4@vVG~ zc?D@7SpQO(D%kV8kdz#Fkxtjy2me-qum_Dem!l0`=#*}W^gp@L)x7Vxk8^l;XW`VA z+cjE#-GS<2Qta3DWO9Irt4*Jh(?8~pV6OIH@I0S${+{r-iUu%#i2vDD6cX*yvHA7+ zOF?HqyYea_V>CobO9W5`!F=OKUixZZ)o_rmph^3+FE3>3vAPkE|6Ffy?$m2}_Y9N%4}eO*KBLtc~RdDx{p zf%tWOcD;-1zd(okQL|jQcAF{Hb3i3w-vy2VuaBU5)taA669h0qlIc4VC zzrCPp_oJXEPmdf5+h>dwLjw4ZU&>qdC=(XXm31cEM)%dP9aU5;gBgW;B_7Fs&a?d` z1Pj~^52C7vn7wi1=qFYc)6aWgpK>A}L!RC}C^?>Ycht~J=Aif$og@<`lpe}AkD*f} zU#F&*PEFM7HRS)##X1}ji6P!fpr=*E{#ok|*)AKkA_M~vEmjqFmCVUws_^cD+|zme z+!mwhlQC+gFzO`-hkjl_lMRsPJl2&pD>97^^?Njufe3>UN??Ij)4ub&C8u`le zb?&}BtNxCBOmJh~uw?K$;w~1Z9DcqIvfwM62m7{O6u=)SO7Ec({%l>5$s>g*p7!%d zlPjvvR9zwNznNeb;V|3kz`XC(;Zbm3p(pc^d=Bkv_`eASp|FT-xYje%q1KuJ_Nvw; z1rWj_uND-Q$~MJccQ?9^7v6W45dx}7X;wS|eg}iUJhPB3bs3`6>SOU*CeT_uxxq2x zaYVYVu#V|k+wsL7WG$?ZP3vbCp#Y21WVKvL91y3Hd9bjgNYWSeTAjz%pV@KSU)9v1 zj%%co7or06dyxZtt*m3T)-S#1Dlh+Lm?`Tq-*8k^9XGcEprHHn?Zv8XwU;peOOQ<1 z%i0T&`%Nn7cIaiPTOxk{>Tb5>w6s#SKxnc*MPbrih^d8DCZm?i%>Hd*Wwgj>{D=6M z$*z?C<21IqHIA9I)65!^T7~sVmavp<(j(6Zu7vW0nt{tyuPr{5ak(N&3S5YyiwI+= zY$ns>5HWo7hMw2<0RNu1iFrenl~fEyRBj`Mz4?p0wrv< z_*qN5Qg|GkFM5T!0|z1R8d|@RjeMEIBs|d+P;W4NGMzvdCxBIb1^x#zy7}5OU+&Yq z;w?HQfev948d6AZpV5|R$dnaM-%*M%0j*Mqc#$@)R4;q6u5-24MAgO|Gr;3lpYvYb zp;4)9yk|sX_WbD%4<5F%73#(ijJglxyPKjPMrlRM*8S_04(eL4fL9Jq*FnRz!2F&d zxn#abk65Q*iwb0k^H*YM$G`{wIEO4IaSIiy_bFQ`kaj;F6Z$OEm@j!clWOWD#?sOe zbI)hF*YamKJ~iZ84mdW~KBXF0)pTDpeavt6{_H!#J&@!ry&mQ+A99U>jKuwt9D4W@ zg?2g#-{BMPN;~q6n&mBQq+h51UaK14^TBbEm*0MJ{#8O?#v>yusc029D&2ILnoraz z{bGC&c1hCtoT+_F?#ZA-_nK|??~vCw^c}nzbfAciZ~mLgw!nEqFem{Oc|!a4^&vnsPss=#_WYz%(a!u}F_Pfp~`AN>e7kgY=8_t@Zht+*k+AyKSQnKSN`V zCEo)}p&1l@ETZWq=jFhdMnTUEs1FxL<-*}Ewa1vl#H-7p^>-IZO9E|c)toKrE$Fop zz)bwnzT+%O^g$?}6MW%5cK=pkV;L=jRj#?{V_(yXa!c2Hv3f=7^2Y&Lg}*Xa?_ZQ0 zfIq9&IKt<3b2U026AWVpTJGwZniU>lx`cCAcwz!5Pe<+2KP*;-BCnST{vJ%v1o8X5 z6ANE}}eKKKw0N54S38!M>bD0T?f)ls4N7}9<{|S^8 zvT+Vc>jig|d%qXpxs)s*=^DI`=KAFR3#au5?}l@&JRLKMd^fiHZG1&xS&XH~!OM1V zT+Lf6c}Uv$3|1i}fIoT2^sgFw<=dL}zix>dVQUexU*Jbf5#B9rrbzsdXEh;|_yl=7 zN;brPi^tIEZpK}~-FF5(?n13&A2jd!cDc0Q3^!sEl3@j>k6w2_M2OGY`V^Ls}g#v~Q1N%1?qo($JH{agwoCKJY1 zvJZHC9IU&39_?3b?w!-eEg93UY^yAV%H0VQVbv>DW7QRXkQLxFVQg_$m)?N?+y3UZ z{kNz9MdS*g4D1G~8l6d7AeT6yIMdc88kZZVS1crEonrKLK`%LJTJt=BIziPmw2bXT zi%VGjvrgA%K?Dtn+KC2YVhRQ8xQB=w9XM#Ldkfg+b=Yx0!Ogq8@O{_>IYpeyWCHc536XCrTY^(!ZGvT+f7exRLP zc_v*wKOwjHshUKF!oEfb3wtTL=3u}On#;#oDe3aJd zQSEx- zd?j0A&9vTiwM~SH)>CaW( zvKpy3&fqS|LqKRk?mXO{Wrp3aXT6ObgX&*720_z{IWjDf(!Q+*iK0cmJ5)ssHkXs$9Dam;KQ8e$=^6_y~lcMj~Wd=-nE>( z@zYFjyX}*ms+^Ee%lYz^&JYIp(q+tJ-2JJ%rfn8qrYz(U0KEnTcsh5`hMFA`>wBWo z{#K$o{7!}xMTr*XM+Of81fJ?Q`?tZ1#e&iZS^%=!k65$BUQ+51fvzS&31o`}TM}I% zhUzZ+vs=XJLL1d;Eng6*+}GLTOD{?}Fv%0L&L=pqEn72klExTUgRJg8y=RWWeIKlk zKy3}x6Wn!8g`UQ};Gr?LcXP^2*rTu0&hw1=v65x>EMAl~YzxHyr{6)k(?No0Dc0gM z;6}Q8|Kun9hl9RXRap4SQ@!VabyQ-+h1_$(&=NsAU3HwSOueU?mHAUDasJ<1IIARJ zmog*KwOd5;!rN#Bw8@ed2z=a6@N$~Zl{w3NG5`xNngK5UV{LzY|z(-FM!lm@OH?L0)*o% zk=aKwdu^pBK9phs6%}z|@q8{zsVl4FugB9<&AUWZV}P!Cm@6fk<*zF%$y5AW&nmrt zVMP)dP9gj0@AE%{NP*UvgHa6HK~cMpQzl-XDz5hcHO0jw=YE(b(VP@d8lQJ z5SoB2WJexd@wH~jugSOAKQ#0f`_*?8X+0NqdtA{ z8?P}s7(7Q43D95Rm;yX_BF+l9b-+L9XWtd@+gn&wm(k)p-3@sCZ)bY9cIIH>#`+g8 zrRuV&QWTV0O8SW@){6IUr3j};CIxu)>IvE-jjh<}c{gr}I*gqL`Cbz^M9!DCZ&Y!i z3?IF`%hYXwwq|-|>9Ka#SB3NtTpE}l0xEUxL`LsL<8DQv+kZ~k6Drxh6mZRhZ*J{9 zV~98~NNOo*YmkGG=zo7;2xNrzJol~8im`z`5Yc)uqiNhP9X==eaW(ptQ|9WF~wd-im^ zX`0t1fP>}-ECSVjULn}Jqz1aRL_4@J#&N0*(}S^HqokXG8(88l@%lVap9z!+#TT+p z4itIUpM9B76T(MLo9_3LpZ!1sE+y?#;tY?dxs+0Ljk?EB20afXs2}$sV)s#OD}pte z&r9EO(>$Hhk@M0gG1?UgK-WgqcYNVG_RjI!<83>qwfc7N z@sm-N^Ol|AlvIxJBEdUEERQx zN{s$W;?S=kfnUd?;ybr$M$SrF18@2bwl;WVw1)&`&HGO9GOOknzXF>OgDgY$nB11i zV~Fp{Uw*To;sBibg+V7fFC3|#(fsfiV6${#F=w7e=Nj`r7Fx2nlAC)xhyi3RY$;7cSSyc*KYLkE-=LTHp(4maz~4 zX#^X)N7;I-?2ulNM@2r*2AjprWPAhhm&1h#-rZ;}7Ge06XlDY*Q~+g+ z4OP~^9=JK$P+^chxKhfJ)ckGlg}A|f$#Q2n#~Gw%2~VAygQke_gUnhldRVI9C|CTd zdl4K`>**^Q1}>}m51L~wN1#4cd=X26+uh;6g)$rn|a)UkX$D1++A$<-^}V<#da z;4}-=>SEyXpUwU7lI_9Rxa+c(SPA20(y?UE>tc>s4r3Fu7@jekGQ5zj0QtC0I?x5j z#*2H?h@s~Uvx|YHkU~_l&xN~nHHm3%xx$a=|AbO>4l&wnrF;HR6)Ww}&x%#1p9)2i zhFrl~%4ad7N{)vn*jzk|5@P-qfEKBlrAl%MiWS|7)@{i4Ox^jrF^QwUfLjs z2t`=GL40Mnms)y_)L@?RS;IjfCdZt#xkZz#vM;4L3)Z2jMJ0D`N!8hsAeXB{i@&=4 zDYEHh;r*VwM;aT4B^@$s9ZHV5brf8XW!~C~q8(nx0lItrxZmPQNCy9Y#_7%y_NWih zopjpYZ=yV+)}=OcP&jqSI9n7AjP7SKq9%65xt)$4Go|0bt7wf?Tz*xtnK%yz0UAJWs5WRf(tfe8nn=W;Y){hHw!);Mp-`XcO--Tz<4?{C@W*#nZsx-pu48>Z? zj%UMw->8u^pzpnQzosmlF#~)#_@JYfPnW4HiW$p_ z@ElZ`41bI^gclFE7b=e@Q%B>P7qL8`t;4hSzTlgjd7{?_2wTtWwgZa+q1S4!g8giw+=@+_`Ll1OHgCG1D$BL z@D-Zm_9Kro

    D1sV_Gesa{B8i8xsI@A^v8(Vb5fZ>B<)0ZBk!MC_gR{ zUHr_dB7cBMg?wPr-H6zF1}e^awkHov5mGsrZK+>M5rMs6W$nGs1$u!x4AV4yCzhqQ zy!i+)JWswRS8oUL^wX1#iPU)n#y`#afngl+3tQ)tbnArP_6rf*w3J5VHm|0>P3;UaAJYk6n1g!M}Zr-t7MQ3pbo+cUIv%$C&(gU4EkxcOd^1 zCFq?@!7~kmGf1OG>h)pu@D%%5I0f3)L&GESr_P>qGM!*=RkK&~_3;;idA7*+NTew7 z{4Ex+ygJuDaSHjH0w zY=rA}i1F(_i|(sCtqy^^-46li8x1-l{%=6Z@rB+xIq~b{UbkbJbXZc?e2IZ|EzCZC zX)yDg$c-h@FB;B{blXt?)C39SO$HuZCfK`MbqhtYK%krGCaF*8qtYS{0+dh;J1R<# zrNOC;sw6cF{9k7WueRUf1wD>o7ig{r9)SptR^x25e^2w0Zdd^7ujhuw_($_g`3GD( zh9~VVy{M}gE9E1(GrY|O=UJBhjn2O@7Nq;gC)F91?eu z&Il?4C?Nbi2Z?h$ng39YHx6UjCbC zC@nz?sFh_8x52CKj&AY7Ugl`*&wwrWfky)EG`%|+*?8s)@i2Dg8r~iH#W?|F6`Q%M zQx zmD2@S+oa;&v9OfyTH0_;L|nuL&2xhL$RB~PDCZHYiKevd{Y1**#PE{OsfYO^++6)= z4dJXk-vOwB!@hi7KlP*&FZrdtFAe%vFjgJ>YI-$t_ca`OC&vqIM(g{pA@@vzY-VOoS!6v`9S1p2mfw%*_bLT!tlAd+ zX;zkCM{6j&7u&%cWS%Wk*gctIy}Op$>chC=4qsmP?V-)~19CWQ*-1Z!NpH3FKM&#> z(aRi0cedYFunf|)JEv;6cel*MaE9gwwkCIHpOQ2Fax7;_b zOqcKk=$E6r(-D0k`1VvlCIs-^rrN)tUd}ySlHKE(W*?iEb@_#4x_N;Hn1XigdZA6^ zoR)-c@4s2amtgkv14!F>itKP4=u!H(qp#bExA$vG*y}e=RH<^wZ{CamMGpiOKt%Mw zA5`1w1u1%W6;XL(lxFtJu9PRwr6mUdRsZ7Wk~#plX0Dtlh37$IS|v8&FyP#lum5ur zs`GMVfAK19X*Q$m1AQuWm5dtMq%A}8-n^GEplgllYo~+8{u331NKOR(VS_4`)AIPx z*zS1z4nJi;VRu^MPsRJ{yg-plt{?Dj!YC>hYlL@eDSRA=>(iqfRLU4LTjm|G(DB&~tT3A^PBU3UH@H?{587Hv<9{4&?kx(NS)k*=FRx0dT5%Ap+3Qo(Z4#5Wgi_=a4s&ZUt@s zslw?vE$~Kz#PnD->^^WxI#PDSokQ~>X_b5B+^CW0;L=FoUda`g`T5h2U3}z(1YxUm z=o~?iq`#n;aD9dnM2qExylQ(3yv2bf*{=DwIJ!X{Nk@~g^C6-4#+M%n{_W@|U!={O zXjJ}G_+5q+FZeM$0ovXY(~(YH|I{cgqAK1OpLc|D!B^OYj_=gm!}}g?SUpBv_r~n9 zPx)x1T_den3{d$v9e0QSuMe%YCW2Z}Wk0Ij@HHLLZeu5=5QjIRInzOdZ<+m{&ZUNy z@`A-eHH~ggy$5xgssmSR5%KKiPc_smYT@K6EtrFxa^|jq#aTh06}t?5+hjJK_ekOD+ar`Kd8ecw0`e64=Y(NSnj zZp#4iRfK1`FidHk!qr+$EuM6{2vxvf;AH1|!)F?t5sPAV@cr)gcs4d{vA5zT80V;m= za^cN3!aQb>^$mvSHp%wWH%iRo=#(TuYD;4s+`G(c(*myCzHIg=5e$@##1-cc--Hl%Fi}z0IqJ+V~$pQ#o5= z%n5_H0}Q?eaDDG%7HsyW9b)WShc4;voc`Xm_G9{tCEmmlOa=dpm3$h$?=V7SUgmo0 zcWko!_b6S2m3}210;cQ*hV^LD zujdMtGG?s;m%L~)3gli1HznQ{!*jKr0|eBxa0Ll*LZkF@GewEc)PJ_k{v!V5Xv!N( zIzJAlit&r}4}0nV_GNM5!rd|}-i*UJ2~?ubfy@*_BzA#&j%&XEd~2q1KfGlpYX$Go6WUCt40gc7$s+X{+B8{1=D{9jmEFgP4Yd$BOqNBm-!NlZ58RIK5)sI zlCFjJZSR~8=jo1cpS?&eK4TZ%C`X-n%9A$U?|+Y8MQKXGx}FsAHlmEd-R+KuV1H`1dYbQ-aY};Pk$_<&10LSjxAqhrj&HVh@5E_VKhQ7@ zMW%n=S^HMzLAhbf$LP;_6G%PsOe%e{;mQT8|K~^~;TAt9_FL51nE-*3!aQin=5yhn$T()6aVHs;SX^qL{; zwO`!Q_oKcMs|Jcc0vS|WAX0jer`7uMZaay+kHRC1m`Lw| zA2VK-x&%|iU@5d1UJFqKLFuJnBCdax*My$)Apg}toTgG|cp6fo9>Th6UR{m}-CKR& zh=Q&&yk&i<3LMci3AwA1mFb)fF3G~n$kGU3@~16bkK0{`{$-zWs!!lCcw*#!p^!<8 z-dJxurwAu8E0N$j`uRH&Mw6yAt(M2@uEVzH5;HZeh>7O><7s8wUFhfyaQ^d(%CePujIMt5GkrnHau69Bz4dvBS(6 zN3(IA)mr7LsoLWNfFv2onYiq3?j;I|PhgUx^2;R|tkJdNWhS#Z7d{qKOy3^_1s?FR zOX*~oyfz}~{Jr=LMW_K^jcs=){O8;TTBH!PskP;&wSm$dd@6_Jri}z9)VynoNp@H; zS5F1mV^SsLw>iTAxMjAISwpl}lDt;{!=0 z{fYF3SK(NI#L|^18P_QjDdIAhD$}I^iFF1+&|fC>trAhU(PndOAGS&V6{efb6-3!QB6% zw6h#Hw4%|_zD-9{)lBojhZgFYVR95&%ESCyVZ==RHJruT`6?zDn5iwzr#-7I?Zy5I z!b15+YEy>Zw61wa`icF#5l_n=Eq_eKl)atfRMl4n`YZXV5^Q6<<0JQq^#0@#l+Cmt z*jPqMutzK~xWN*zqTCi--H-13d!>F{#aPmMR#IjY1})j;Ng1RH>f99yB8Gd0V7V$A zv(L=H8|l9YMrVLwFT}VpnDKYMT0c`P5rBpa@_?4aqaMHg^)A6m8h88kXNn$OY<;*t zO_eh9pSGMS`(p3;Z7IwoD|+tzzZD#;10~9bj#!gt1LXvWnew|?)$zbjIUfrPoqu=*k%w3+U z6kz_+sK`HoSnxakUO>-8{{M`CnN|K$=tDm!H3b^5j1{;Rj+I!%@!Oxa?=Kf}v&pnB zvlb$NuS)>`>gH&#fo8kRP30Qj8_?ZM7r0f<@H{&SlK}Ew&sU$4I(#8&Pz(aBTz8%I zXgj**gm0G^nW(0U{Ix1YM&6Dd|G&>>O`2A3<{c-HTlJs{3%eR}&Wsz?^fC_+`w$m#U%(-+tDcJDxd@rAjrVC zlA|PGTC+QZw4uUd^V1g`}h3#h-t*mhPowqMUn6BdzZxuN--7 zuH-*UJZ00-vS=;tQYeXxLD%WS(=`7wC*!q_GzWkUVsFKqfvAlp6ZH`w)6IX$ zxkJxlAmswvu~dv!8FS(ZNTyv;kkx2Y);gz@)zF2bKFhbKU2Xsifl64O@N?D6Lemr7 zihaHf(?xcY`~!UwFzLkM&9;VY_GcASQ>5$gfu3hMA)t=$T6+U0O?uvA=J!V$%mjw-Wn_t1P^r>n5KGD(|@i{;DOl+Zig|O3y!Ss4qVNiUD<6TCK0Y zDlb}ck(T0Ly4FF(m_1x3JxD0e^VNh839QJ?cHt)q0Kq#Nu?}HT)u^(qLH$QN#;oDH z5Qgng)4&R=6x%f#ATXx?-2x?^jdr-)^m!IF2(&#!GvnmSux@gn?n*66$B9DtMnxTS zC_?OK+|rRpR`B*$bDQM$n(epwumJN|uOQ2prJ8y||GtVIB?TL{7SS)wx^J-k@74cU zaTIw^-C`XhMUB!rqa$E;sK(|5ZrM40yW&S;EhGS{+kKFWw3k}L9j4dL!FqsbEtZ<+ zdn^KBN&aD}^2w3LDGIpU1OpH)v|Ex(ToyE<-?PBw zM#HBzx*)ul#_|?MN(JxM)sOLEjsvq7G8kE**67jX=tGGxel<=6csdWm`NTA&qk+Xk zS;!-ThO)JTzE#2^|NE%bR<37B-!6^Ho1%BS9KO^^3*t~X88Zk(m|>2_N-sX97Mm$~ zph>~wvrj+X75;YGFX_m?z86#SjGbcybx4A()c@-XT@TyjQN}&9D*uVv_)|6o{oIJy zZwl6JL@F2vy* zlH+{Z)`0KyWCV`uD#+Bm2@9D(VQd%zoW1BfETyWA{S&gHKZjKvey8j=^gX z0G8KrjynLkV5^e7c!3)~r>F&#?2kuJdg-hO+W1Z(d#3CnAY%D|5!SQKYi1L@Fn;df znBp(<1WhaSlP*jYJ6yeLVNWEK@GXHq{ZMfu3o4=Imdl6C$~gtOqNXUWcvEv4FYyO# z9_$C7194MD&9)0ZzaVE)=Z;9O-O#j5>xt0Bfo7!674+$5>HZl`pp&1@ie^_l?_x~> zUV35N_J#+NpP{7lk3lKi+lk&0;8{eMGDY^A(ehj@A>1MXdj?wioqB&JPH+0WWwmD@ zVwm&8P{*%0~5AJ5NGyegQZ zN52SdIO4b-KqYBlhASTmL&HAU_(zG6>3~HGUZ^QFE2+{Gko<9iUEaO`JqLX&`Sa!- zLYRf|@|!3dv4ACn@6*xmc8gkAWaIhbvwQVtdFjFz6f|O1M$RTEcjt~=xF-4Uu zU6dX`466*A-s&~63yVj6wIdL76Dy-PkJI#Gt5Q;~-0j|bNmc&uH5b{XB~hq%+GIlhgifMpZ~P_CQMYr< zl3#_1tk{StIisFE^Uj}pG=~2VniOfIM4W!q+zzI1Z-(4Fn;fUNa@GsE3v2tG!fgFS z2n_#&8$$|CyrZs*Q%$S zj4ZP42W$<)I@D_uQtQ_&#Mf69{qieAPW07+h&I@M`s23KGTSsJWq);352Ys+Ckw0@ zNZ=p&@prpMD&wjA*h~tNwmg`f2>9ud&QH4hpQ+CAI|M~jR2KC7clIn%XLR?s4Kfav zfL>brqjkC6sZw$0EN0=Cm;d4h(rOHOp4Q_2S+o-Q-N)x8NnuHoS$;8TXd>`)`IkVt_N(+`4C40@+*X4D&Jk1LftK*hB`Jtv z>17F{a+f99hAjh60L1iOsk^mAD!dYcCe6dx|82Z~dYQZxjbmFm z3>}8HJm2;o0)2~1WQ2Tskf4n*{^qAx>|$N_kjP07s|PE((*zi{1D1Omd^A0mOx(TO zOi>+Sg^AZ#mY@D?Dk@l+kmCAs9W^hpw+@@=c9=%JMiK+yWBbvL@tAb8oO^E+Evg`9Za5Df=LB6LE&@dQzb1#3Fa6LoTAJZr zkEFQNj!T?-!`K4;W8OZ=Ma`8-kuzF#A$yl$vA? zfRftyqgs(A(M#_Ht~?f6v=9U~_qgd2xT=Y6kHy9I_w!uEMIJm$zZ>U2ekCIpK1MEY z8K8UkF?%?15`Odi=cOn(xgRbgM^Ea`blSb>I_D5{0~`Y_{3C3yO_{mhZrC9}bB`Bq zs4n(_)4A&khI6bxB<_B7hGd_7qPVa9faKQB8w;DRBY1hoHS5JjpDh;kW00@q<4>a; zymWn5Ff0yEV&e~4P>2FG{Q+`Vw`B*S_S^m0)VJGW84*Wm*UUqS;qDiBUL>1~i;5>!8Rhjny!|1SW$0X&){=_e*8B zxE#fY|2G(Vz)C$IDRtGQ0eI@Gq;(wnwZ#aCa1*+0h$eRk58Y}?6RVk0n*?LzV^$GT zFaIn-LCj%uG!8C< z(5@w*ZlzPV6Dv9WVAfuW8@FKhL7lwS7l9iH0KvNP#lCpZdH!?9Q}xZn_!hctn}xEw zbc_cCoAsJJx$&ah5VQCehIv=02ZV2pk3SAKG4ZLi>LP$Q#<6g!-+g)!hHVUl&eMc8 zt4t^8)CHzfwsKD^g&%(=0u&X9HYy6m<<;n4$TP&TUf4^|L77Xx#R>5MO6rNLn1B~by0Cg0Plj?YGB z=y4fCK&RtN@PtGt-U`3Uo4a8&U`*hM{YMuLbWmjh>Q*D(HGT_x_XXAVwixHR`W%Mh zIY%h(>j5*e2x?b04fgQ@H~xfjZoT7*$4F1lhlQuZf1tDq?=`Mx0mZ=OgwfMPUyDT+ zJirA>Yhb~!y2f;xEGk`{m}~5|&xwHk%e_&Cxi=}WiQqY^fpmK)(%}`2C1UA4Q&zA# zzR$AhAmPs%Au>G)j;(0`OOBjc{RQmLK)k?Cn|+s3`Qk0XCLPwzD?@2buc&g#^^ z)z^WlUe7`bEcHfT3XKAqC5zPcVPesU2mAwG-1A@~z~m(XD}{ntASj#6LYNq|q%?8#226 zCqp=j@WP{S_}IdS56Soisjc9B@~m^@CFJ{#CUx4<%I*|UtqZHRJVzcqjOGMTFU}F- zepLDjsO?3akrk3IrIjY=XnoOoWiCQentwyJ2R+fCY1O|;@*VA8 z$i`ZWKdwC%oirQ@Hz8l9@1QesMgNF8OSw}26n4lsyr7yS7{0VTuX?*hT@eUcn2-Hn zO1RsnVm*5#PN&51UGpPwPW`9|7rBvAceEm{Q%0)Rh5Yz87%I=gOZXf zAuK8p|;w;b(K;? z$AK;L?dHBywroGAVlY3xcZ$d49B*iqG_mu>oPQA*(ZmFmSR>S~AtLv~x0=|9YJhnR(;!A+W;^WZA8Kg$AahAok+SK<^wu0L99 zjzE&tpYYJmAMqvupb0`!V#SDNw%&c9RT)n&yViq#D3dZYDz1ukF!C@Yb__|JT*bV_;TlzPs2Co(+P?ReT2~4GOISw>Z<;nPMSL>XS*W(u&fQ}|Enwpb zHspg73a&W2zTFD_lmCuHeaCtEel8n9#9UM_rf>awFh^o#IOlSN0jC->B6gE`=^_2R zWZXX!Dr5k!-GgJoW@HIVp5v!|SNR~xt{OwdF9msTBEKE%7gk=}jtljsD#8p;BM@Bi zSZ88ZLt~6g?hARq5@o2qNf^#y&;rGW3Ly34rCij2R_oI-yTL7hrs z4IDd|Iii=e6K=f@Y~2<6#2AHkB}L`Xtn1p*iBa^Rzwydgm%wfGZr=IOPL?luv0+hg zQTU%P{tDR@P4|uW6V8@Ly}$*(IIH~UrY+7E$=(c9DC3`jMB=M`3~=Z%>x1mN_>8z z0Pr*hVD2kKWv{Jmy)HJAw|gSrX1FsJzekp(-Pi$hAKUWjEQIa|-d+ZI&<>|JGPT|^ znuaFEY`s0&__;95bdGmKJW?>7!X^7(&b=Lu$o-5v`*sKfUM54{{C$0d1e|?l+)V^3 zn#5QyT$u2xyZ;0@-{vZlvV0W*d{L=Xe;d7CADi*T;??Ow4s{Ggwwo;4aX6`_$cP@l zw*jv@EPQ%CrnQP#tUL|>j-q?7ZK-^w;x?*_t;x7ypL*8-$B!2%4miiBZnk#!$4_=7 zFe*g-UU&J&Tf7`>QjK^5TBr(s{%1@;JdT)c(%U3PC%PySJIq|%_$x~qGx?GMrOVU z*4@hEoM3&uFSX|fD13F&Z%-c7l9D0VH&g)alto5}HHX{W0|6Z5|D9v+Og8S!sux$J z7{{``mx%^+iOUKgR(uOmyeofs0KXXu@Ip5#?k|5Mg&zosqf3ZY<@}a^jXBVqS8kGs z{h&W61v?WS9H`564;7JoxCDgN9@@9NU*=zKV z3)jzvm97HOyW4Qzx8R0O zfCQ%vH=EBpNA1Emgjwa0L$mAS3vbr1?z&+%|DjKy1qS)^94X8|=PYpH26w-?4rc}X z7V6@Sfwmi&tRnso+-;0-_tL{RbiU|TP2nF60|3Cn*hUWK@*ykm@Q%*B;!XkA&f}kd zcri1ZR8)a{Qf`Vu^yjU$9XOkFO7GiPLUv#DBI%BwW&l#g!XAumV)q-~xE2)GsPZS^ z_LG;AbGD?h56MnY1WhHPet4kg1%vxR*334l!H~yD1_todrqboMep*1>vM5( z_Q&!^m+t%v?*FxY3Uectz5bv`yFT?SG+wnyNOOWUO3LGjQ7;FjiSw`*c}}SB-DyI? zx8O*_QS`j3?_JgJ*YR0$L*?8DNv{^#_e&KeIFBrV%}<{7tyfh^vSyekQQf_~ZKqgV z{Mqrk?`WZl{_U57JNK47|c zp_6o0l&-3V7fR=KhJ8TGj7UWJoBE*G75Nw+I7sW$+W6Bm7&Uh^9l~WzSTa^_esHA| zxE?Us2TQ(8ZfcwI4P-i;0(1&PswDN@M(!%)ln2et|I&R2E}8c3Bc9pj+BOu?!!&V? zKIiS|Z;N`;F#t~HKh_f*KM}UN zgAC749gM4#8yzMJApheW7I0}%&9^r5eHdI{+XuZbKBro9vNFS<0KO;;KE#m5#%hPz zlM!#a8^Z&P-e)XDYQnAdFE@EzQoJLEl}w79tYh-!C#*pnCAmj6m507H?Z@gs%P_pL z9KOPN-V9ozfcXu+rT!B*y__n8&)tM(XSzJD&Sd`C=nYZSfTnx&;jj11;#X5G-ze;z z`Oo~R=L@=KJQ`Vck9&JkoNsZ^d?9{%TF8Q0BoX79C4v`LAPoTsAp5P`HYjF~dz7-X zk8)pN_*~}+I^ir1q)&3o?kp3%g80_9g1}vH+>s2kWQ`@PZrTvt&Wz>jue-M0a z3sQ*Cs0AGps!Ri>oyk@Z%kXEyL8Kdx*_ZylID*_8ouir(UmwYI15eieMm~JkvX1BO zpFYcaCvsSCxgLOTlS`ua^XJVqKmPjz_gJisf>dIph;k71*6p`nV`G>$92XAgA@ID* zzv?)s;VT4R6CB>ERvDwHt=h4F8{|AG{7fETutS?~2A$=TwD$qK-(DA}ju|1huikUfYM?f!#U;doQ+wGw-h$uW-QO2O#QUNPBd` znD9M*?3yOLUSRUxA|P`&#^HB@I#&j{c$uGYMYZQ_+SQmIdg{rY?X_0%MWp(zOw6@j zYrwWiAxMm-b}USK1h@h5BqfYh_>NbYvuOD3N`?Boy5`n|z2^7!=a1Ka%fTq3J%c_r zX`Tu>2i~%gJ|R1UqcN5ZJo#)UX!R zNCnGN`_rbeDw=!1aj~Ws^!Yj9WOj9WH0VpR(hoB7uOCv&?5qkj!s1|jr`9S%B(Gv8 zzOqvaw?lRH)Z-|zOG|G^kIvb%2U?2IROJQpdAQr1PjfW9t{V@4z6@RXRhIq(6B|36 z$dw)W^LNh(7Ja9y-> zIFu-a_9cYwmgFZs$EOp^Y4(X}i-Ec}MW%-DfDGcTA-c3vgF#>{^^C$IH9+RwA#wPT zsa0UUGa=t9_Vv5hM-UF+&-Fho_~-)YCY3L6``fkV41vkUlV5r9Lkqjg1nbkRR2eq- z^dAlo+~pbhH5+Zy$r|uOdiESuXR6Zsv?ND@jl@ym5D?)Dl0agB;jZ5?V*+{qrnU64 z)6`$v4@33F3roHz*igl_|17u$RRvNmBTmtH7aLp)#+eLOAeQjLBj#W*nrJ*(7@JzM z&)0?YbB|E2dE5S+wi@1xcs5<1TZ5&hp0}lc3T20HQj2a?5vG5X_ao|y7 zT&r8=4W6&RgA|pK;23+6w|{^+PZDHdaz>!idH@_D~Cz2;}^q&V|dK z!@JH4dHTHe`rXCo+t<4vbu=$K~@k-2&;Xo6ki zE#7EasM6zew6Vz>nkL(y-T>ba^t-{Q0GU1kqGT+f4 zA&g}p;-6T91AuS!-2I=@ycXj?RBRE2#nTwkP+PLXr-to$z&}pdk3{V_{=nDClLvqD z{dwa=U&f%T32X2kV0!S8o=}2o%snFzGh?)v#VJ4oc<=Z8jG(>=_Z8X7hAi3M0p3X; z?G$JUo!THt9)7e_BX3{($a5Fj|CUDsn)v^^05!wp?wXZBLIGb5+^#F|Za()ZNrNzz z^8_VK;BwVYA98Aestg6gHBgS4N3cnl=IEo1>D!mj0sAtc_MU-602wj1pO^M4ph>Yi z9(5bWOPy=T@dM$Skk->IV@|?qSMuFKJQHS>I1N)%Knx9GF%R7+4^&vWA!^o;e}Uq2 z?w)!xXTWWQ&AH_u9tTy@>G|OC9X}hUyJKYV-r$!0Me)MvBda-Zyx5`Z8OkwqXgOhh zM-XNMg2(}gQNIC|h-sB^i)f;s8j%?^QHjekqfPci-l_j9dJlVYPZV(Df+LhJ#mN_u zUbjG%?r(`qwKQ6vfF{AOh49`u9;0(31OMeeg4ujWxG@0hxXsgi;Nwc#UC>gFDGJpm_dQjXBYWwK zP!n!1oCV7g!Ja}T08*Ru2xbCMpxAHO`#%R;WQ$P9`8oDA%}5)~n{31To#%NKFC1TW zSq(7$sr$U6fi7NRs+lG)h8r?~vuW=i6;m(;))@U-Ps_k&_8pHlZa8I- zs6oI02ALm7MYC@3-wTde3Z}0`g1^K(3PLtIL|c^dV@4LhV!9$yk>cBLnYQao7LQHn zI=3vV@K>3sE8;j&63XKZ0AIN5Q?E^h0YVp=E~R<&-`Lo%cS>Hq2(PmYI=`Uc04*L? z9C>5aMDXvbek%S~!gzwM9p2D_qsi|NQz$hjxHid8A(ELdzKg()hVXFzKE{*zx4SsY zqkSr&-%61Oih!oTx2SA2k%|2?5F(uP0LH`n&ojNL^qX-WDH7nyh=h1rlp0XTRqF)fLl0VR8zEM z>{u6X*gFoP_R}NXi`PB#KEOA})(MGAO*LAVpNd%RG6Qs9-3!#YP1o8Xe4&5NVm-g;L1dmPK8`9vWmK{CD_+Y^HzLH}AZo#!2KWL)11!b+qJSP$8}z5k514iqN4-@N7EYQ{e%Rw!NB!3jFvR ze~AN@Syz2n{VGkc+QCWW*qk}GE0T*zx{$`zzF{=w-tOdq%D?e<3*#Y9_J}*8%ud>5 z3JxGUB=?&9*A3E-zt6*Nv7M4jtLdhf_UW9P7QuQ3Jq6pr0_&&|-S}zcMv!Y@#bumZ z!n#s0=cm8FDaDVyaxAZ>(g4y>a|?K(UnuOyI4M9C{Qz84Uu||h9KIF*JGulf{DsY7RuIZh=+^Bhk);vv5QXx)f5WoXQfso2`f`wz z0^oT^jZyG{U}$>tLM?DRp@GEruMZw8Pi^12c87@NZ5TaA21P22a;Qut0QIMu?;`XS zwbU0d=6|ou;n$pVwvjci%Lq3=b%LbdYc6#3%{#jz^lyfxF3OhktnR-HHoq^bByXKo z7<;Yl;vsFlhjs|aJpjafH9TNL-A0zBpWIa^Cf>3FG2Bo=bBe^!W!|IWB$srP=*zgP zgK@w|n!qd~rL~iM+rSY^z>|9Fmp9e}T^u-1DP@%7Z_psV9Krghl6}@;;4H_VE)(y^ zV`R`kJOC`?pxwU*e#YIdZZ>gkT%EVzMrV^=_oBvGQlPRa1vMY_+VVyhls-OJFLj;& z4^8~YB~9D5fC!r(R&v2PC<84W2_93O{=AG^kC5+9J-;}8wiz9l`0y(;+2%(3#8vW9~_f504EMQf6AKrbxyJj`*W&AMlo1pXW zHG9p7$3+Lj^5mdFo=fj|l;w&|>g7QSF=ib6s%86=FxLev>3EZf{l$F!J3>w7SfyE! z^8`po5Mbl+lDTk7`7yYT3_k63FoH%+FedScTU%ML?#+VjFt>etB>{@U$4>vQxil6j zncqTY)b==k0ebD-=e|h)RRjXW+wA>GHV(c3Rtx&@PS5kq+jX?3ov0pVGCzL;Z@`Zt z1x&xLp22(%ynzA{?vagc0PUM2GDPt|kHxh7K(*Tw|259HZx%?xxLBD&bWPgj?o6H&xYro)F9z=j- zAmDf~=`Hzmhm}rp`tIWMBrP`vEGd0{G>h;gu-#z8Dtd(;nzw~pTt+KhUwc}W-mj;8 z`4ueA|ItCyY2z&v6D@i2G71^ZmajNLD#$MZ(h$Dr86-kSKb1z6+Xo%=((SvL2sT zRJhuLG6GT7R0Lwb@L!>qXyIi4oNGy5+#2EdZaZ6NYZiuf3A_Bthw$bYB~a8dQZH5E==PDE2xvWi^K6z zAQrU&#Pi)5RvEl&Rk6xX`VzZ;J?wd;X;GC;RF31+-}Kve%-N>aAQDY0aR|>e^6#J& z;V-3eQfe^7al6HZF@9L|Cu5?sIGUTgqXYn8_3_fpr;?Y1dPF;AC3K~DQ)QijZV14O zn`~{lEal6W=ABJM?c)j=JO$&2w{B*yI0$54WWD+1*Kg_>8@(VAQ!pArh@fEUbclFs zeE1vsNIItNB4pxN(AxM0OuQ5nDKNAEh2eL}< zcph(JV-p8#c^2sEx@Pya@K=Z>=_G%{uN@TzaRaIiJX@l(e&_Yq`h#in_5f3$&EJv$ zUDpw}cGUbr4fS0<|J|RBa91L;Cu3iRsnL$)YOqbnV9#|OxpO%uA{al6*TkcsbmO|N zcEJ*16iC2MizKN^qn@E*;!*M?x_NQdBmdYvXwhFn<;jhpjVELvHTbY~4b+ph;=>o0 zn1v^kwq8Gkn)-U2u)OfL-R#CVU_D!Iyf&)nZeTF@Wv+`n)(Gltht{lq1_Rcd zveKaX?nb13M#b+K>)(E!k(qrEvAzP)X9Sqs&xGP8R-B_2xVR;fL@4GgXY7ncNYZ9> zx9`e)ZRMd5ni_jF8`yH;|F3%Li%t-1qs7^lOk{}H3|eIS(fN)r;4|f{_E(7phcUK( zLO<^}48CEFjd`E%4!m>oGQ$=9Z)aU?Ut8&)*jcM=O5BlUo~4^O^k@;MR~g6wc3C?v zHEo_36m_mKTuic8iU4=DinAAG&odup?Dfl4_wmNe4-8I6&a=%{*IM?KvLWoPpZZEs zUKka>r;_$;>j+JR!^(YvKYNEXf}hXG4|Biu(Lb$Rh_9vs^!KHQ1dVsOwzrn?v53=z zNqq%O>Y;=qO} zo(pGA+Ug2bow?K9`uB5X_y?Ef!u!(+28X#mm#GW}EJ|yM!2h!?$?HDPlAk`cQBASM8y$-}FLc$KuB)kQZXx3VHu$>yB3m!G>X z*GlSgyW)JPtu!Te{e0+(Za4}g$t9H9%JF`? zY0Dhw%_yEh2dec2)``F+yO6BcnRCEt;FIZx>FC8mLgViC3>5M0Nx z@Ro06V8l6cVjUi*%4vP_PJ9HyU+Q9x2453-zbeN(34NHjyC=j3Jtn=8Ur~DKXVay) z+t5)_Q0H^8-R3O<>9<%_bSLDWCy@$S$izcu+Oe&VckYM=x2s*R;YK-bM@nFUfePYc z)8G_C-e8ci%&>0-6><2nFL!{VkN`vy$A00YjAvpymByKTPi*aawB$tYcd&T@DppT| zDt|XT_vgRXUs1ctifW{RrwADG(pT|1{CK-{lbGg+$)EtK=#$2Y$2$GUDbnI8k&Kd4 zfo3asfj58M+GY|zK$i@}ej#pZ-Y5b98HBuGM6Vc_CUyLBqEN+Ll4UXW_|Os+tgK+njMo_ifm3@zki=nC$XBjFeK-xp6cZT-cEV#9{_&{J#m$H=z* z9XIAp6RK$6yQ zDbhO^25;&@Mx?-`2lGJ9Ex5G5{bpHj=qh11icX>^rU zkP_Z5#OWs)SJTOLkKGCG0Ox4K8J32!tG50^t6a(6oY{X9B$R41CAx@LL~KELvoYL! zLUxgd!ycingO7%vgbV=Fa@WWh0xKV4LVgZ={|Sa~3jnFxmDJEiGfP5tJ;C3`+x$Me zw|mTMk8jX$mB@8O+`ZngNadz|B&PX7i-%NfoswX`{%NtDabM)x6fI8 z)ZzQ@UAq5F{~5U3IrqC~`rL7YX}tU9n04Kr-yB2%8?om_o4Orl;}<<`52~A00|AP| z_Y)S(i(7GS#y(C*ivm^$o}qC2e$A&;B~sAY^oL!b0g_k1f~{|@JhZ0%QF!Pew>VF> zl~(L-*AtRQ^$2=$v555RYI5gNFRT-3VL<==Yd^#cfv?Er)ve)1q}(|c0(-Rreu>W8 z3Kq|+H(V~G4C{1~o8uzV{Vtaiv~(UpxQyL5WD2WbMXT-HB~2SjF(F-e;WC`C$K15A znIqe*#xGU`pj~_}$FoOuY&EB-=l31yfi@iY)BJ&cZQba3bCz7LkyW|-~Bo&8i z(w*Lr&MvTCJ!P_Cg_gvqmsNg{MNAiln2ASSZgB1$$F!5rJuIou|LN+5eVq?N_%|P` zD)i=|E$yTS32&bX1PP%0TmX>43FXh}00uw83d6Har$~3>(}x4F>JONP^*LU=i>(bxZh7L4x{aI@cR$O| zzd!YnRSlL#O5nrux9GWf0FDkyk1#NxUR{3xNviDADqhr~$wC`Lb%`H}1zh!^ic{@7 zYz9ORe-_yuQoau)+UBCtb0cSD3T-4Q9tN2JhrHD_T#cA28nf52;J{mN7Vvnh6P+@A zmW~vK7ez)xlG8N6gk^SDb~s^QW&H5r@?#oC@Y#pOoI7$JyKfCo!%eJ?FE1+%ZmC5hfEp6mkbjNb;m#F|WE&vq3O#LBxN1!ID!_ zv$x63SL>ha@D$g~5xa=jjZPmht<_376nYi^u)C-`x=_ph42PEzm7ouwxiN6wU%ik!DN<&j+z9 zW?s5=%2eio=V>-8ZNYkEeqS`KWR;{@{`$y76~LJDcH3F`*7YYkkau4`_a*2lFfy_I z?R)Mh@J4%A5ZL={J5T>=L$*C%uD;s8M=ibTlC{(99wrk)*j$7=__W?PAJDdsjVOEaHVCF}`(zRLRCCqH!W?c?1t&G>UhmX{IhblNJ?b?d#C!9yN9$`DYKh&dJc}MilH2QwWhP0PiQHE zMPe%@q{uJmV)!NApev+Qu=|9B>!n`3W(7hgP?KP?pIN_aXd<)?@A)|W2gvU0>AK(5 z{B#6j_Y+Q%CRz4bQh32Z{t1s71m|k6V3JvUYTNi#F&*s(Y=P&~#-u3jX$AbIqT*xz znc|t{M#F0rU#NhN=k|Bl(y0JeqUWdrHyDyaW^MMl{`&lLk_O;SN9b5qIcO>L3K*^< zbyT6K0e53$loAvDH)Zvml%CV=p-LTH@pHjLSugv-=#qH2@l5`HM!m8!3|%M1x9BhM^1dFV zjs5UXX`Rel=&q-m6kdMseD@j;D6DJqMJ4Y)cSXc5wmHI(JURF%v|dHKoy%^Tu;eLT zHpE+LbH}C2RvBgsi;tm@&=RV8@c7`pwv+Z?aGl`TmzCzhzf8to__94eh+z1`eORqh zct}LgItg+L<})SG#Rb-mEY2Gjs=AjCuHpBY%UUd)o3jzhEmW)V|Amgu(e2Sk4gR31 z6En+sbrLmcRgtImPkDnC!+rJ+nAG#)Tavf;wUKM)1MoEcEwA>YqHf=03_t~iB87I! zogu)8;W)I#!vd*?Aero`A!#tzydDdeI0xmSX!+Ce)+&@tjKxce-bQB6$obDSM??Nl zrHBQKk^Ek3T7JHFR-e}tv`0`7&W}mfuE?zlU&Nk#s&?JkZ z{5$qkmfW4ri08d(Y0AAAkjxLP{Jle$x}m)U`)AGu-201l?i`0=i8K2r|IHk!r@5KQ zdcUq`>nX}XfI>42j0Z#n68eq@{v zydY)9d}J_~S7aAE_1veoy(S6uIC%Sef$Mat+EE2uTh`0QO)u*FuLmZ8)pz{oh zX&~gt)~VFP?60PUER?eQ$it&;JV-2X)MNQcm77N^m@P?k-Z0;Vy%1#RuXITVxx{BD zNnMx_@ZXr(+{p-Tym0-S{+^Cci|d1S+J7h;D4jfizdv0N#Ty~oq$%T$oobFu+pj}3 zazrm4rXrkd_ThhN{O`tSHK#D$sgIl2qb7s&wCsWWix15XA7aG2id6)e_|o<& zfvir-7{k2#?}TvozYVI*NyRqr@p?Do-IEW9n0qxAsU?R{4En;aN^d0N)smYl-ZQ;3 zS*RC2bcOWn?48SwjiGkB6E`&87ju4cDQ)=?miq-Sy5doz5E&CX^>zk~dj!Y;TBu%) z)OFf-r24$W1$C0W3y-CzG0_%8L9CC zUUI_CE84*xPsO+l=d5;K$9U>=@)|43|MEq?{}EKZd801PmYsQzK_%dU@fAkG7>KKC zZXMYiGh$3wvd%sBNBr!*mE?s-q>XK3`3^t%k*WZ>O0x~tS3doIF{}Ndq{4tQR!$sh z1B^6ztRrDEU|M;4 zGn_#7X*r>5p}Cr@Q4e~aTJouRyLr49~Y1LYReHdT6>X4 zo!P!h)YN&O^~fu82WsC6cQ-xi3%i8J@E>SjCawl3QCxM(kBU>=Lj1PNO@x-XYRlsl zRH|R-or0=ui42sncE?kbkW{aq{7laEGAFe>@PD$bagKslGAXgL701NG!iQY2aV69 zH-aiz$oU@F3gc1tU8(mTk~yu<@859pBk3yFZ+;j}SGPI?=sx0K<#1)(zAssXcqbdv zAe@Z#t7pmTW*b&Jg!D`o%i*R)1{4C5)_UUR2p;?~kP2P#;ll#|Rcx~gmNL}LUw))X zjb8MaUMmi-9dl~?G%Hc&@4^x16Jg#Y+;fSpB7AtAomXxU9B&yXOHFjr|%q;*r?*t|Tg~ zms0!3ArIZ{%=FIt3Z(pH`b5&FtB>54COgr2M26J;{wg{8;XjlPgr6KV>VDjKD z%!V40*B3Mo#CaQrIlN-=-ap5yy> z{4t6twW`d;*|)ub`DZG7v}Z7&-2DgdMsf4FS8^sFq;}swhH#wTxxM7)_qnA^D5fMG zv?iE;=h8>D=r?~FsS-%@u1U&A*wZu1M=b!FG<*K(+G~g`U>h)@tn07lay;vj;GnAL zi>5SaGmCCfwdm6o_?=)5i`2FHwpK4NCU}Je>{A9e7Weg#lH8q-Ew< z&lBPjTefIWT*QS(#ZTYG*gQ}ve!LX@;-t^-PWe^mSu+~#=wbK&jJT8Msqp2JXZs-Z zz*KB!{fB2ZS_}=zS*N-HQfYg+uSi*&La9Kih^i$dsjAuyy;ubnpl{&rT;3dd$o?CB z#d78?DeTJF@_WGXN~k0|8bogt+`V3`IRBHZ&jZaaM)K>1-?s|$>ZYtO*Un#iMPK3r zy0+FM(;;?}m1>(T$=4n&<^L!bbn!TNpLl|H*4zdUUn{q3-aYjHSpc{&a}RzWoG}Y% zH))8F1RG^3x~y0+-SZX^rWe0_A2DW9;AHJ4rL|+ux!!d9e(T<0(7u$0(23hi9cv!; zc`GwUq244AlZKkSwnPGOE_ryi#{Ml%T}dy*H zGS{S-AFGliSUk*^5j6B7N_6->-U5*lfO!dA?H=J@Kuz9|t3OWS!t3+EWW6L`nt4V% zFA7Qv;JVK$xVo0%KeLU|%=$4fwpyug#rMYg!NE9nFl`l(Br-JBn}kbni+(xWFbq%- z1TXPoWy=oH=DaN}ZL^vu=I%n&G8EKes`Q-K7bc6zi&%Sw#1dzrZ?+H83bHm&%+(p^ z!EwvisN}E)HJ+zydY`a)KY**>&St^uCgf2(98a_IzT_i--C}j=$EnHR z6?>(_Jru38g16y8%$W#RDQ3NIqGPBeJrMe{=2trqeMzd)E5URQMPhTi9aZ(RB{s0~ zo+4F_^yNmiP(urohMrv)a~XodTSMyXa)%jku|RvI1UgQNb&7eLvpg6tNq$TObyG%N zV3J_nj7_7fHBc;sYQ^W07QhX}=vasmhRlh`wiSEHi80RarYyGmWYJY-_wHC9?T}5@`de7>mXB{h7wK(5P= zlb7&7ApMneDbe!z+$;MnDNMb|p-R!CuZ(v-20B+c4){G~`yO`m>R64i=(kszWm{oc zHxJa2cjvrW$WkUnqj5~XykFTCRZApuMk2g9u{wGt`z@QzZmO#NXn66--_N}WHFST< z@Ar=enix<-pPxL-E$LFJ9fMJIK#eVskZ!#Jp$=*OdUxp93LLB!?k% zgV(PA;d?@A@e%8e@WM#d6nX2%$8#B*6cV13k9Ql{$u$-Edc4uKNR#&zx;wX_Pk2{r z(5_;i%3U7Y#!O=K7y+xnqlM7uZQkFjBr?brJOE-EOVD^(>6}o#DcX&E{z*=HsYsp^ zZsNHgMGe=vPw!SCNo62-ZfoqE*LA4-p55lx&BOGkzI_8Su@(Zk1}hNOY=Bh7GPP2= zVlH%w z?M2qE=G^g{htNta4be&O^tzN(0L%AwK-F7(=iO`y=Nm=i@*2O&tQ#g8nyhe+;@wCA z)xRa3$v*oTP<*Ym!@OYDPSt5sSGJIo(;{JG%DfbVyfy*7sCU(VBFS{zrFnW}9Dk)#OB?SbeOF)5;)Ws<}IPb{65*6GC0r*TxiD;PwkyjFIOstdJ{VzQm}19pknV-s_ z;uMurbj4!WRwujJ#=PF}6b1GB%zd390Uy5hSg=?>>_&4`qtQ8vn zEwwijk2JB>!chDjfqDbX!we+b2oLMCr&;`ex__j~wb?0l-+ReZa?Mnlnuk*Qy@~A+ z0US*gWoy(JUZ$7fsZ2tmnK`~ePgqnwxZTO%M9wM6@-ENkVR@rI_YsD(UtfKCaxxwZ z%7lWBALJ4N1#d|Z9iT5`!3B9&(T_iR@f&}+S&Lpr2Q_eFO%ZqYe7h$Tn!kc?g;mZM zFq(+|i?BqdRZp?{#?#st&K2<$7_hr*&cE!52dW`trVoBbO;O?LyHw3A6$^V)?150T z(>24su31QgG&SGgiMc zS8S74`>8vx%}2I0BPOVQ%Z^?TE}dqKEiW# zr0}E2&B$VMVhKd^Esdvblt|QZ z)1rjLynn)EqorQpKxU^&-0#@fF!ys_bW;1|^yT|^s6%({K{S*jGWa;wSbFIQ9hw(dwTrHP)PP z#)2R_yhLM5&EFq}tY{8qeqp{C$5~ih*7dEsCLN=d-s_ysQ|8@^E=2=l*6-rVI(Q|&tui-|VrO1g zGdgVztFuuw)uutr4^nz|#sLFX!vryS6@y$^ab1#jav%#>uW)oD50w-R^-k>DVf~Q= zqJJi~Z^fj+OV1Y^^O%TV0MN61*G0$pvnl5{#yKa_0MhvMC*)HNmjl#n*~lv^B5C(rPggi)NIKi#tWC^%WkNEy7lnAkg|K8^}c`9(cQ@C>+@)# zKYjx+B8NjDrTJi;d^P2vQErSt_@S{;cDI=A+djd+6=)WWOb)dPJd6`eMB zCgMV`8GHe)Zx4QFlnUQ*?8R2Rm!AhR9#helQFG)8NR}0EP~Ma@+mtI&iQ{`Ha)Rh- z&JFHkjB8DVK^WNO*!ZFqKntoNy46iI8#&(vf{Zx$4HpwPnzw4E zM{`&uw>RQKFhp8OoWk0`HW?2& zKm-r#x|Kg*$JbFI5#k}gz|WO1`j}=fDS}j7>9>1To$~L1?y-*eK}uwYF_YAU7u;5! zP+^l*#<{2`3^zjBRY3PbC1Nz~I8y64az1m-Clc}e9$$ETrQ@Dp3{{<2 z(2TRuNib!-^|`c+w;dm_|E5-#qT?x|lG?56O{=kYTsh(v1BqyMRsZs|a8Y7NF*t=@ zn0HB!7DFc;oL1x(vK^Q?Y;x0HXW&jG->1w|w zAsgtWEdfG#L;jqMG3gX(#eEU9@n7h*iLBb0>%`6qf?Iqz_V^B1)7p(>=U@zRmR^V^>(p3EueQnC`z zFM}0fjtviR7MWBrbgDqucZAKJnXQUB6&vAMzB&Gwc?$~3!<2A6zIwc5m+4C>9=zke zMh;&HKa^LgL)jL7L0^Pu(#7gFQHt$#v$hq_>PcR%p_7ZBvgtVVpth zo<2hY<%{1ey=<0)r(8BsBotCfJbM%{vxI4bo`(RB7D`Lhj3k`Hm<8Z-(|rCX(FG3r z^cYW#hG5fJziI?8jd0E0qJCR*F7J zE*$_*nmHc@7)jpb7pQ4e1wlWi+?hChlSzp7FDQcS*r3mEOPx_hv<>*1`uy!qrnyQX zULb&_gZ#zP6+!iX%#92rzERVZN7LQqiAsrhdd98}Sc0d~_Y>(A$CRHWz4LU26UHj7 zI$dRHRB3So>YNZQ{Awa#@SFO7RL)6CHnoHM(&;&sePmWJ){sCU825_e=8C_q?fg{c zs}s+sdJ6=5Cpk{4$r(Vjcxoh|&j0O)LJ3~q(5I3+N@ABYOTOn4I9r2Tw zY}?0BJzbsm^26O6f=(eHy%GN$b?!@It9{%>;eikbqwn#=7qg1=t+76qmWT=K z_Y^YlB}U1p4f{wYC3$1?C~PB;Klzo$5KCFyQVd1m zhe$26HTi79@;2y7@={Lc%?=Hg^XAZn;0NMQ+W}8kv2diemogsMn*^X9;hE1Ll z8}Ec=;o0y+k_;rE%&jBpm=b#=;soO5dXCe@_oWZOs9~KMP90Uov4)^rFs9jVDvz1@6(tM&GtG z>;<1p{e=LBtzf_=FUQfmNaCnBvcaXVvYZ# zzIq9JrVn=i{>(5((Oxd>B2s9c=vhQAUd3@+#c{Be!~J40=Hb?$ZBQC!m)1#fkAtJ% z>M0k)51Ua#4!IYHJr5mG%3aq{cxasvxbf~}T+WC=f(o`WIG=}n$#zM6^fsN4HAuZ7 zkg?%ysM|8w`X|(7o@1_wwrI=WKZIKsTK>_fE!d+inY*njsO$1--$l#S@W*GsC1d<}a+j(1~+C)60iK!ITBl1xAdW+c%Gk zk)O`boYk)Mk9$-Mivtv#AWJH@mJw$WFF_R@g`dd(5JSU$52;@Q4I$M`ebBn&;u zK>Spu0*E@VTvyoO3-NxesoTCy+n6e`!r@fwjDB6(**i%3z@- zlFt`-(tb5}$QkphwWL-7x)Dv5r{yIAOX!EtPaRD{)pQ1q1tyTpCq|ip?KAX;Wn<$r zi#&=bhyT){Cq3}AAJ6aKBGc_^Ziuo43U*u-2l3Tq!nUg7{M+z-&R-uEax5R)!EE8V zzdsbyaSyR1ak={Ux2HXXFB$#!>aIEBpNT544F!sa!Nse9a$?t}rUF}0nYHiFw7RzW zrZ7fHR2*r?WO!}>N-_i1gMp5X!UbEp{3i4&ecF4lfzwl+b=L~LI9Ts zceEPaQ~Qc#FqqWM^TG6A2#Xvg2D1?|Kc9BX7w86T*q^uXB>y%26&;5 zZD#U`J6M$*`&g8p6>EMgy5gi@W z-kWX{1mWFQ4pTGhVQmhGRsi_>7rZgN00Es!flt^;yq1X{JFN#~uixh`EYWz=wGn@{ zmoywEcBbZy5=_1;In#P;NnOCT(io0*)_WL*KKuJ zuSR09+cY;j;kw-r7jjFR!H91V7)4PJnAot|wpVE{s%Q|@b_VI=ed+%EZAlWf)${eS+Jbr50TYK0#DQ2by=YD>?!F32Zw-^PstHXV^jIGK*Bm<(uk7 z@Ypkn-TU_V#gPw$Kn7tID3Qsj!T^M)4T zLUq;s1HS%KF zi?KPl(PJ}o*b2=^CbAHoULnC#Y*p)=Y)Gs6UTT=7lc2 zxZIR^9=#i-tZrUD-_*$T^~X6cktxb8cmdxvUd(X&ahQKw8kgr8LT8^AuOs*%LTMSG zBwj?1v(%NQ{}L?wLa`YnQVWErtVr~YPpN~3*X7N#q_{2=YR0I)db^IqDWCb9J7oP9 zJ1p3Eo=IX^(Wk{0Qbht5tR*DG0KGO4xpsrR2|E(tL!jNYs_&EVK zZ&&cGJ(8>I?A@-u#gPCVpC94Z&NvP^-|&xWe$E&MMMj3asE1zc(_=Q(@OygN+zEGg zg@VpSMNRLPKc9Zauff5YoB(gxET9yTLNC|R~h zguw^^22M&onsBighBu5M5=7O*84KT)d@MGv=vF$4H!5cJoS}<@aVTAL@aARhHI4Hq#m`5 zUZcKi2wlnY_~)vGr7GAWVcr)jidIAWpiga0uY~4}O>cBS1DwCHeXAQ>B>1u5n-(yn z)a4q$18;Iqi{-rf_G;V26;SFRIlQR zgl90$aCL^m5^)h4V{*Q0Bq!-JWhH(Zp6@Y5s9?MYn1H>Akd3N(C;*E*W^eX~9=LW) z@38SFFv-+vmZySCBE@ulRl7P8GtvdNzAvV|tKK1*a_V5!4)Bz4y|r=<c5l50K~{ z+)GAAC49vcuDiDlK`%qG-!eMZ%{ zQ$^)cT!%vvTz7)xKdp%=Wd{K^^1#WmUl+*4bstWtG$&v92t3$qS@3$jyoHT}CxOa} za(X;2RajH`WVSe6%E0TNnZF`=3|)nt9^f#0)qX>RYbuD@}{P4mg5dE+b8mdL4&Ofj^qt)nGa=q(PPGn#APJpKM6 zaGJbsognmg1gVu}dsC?Tjm4DqQu{H}zj(+$?eY?cV5CfEo8A~=-Tjdc5OadWeA-Tm zr?TDKj&-D6)VH1z0oi@h$ckM!P2uio)p+YYnR(E^%L`E?oY(e$kcmFj5bAwCP@01e zuD5R7sXn(cMH(E4evh8kD~OoThcFm|8}Rp|LFN3NPs>U6xWYT8#6d9Ji02; z_kXjL%;jh3GGdU4b@Hn%3sn4PSN|cz6StVV>H8@}GxiQ$+IqR7@Z&NbThlY&#Jui- z>rC;}1SljVz%5v0OFPmG&W8W>*T%>!8z+G30w)Fwbr$D%U#z2Wa8R|EQ zE%bj{Ivf{&?px;O!n#ag>W!)}qqbj8(ZTzSET_s}>&MirjH?w;J|m$g554l>Cbid; zXR3{7QSR^;|I9^Zor%Rw{gq=G*fa3~q3qr7V>(^GbZO7DyM1DBH2tk#U#DhbKk`8h zgndc83G{co8oFPwjUs2{2>ueYWzs-+-bx4Ys!DP6oE6^M)|T78CDu)A1~FV<88$PH zK?!3g^C1fMLyW~6tC;`d#*&M?*Yihdh6JCAs64z6mj^dhok$;YBW(^>SQ+OURWDbm z-m~61L@-M7eo40CRE1*X!$B@^l^F4 zo~OVAZnxD&t3jxuPNMot6rA~?te2z}7@%7u9god(z%N%syxD%XiWu7!-v`;<)(=XQU?S-ae;<9O0<3Be<(pT(`X#EFyl*Q;>^5uv(QM=YH2e(?Jqxp0A@&L5Ei;{ z(D`!%F8}L)Ob^p|+nh8Ulv~5i*3_GlZPYe-WZ6r4JHl`tNqag2R}g4&o3s)CloG#a${Okw(r1KV}f^s zm-qVRt*-gVyA={SvYA)%IC5fViJvf!?x`wJ5K1}`1YMk3b1XXXH}JGuluRy*%e@-Qn%Gw6P5f# ziFK{y%$8Idy&fs!9ZQ-3z8;I_n72kFEhO5fQ@I9gg*Mb-a@2I-dKc3Fp*}(L|I`$| zUDhgOEw99rRw4)_BuN_u#%^_;2a%816#f3Y7v_J#?=lB(#t3Myt%b2R(MV*G>I~N8gg6wE|lVgS|8EiC@-z32Twq15vY{*_SF`lNob)_a7}l8bqEn%x_fgi zt9th3XZc%Fc_Hq^yPQGPRMz>!JNAe#pfPZS1X~e7Vz^MSR;=TFs>S=sjDd=`W*?p< z>rvU|zzYm)Vg%JeA(rdSU%A`rR+YE?RWd*MjJ-nV-Ff04A3CS>6)S92>zhWDPoiwqzGzV-|>5lBg2(?er} zyve&;sY=sj1rGUCrg+k;zP!s?XDb%n*UoSOzDS(XkKeuUOw0Ou;XP}316mz)RfVYJ z-;w(tcCJW~nqp~BsH~=;7d~wBln(+6x9OvN;Sp}twZU}Bg3dA8xdNw2Agjx!aQQOr zP@SGj-9ER9qIQ;#J2wt|Uj_ZK} zIWcUkwN$%XGpQA04pQfG0KI!SrpD~DDADk?^WSWpkcH%v@k3z0gSG-O*N0v8_XX>xtD0Wr@3bu?9*UiFyFC+1%{WI!l#d?rwsRl&e`` zsdqGQ{{U_BbB8b$MxmGYKW%YwhNisAF=Dc^WUX>Xr~ zDwf{}e68-6GE$TKkf~VZ6#NSq4Pu8hFNQK^Mymhc6Pc4gov*Ffh2p`qW142yerCc*rO7jH_g|pScY0j$yqnxyXmjbm#!)e+<0npy z2QYqk`Wr7ub3>epR$BMo>3sxh7kgpX-kP)*VdudUK2+SpZOZl-fU;4f%U z(b|d}d^R8MuOTFfj1(ixW%+V~$6Axh4h1#X8ZTF#u8=ZgOB`|*SldVuAWW)Oz$$b% z2%`JK?PYK!HyxiPOW#(DmFz@Ai(ygN20NmaQRO3kCTUSdh~UZKcX@U%_k^e_#ZHl< zi&u6*v<=cV#bnBX#=KeQ{hz?fqv){ zQj`c75UzE25Mm}$XdBjJ%kfG00h|;Cj*m@-f%sm~Ehq$Uxpeg7Cvi~`4jIm5 z<4x+~p&WV4XNOKWW2_y?&uU5A-Icgo-+FtO@wyrR@DaXZi~$*iV?IN_BhP5USkYdL zmToY~02&_uiT3ASH3gS<1S^8P&*0nO;Vp`kBCO+ennUn}SmG-!pG+IwZ^4?*n3C^{ zr2T?1Gx`V&=XRCIk7#MMi|_Yrvk^gAf*;E|tuWPV*>oiajs%Uw7kZu3)bsaZDsss` zEX6zBY5e>Z4J&F<+#Xzi4d!FOoX`nFPI1Vpf9^QTri0xT%{JWDx=`yR#EiLq zug%0Xv@A{E`1aFjbj;oRp~k{#-4A${9r5FGdR*VAhwygJzWin?DKT5M5h{BBJ)7Nt zHZ;cpy=s(lI>G!O*rW8ef2I2^g-pwvXnqBv(;_%3NLfS#MSMOt0305&bK)dMSA$%v`m$n7Lv3 zVbt!*-uriNfe%0<@U0exKS_ZoDU#0L%$DH{nfwW#G7W(I>+?K8WCU)Dza9zpOswLY zKTn^PD_LK};VXYWe1m z`+X}9(ST-;xVIOTRy!R`Q>y^=R7;$`d_* z%7}fg+V1!9Og1%qlAlcu&vLC7ZS9M%AWQgtv3{S)6nw~**`BU?=&w#mBEq@Cc;>hD zD*yT7;Nc{?atH9!k3(_M!y13)Btaa6(OSw!!}+Zq;(0d9J{t$J4Li zx!?4u?aG3rJW>gKdJi1jMx7!PfUw!0Oi~uwqz34?-Cax4BqNEJ(EmuqM&1noK=2`% zia^Ktl+_?pgr6!_m2<41v@@ir`Y)|GHqP=@3bx{X5R0lGHFJE`dyw&=1`VjeDHhw& zIqXhy@MAfW+bSrcUg<#k-O>PHg)^a8!q?>`A}X+{QUPL;T((18oc4sDdpvy-LOQO@ zpj<38G(LgU-otq!W#sxfUL!K#k%Ne50#*N8`4hNqv8eBiL+q@z$RAIfZ`)WpwZ)4- zR6>=?u5vytNIpk8g4n7A&Yz9X-191*8>|Bq-<0m9@3%pB#8pdU#`Wf`rEK7Jo7~OhT%$ zL_01RpK~3FBZ19M`rI|(>T50`JonAECq4U6V^QFPSJc=c`rIi*gA3*~fvxMNJICY# zpuWsvL>o)oo^;ms;s;!(E>^8VnAQtOYgoo`FTiVnkd7=QQf5lYe=18ZNj7 z9vwof@R__h9eauHA-C)x^*`J{s<%7N_o}GFFZ=VH@ys&dQ6%|^EeUtuvbYS8KtLaF zgSi)@3=dzJ&()LbdorJ+-;F48z(i4pO3FNaUs3_jf-G#;YtwB1h|EyhUsmja2vbZXBkLH2CU`sRjRrkrsY31q z^%ZJ&B)r(7TPZ@ygqVuubM<_`eBO0(1wQU4WcjLY7^NIg9+YA~yo8tDs>BYwh<#K~ zfH_03{u{aTB$%pXws9V?@}Szh0f0hB>9H)oM%_mbx#3n45DCdnO1k@|{O51a%9N() zN%kpOWT)GfDS{2j1(m>*r>z#h!V5*-Ylb86UFsrXrZ~W{1g%4UxfP^C z^r0!PD{Q7A?+Ai?q00C_sM-pbwcpI~%sedo)SD6*@cJm6k~dq=?w_0MoaiRDxXfV5 zY0r79`X!^&J>XS_l`vS4KbI0q*TRaCe^!3u);R^AxlP4?{3bAE`>+z_ZdT_0KhC)2 zO)wS~bOqD&0Ck^kZsc@K>mVP?et+}Fg2FNKAcgiNgBqgjY5Fyg%(dvlbj5xDyTVVY z8+}n8p2#Nez$sxQ-qEAz%!4=8e?LUt)`ym7?i*anyi?HmBLIA-7u~?ieJHd}sltRg zEO#A2KKamo2byyt;|Tpg5^IeL)H!08yD^*y;-K`D@SG_NsNf|?i`>3|u9hhB%Urgt>j7xuu*wf#wBx7rm5P3tF{XP28YX784QQDLK zF$=nqnCrp|0WsY-=Tj0`O41Mk3#P-Xc-=!<0$>I-!-BZ8~QGyV)KFWwj-zo-_W~cAep!`FYk_^toV?KUyXg+(U<5vp6z(= zmE7O`!0CNIxBJ}0lp&0F+$tXwA1t}n?NdcD5$Jv5k6N#O$)ZFDav;kc&{lj38M}DI ziQ=L6d*XIKU6#RNuS!dusCx(j&d8Jj?KRdWz26F1EajP|38OlD6w+REWm`{t6tB#` zRDT=B5L`25wfWrc0aKcsAQ{JBxcB07IW~9d3zQNOp0EUJT$)nm9a!9vr5)SDr#J9~ zw1L+hJffI8(l&>!c zV*@4U+=6IbE?GC^!*C1)$)9+Ho!eOa4^S?Kwl@Bh0$2Y2alCA9v9ZDE65hd*>w2{z zENuR@Xj`3hx``I5`>-nChwFiBiA|f+grHbZ=OJ}a19|GJ#nC)@NJbXh30YJnYLF&< zpQABIl<5`IH{P`@;)dizedhX3O zUAJ3osB;`h`G}cI&i*+0AJDl>pQ!b1vUSuzi22CyFt_N)bp{wETYS@O0s(KXD~y3^ z_&rCKcU*_JGVTejv=qbMOrYRf_|?*uz8l_4hj*7Eo*$Fs=$=R`@UGxrhv!SnfjeHF zz<1eSK3okZTUKSisT$0FCg^Y{t;;2VaKFU#^js$A?5}VmnpTX$%pcFo!^vFy6R=({I_1 z6jMl7*OmfxAO*EU?XoIOjDec^I&ZBG0H3EO3Ev*7xk_Vy+Lql(iU^I2gv$rq8r~CO zdyR4+&VA43!Q5?0F!oZ4w$DnUDWg(+??iM?6B=Qgy1qXWsvAc>{Cp zd3od|i5gjsWEr-^A0&Aur3H{ezDHdsaKK8`Ku?Ehg6U)U;e}DA1`&DEtl1NL9A1<) zHYDLW)JS-#J6im(APdX>EjVf6qCpG0$|HdsX%9NciUznK`Oa*OL?R}N>oUET0tT8K z)0L5R#B`#r4>a-M7eT;Hav?;#{B1<1O=h7W zdS6c`yAX*yef{3)#)*n8TBntMn`5{n$PoiIUa#jNWt&ZB{dmH_sB#`@TEWs2xnY(7 zZvLaes3;b><&u|!WWB}sjGkTK9^m}6_c`uBg#W~bMpQ}f_rqHpS38oiwe9%wK!_g+ zQouZ%J_vW*bpCwD)P570K&7OBWDRs}7s{hIFsiE_me9JEGRL&b4tIx2If6sQtQg># zGTVQ(eC=nsz!Jv2?2A(3vX(Ia9@7&5zHH+j@do<-3`7R^lF-Wf~b>W9jz zkhSeo;9GloL?g0FH+`dY&|nbZ!_U<^Ar3^cjU1@&S+%dF+N_(mm3$t^O2=_NW(HQNhht_fZ+0cXNgHri#sS0H>TYz zqve`dPJ*FADRN3B8NC`hgcJ#vZr;D-l%mP_|6B8sVJ>QWJO{{=K7yYmDE^8AE!&+( z+0Q|^6St}%^|K!++8$M5GYaTqe-iygqJo0REwG@*8QkUJ1KKwJY{&74W72STQ$*)^ zxNWUFY+&<%DSc^MJ-C&<36N$ynAGWX`z%0+%2iPwawM&xU z-fWlY06YSkK{FlFnOrkwIHWMj^*HZ{gs<&DZyVgecl;kpabOPPUk_o)?pnugGD`X2 zT-y`2Mn}-`UEw1fI~(`3eD0I{MbQ=Wgg<6A)azdgQ4+FR=-R$K5avhXOJeYMeO7wB zzY-ueq`9mXKyxJBmf)NgL(|-| zh>~sSs{^a=UpfsCf}`^Vv0*8&*nSSDCkSkek&K>2gldICFq|(?09d z(e_`>%YSAGL$tP^zwFp}$K&o2`~#MbrXIIW6Sq#t(Tr`mGP&`Wf6@Xx@;26|3gRGCpLfd0-t`G1Ew`F= z*aDJ>35ZeHYw`O{Y1U1TgwExr_wipNnJus`>HFRX?dLw$yLIlcq!02+j_!u- zCKkSA9ctC{s?+-nbKUW{Kgibf4(xJ8T#dyhlw4Hp{Z1=zfT>qYZ0ajBX}!I=mnU>v zoRJCm8p$ZttoI+nj5pT?&uI2Apy8%_vyZp(PC&&#s-P2ne7-HhQ5-S&avpmkPOn=;-jbV&b~o>)Q4$$(_e7>k@w~=mbd1 z-^>!T87PYmDTqVtpToNFdSjCs%#O{Z2>~8$w`7JSF>LA8D|!4A`DT9>BCIPe)94)H zSsOn(vJkmfi6{D>Kh69u?k0|WOEghVr5B9znf-Zn^E~8=*%Wyn^XQJ?@O?4eGeie2 z+8#~y`!&YZa@?mjf5I3^LahY zg^&A+Bz{+^h#Kj%cTD>$W9AYD3vqjI*6!{D{ZFaQWOnh2o`forR<91Me>6l_ zHkl<@cz_}#l)Q;mf`8K#$v?S$Soqs>Md?X&|1%QnUO36w=3djLJ)Xi1gK~ZN7c(nU z3$g>kNKNfaah0@Qq9EMUhp~}^TxGEx5z2(Xt^1Gv7Npmk+28xUsUxzBCVODDD#p*uUIQl@QjqVc_Jb;5xTtTdz9@3QEr78{Z2t7O|ETySkhoJK z%g2k70BR|+VWN@3FKVp!V~X)-mo1=y?oYwN4j|jbVBs{Yri;-b1)%ATuMg|M8h%7F z9)?dp#7DXI#$MsPTOucWd$O)Sac!u2g;?xHSQ0@u zZxlC=4U@=1BukW#((+81`(f*WXMpe%rWF3AQH-=k4$GEPq-VD;R=4J)b z72Ups*a>vZIt#6f^z!E)Z9wI-Bd&x`+2+rxn@=wLj1IeTc6L`8TK)&N|&Lj6z-^qj@ccHW9RCddQ-1yk}u-?E%o5I6k8@A%27!+nidY@qQvv@7}!zjr}V63KcJH!^xruk@YpTN)V9 zVm#_GE5S=@Cv&nL$gP~1Y4%(au8IqKym&!@BQ{IVBOP#c34Cq^rjZG~;-I-*!JRtb>)2+}(b&K39bsylk+ zau@$^0t@BG5wj)c4(S%&pj%-MjX-`m4zGx9i3tjV)LwCKUXv@GgQFxAy@|Wci9_pT zVWZV)=Q2mV-ECX`lC+~k@)2Dv<^;8i;jBTS_Gr|LH^Em>mpan(5#Sw*S#?!4dJP_Q zriqGIYzVE4AN|UX2X=rDPsJhc)VX?!#2PrC<&(6Rqz3dAQsh^ihnCPy_wzI}z*rzm zvJxE=NF4M-Bq>W6*j^6inh18IP%*J;9N64owQap*(ek0U6KI=tW~;@s6=<9GQC#Qf zef`Vzy$B@ta>v1T^dDMvov-og|Il{r-U5xgYoAy3Td3*Lj}T(ddbe@BQ3D z*!`gQb*wT<--$7Sz?<_9Y=!5*CYBBGpOghqY+*OF(SHFI>UHj+JDi<46$Dd)^r~G* z)oZXup#pUpY_Z$B%# z;UB0WVxOCsETK@EtlNwCn1YylEx_Y<66OGB+F80I8;L0mZ$`zPN9DY)BoxF714iiE zX-1hgXBGAQh!%ebp_=}eu|4RcA&8&y<{UTdk;t3DD0IKlEHT#NH&TA=Y8@C>*(5Je zQ&WG_EJOLmIdUk z1VRtE33rSZ5Z|BO)+Ibhwd!23fY?0jhMS_I=9wk>1g#h;N3&j=8pkN_d$eQVR_Tns z%yUK~tEXAVd`9FLx&@J>%JY0h9o^cu?$FBgHHP}d;dk%~ot(H;(Eg%4fe`d?ILj=> zd;a)?l=uQK+|brTK_EjL;lI97AN8UAWMpPLm+|f-w^2R(FzDQhkiKpF7TWkK^oc%V z0+Bl_n6<4^p5?%xtGWDGU(ccdEXO0~KNc*~!S*lz=1^TS6w9*ItUrsR`aajUc})n1 z4AWN8wVAei41~+cFqcrL*)Sh`s%wl*-SWZ3(-5Kgi};9c-ic3KN;5|sI4u7qd(pCPbIO~ z!8eE)y`;Aof%r1U=3xIBI}mu;FY$A^hf8krM2i2@XMP+X*ht~&E&bSgEhwxW)`P@E zO)SC1$-4?)fkABjt{W(UJ~6~2;a%Uuf41>K?GHLX*fv55N8S!c2eow$4m5>otFj7AK$g`jUY(7ofJdOUk7trp+4>tYjM6-rDX%#Bta1AjofoOb5X z)vY`CP+`1_tKw7Nk-0_4Fm*Thi8TmVb*^EI3m>ZYNWFdYJ&1bgyLl#?uRPpP$%R@^31=?7Y;m3VPDNoUJ2k_+Uuf}Kim&J3GsiN&Imu__}`TV zjlAQ7drM77)S}jxqkk0qcH}&3f3ORh>{Eo3o8$%4_72Eu)s zPBzz@CEITW8b3AnZ>6%Vh&X&z;`jcp`@;rZmi~&b3zCV-iod!}>X!d}C(4=MOIO#l z#wL<`Ve`_slb3Hs$OwiTTuS(0YINxL*5RkF&!gooBcMD-LWDQzBO%hB`zDRYcromR>!qKlv9_gLgf9QS_>&K zDeWtSpIofc&fzYW?vHH6DOv7=2A_?475Km%elyp_T5(Gw)?b^O$ok)d8~uR?$&{RA z7_~fVSdxerwx?kru?F8j=_HAG^A-yy5IK!Aw=+NA#l2Rnp~yihkr12|Fx1KlG0zuc z&M^W5^3~>IEJ37;yMCh2gQMrL_9w^Ga@WNEboQ1kn%5uzBpJhDuPhw=wusXLO zGTm8RAl*bb-D!1DRVB(cqE2ar+R&=hn0;)dPBn&?YpEpr9*$&8krPWi?;q&%z&F| zjC)5TFML%b|7^24BPsWeCxc_rOLPpsL_P-Be7;49XS)n`Qx)pR2XGn%0xLj3QoQ!v zVy~|nxQU%;{)%*LLVZct_oZ!mmc< zhc}!f$aL#67UK}Be+zf(P_>MHM+kOI79 z76f25x^>q5&BHD$-hdKLE4e*8PijB?p8`Fhh&K(XxfLv(c^hP$WpqEVAG}NaZXJ+D zp#Q2}tp3Dh>}~Xm54Ji#+npn`h<`H+QXQMAUO=VbTBdIiflLBej6_bBlx;d zGI^6P?%F?)QtEL(qP@CQG!GKLgUxkae1Xa)a=LTg^?(JWYIzk;rp2rDgcv#zN_)An zrHatUhf}~MVj41SuD@iJGtCiIyVLh~1V4Pg8ZeYe)hCi{sxW10EPc8<=v}GuVQ|)D z>v~m_B((!(EEzgSEGNM}L=<{;NgMjFPyXUh8d1wJRgL+F99(8H3*axy+nx&mE!gin z>((Vp*VBO(O|KJl8P97izIgda^cC~niDogwQ9w5}mG7V!_<3BBhWX?@PoJ%T{*h^) z&26#YXI3?m53OShzu{Oor0@vf95S>U7peB5@_~6Xlr|@Z;y_mvxK`4yW;UCu5a8$2 zlpN)42AIOz36wLKMdkP1T+zQAMkv5>&sUL_ETOWU2_^=ALvD$@RhrvZcqwWnYxwL5 z4d?!ob*=&zp){S(=_!+8?8^#xnU79m=$R=>xxb`p_GfP>)FY~G{ljf90S|%@TvqLT zqCs2V1hGFTvJQ^D?DgyX6)bp9qDX6rK9MaWO>! zo_lnnra!h;mw`*9;Tsr79fJFP#`%3Y4#HP6&JcFyU-P<~0eIY?e&yLcvn8Q>9Q*fn zy5d3WJB5f0$j6C-NA=vQ$JA7&2ZyyWwwHu-_?~(JCK^{lZhC-I8*pP402y%0Jt1?pZZ(4 z^T)*e9PnI;7J;?gu-sLC0RpxUY}+omoc^bK>=QG4IUxUr!UjVJE#adAWDbmQrza?M z>9}D7o(Vv)+%C;=<{tuk-?BvV1&+IS%*sL-x!mtEoybv^jDk>-5CE{bwaQ1c-=U;u zf?(H^K>nbX+bUN|PEETm?{{MXXDr7#bv`#*jy>aY!I?E}k<(*tQ2Rohnu!}}vsldC z&KJU6BTC)wM~Xx1%PPumP4N4!dH=fYMk9YHjRj9QqJ=MFN3@s$qtd4N(`TF~#CspZ zPuAl$ja(nCZu-?gQllhuJAywqLt`oD{;Q714uaGbvMdu=kBEN`Gkltw3=#0yW#;*u zBV#5R^4BYwzv}go5Rjr8Kqt;)h`c-O?N5RUgdT9HydKBj-=K{uU0hPd9EA{Wj)l34 z;d@KWhF5wyS6ZLcRsHJ5--e0S(jaz{QMB8+W2a)o59@2Znm+y((bi4kl8Hl%Il;3A zN)@!KFE}n_bpFx20h(p@9^W^3jAe-6S6ZVOtAss1c}&M?Evll<9P!Y^h6I6FSwKC- zyiHb~?>WHZK%p01+zTxOgto4Kf0na40q0@7l`v>U9{}NyXG@hj@7QGNu=J?xzHH{y z7miMjW{>?+Ri!fPx(EpTfik*pF5_=kd}V@Hlj_%)5L4g90L{o|(06JhfQ)H~yF&b{ ze5ZIz_r0Wq_%2G4^3W@G<+4i=0_e*7)Eq?NCe73*nM5TmqfCBLhW942FU$F4YMfIn zB~u+W5}Cz#N66*&YkY1oKhUoCh#5`Ehn#=q3aq zg?6j?m>~umC@vRlLJe|=Uks(Pck_hTM_9ZaD!|Z@E{zIT>Defr4?5-*Av9t~!NjVu5v+b>8ytX7Y`Z6@C1h0b zFL*^fuAENo3G@adMs*XcxmX)=jBCBPdqF*pQ^_Ntk?;vmsV!9J!hmc+5t#4Os z(>;Q$t=uiuMaqnKZGxJ22GA-4nJ1#xbYY>ARg%<;SMpmXeI^v$2oB*mn%jH{%%e_Pra;0GL-BScff!8I5&yv5zp#!#lXQ_ zkBfveYuMq_2WMFF>?=G+=rKMXG#a?5_diwbSKaLv|rArQSv$K+@2V@c||{k#;P zLdmH;+(ze+*#mf_3@=U5BUM|s%m9Swv>;4pV(Fnp0)3-{Mai9PmC$5+ui2K34r(|? z1*)u>9Od3FnPK^mF?4}#J$(I6X}d&bps8N+)mjb?lP!s3TY5OrWq6pY4AaA8s9xL* z<;N!3E_gStnt26T+gS9tplkVRSBfLP&P{$sDNAS{S65?F!AR7A2?}!N9MAZ#PnJrb z0i=`0h&Huz=svm4cDH9Xp@@>Lo#|oNiBbW+uqLT>z~HjkjJkzQ0(Ztf$?zdItTkF0T-o<}>@=(XcfN&^FmvooJbYhL`z<7(=q zMH^7d4_uWBPyix|<62>ZC(&79LgS8)#alw?4!0#c=Ift`d-6-aY4C1#0`nLFnRyJp z+$nr*3;>P&lBz%J7S8T!yR4e$?w;Zf?Q8fMUE^bi8;Z5M&GiQw7*SGqJ!dYm&N>Il z^7@#wRhh)$d+FGJsU-?^I@JGUQ%W&`S9Awq4cav@8}Q&#`)zU8O87WcM+=|F%)uP= zm{}&6``oSE7eCkZeX{-4+RKy<8|yHcRu}8Nqpu@$%m2oLu=VhpQNSL3;^3(in?lJNhj zVZgsX-|}(4?vipncV7KE0v$dbl?R(C~73^Z~4&316-xGh@k2&>@}8*e1ZP6Qwa zX4GE(T&FhdKbR%A9`#9_2ij6xD;-B<5IT^C%D#|FZ|7A1c$T7>b(1?w=iZih>(VIUcpm@DDN0UgJT&I`4D=-`6b#e3fE8qb_SrP*eRs54`0^$g9rv*>aZknR&|4L}u zU^NspY&a#fxbWr2Z~@Ri?e9-jBRRkY{w@+rN}+9lKjOR=`} zf+>3A)r5WWAKqmV>44DtiH52dQ-8jV$$uHdnMQH=QX!q?%!@2Zv$5~kIMl}flHbme z$a!@;IC4cAx_T|>Y%b#}c=H^BC+olv*JawF2SEr*OL@&;DY`m`~I!o)=@&(R(OQXlex(0vN&WQ(Vn=WCi|PYuB;<( z#H*ApjcevSev2i--IL^=yA4W zW#3a1Z%q=-B^y=Y76Rpby_Oc7|Ar3jtiNQL?BRsJYy-y#dbMln$%~%RE^ISL{}fq` z=Ig}91)&CBbf|bhjE!;m5_p3g|L12rLr~qFl-%oO2~Pn7UzBR$@RG6dGaKi7CM(kY z1LRJe(~EKGhczQBTh}v0jIR$`)mIwc{l|q~j&l9nYUguOHfr)q^+?#MidefbR$mF7 z*_%9i{QOL0ReIU34yP!^D8P74`blufdqFGc5w${c;_@MVZ~oxZ8osnvB2f4fGQfP` zvN9L>{44}9LRmJAav33-+Tp^RnM`{-GS+?za+~&{okpSWP%qQ3((pc zRis$+rU=5c*IY&UE9dts(eSlsf>h>7`KiIC$LOknlM`ld2Qgn#)%p)0E!*cjm(W{6 zXdP_OwD$OS%@)wzYXw-O^Z|y%pWBMHdW|JTu2pP{yZScxgr(6PQGQN5j5E)CCTh_g zXgCrM1tTMdFF9+T;_q}I`P^1+1P&YwL@7q$yE@0{EnJZ3sUUM`PKYEETdw4a>9MDG zq~A%@-NiM=phV(32vC%{SyiF}5EZ9e!KA;xuW?6<$!?`TNK}=u3zJEJSjr1(D9&%? z@OB5OKQfxe3U-lcqeRCu3C-7f(e$l;Nq_DzYJHe&wU}(rq*Qp7p>$Y!wi0tkdQ=$} ziRY5Oyn2XxXs?_oG1_X~k%*43O@js3b2eD|jD2XnwKcOBM8m@kDU&-xWM=llf&=8U5jep;n&HrawIW2R0gozxMO5n zJ06RsP`V!aePsXk`ka!Air)m^a7L&ABXb}ta^V2-s^KR9eB)i;ziTM#m5k3$-S>yQ`ZP;8i{yZ zT<3S)MDSn$tw6_4%V^obi~g{oP=|oSO9qKPrLUk1jrXLNHSZJtee2ITrm%9=_xg3X zRcg3*9e_x|mC_$w-Qj9cho;_qdy0&4Io68Ys>rfV7IgL?Fkn%v$`Q|R$kr~J07Mzw zM=PKB*|CVevL;BAj(jM6!209mw?uKJ|19udsZz-CCs+5k8%tcf{ih_@gjs>rPJ|Qmx+q229JEqb+ANyL z^Z>fXq2n9eqT%O)M4O$sT1TdmInIFKV!aQi>FC#=tSRqn@6iFSHrjP>jl+p28>H(= zca*}|(Gf$6dOHUIZoilW@URDv`!5gd6ME~Hh~`XW&S^aSqv63EiALpYUJz~xt|!8M zm8F0xx88Tdg4YSGKT0{vLN=f{Vkt&UqJ*c4boDl^%R=&M?reqe=3l>4R)t- zj#N9110m5)Sq7uSym|J#2EYAq-l;cI)j++n5W?hlJM4D0(#94kQ=X-l zi9$*eP~!iEE?FDT_?BFX7#k7~+?2^)JNHam`Zsug@6%0=cjv^rA4wA9uUnO{QkKb7N~WbMhFNJ~K=4qp1ZlB}pjmgwbh>5XmQ zxM5{x*0R6BN$?OM9a^&vva4I6$9LZuxp4L>p?u4r`{qN{@#~^|)+wqLlPuZ=ps%EV zHnp76BWX~pj=xX9yGR7I8stwX`4Ie{uuX)HQ~8A^d(ouyM7$Hr_wAgSNw1qGKf&;7 zIw;~GSR^Ihc3+W>yR(U(&MT?rnW%x`tx>c*wo4h}F6D-u!CwijVA6`tX?i)rdZ2<% zHhn?pA;9h_d2iTk?+px1`S+gVlW~7pGO;~cibImg9_hnL%nzlerrT#`*;lu1l2&>N zL=RuhnNk8%Tljnlb)4qM!ooADVdT=WzLl3=TS+H8oteMFd9dVT20pRKG(vPx_l1fr z9hVuM&F+m1WiADcl}??bz3B&TR2kFJ_e*`q%W6B$!)2R)%UXNQveDoC?vdl7KoqxgC0Cpg`5hFijK$-xpojHlgSe9}iq+ z0GyQ#vG*~I8s{^wvK%S1g7^D)ABg3Djf{{iH#g^Mn!9~|+GrL4s5x!X(18y+;6zpG zw!O#VEIm*C%-UvHCY@r9omc+`%@_~S`CoC`;3>nE8MOY>a@ZDDif$=M& zVG^i_cL487-(#Y}2`uAh=41Nvo+0p&H?C-Cy@;ZBD?HAiRT3$HbA5ODB#C>aU}3V6K_YJB}g(93`sp;k=* z^ETD>9_b8bGq-k|d7lDrIlirK=bz^iSCp>jg_4;uxl1 zAX9X}^paQwr$#H|)kjj#NX4i{_wU(f28Hiu=2{>vT;wYTFgX_+5p8WpvX!)YK4Bkw z=P<(kkG(r4Hlt!oNJO7=zmK(43a>r4d(~|s^&%l=^S&#C79F{kQrZJ|q{fa7xKj{P zP;*v|*a<1@W^bqBgP%d8Ng!54>e*7P-igv*H8fB>8W*%sE(@4m^>0(rl6us)@pQOh zR#jt&7`0vAWI1Kq-S5e4TlJ3$sD=A3e%2#hdGV$joVt^&)WkkjA-NYYN}}iRK8H92 zMP&Is4Jdq_hTx|bGozZJe>HRqLN1*LsGFmSA;>2HVO$`2IG%*71^n_XWkRG<{(i0F z8UK%`dV?BNX>7qNOv;Xf$u+4F$OswM zAQUsYj1*Tvam^k}0?^7!X z=-$MSu`s>MN5_0$IkhJZ)r!xh9&?$KDGO!ur&($jT2()NYTtBd4@r21{xgde&o#$3 z#~itJMYb0{`_o%Vh!CRs@+~CSo>lF%&&9z@cOy63_R1IoR6TaND&N;ux?>63I&2W+SzJsh+F^m;$;{^uh2;%8eLn+*l(NNA8#W;Y0RBwmye99^m zN!8h^cVrF7llNll<2;|`3Afkln|pUNhC(HVg})#xy}NeU7Fn{LHV$z@;f6sGj3k{q z)VA)7)zv}tCf2l7@~sP1ec&)qc8u8Cx*t)DcH_Q*6t_7lvS(N>(OWP(6v(+5Wo)`wJ zL`@U(fJ!ULx6H!AFY=<0t?)YDgH@V3j3(Ndm~UB&nflG@;5mg-G1$ z3@QL3tq|^g?)VQ`?$atLc}mA4&xmbUg`j~q{bqIM}VR*;Z5&1B`(RtwU;Lm3`Cn`W@x)+fy{cDs*&~07>oMN3y*d{pF*fHlco9Hp1jVawv^#2=I1 zAMa~Q{I*j~46aNBP~Po0rPY(E6;t0M`k63<*4bAZTl*GX~&7i=~2%6 z*@dwm`kZBQw)uX&?ViP-_|OB{F~s8p46N)XhX9`+r%6cmM#E1m|R6b$Ph3vI4nYf;!Jq9HRIaZl43sAHftrC z)P^ccSkoWR`Sj~6$5X&ct82{XPNWG$q-hg+RK2i};U)|KeCS*T1TPUVcOu;azV>9C zZvQD2IvsMm_@4pt#;3j3oFK_6Ef^vS#YH0{^y#PR`@%w9+sO&e`;1a%V$mF?nMBgq0clehFkKybNC(N;{x7gKS5?DK2L z4N=7VB=_g4TD}TUah&kF+w%iRUBwB2)Wk`G`q0jcY5<7zFBLVllr zi(rVljZTCvB!Xr?9DA!pRsaC@e!%oWz^-G~(X(k42=IF&^btiNbpwee(>YVu1#`5@ zJM>U$O&B>j{Tz{d|4bV=@cw%8XVQu#l#@MVkJyM0D6jsJX|j#z)?T}4Giyld@0soW zNJMf3xEZ33ymvXVDEQ5RIpz{W(}`IE1K*O*6-l8TNY;iXFUN^gXfc zy7#HZh~ zpVB>9Vtny(-JFS*My9>rjovOOibjEg(q=xUw(QXbnhQeRp95%3e(J~vci8{-E*#1a zX_s8-u-f^dw-K^0;oa&s`ZjSVf;43d(*rls@I27J&dyXpC4ak2ZiCiR{Uv@1bjXhA zp(afttnu@|u?t$jhij-!D5Y|1SgCX-pNL-S;fp0wyWI*_&Yp6^Ya{+;(u^vTh<4dd zUBlqVX=X##`oj?Jn{TA2_#u^*CmiWy?J_sII^+U|T%gWt_&z;XUc|-Sbs?rCMPBGM z2T=r5=TUZdPiW)udxDg`>S*$trGasKrt6QdxO6%;#SLa9XwTXHrJ%P+8H5;|Ypww@ z2riRE4InR#YeRxNPoWwblFI=)^(I8eAR#dEhe;tCbyAi~ zj}7Nnj3se*Z@3zt4xiuBV{B)DBvjX-8YLGZs;Kq3B?1|O-hB|%w4kI z7dvz464n@@F?gu*O{^EL8ktmlb_bY!1wkxUlGSdUHe3k}uq97aK@}psD7{2)A>y zh#^8cG)w`rr)Id2kDr??XSq4?kzHp0eW_A1D6{Q?Y&b%j1*wOSn8Kcjr8|0}FF+GW&7ZXAqWvG7M(i1RK>~**8yU@Sjt^q0P!LHFkYwBG@_tscvA++`1&rha z7Zi+K?J=CnhgM&zT9>FVa`K6Nz|x^fwxip1I6k`ydrbo@PmX?FfDSIUo1F(mT! zPnW?^Q|7kMbJ_EZ?;N$Mz)(aAg{D|31wedn#iz99_jO7XbAjC-$|pO^Fg-jccHQrS z=Jv0h=Hum-K5H1U%}lS=ooU71#w#|DSc&RCySaBQQxGVnhJwo;@Wi7dNbZ%*#|S7L)Nw#y}H(7 z&-lK)D816GN5AeacC*0ex-Tot8ATyIaKpPRh5+L2NuTcrjl#;=&Zvu9?9}}a2{18L z$QLO2XAR2NQhBSToo)C-Y7*qJ^qpi*RyK}zS$JA1YVOC2O`+VmN;A3NA1BVB&D9su zoiM&Pp2eU^@z`{8q#i_%?r_mB!K|98+N!l0-D&-K<#`7cTBGb>6;#P^#~d8-^F*2v z<&^OKryh|3uiwLCT~|W{IYosy7xQ{f+qL*-^VumVk1yX$o>4t5l}Q5jw)Ell4nJtf zfMRPYw0;BFqU~kmTVM8w zj;iQ1QxbOGqO*>cfbu)&>Syh!$h%RzeIDcjDgIO3t(I%0KdV?=z6;WeG9LWQVS3aG z*^@0CijHez#g0`KW; z`rmi6ZP%dmmVcD*xTPE2brfjNXmW10PS<`W76VYNN@HjZqx?b_N`VC>k2~x3yC$=% zba6hiPilqj-}psO2X_5cHCUed>4Oow{NxCjj^}Ahy5^;Y{1~2JAlQpNqyUE#o6v;V z0NKEAz%FV1*;&CR@ABQA@@{+vB3h*-uGDMRhHfeRGA7xJQs&hcB-H*OPPqpJou3sP z54AkX!`l}2AfO{w~KQ;i7mt`h3)E;m?KoC4fW zJjXe*+U0k_&*_t{k6$<>%u_qx&a$4WTKdRaetI(&?Rg*MY(-tKmomb#xexp2+cajj zgJ3}x-Fi@K?XchZEa}Ka+qk)MBpr}vvtQ{mk0CT|-Dt_sz-aP2zwF1~YqR!g5sstpjAn6xx`bdEk*+_N{+l3&K7l!xd4L`OL+Gjtwh7_{|Ndi3g zh|3e&btofPs%r)rA(^{G-XKdmQZE)>M+_792b+2C#?(cy13}WbVON#uTgT!%*6k>9 z+9MGJwS?OZH^4?{M7FWG5nKO0VH>p{_5{UT=k20$t@ZccuIYc(rKdkl5fTy~igw)f za6aBe?cd|UgQBXbG9LVT5U--bz{0oGu7M3P&b>wVnAN6Y!)?Q33OQF^J^lnpe~M6u zX2rBO23qOiCHAa+3ViK7-Dt|iLhJ8Om&!s;qL+UvdGE!*iQ)$PvYql>KKA42#!ZK{ zWMdW8p?$DG2K{t?Ss}w$uXVU7_PDc%XxOa+D%WE|E1$F%YrUFRP8!b}nV-c5jb@cP zCrnA5e;Rq_dV#N(X-5-5gPq|k8;L95^mj9ZfdpG~a&ui7IkAg>x-pC*V1o0!!pNxS zv=qVzEUysdU3B`m7u}Fh=Ii&(a_~iPAqy%ieZM)2;F(kDj-z;7Y+OM$?WSGYzon28 z(w?FPBNF3Ih`S{k#s>nKga*?r!Mo-Gd%^*o+87;^yv<*8Mxa1M?2bK?-u5bQT^U!& z8h4%KgmsWz3=fI4CY6ICGWLW1W0n*wmScUyh0Y?0ZKpC;O3SivC(+kyfUZhrjXZq7 zq|je!;|1L@Sm_nl+o24{uW9{9LQxqM|LXL?LzDxh5y|8eKy!28WmD;Ysl?g$57@tt zt94QJfT6%=4{u7-;%}r5r;Qn|g%TfmFi1Vgrnf6kUul^9>m=*#=HarZru9D=M8`$jSZ=QIbsnEPA5k z*lIZWZw8L>dV zw>XQ<!0blRlD$x69)j2@9#MqNMEx#&LLu%=>kTjej6vIjH3Ir+t7--Zd@Nm(ZQ ztLe?Tej-ND1JAJcV~D)5WNnwN|K+&Zc(BiZ-X_kZNpkS%G{BPS51PS=08H|bpMlyL zp)E;toY_=-UCd(FHC--KvC#)dwKYJ0UVCD)jb#otnHJVzq;>T;*MHm(Ec92G`P&DV z!63sTs(02FTN{Bw!u+0K62fYF45Fbf0-}lM)M%E8qZn^bmgf*s?FT~~{VXy>h9a*_ zc$Lo&h^&Kck2X_>HXOP}kskGdpPn}{BBVc7!b)!d4?Y{V=TWVwQ` zUpiPXKo-zLYUY0TnU}A7esSxElpEn*5Gw`JR{u9IUH%LBkLs}0s%l&8iP+NiqA5RF zL)tH1F@4^rWY_X=90T|!-TpuA1X~pjJwbCnMlOZ;R4?gSx<4C2+n`>hNZ)y^-{Wj$ z*DY(1$6~^*C(YT?r(w@TO2R-BHgG2xAi04&uo8K?@^a5sW#BNex08&bI_jR3P6!>) z-DvM7eRxLMzmQn#)pC7`a3@TIvbY+;F{v*rmY0u;sSB{+>Peu-C7h4U>Or{8cPz#r z)E-9*W!6ac0Y7aeb2&T)eh6I^g1W&Xhwkw3@Q#T(>!k*H(sZ5!2W@^mfR`%&mlYUy!jfCw0T9UAiNX(Z-klvViP(kg1ovm zn9Qu(t+9%w!M>UlU+e4t1Vwv_as9W;No@i%1V{Ui8 zFjoD>$zWwcjmevT5@)P|mHm5Ry^v4WQ}DTATt@L+%_4`W?VLlBRDN_CoYpP-nuZ4U z^2CCH^3;0AW{50|3gN@6X_VU-`iM)HQ0YMV`T=bs9%D1#4!OZeNvJjZPFD>klJJHf z`d5y(Q4UUJ%GBvos9ZkM74+$|(r>yNA3d}#h>;tMtLDp(SdrJ zpeS={_Te9Z-mV)wTYjGNCKdbVTH)$-ie2R6G=E>`3cS>5bPm2OLh5ubS(Yw%O6YLSVvIt}fD;$YAc59#gU&eHc^#qYc zr*?)M)T7=8LLJtvIGxSe_0z0b{^|1LKVOW#4wV$D>`R1_i{-{=!R! zBZ={o4t7o9fmN5q?d18DIU7Hl{8CqtoAAPMQqMB7dL;CthL2a< zY8n4RW36{+bUX9u3#sAN4{sAyiIPQmtDHMuhtU-ieNl`QEerSAKl@^E#7_8%g0P|e7;@UDOoX7m-_g%f z&JvWr@dceTWBLDCfP|JSpMA|fT_^HQYk;fha^uAg@SVz>z^%GMh_mB4O;W2<6~S}z zVm}`UXlk&0C3Q<)jV2tTS2CYf<)Ya++8fv0ud?WnVm-~oFQ-yA#iq500o$YHK*>Un zO$nRf$Cl-1fW$ROuuJ8xEkSGTa-;O&jqW1rT@3RrgUQWa766g_$pqexhD9*jl$k`T z&5-?*Rs%`w_v`CXW}Zz&nDqt?X$0F;T`C#D@wk45^Q0YUAajXiwPPW?mOO@ZK@3oe zk0E#p+gm6`)oStkR25FY*^%L_H~H`gS~P$>U<~+3>GoFj=IBk1wJ$}#{)oP)%uH@w zcaFOLS{VI*taI!KaMg<-ky8l}zp*a%N&cZdw8)m`I^0!Y;_QX0&t*9yhUb=Z(*O>gJ zGlM=z6jdESG1fuQaNn&VB}xQu0b7peZ3TZs^s$pWlV~%m{c(K?`>!8pLud>hI@Vdg^~^TC6LaD9OTd4hH50;-=F7i#(P#Cb!h0X&4_e5 znOL1T2;AQnX9ybW`0!HA77=SBl1t>TMCu=}`RY*Y-WyTIP%NYa{g!rtrFjs_?M?lr zkuPyMG~>iX@@mTMq{hg6vNO|S0&Dgl<=xIO`z5JJfJWpA*WVYGY36Y?^0CNjhfX4^ zM?3FB?~6KSknt2UidWAegGoj_SV^&qD^>kx2{|MEJo>>wc(<;<+1XoW-0$S(Db1EdWA@%Bm72zXeIzt1m3YF zw2~9n`FBzqLw5M;9iTB}q5LKkRZAFS)5dmjuP^`pOQ*O?owV2cJ!fN5CEuh%iu@=T z4>aHVepg#pCw(EiJKQomr2MNRiwNRvw$(NP;=MuyQHU#`j;dEK|Bh_8LA7esh60kD z%mmgyNu7;XRm~lJTRfD9ie#`OrEXcG1k{hZ-lQT@bKtCBn`E&Y7sXfIg&UbM@#9ODE6_@rsN}? zBT4a66zQ*=HEL4m82SQl$ z-z#N_>so=Y)HI#nCiwT4y0S=bpTFUmG%Pl!jT3vhqo{zUWj7JomI$;E4*W#C?l1bX zDgTn)vXey#Xh~>uWm;1&FsPC1WA#WshG{n_TC&m#p@6W@F0VKNrZ&%+KHUzk%D6_`0rFo#9=lRWeVXl0kBQ+M0d= z-OZV~EkSyYcu3a$D;dws3V4qeH|@ALzo$fjra9~z@H0@H*2OTsweHL67l_SF5K=DE zchq(<&gl1f{CczR%c{IkeM&Nkz^WFmv3I3!x0x{Uywf7fzdrr>?}aS{x>zkA3YR6} zZSF7|f1*R;McP}?p4B|7zhOxJwXf#P!-8nwFuC`8dGVX=$w?nymf(-HC7(YFYH)7Z zq30*iqA!9Vkt-b?+?&zLaGA)9A;j23N6ObedtU!;`3B9O4tF9&$0@JmCY8_6!-CGC z=LcFd0dASO|7bq&i2u+;9qrt1eJAMZcp0qxbfrrX_jU2Oc@XAvALSi+6ViEe{iA)r zngt92)U;l4)?6oUkp7L%`y3R+Y?I&j<}9q}-+voz3f1`cmIY0PxYs6!r)gR;%^jR% z4c|VZnp>#N{piD9@7mo3{_@VwHWytA;gn5#{(Cm{NaT4w(XsAwRq7>67UT7=kEqS1 z7)MITPb{NA|5qN$`grDZAEUm^0T>Sz#hFbE0l#qYqXRh;yK#0lP2RociJ2ZszT=p0 z>bH@}jDM1dp11$co$I@`+w=eY_fj1Txjwv$b^=i2SbeE!jO?~iIezRD!SbS?vJ8Gk z-@FYm^npq%puG9!u(ea+x=A?QVWcOu`8+Z(q~o4`NZlPVyopXn=e`P4P3~ zCqbBK*3hQOn^hs8W(Pnu#n>L0G_F=j;0F(N;y*mw(U0$a+$S?WB-7%5^1@(4~b)xT!Kr!MTnVIMf4E3^(*XzC!R#}}`pNFv2Z{*-#h8uZ%V zd+|wyQUJTlP7pW@p?zS#eW0&z9OA|Fp6`eYn518J4Z(Pv1q~}!6n!SXg#*9581=WZ z?7|BVV{ke3)lYS0WJNE2{vS+oz|dU+3W&6%gaRr#14x6E z(j_3B0us^<(lttVclSKp&u{(LnwPWY)tPPCJ2sab8G_-A%8v?cmX+-z6!?~zV2 zwi5j=0OfW-tAY*bl*mGjESiiCy88#^>vMXXVfFfw+V=hu;@0m75&N(02|o`{Uy~qA$Mc)D1P{lbN{|AeJm6mz2Fj8Xv^(D8=HD=hDY!v&zi$28Z<|~8p z1VMPYj1Exf$~PHczJ@gdLKT{Zljv%m;Y~>X$gp)LF}n2T%uwUa zneBCV!3TCE0K|1U=l5HQHD`0nyr8`&asd;2bKj4v2axUyV?>*DGxj3kjwFj1aROdYkZUO2!%c7d77mOo zlwnqT^6hFyp_>`oDDPwcFXKn4gbM~&*9WTNinPCVzT znv!M2TPGS1i(E^uN;&TwA3fE1!%Zou72tM%=~g?^h(5{ZtX_S-kS5VjEL-r0?qF!RO~N1%+YNMWT;y^` zcl-NsbNhZ;>(QqSf_9#ngN)K$vyJ~QdgGt*=Q5lcqL#n-c{{v9k0P6Xl}*E4-Q{XJ z(?$KZCI5V!_~>ZA;V-dD$&HF7%)o2;At(K$L6&Yo{ZiNHpd;*WFX22x`_!2DZC`13 z=SJ{|;^l*ir@!>?e!SoEQ=S=+|G)fSXHR4n@S|K3HuCio4@iVXpd9 z&9nWL!7Rv{^}UAb$C0F0YWl~OZqgh;X70JO^PR&KCKdN!T@B~rK;tfU54q_uef~=I zSU?`uvT0{!W8AFK(wb<=bCnk6Zm(l(f0BO0|C(?$zSlJSu&iKVod3cz56@NCg^DCI zmAn(GU6b`X;T_$o2u)bCiu)d+KvfuLsCBmiP!%?g^wRDHLa7qT@u0S%Te+ar-TDm< zs4dLE{;r1VHe4*%2vUErKM7(qrK!BHb;fh>+?Xn^_kOcrP{>{@VN?gyOwZ{_vL0bIL%E6v!FNFMrxzVg~@vU&6E5LTq`tJ#ssAq2zB zz>T$2qJqU}GU?RPv7qx^_q<{tzhiBPS+L~jSqxF0zxT>W>4*|;C(Xa&j zg<|yP@v6hJSeR})iYHI8Bf~PA7H%3sYQ~idQ{nT*W-wv34m2gtnH-;bZ%NaoeV%D` zU!t9i<5?_%o%7>I17Q!wd2|P zgqyoqO4n(|QM!6@#1m2gZ(0U4E1juzy*_AIelz6?=@MpRxfO#8pVx}}$3gm~NM7_2 z&aGrM-^|Wz^?z6p{!3k!(k=ljSw9vKy3{Cpr~R&A#=EiU%##}dkE5X~w1B$}k(q#( zr$93F=OWk06ZT42d*KOvdWNGFLvi>zaC|vf46?j8Bg$y~`_#TI4TY)eCl5;YL)cYq z&QiUmCmD7;!BzOC5xJM4t>x+flvg6ND~Y%%1nUHREF`U3>xnc~u$Qoxy1Ek|4YuCg z?iGWsN!l;C!QXMAxvbkiL|1==DLs0?(sf4CO=}tvrXzk@Y!yEkkj}&Xv9!_xaN&P! zbt!CW@SEzMNM@9REH>|3G4`G`90JqbQ_VEg6Z0GcgAu{MqrKCFqlk^7rNn+&&Qz47CMX7f zff5Pbt!IPnAKH=NUEstECwepe)Re64UtZu$$FfYd55LTS`4?D#CIfwUe`wR*e57x5 zV;z1*TRbB)Kxejk^#U^f{hJ?d(A8*{DQ%812Zb`r zAE8_XU*|s#`C^UgV!B81_D1gk^>o@2z5>j;L4f6cYdz%6Cku+UX|Xed2dVK3 zuVr23hQvJWmke#rUoBs?K9kl9t5cF#Y2V?ruF{3yM=U-m!(DVYo9mf3li4w|y~jBh z1pGgO064zfNAv!C?y{1UBC17NJ=Z5`=#((uQ)hxs+V3U}`~z>8jHbEbR^K;HxCw&5 zvuma*;M#{UaHf=L6LZ+PpG0gemWXW#g^qKX{$@=xaca6^-X#w3_M-_l9-s{bcsh-# zZS06()Zl=NkRR$7lPw3CBnt6+@VqHXu%#8WxB#H_zyfVnQ#HLOS65f3xtD4v#1!$C zm*{$htxsM-_Cld^FMcA% zZA}YnavwNxrLJ$*ydvfox~XS&pi<()usF5oY>8s3I&aeIuibTtbBA1~Z^Y2jguGA+ zUPN?^1An^mGaepxKl5xYyfcfES|R)v#Q-%4fW;2u4mF!Tu>5{#D$buDw2@y=v2~TA ziBfj`6$=9;vlYZ2qaQ3vD0-&z56%jeX7j-zmU}IKb^i%DgHY4mgkYeDp*68_^sgPS zn4N06mG7XjK{7a6SiL)(Q28E+v9w(it9IhVo2`;u5ghZ)@`uX8aPtTJD7S3lrCna# zIv4RSjLo*-K6H#)E% zZ*sQ1$^&ab?CJPTwccLcBE3xWqk6jLlRf)nggbbwfmXg9JnXSQGiUX=ZWh@IeZ{>% zN&nEvK!h=-AICZ+MP`Xd6Vu!Fm+c-2xY!g~z|_*8nrTW6cSS|=5GS>Td>2hjEAsMC z+_&8ol|V$puzn9Ti@N1Ju~(~HBi2yr5fK(t1BEy|OHmpl;qc=*PbV<2`YuR!fzwhd zjC^s^5_D7Zyz_#EGP3xe^tX1CyNkzE+Ee)4`?nmTA46%MZR2nJWJBp6>CWDu12{|! zg!T9Sj)Hj4J01cq*R_JdjRAt^?9<-)*;7VV-Xkl!uhr)tfj|d?6(jE_T?xTeR2c)D zpSuWhb3qf>3#oJI`5D?{^OhuMt)J>3;by3N1(tGN%6cM_;ZwnXI{X`hjvV zkQ~xdbx7u5lws^8IboN3O-GQ=d0X(#F9QOQkt&c~_Xz8c#yq1X>Fscj@KKS%E%~mg z%cdV?wUxkmU164sM=)HE8DH2&igBiQ(7}h{EgF`f{!@&%ovbVdN?<)p&ezBH! z#F?oCo*&y_|cq|Y~_!MxtYf2+PC9;pXDI15_F zve{49EwH!#86;zZ{o+VWlb{tRnRIu*Z-RRHY2KdKtHHRW%M_iqCe2-uKMrwX)^<^~ zGb@o(IuJ1h4%c-$*BZ{nKKRdI%@Ags5+F5O0Q@#SFc-=*T+Vimxv#4KS*sa^2MQ+` z#{PLj|6q-RXsHXr>W4j!O(HQLRRetCA;k;Vy&aZjqwAun*$&?R9{uh*U$u+T;~qQN zvBwZoGa?5n-kLeen{b6&9y+}}(xYPhzAl#UboV=HI7ck#Bu+n`>zqzT;c_LHX7NsA zC`nUuK=TKkc_sGp-d^+^myTig``b!VO$jK!>xF6JnY+l#LZDdGEB*EM1p%B)sKSan z9*H%fT|Vg{nvpVc>+@!=lTcZnrek(`?JH22$V%1oJZAeik#pfDRZ!!Z!-bcI-O~~N zy}Lhz`=hQr3JaVHP$$gq+G`^_;LYYdd5J*)&+?~61K_J|X~z?jN)n6Hx=e$|R=qk$=l`v zEP0~xR~$e8pi@JVD~Tx~ZZWtjjFIkhW^#F=R{F$mi!f^i+P8%{^Bae6RU3!%e}XBV zudqFF$B4bpBuL!tJ2j<@v&n)1vcXTPcksJj4?BXszW$rS|BBk6{_Z(`ym0=<%oB%9 zi8Az*rG2~rnYj;54fg#|0?l<#@&3M1UYPD@`Io7L+1|dJ#?{&{ncH|euGMep>v?6# zh?U^1Ua#5QdHQ2WPEEv0z=A#ddMzd+M>nZVos)OH6{@7jn++!%+1c3 zaHGHwl*5^uh>^KsP(ZMqhH)WGEu+=Ur4~5WssUPdm)DG^ zmfm|N=}Pf*lp)&(s^Vwc1U9Q`g+IOeMVz%7`MECglLLLTEcQA_vKGFg_Op}q5hYcO zvJB22+>Y$5TzPm=HMw%Z4; z2`rb~>lKUgtnZgM*OKS!b5Al^#eORwYfpUhN&-D~Kf9Al$zr?UTzHJ4)|xVUmtvVb zt04o-q0GaeFcACj`3Kuc?B!S)1aF6r#=v|%6UD;@$v|a6tfO_vqqLoO^O3&41`7qV zMFUH=KleuqK|(Y?WO9}Z+>88PhfaHKcGOOLzV<~v9`gHi@CNPU)c-5hcI+};Uvl)F z$NEPQjEp{79^X0KFJ=zEfB-w>qaTbx-`yN9t{es+fZ=+daiG?go%uepvNUK8Vr%}J%KF4={ zB);-E&MVbvEc~y+Zm*V?8jVdp8gaLLdIf1Q4_bKPW^p!g`h{8RFcjCWEd%8@b8`%} zo`1qn#f-Ws356N@fjWr;O26Y~Dh^aT)!3*fJ$s1vC!;6_ z@g0crv_{jTg|Wp>1-aK!J{XOO;U)W2l=R`c!v4N7+j}pk zm^K+V@%4*`Z+s4}DRPVE(UXsEsuAF)J$ltdJVNr8iqTK%5A6VXKALlqK}He1a4Gtb zN0JzDyxqK{Yjv{VxT42n%Xb%g3U|5Ij|frmWHP@*J@VE4*o68%__e&1{|UK8o&e%6 zm;fWG&@YE=Zv+z+z8Dgl#M7Pr@LL>>TKss9T%07(!@M3C{`tq=aV&d$J=AQMwCCAW z-J`=vsEZAA?icToB)Wv;>jIdB&Er51r{G*GUbP_{{?80GvEJSxSJJ^rMQa%zz9FtJ z(eu~!a~j2mrCIyAOyvF_tZJ|=0{W?S&Wplp6xM&utyr1lyXLyb*3adix-($XLbJYq zX(*=54xrR$HaY2yd%O1dRO_qnMnQ8~MiK|fcsF@s9vHAvR2d0~-$%D8dGAgl!cLCU z7k%7To#{vMREDrwZ+kT^MY(QB?#Bgpv!e?Ok9Aw5u`4W6s${h8_$?J5B=L5krC&$A z3GJ-rxml3EPJ4{5HCOr}tNvT|JWOyxJ4VOL>8q}eCNW%q{?a&f0jzUFSD2!@2PUk) zaJEgKU1HigPZ0}xy&qlpbKU-9_#q1V+3uIpOnZJtw)J$Nor!2VY zxgTFR#u_(#v>r(sI71v8p$Z*h6NP1xt)B~imvGWv2U0k zrx`3hnkiE|zPd#$(g`0Z^hO=i4~~#5Ql#SW3eihDFXcM{w)bapuhl$AcBfA$c3=#u`sQbZo^j z5HNP#>^sFpeT0J6umOj{x2rRZ;Wux~yH8VtPbjoT6b&^_#y)4fDP)!b$_$u~*QEWR zmzIxWQAT*f@_1)IEy`F{GU(Ly{p?i7Z0kSIX;v!MiaFY)oXw#**D)9I6YJa<%pbi$ ziR1%05J;{5uKvmTqg!Os(mZDB@5Ol%$s8nQpxQsm9{BccajjT9Phr8?#D(7OAfmj| zyJ?-Agrp3#8iAf#%orDxi_G@Y!boTA{6Z}~W-D+c5jH5;|5z9$J-5^1(UR6INjZp5 zI`3im*Lou`cOF)M$K_%Sf6E{aU)bN|0F0j@S^!F?(`#!g;UNe)ULX@8-+>gmwnL zdYHL)X^^pbF`(@U&24}g#2U7Y=SNa4Nxm6cQv1P#KY;XlbnshQ*RY}egBJL|Y5ooy z&;Sb->Dl`(rjxfuvTkqbGK@2vurOLHyq4&w8$o41 zomE-zH$?oEWRoqxv%C93QXeiilINOOF%0sQA4II0}3D6A3JHD zIIkHfyEEtp{X#q9LWjw3Pb8~8PtwE>b+$e7aVEsMnQ1=crNgXlNX;dqw8hR9&Z0SQ z=eEmU-I=5in(_gtO9qxym1A~?bUJGa+7r%$)Y%(H2#~yXqfDLw*7eI!`mGPMn0I4M7z${J-M#w@Nypn3Z=@pys)4> zf>F2z=7p$?nelb?v-b@yWrsVWn3C4*c-C|;SWs^iD~Qx6nS{_B0`_l49Pn#%w%%U> ze(m%wwfQDO$v;>@$@*hLX5%&{CAo6$ zp*$9a8Lt;&9{JgNxtlI$pS|gTqbqtw=xVu7EbM8c93e$tliZ7?@%@?qq-rTgf8iGy zByC!Pc%@s5bwZ?FLyA~+7FZ#zM)lHx9DRnawqf@0`IS`0r-n(P<-$Jw&ze2zCSt|b z1hVMMavOHk4$HZTGXv4foYK$0rYMhD2D3M@gJfe9uHbZ?f*$uE#Nlw11~XeZ!$C(~ z`H-qXK9F~q=X3s6;GCN0p-*NUZ|G(Q=*=3x zyh9~ul+5d=%v*x17Fr+p(z?DtNOV+FWMY9IrQDqR4(daIY1UgKf%|7m{3wM1j{^}A zPIq_9p9J(9enH-kb?BQcp0o8_hX-Ra_IvZ}SQc5{Lkchw{Q=XrU_8gl;no6mK)2#$ z$-uBY5Fd)%mNK=yYnsgFg&TNbTOE?UyQ`x_5iy@f&|}P8#KYg0Z!u&VRu28k=M#MP zE2*vv6UFnRIY%T@d1)o(QF+zfJ4a~sk+PrLYH}3;q7?5;YN95V;tcRFq{<{HkM;Kt zzgbx7LSt3rN|4hk6Q2m;Yv=(zqHOTJ^pt`{HB~ank%4O&04zu#_*Xc9=8eL=J1Jvk z9-Y9ujSB(_MPR4_?k#t&=_QAs%=2Pg^J^ge=L0G~bj6-rY^!}#DUi0+VGN`T@2>yz z)jo%Q{Rb3ED!)`q#3+_Ua(Y-X>CZg&Pj>ptLI#$WtC-n&U2P(`NrW z67;Ss0WsX;4bge@zl5(BV{^sdwT!|X@Nj@Zx9LV!hSWgDkj) z{=}n=>SUefZ+g*NkfQ(fmAP*|atsb^lR{Wr>PKHxKn*%9M-52dWPa+pTZoTon>}~< zXS#hct9kb)dALO$d-lbE;OtI43X;fA@>fk4U9{`zbZ@*E-bI}0n_}u(0@ePJaYqXx zfR>KoB!l+f9u@rqDs5|q?e6H?M;e?jJZ+nhC*+~>R9o&KQB+>Vcr(Dqt$47N+)#Y8aGOQ-6m>>x8L&qe`(QIYIA z5EU1BSvn8NyKZ4Td$M5lln3NoygS-;cVC;RGoLYo#V@=KxI}@!Z0upk$%j;?z+f*> zK%<`T8w-2ef#Z^v0+bqnrKr#QON1^@v#&MCUEYz(pu+LZs*~x5H`kiD@NwR+c@cl> zW7h48N=sRk-<&K3C!%Pc0{WUy;_;z8igypnd{b{kLyLGagUm$Bx~NsKnIuP9Pqf zzHOWz@&?(4KNLt1H@C;fWO9ZE&XPu@7!b3QgoIN5MgYJFk|FxFc>Z&nxPya21v=QL)W$@jU)b)lt#g0|IOih2o7Ij^D0g3*A z|Ik{kvr(7%LcPLZm0U+D@N*I`z&Lm4-W&EK4PcM5^`2{?+Nq$ls8a{ zgN~xO7+cr*qPT^HcPz82Q|XEwUH01CpR$k|J@TNK$m+!g-%D%Xz_THbLa|lFMqvyd z6y^Jy=MFTbSDwOuOB4~(-0^J&aGrlWI7FL5s8UHgA60iu;7~BO@?Lby;a)$$*zzo6 ze0!*x@aBwFE(JXL!vvy+`GtixdVA-`6zFn2jx4y`AGsNGpv!OtI6?fznK_dXF0v?-s?VrvhgF|Wyp_D)tqD32Ve;06AQ|5Cib z4pGI*;^_q(C3x&%fa@}O+W_ikJM=G=e&09tj+eLc7KuUSt=7ljR*c*KPD)9W%z-rg zf?39zxudAIyf@$Ir08o`eb2`_{5Ft*v(6F7N=afomO)Q(fT{j26Bf5S#S7Yj=9rGWzI%JGSN3Q z1h>WVsMT~*ZYqfIXCxVQq`_;7MB3#3rs ztu1CjM}SzJlCPw2%Exz_!>JL|H|S>mq5PF;Zp^N(*4-=DmJ8CUm%049Abt~ESSX&XG2%GNYJ9{ME6&O zN0K$XsDVX-5H8LUqx3j1;q&i2=`2sJpa!u{C(xH;OS`h)XZEhI`bqQz?DA=2OCG5M zX;j51OAE`IG#z`Zy=zJjX} zikZDlmLU_n?sd}pEJ)=k`_Qj|&@{Y&x%|QPiia>ebuKqA38GSTl$7isNO4DWUPc*+Q-pc3^Iwsr2o78Wd!2kKUE z^ebL?Gkd!?j?~`RuSn`epa|Xeglxi)+SrLONG!-8dB<^U&6McM3Z?tDH%tW{?E3kD zuH`i4>N82+U5tgMLCKZJ$)?IUrZ(-0D<0+a^>hfjMugFKkP*q$Rs#Qwr3;}@*6`ww zqglBF|Eb4R#h(O`!8_J0XAJ!I<=ObnYjdXxlEo$w1RQU@{i-#5Ghzh=uw}VY$pg*G8zn%}wdfLJwV#RWL8^&MC|ElDyGPH`W?Fhn^$IZXjnG38kC_4m19?_1B z$@HCzIB3NrRW@HCYsD^YzC92T1Ep~(1zK~{1m`m}VYxKLyj(wSun`#g~i4V+Avl{Q>zmG#LY*H01IPKnovxU3a)va2+y z6WQV}J$p0N9K-qe`&~-ICRf6xKThypco6!jTV-Vf%w%Lvk2Jxqg@yV}&g}Ev1i92| zzEVE=8o*-OA2l{#~;e>w7s1HYze`uTg!WzQzZ42T$Sb*nhTG zp5KyA!ryqtY^r3(+Z87imM+0a9QIz#Z0{)%`_A0fc1J>s$R6--^+^m6);rbi%z*ofot9Nm!yEtY1|ZMF2v?VCT_i@lcWn2|8KteD4y(1>N}K4nOpDwvj*@gq=s(fAWl(v+B?2_=pPp zY<%UI{Nty2DBV8;IfyeuP13Z#*0#9Aam~b5sC~22q|_Zm#A5+I?O_ge=+VH@f$YY^fxA9qZoa zkk^%e@~2`WtZJpbz<-`EGgCBUpg<6f1B4(64k1MUsAW~;iyFTl;VA!%{E(&k?+@FZ zcXn44Y8g&$vDlMG&p!%aj?W#<_C_QOJyuou8a(w__uxYGaT

    fr+Dm&{UI3X_SJVeJbHppk+$fW?Z>*<6`fWk-q}IRgjWM97 zO+y2!>B$u8Kqq2*dsq}RFr{sSRS9W(BA#k2N3tOaxC}58&D|0$A2C@UbC|70v+>vU z|NPtAxBeomS#S9ATUDlB0~ZQT`S$bA0#{kLP`U(7TQ9$fXK1Q_Wr~Q>rkJ|##YMO- zAN;5jF0yu+SJ_6TVg_8QILFt)i=I0tObml9=6cwye`r(PK1rPMG$nN8s`v7|>3Y7* zsLVl}s7!fK7?C}pXi9xpoO>a$oD|nC&G*^Jfja3WDkE&Ml@KB?hEY}3p2TnI{k%0K zfBts)XinZsOJhwuKFS=Z{}OnmMWZxW?`3)NRXW+Bk%!EM7v{3Hzey@PyQ1ZXue*nl zZ#Zi-z~-#VD2oHCS`?>m^3akK9mtGza-3mb0*K4|HgPFy;~Ryg;6U1Md%wvrJU<0g z5h;JJCE7bwNcf~l$Z}sc|&tm7w*D50H2#C z7Pmh>Nza57>Ca|$@2D(_oht$0h>=ePU<+BB_*$IhWAiV_osPhwghhj@!N67fO76P_M)<~6@U1OA4;@NS zNN(%#M0EZcCT7i)#_#as`!I#Ag?63>B;nea0}M!I`>ab-$#IP^O}%@`d1nGc*k5oW zv{M(jI1Lyn6VK@rdoKDGBBY2{uGZSYlsLm(!szD}A50TvBc^glnsYCSzhSq8QNU{* z*zkRcfdCpB9N-sFKEF^^{m|=F{#Lf*`UL$?Mq9(Y4Bw%|Be62S@6pP z0^qqB;wz4Pm~^WV4j<}=VV)|L_R~XjC~%L-mt?Qh%unATw^Q%Xx5fJqoQBYUE=dHL znmP;LLXkzcAHVRaAiU?Z*_W6650Boogi|Av0KoEIOOIoYZ?#r&pf>mDTjf)m7Jj-$ zqiQW%lJXC?L8IR2*z)m(ALDjx)lAgb7vCISt$#h17dCX)6dqu%w01ABZcc_u+yh~N zIn6?l|qyM{0iq__)AboSjNcE`) zTDNJu%hCm>pVzc3Zjv45$UnP4o2(y1 zp93vVk7-)HVQct;V0E!tQVA3Lwa%}>PrrY-s^2afe8bz5p{?-5;i*O%JTLF5{%Ccqy=F_UphDJ zzF5WzET81|fGkGDc&))qgw4dHqq;X%?Zyd z64bHl!Um4GL>T$X*jQH4{In$lW2g1;1Yg(fb;N4yi2K((OgkcRz(P0qK6U$@#(;N| zgnV7aMA_3@uigFZ0SLdt*)%6|))nbp*m4d5PL30FFnK?K?SlVMdpsKD%oc%;?V1|u zRa&G6F*cFXfiHd6Tbn}ZO7aq${JmRM6RZrG`Pw1sDeKn&9Tu29>*Ew!LxH%AuG_tO zc3dy-F=)(ajeUD$jJ~Y@X4Ho%?{`Hl{dT3y8FY=bmC?Wb^u3R@aR|@Oqlm_sA$`?I z(^#a-)$g-gl_?W45_ko`6CkAkLv(Hks(>r+nsa?>-bRHkJDgr|^}Tz=m6>$WCh{2d z69yNyjdyRMR5L>ya2+hyER-V~|7-KsiDarka;_k2ifdxUSd`VnXr0_N*f%W-UAftG zFetx(Fpo~!zSQRsUxwq>77gy3N;UIy5t-FjM-*V8JQ-2sx{v+kS~C<#qRWz?@CJY8 zkEBbK-$ zg?-yJbMT%WzViq?Geya*kq$DpL=FK`-R|BE*g)xZz);rN&>WC7@TvFTN&$hId4h0~ zdhf*RVH26taBCr!*7pH%NZpZn<^r!(vir36RzFxOqvbb*#tR~!0zB!xBl-a-2irWxwbE^&q+ETOeV5xb zDNm_tx?x0~yxc!Gyixq#a&j%wL8D0)3)tLbT31R6|GKQkEmLXUTAbFxEdJj;NG5qR_6MwvpRpe@u%rp7M*Uzo@` zI`)jdt%l~&eSE8c&@}3l@>W_+_Ba?o_LY|mAZ-k>e-sF*5=C$It)(aIvk8Zk_mLVo zo}F?&&m*t$h3g-et!6&C(ly1zQc>JW!=SXuw{M)*USa{7q%%o$U)^YLAjS9D1Xo}- z&Oz8W(zh^B0lT0659tI@HURrKL$A03-}HPwwo)dW5Fxh7j?SUH|N8xmRF_pb4hEMJ zSU$j8J{UrO!8&3BJ}EKX#{e8H@kRfWasB{|g@dBwQgnw8-4HgGRIwT|3cfkH{Hu+9 z=WDp{MDen4DUe%1jX9g^lNCb3G5k&TR3ga<#NHHrFGoH+3dA!}w@74cke0#ms(tZw zs9|xxJ#u;p*hO46(yrQfwnbGx_>AW$mVADpPlAwpHnBKIbCkb5+x0;Zoz%d0r7-|3 zaLzyZ{oC{OI^xY}83XbUT?{9DT_*3d-+dKP0YjU=hk%)+MK4zQ38gMO?rkvx(iqJu z;3tx;Q-4#>CCw{BoNg!MRlLC9hG=*fX{|ectacC&e&KDv$J(Y=wjzin!T zz$No&33kVkTl;gaO+?!Rw|J*WeX{5q8k*%E@u!vyOh=}AP&0k`L%Xj}Dj>ac${Wij zDxrmG1Q<8bPlp#hAMevme|I2bzMW^N=_b-&W^%UV*e*3RWiJ2990T5K%N$2Yw5g;Z zgYX!>cwwF=120AVTQijBj!#{EteHq=r2G@O1(@Ds)DU8cgJeXn<>hk?WN&3-0&HX9 zb`rH+H`(eBl-k~4u#?4wP|2gSD2T)Rc|M+`tJn5MWq&pwlR^&&wc$Xtv>$OdnANmK zpeVbGU3ATAbSi26M;T8dEpboqazFHVO2t zrK2hVE4b4kV!(xZ@LO!D_NT{VYu1w4w^GyYfY!teZbLE&Dd#U8pL@ney`LBeR z{lmj3zNV%(B0s0?FL~T?bIY3^heOHFr8Sz++y9u!uaG8@c^#_9%zDRVJQxKgGMU(y zf|UKuMzr=#*ub2$FT2>4)Qk%rT3Qx84;f*IAPS9D!7Z`jeUExJVWUrAkp&kDgYlYy zClntgJeTkgkc~$ZY5wpKjS!c2d3A6{ z@#{C>ik%r3FuMYIoQ$FEb$$r6TtTGuj!^Nr(;oyjw`m*L2Xt_eajFfW(#a>oIh4-p~JI0q(kmFSeWJnw+-*fY6{A0#q$G zryrEj-MyoPBqIDqFR1xZl|uK{u|?0rnkfMIUZmWhKc}Xi7JtN}dt!x^P`sl3JuAv- z$~zt+FM!h5b8xiy;RSr)_y2`zx!3ylBdpz)6bK6kX9j%(c@^Xp9tnTB(tis@z2 zeM|UuTI_&KSnwrN7LE8TZZQ>6ql<-{+ zt$T%3&*O}@fcn4v(8)9BzKt@~$V_9gCXb=yo($7_>!Z_>tpIz071ajF= zGYzncHGCx_Op4r2gvVuIpGH_Oy=0dOvg|kS& zl8UkgJ$}7B%A8Y6700>gO+Nj2cSu3J3;4af=d+jVy$4&7vXv zqIEvRJA2^seRAJZzVM9O;`ZfkSd9~@s3@vbXv0f(zI%VS{sQwudaT1ZWoy&=l~^f@ zJWK`(CRlUrDtZ}Vj^px0fM8X`@h!p%q=RRso_crga|m`Rb^1G|mt16g8cUN&zjZN% zkBClBvH$DtI_J-*3qv8*kDDKDuK&#O7u&qwbFCe_>mdi{fGajZ@TgZR4GlH*2+nX_ z^TBPv(0zN|^R}xJF6PB4h7s)h<6n2tzLJwbY4nLCjC<85Go647y&(@;&%MMJC^%eE z5g;WeI!NYtQFqM+(;2-EgW_=8Am-HmvK)}jrL~yK%{qI0f}RsB3$*v201xjoF}cnX ziUSMFwIYr4Igdv;n&ci|7m}G9cKgR9gQ=oul2cDaG?>r#PR3_J{H5u=W3m9;pg^CJ$yiZuK&72 zaxl&kO!kyTmharxr@Kr5`N_U*dJn(J1e;|SREk2S21!xJp0QMfsDMcZ7rTARksgt+ z{Do={pY*)V&ZB3=-X5QOyW}OSIO*5x&QdWXDLb>T(&@!UFSVAa6HOBk{4)87|fAC=A|vhgOK204`}b)Cz%mL*9&>yKfTF`iTBgZ8Ga#-v5Gex zULez9u_(Z(NG0nQ??)!2i2L3o$J;)-(Y?OO9miQ{)AWAT>qt!(b~PUulYt1t1!WQoA>v*BJcwY5Z!eF0d7SGLKe+T( zVNM#HIq$AKsfEf!r=JMPB+oc;uLTc!mG=973Nh1iy3_R|L2BYqn<3-Jm=i69?nab8 zn_`j=I;p9cz0E3qJCxsl>O!CG@>gA3wJ0U+m2oY5dX~_emuO(KmNfTZ-WY6zN zA;a&;_yR3s4hyg{Z~GGmugGK~)jJ_O2xoRQh=bXn@|C{AEW56{O8evTjiO`t{;3Pu zb-f<55#$-3xOWhVrk_j1_6C-25U7lFhR7cYSi*9iUG%_Qet@E3kLJ1yl8!m%bx4-P zaZmIgLv_u8XloxmMpimF&R8sQ`mmR)hKBX{38w9842I0EZ6rns0AWN^3LnhGA;Fan ze_-kwWY_x(vl^fONz%+gb(r4(0vwYyba?Uw$_+IW6bWHW(Gh>mCC=4 zxl@PYaZD`^SAhlVlOFQIr))Kn^0wYT+?p3$kB3-1 zt?L$X!O~v$rxAH`A?Ce*hqe4u2|epq5gxRqOLWn;@Ll%QQWz#s9D$@Li8K0Wn%wb0 zU!?v8Onceed7U;zks$Gk+Qhd*>37p77R4T(86TRX+2BXo{? z@3o4_Ma#B1;Wg8)4}8c&e>GrfB{rB$i^lVL?YvVvY(MIO8_zC9EstG&cW#tXvhmA z)b0oU$^T&glc~8m9wLx1Um=2JyiQzRnq-O%ts1y_18=RTKuxYV7j9-;8H-^gj>?n) zdzBXP$6vmH(s(+>p(ERMPK=DG3J+!n0X;@M?1=^N#A{VL7H zVyF_w5iU}~QzxkUo>z`{e%0idzTpWTxON6^MLB*$MC9u$1PCNsi~1PM3c^EQb1%3; znd8j;XFpfO5XN&h{dkmVaq@$wh4y4b*N2P~rBnS|8&yeUK#XPU;~@Y77bjvig_(D8 zKmWR9)^8M$Usj3H86>?qtaiU~lKFo$orPD_-}m+36LbsGF@O>x-8mqs(&z_N zq(eeNkdT<6TT)2@0V$CX1tfu5I2=LEQ#J$?{2BTLYfBS{=02p-@i&;r)S`N+#hlPKQUH>|c%=xtG(Lc1{S!14;@f*q9O zzdb?@MbFmXdL_sJk79t^strmeNP##RBCnjGo1xPwQ}?#$O0L25v5Znh*PP!8ARa^! zy0`4k`{%Y;(!^c60p0wIOuHmKTI58Q34PKFsmN5#Co_Z_xqr#uPUsZun_KxX%4fG* zDx)*ktUvnYTz#=uHKqlszgorEou#RDMJeF97q48~`lETUYT?SH*JiadfKNe<|JV-m zo!ZR7nO~n0I21M^8i@#G1tcVi0Vbc`@^1T!Y*2fV*LRLLA5J8g`3q90fzy=*1E!>k zY=yqPJvDAPE%B`*8hV&OTM+76SFgFWW8^AjErhSQlrQzD9oMA-=)cI-SMZ86ZtML> zGEh-x3X91Uhg2mAM0BH$j``_{j7sigxu)(JNUuh`7t}C*T|%fC2g3?Au_GSmn+p># zRBmn(yg~6tYn>-zZK9_GN&E=JH4)1s(nNHq>@I@S4c9>m%}W?a=yeW#v@dm zH5Be0JcHFEc@tzRlFsML)j{9kKRI$qtSf4UzZM#n!nNqNtJXMK&2YOLAgFv!G!cm2f(Inx^iseEf|>5qLz;@^z)8P@QlmEwSHeVW!K4XKQ^ zQEUrk#AK#)5!NMkhPm$xU|O z%_b#tU}6>ez>DB{Gd-d7Vz4lx$YA#x}VX;PEAdI@X(%es}7W1EwBqI z&zq#imItUa&FGFEO=*Xme!nyJ(;O4w&yPNY9+X|gAPz3D$J{)jFT4ruy&sfQw|F@4 zOh3$xrl@uie{St36E`)!S8$Bo61EWtFj7#6HN#I}`lc9HLF?-_Nhj z>r_I8o4C`Gf_Hgg0tTSp=W@Tno=#AG?aMFMPjUI)r-4`3m6r=!x~}+f-;S3@%Vf^$ z1fdoiOUoWTbUGv2f1x)cnrHAtkhA;xC2Py4B5P%)^?in?bUA|`#`0l^hlAXoonX1B zR8hc|*vXrQil@iBMAK^uA|C}V?0jD9xRN#s?_&p;`)mBk4wl_&5yS--Lg`*T;{~w= z+w1a^@9bpWAv#J4(#6VP#s7pHlG6Wu363-dW66rHr! zA-3_o-CUj!$6#RxBnYoX)$&)(qcl$_SKMe9JM;r*6xo7dCrad@myW>e+~q3BH4l>i;`@bO46v_}3`m$1*t|+t*xjE-Coe zI(znpcBbzG7eM$oqudtC;T6-qmxz!=uZnG{&hj|3@8H_d_|;I6qPe_OBfD1!e+xx- zfn*t|L=$#FbbnR$3OIWEC5%7d{07=1Y=9GOJin8!NF@^Dcn11;IaI2DDaDU8m)}c7 zm)ctzdAP36D^b8?7R&?)qB%7TguJubufJk$stbF`1mq59UhEu#LXXm=gYlQt|GSHo z{iz!o$d3by7Fn7Rd6hL=`0t|&jvkk0G_`V=&p6JgH3Gzq`a*V!YB_T26jft17>-5HDBLL6dAOhce8ZF%FkenwL;$cV4xns6mYdC zxxgz`9@@?hE!O=`fBAH5qm0L;zCUs-+~*8hdwRMIlf9QcX?l~k`lvndg9f?0n$&pp zzU69b%*`o+>ru^0s3Hhf-(@Gw+Qk;G{GKUmdxtR6KBsnNbzx5wMJQEm(x`9c@8&tF zZ9Yxc(kcC|T{Tc-Li5@<4A}e&`78yfA8W=3(7zri%Rl(f;DZzBkGf3-B!QDD*yKJu z{&2x9;GB|^cD@dc;hb*^ucOMUCYuqPikzY1+a{dipYsg$uHOzdoMA*&rj$RDt_Fp@ zV5h%>Sf!xHq>+0^qM0VlZPcBjk7DVG2A?8L-aNdm9Mu0O)0`fR0qsbi+>KZ}25JgU;LN_(s{0^gGcK#qlMBlojTV*98)eOx=Ik|` z*Y(gCvsyU#;%ZyfeE!r6ylw?{qLTQpVMXimhHk9>sf@Y=%-&(xpw1-kG&qi-w%OXp zY$7Vo?TbC|XX^OT=(?Ml;~Ba3@*sn_ftHOs?PK0wAW~2Q$?|A7(i-QA>bUlgOjg^f zt!K<7^oC3Q>6pAWGQ$5`pOkGgQ%8EddPb^Fe(1cjLw}_v0BH^WHT{q3hpiEC&$Ww= z&R+8Y)b}|Q)LI7q_UXFW<;-WMS7vjqAT;!i$A@3mZf~;kb05I7-dKy}UKxb}b%7nN zhn^gGcKX=#5E}Y#gB_E&vY#E^iOApMWgw%1uUdEUu>jI53>nh&5%Mu+lLbf`yC8e~ z(j#K~ zjRrZotK_1A9u@6_wKw!A%m#xTn#CJmS+ap_M2>hw8TFB56q7{Kg+1!{`2GXOUD;M7VbV?;Uz-DPXfS0LC)yoc8u6>0d-K69cEpeO!ixW6 z4r#IOC%SL=Jf+n2%ovcDXC2f`R;K{Qwf52P$ar5FS%Q+O(gz+|5Cnb5He^I#m=C!e zvb_GET6j)=poRu|h03k+iCm>|1h9o()4GlkE#;0CJ7QRUDDRuq)G6NaQDlpjMYEuP zr1;fm4+g^7fl&_P<&l&g+O4D$vcA7^x?W2MAJUlU9AHVUV@P>zefwM7!+k?egK$** zd?qXC<6`*cuMx*VgdOsN0{7qO(aq!-r{;9xTyaLji1bEm4<{xB<;8rk>C7K``k4xQ zRG@QWq9X(`sd#N9 zOW177b;Xu#5QtliDCW7@vi#fx0e#-OuX80C zkV@KTInO|$Z5lp03>QjkggoG_#rzA)1CA)GRDcd-pev_v%*qYsJI_-4#)ui&B zwwhZJk(04)^wkcMd28>BQQqA(4G$HF<#k%PJxKLc_dDF-lKac z?J}y6Oep?Q_G)(civd#1bmX@%;@#XH z1gLSxcIPGipiPnt;wGaySI?spWl37C6nx}XXKb{!Sy0;LxTCL8eqq2>;?7Y9e=E$7 z`X=OO5;rFV`6)i+p_7-%`Z^jCaL$Q3dj1?lj#qB-2L0Owv?Ss>ZPO}>Glc}7SAQxJ z`4Q%F@@=ueQ;0x`4ZGqNyAPTqo&C#oxVeygaXBn@ z@Y{N4IYHd;V6zN_Hukvs_QTq(G&9Fmb=T8?(BF6GL+JNF!=yVkFN4jNA3)t-f_Pbf z?TseM`x* zCw2rOBVUofPvBuDYP$Ds8XS;r~#5+3vijoas}zL-iRC`$6$&0zq3Q zg(QXXL~er>span=Pi)dsg_3*ZkYv@7`qv z75X2V#*VK_FL@pgd6r%%fBz^V|3drxD9n3V2jxse8WC5+Wfx1wjKLQN)Qz6X?w)4( zZ>4o(aI0Ts=FF1tM9GtF?>jZJLb%Dp;~6^wOd=I&*Yt)<-lGR@wqiZHW@boID`!|@ zWVn=ZwW6h7P$(2cnMcn1m2=Ez$eUEsl<`A*HG=MgO(BS0=y`x7pQS7*vE-Q(R!9L0 z5|T+a+!r0}&01{^yvr6M{>n{|;Br+kKsY-C=c`am|LacHC%`3fht~()cXcBC1p2$~ zd~%-o=fhi0U6|E0t<*Q~&RB&9>EmS890(O^3?03qgVd`C>IBhKn&}uNX|cyQFTrt+Krwp(_6X)hBlfS@6;eO`q=qHX0{{LN zCWSN5!`@MVpyKnqaih*(FYRri&=+%vGe(=7^3Dl|%(9hmOH%DPP+B(Jo{dtY7jO7U z-Bydd%xhWX2}FFJL3-miai)TO(SIty-wBI9_1F?g_H{Z?Hq;`)v_K`6GBVXg(yy`%?MtFoDJcd-Oq>Y90c>N4n2C?sZ&% z(X&vY_CbdRjc>qpcV5!o9Ao6+Lx8)1ps3D;JrMU=CO~N6h1^Nv#N6w}_a@y7gL_>T z!V}@FfZW5V324?=P@x>;n`?7~z#2vQ_YY=5aC2J1>*Jblb5$Uuq;m6nnowgWc*TZt znEy5To}xl4zFvl)1t4#j+3VG%3l`8Dd?&% zXFq4eOzs#N#4FeYE**X*C}0p+qcY;7STp$Om$08dTSDN()v(i{(IC{zP(E4ZK2AJI zaaE`NQ-{&!;`eGbE3(QQ{GV^Ye@OM<0?!3fbn303{A0qD&gm!N*NH4E?@C*-1949{ z`xZp+^OPn6QS}4A!sd{R1E0el7^o8xFAsU}*4>R<|`0DRVhx1;jDXZxR^D z6;!A%)^fc9Pk2D+9aL7bx}Tuo)Bx?z*|0kQc068@l)%{;!uEX=e(+y! za5Ux|Lna9tFa?C<07sk5CZMrygX-oVd6QrtcUJv5s4Js_l{2aQB8}Om{Ii#3pG%Q{ z*nm}ldkBLg3Sr>+kSLxvM@G<;nJ7tr^)=F;p};@Ycx{;i-R775Hb#t`ecniW*}&7U6;a%^vU;laI#?BG`R7jv4d`QxZ-P&bR!K@tp@Wz1~M2evTH0P>&09 zuM1|aMn};Ot%Gj5CQ{nP=i<&yHp?T(G|{!%@*N?G}M>qepPZZB)I%p1>m zyjDFa7D}a;iw~5gX8pV|YgmnvYq_0#yAcHqxn8(FRJcwAySK{K&i-XfpCKYOsMoQ^*v_6tFc zuVwnWX=6Q*JDRLPJZQg-bsqb=!zqa~X7!M~;w%nWz52oRR}GK{mNFE}G(d~nDFdD) z{%)}lgGX_kb>itUni4$Wmm8vdkEor<*4q%+1reoXur!5y~g^U2bDyJ!3np* zb-joQ=Hvr?HfrGGfB6;+3aybm)FXW&?#CH#dpY=ifb_!p1d5w)Yrvk{-)5g;Pg8m4 ztl#pTdAXyD)LZr)F+%L-uKBe_PlN!o3@>zc`s`xKlN5W6Q0PWn?9(0|EK-!JSuFpiWvz$xNm5^7n%TURtKv<@&5~Huif*map?J*?9Pax%!0>!5 zQjRQme0qCb{5q@jy04<$17B7G^31^sLQq8A{m>hAybfBAlhn(FHH)lS)TPM#F*f|W zx3G{lkwo%y2Q?ieF-K;nuN1yxI8a6#Q>RElcCbf+UMxFUW(YSL91zYb2)q1FTzp_2 z4(C^pM>|d2r4P}NB`*&KN&lI8$S7pq!1DiD02>mRVY`GjWGH8^KzLck7CiN}`vwR3 z=etPQ$>4p;+M>YqdRRy(DG%*ppSj)DdBboRQ))BG2u;cll79=@Qwx#b|4I09OwLE` z@#o(lK}(PdMf)y+Z|GUe+X_znzf!}&7L)gY;xy4r&CVn^gkQ5 z7>;&yZ7bdWc`=-fPO>>bMZ=3sJs=7tzR>I&*6nt|P#4Ne>Mj)V5lv7PfPRup9z+5d zjoMd)DFF5u!khm$P5@arVtMVSP*OB|#GcYDVY!l%5V1qHNIkzx0i0;c5THd#O=Kgq zKXV(gA}Ih*iUlowNh*&r*^vl z@zp5{5IL+DAtgGIUexlTNsCJln-;hI-(C@jh2Wulf~2%>{qV?e=-U}I0_A?_mNFCh zkrwR%{1UyX#(dwQ^UN^6$Pd@Yup7Zr2rJx1gkP?a+*1hWXbexq z>Rczs3!_&#k-G38K=awy#wQ;OV-@1m{n(DV-nY zOn;KSoqGR<1Y5EOFLyD_ImlKKHGZe9xj zSQDzWgt)dgI#|HtxVcq`DQW`6`w0z*%8IFUZ?|IMLXR8cQ+lQ{rNO}8QpBq}CEPFV z)KwYEW^ICagz?XwZ3adVQ^#m&wy)8hJZZaZ{#$0%B^nZrZ#I z+}+&1Pdb8s9s$03{ah{1YGK0~4Q?7_9Kr@kVy0Qy`64P{=wRQn}*`JX3S zU!Qih?EwE>xenx}pUnp8&W>ba8*h}ac#>6KHRE8(sG;XeIt$WcRV10O)b||E{#zme z-man13C9GgF`|JU`P5**f zysnjP{_IIPr50-sKaUFvc)|{lQK2#0Yo-iPX2SNxu*i2`i>Me;cNX3LnkY`!0u#I8Y&+V z7B5^H!js12#a2OxrLiF|JJ^#zwQd|Eg22Fcrh#fhFzkCB&@G5NP)Cn_s4+IcYI{Pl9Wly(6R> zK)Z%1#c-GdXTpA%Rc5Q)_U=;U7bfc_pss-+3kXgP;|L`L^N^j|;b_ZE?#0CtMj z3$Ex@c&8|VtrH%yT?L%gNLrm>E@Rv2(wH9mo*k;#2p`)Ok$;tcR3J#`(Rh9ig=W8t zE-*ifJ*7t8Os1!mB_h`)-C||%07PWMF&rg|pbCw_!HFF-;zWav^_sPT0LGzNHk{8# zUK2~QJQ#!`8)dYDzRisH^aL-Zh%3RP zmWWK&y@2PMIL`i_0{$(YE;eiv8C*@1hzSZEyyr&GM%2-%pQ-6LCRBGM%P4^lADbOWX^g99r=DwqJQW$bb^p2|IM9BqSIH8z zMkqWnA1R66Dy)0-Sq`8U!!yk920`xX+fP0|a}OtV?S)ddGvP1ur#f0H1Rek0t#%~~ zWQYDV!ouA6R!L zQA=@UsaCOR2*h$CwMk3I?QV>B-!T^Y0*Rxwl7v*(T>BoERR`W?d1&Kl4AjbDAAZ|U zcyPQw2eS0QTQ9!U!ZRolPqBk%*noh#axL!pz&hRNDIGC$5ss{DN&7Y`|C&J_sRw;V z?0_DbW)|5t%+atalZ^_X57U1-9Ekr>^ZN6B*Fp4`s$9aPQy6_tuLXq}F#ljz)qUxcawo{jYZJdDb4U`?*lR${-(I(ALvh5}iNahu5ZycbsE3(7ClZ)kK{0XgBIp zJ*M}Wcb&6Zw7+228qhq{bJMN=G%gVuYpxehzB4gH-+!qaX~!w{)pV5tEaw>;^HPJ? z^@{XV?R%)?4(Mo%k+ZvnKe5}aX?35W>mO%15ofL5>_%>Ye$Gei?%T;B5_{3>S)O=Z z-+H=Z11^)cKt*;%_K)7Ley_(C^=X=U90ZdJh;pq8^k<10pEFF)Yfr&-h`*?OD2;q@ z-0BRq$A&|{Hy>lN$lM|Mo^Z4eS$;^Q#~CP*&310W5MbYcy*0j1Yc9o6djg>6!|RA<&a~JIQ6eGv zo<$nkNWXiKEz@hRh=sIXlLps8ht;&E0xh7(HJc;kA?$sHl~T_by1Iry+4Y;|WzF1( zrW1w3FEWuSk2uJLQ&=FE(0JxFmTbTo)W{u(#Vv>*<}U0kE_N4lF0*i4T`+JUo{nzU zxQ&@fAxkseCQ$`r*cu4rDNJ2{Cr1`F&=kmMAx1GTjjod+u$ONHVX&M;RhsFn`A{Gd zwb6WGIR%>69pP_t9>}{5@MdU*tv;5{lHjEB(+sGk^-#qzqf1c77h@0oHZ=NRQ<8}dk zOQD>C?ce&-e$hx3Z*1OHN?NP+r9-=SpPi2;Tk|C@bS5p>a(bXzGE=#Sy5F6H)`*!W zpY`Tsj+=%6R?{nj!&#QWf&xdoW1s(n^Ey(Eod;B(xJrNAIeKbi9I^T3cfHg#EYb^RX5Id3hG{rlbQ-Vblwibn{CggfO>_9h0{KES>;AgLbiaPe1A%ue z{`~$Ja1_0_SX#@BAW{D9Y(sK%gzYvmVAZfq$=)vXT@P0ij>_=)iI@U=1?!^i{cvZV z!tIr(tfQanJ@9Q{Ij}`(M-Oj4$DF&S?Y;ANcYvDu*R8MS z5ir{*0SR>nAS0<{u!lXstlr!K{z+^ig7+paJJ(_L9QDvkfrb76@CXncBs>;gFkK%3 z7e1fHb6;KRZd~hbThfnjbOpd!<7Hp7l>t@(ZZuigcycQFyu@OV;>*boDc!n^paCjt7JG%FhM?wriN9&oXdddwnH6$Zv);w$L zaCBLsc=qT1EDir|`ucOA^&ln9md`D>yWTF6XnbebG>D?k&a2>Lc+5iw*sH6MjZAYHU+mNty>`m*m!)eTI-XD*7UmC4bP|3w64VicdAm60qJrw$ZYt{X1`CeQ1 z3x=Fm>-;XN?Fw%|N}QPT3P@DmC}7}(GDf06cJ58UQ#3T_oU}cOI~k7-MF)4RsmRXf zkP;el2o;FWP9MH4Fs@Rxw0zP?+9XkmDwMQHat=xle5{qXAo%mk^i@<*LQK9ewi<}I-4idjJa-G>J7;) z!l&d;f?KgIG2V2n9SLfJ_)h=`vDKX*hx}iuUo*pGaXA!g#gi;7b|-$Er^m|=YYBT_BvFZN{NLu2M^Ddf zl(SE=pC7*7ES9G~ef6IIsx^y-HAnl4__yRxA7;KkB)mq0W6*brNmAg$48U8)bDLJf zk1RCS4Q2gq6~$r`N-8h5$_Z&6>b5bzx`a(N>wd&<@y)U<%ga%oj6_>+--cCz7^<^v ztAsGd)Y(mI>3i2IlTbXXN3f`q=kQ8UwbErlr{DiRifu~^7?@9Thu3qxUa0uRFET)< z6;1iFbEN3$>Zpnl;mWe!GL2y9TA37eTg0?Yk$TW(*TBMuj94gt5If0iy@xeuD5jPS zKCr|#OSjPs*s~2tr;?QBpwL=?oD}EAEnbvdBI?h!Rie(vGgYEJ^Tb{nka6~&fivS= zQx7n904XBK<=dexkbsW!NdW?SK7QMVSgr}Svt&CoaZ~g081mP3R=Sz#_Y>nH?oGzz zzo>d35f2nU{V$B(&1Fkng{9CNf_Cqt_rxeWuFhBp*5d9z5w&KqME*u<2f5z zDE=)()%}Czhw0PP8<*IOO=;Pbn|GsnZZW@Sb+0GOdc~Y#7cXf|OIt02d+AW3iJ_`U zEwE|5xZ!ajf1s>(i6DZBbwEM)w2^IdK~XM&ljB)|eck2M#yUL7S8N7pZ)@;<|A}np z*j3+BR*taDj*q0?3My|&F8-kuV;DVywY_IowAsi2%1=6=5qLo>KMRe~d)d-Y+NXlL zh9fiU>h>|qgKq}|$`7fv;=mrq(fXzX=+Z7ZRLtXa?m6t?mPSEppuzbHHNaHnkm<5C zs`xA~B*vNebc7-Ro4{2UBj2?)vhk4E(8K#DdbN$jJ-n2eezEGpY(QFCGJ0plpLLat zf(q&Q=6yNOBRQD|99HqaZL^CgXs9eu)6Xs1scd3%J3e$yll*k=qHDy=F@8io|8jA> zcWzn>Rs80s?!?c1p`#9Dwf>L}`iN({$x{IWJ{+k(z&)|{d_eL+=T!Q-L_aLP+bx?? zNgg9uV1+sEQ0!x|-dP+svbGP(9X&5~#r|XM*e{+b$Qi4-#twtPOo4!{n}}Q$alhty zQfbtuA2ouw!yr0Z*0Qp+zTda`YJ2eBZ*?Z9BPX!iI`BH7(pLJ(Pq3<7EP_W4NeZ~u zcQjv48H9kruEbT`NO(wr95Ky|Ff&7I)z%y(Xym#4yJo*LD#*gU)Xr0x+1Cl=#v)Nl z#`gT=@7=msR*9RN!J-{4?mlPz@0z*?K@wP!dBne+cjhus{cjag@n zfv~oKXz3g~e<`Y0k+w*+Ef(gm6azq9=tC#t$kKyi+4P0dk>z{W>lwRAOB9U5(d1Av zf1#v>#?-w*bN8#C;TwJ>=R@2@1*%$8@W}6WSFUo7>CqA>*~l-qfK-5zVQUi)%MiB29xx6zO^U&Y7rA8YC#jh-=O zbF6SSToTCEB%D}k?QXF%n`+)jY$4g_)~P5&g!V@JYaJ}af;IuCWHIWxGs%RD>l~Os ziVF{Y|MwDY?`p>XKuFWw%DhW#{zgb4D7bQaUkjg|R`~wjJ9rFTSt?F4_;z&QUc4I$ zxgl58mh5pR5w4C4ncjP>M z-p;g6+L5?=)o7s+Ss#TKw!xCQuv^b9HN@_^nDDyuN0QkDSa916{Fg{2n>VB8?Ro5I z{X5jSV$;Y4XqT9^h*-)|rLGdtmZ=(5sU5LlTe8Y^K;ePzqefP7ya@JUkS_m%hzVSb z$`hE;!HJh^3$}Hq`;yPFTvwNU-b-$cHu`k@kE=@Q*H_t|RvPajAG$OTer)3FUa>rA z+T136s$B3l7E1;x;%;b3_%Wj+-vW^jrjhq0?n}oq)xz5-s26Xesgg1K#AXh4(s-NM zf!1D5BP+pb0V4B0Ty8w%#uq`}&?J*tEiskGw>2|6U*<0oet%B?MNrK9mmoyA;OyLA zbY+4Iy9yglH(v^FIP(;5^HBalXufE-I}%Dl+(9o#TN^*qNjXhBnmEabxQWr^V~~W& zg;yz6L_D;*Gb)$(148R8@eO!=ZZja3*A{jdj?qm>Ng#++fe1I2dyyl%efM<{@;R)w z#AqFfw0x6E5lya(3_8ij29+-6ZP`BUf;Z+CSj;5FmV ztc(E)yF(2oRuM{9HSfu^ zDiM+-c|})czX%H8-;ObDZ9x}P3!#b5;@rF=T)sHJjI%7mc{(b4c|J3=dwE=Ws#{9@ z^Yp=#%3tyZqeVX`mzH(tcmy?ak&2Kg#i}0^MR-AgMoGO zP__kg?$J~Kk=ODX=!knjDrCS?AOy-MerQx`-1!)S8c8Vp1Q_Y#S!KY_k z@2TrpJLTPRA4NJdYM!M?3EaGvYE>H8nQd=7e3&C`V1P)H2{}s>QjqCweILA0&-(`urhxSW zZSWq2_DG&{;yVLHX711f%imlhZN^JpT?&Hnv!EG{I_{zg?C@`TR7rE;ZyW105q9bH zzp*zDhF=>LmX?tiYdVpm^IiC_=xib-S=0%{sUh9`e)kLw^=~#}Uyd0U2@i`oh|u-Y zJ(%N)OPY^McWw%xBPUN8T4$mu1Hp=#nVnYSzBbePe#?~u^j{S$89YurM(==D=Xj$N z1i|5)R<=C)|4zUT9>v@6dvHW#b#nXv=8`)CdRz8gmOxH+EpVkDMCR@wG@?I5SuTrA zYtJ|j)4@Z*o!YP`(RPvC(Q@=74`0rAW^rs>Td>frGkd78kWM_FL{+eszlrpUt|q`B z?+(wIm-X&Pj^^9m0&E>hDgkf`Ho1Ae4D_-+t>@} zPC;9`2_jQV)RDzVTMn|I!Y(a@ z9@BRA>2S0rmitNFF`-e`$o3XGMlEqyIT?EQE*9AdPOP3BaJqsNca&f;Hg| z%yDvG8KOEh`cV~EYGdqH=A&o>Idft0ocLs7ia5Mu^O&TM@i1jbR&ZV%KBdC(dn9NU~)FG)KkD9 zXq_*ek)Ac=5b?2xG}f)_r!OldweZyZN_|HjqoZigxkpMDT$1qyvN4f9VY9czmUblC zvR>1&ml4)JC1_%pnQK}gctf;%dfzdar@?`enlTFu2eHk(y0GpMe5C z_E5pn++=r2)L$ADPTz1v^9moC;4t!6yMyeu8|8q!$#hpAn4>>_SkVKS`YiwyWlF7F+opp5* zM=V8b`sWnH!&zh<9N$imFvRT|xZve|RLRqc^5aK>GpsOuTRNhSSO>>yOJ?^+fWW zuahwo1!mS$r-f$`Y?y8}^dbd%HIr2=lnRbzsYQf|T$g+iO*=#Y7w|(rAIAl00N-jx z;E*`8pT;|9iK_JmFFR*>V%h62ohAGj(L=V0QA8J^zXj$K37)NuLS}QZ13lZuCaymM z9uREkQsPEcUeyvkrYyqCBX&L3_`nvZ7H7=CNxVK1mzAw@25W)*o68J7aGafG+DI`` zomt^~>f-Ys_Rc%qNgkR7<A-n_B9$0Bna0}qKywDbF&7hF&T&umaOaJOWdp}1bfmqz=RzxJOOC}) z_pgHur{_rW_^CDB6RG}%akPa5@*5gKhKBm*nK(8tPTR%bUVVStfrNf32!Bt0OFZoN zEk-jnz$_hstRI4h7%886RuE)?+P_%0;|^P!`wsvyG4hz0mVl!Z`(WHI1lk_e>rSgV zn%m79F3XHQyN9zD>WREFoPN`uUuyJN6K*tk&Q?iTw$ai>eqYVzjf;T2$*)DG#QG-t zEQ4vWe8}>P#b~ROVe>fU__$kYc|SuL)6Em-?mm5#=A&-(%EC(gvqF;-?h{j_3hDAw zsYgMbwef)oG`8d>+p4s~{N#60r#JWIY>^>=au6~UPjQ7OA|Z^?Y536UoRCWt^=&?r ziFxV5|IY%nn)Hwf;vXzgr6-Leg`c~f?dyR+T6KXBu0>wIQp(EWqSIT$sbwjCJ$0Z# zLeQPCrkZMUatM(Q>+ax<Bf{Abp4aPcG{;EHagpE!*@M}^<@miKGP-HP}_o~7|^0VvOq%^hO-Z6}$ zc=Sgnhs6XyH%eEF}vE4KUw*@Fwn7oLGWh_ts%`=c6IsRGX z0T?|8Jx^YClcEC2$-N38elv1c9bVwRRsG*OF(RXgD=vu#YL@%yPo!?7F@P0_2}6aLUE^j?3`JZk&H~LAxr1$)$=$LUC@1p zTXEP3CDtvzC;8OWjL2M5EGN-}UPoczE9o1HmZaNvXT4w~hmUDB=?+{gOQu4>zV_k^aaa!oHX_*lQfx| zp`mek0udjscJutajQ9#Lm@m+!O~Fr~-~7+6hyhSgj2nFEDv*Zn*tRg(DZVB)=g!V~ zb2wRY`g>52uUYjR{>ztKzb}``HAy})w(%@^uJ~sFOzu*p;@aAgtqKf0U9UOC|AKtn zz%BQ{vk9V^k|v7>FF1y+gOQmv+=~Y*a;#j`lGKWm~Ggixr`Oz33#|0DmQi{{-_3Y^xyTD+d$pr`6B21E`K7~ z0iKnUb~*A$R05?=HI3KwtxqNv=zD_W?bBGnkVd8-zw*q-Opes_;toeE7L@zn!FG@V zr9ST=?}dK8iXf&rny}6DX9ecfuj)Obq9T2hjH!|e`zGN;R(~l7yrIUk4v2gGDPcYM zKikjyY5XpB1z@K=ZhsxC*RTKh8u`3=U*hHepP!YGCPVu{6djhpw_;Tdl*( zEuem~#{ebkU8$fupOv~qEN@lvsd~t>7G7=oTSk<5)=`;nz4N8*ctcqrw76G-9ehf) zBI}WW>))X&Pih^}0zZ?+6iyLzBM(Sz&mXvjiIAvQtM#kte*@7BOI9Ib{#^MV;1%=W z?@Gnxv42m}0{GuORgVFA4W6rqd6dHt2ST|dc84zBveR#z*)N2AW!`)GnUR|+zW zp&)-o+9mc-{DX4W73Mq(ZLi-*C~9Z*M7%Qid3Yn05V`w@**5sjwfdV73Gg>C$J)c8 z)_r#MF-`!p#F()>dq)~2YS&~eP_Cucw<*gCuN=DO?@<{edf5s8x82d(bd~fbG_R5{ zj=mMj$|EET62<7+y(nRyruxi0Ww&;p{X=6DY2H_t2d;qqr}acVaF%KoS3oeYRGujR zQPfvSor}W?YS*9ke+|hOgA6DxgsWi{;|L1x)?f40o-#a=hKdHcjpftX)^AHWv7287G$vQ_=2FkHNR>_z(FS8^wzLk$e+b#1+d4b+`^m) zExL;`jCX=Wptkbqby~W;^C^=gp4;|(xRL}{kqo@8p}z!6R%z^UatcH)#wq2#_3{wS z5TXuuO_!zyq=MRB7T&1*-Fre~x5KzhqtKrr82K=At`T#Pl+$L3fQC3X3vsU$bl0eL zH(iQDX=gGj6%&RQpqMY=bl zPQM2az8Q=iWn))ez0gu;-*UL|q7#|FW}Uyx$u^A_ec6Rio`(m(BrQRW(3{IbQ+ zeo~EPt#6CUAW&g+4Pn1AuYD%(i4VC%IKJJ^_+uBMc0;6=^!~#(dP^AZ23rOOzb!~uES~y>$iMQ; zSwjfHh%p!$7Ih8W1Bp}7G$bv8B?xVz9_9G6$6e@WoJ%k5+aW0IIP*^N4*HNQuq3EfIFf5h--nj3plyZA2d6Dg6VrT>bX{1Y9x*2BP`L1{U{()KRUUSabdtdw7 zpKTcLudCY<#TNLzYS^5=kovl4M`?J%H7O-EsP z#@&qc%+{K$=Q+G}+BP`ivY&A#8}f@VQJ-?9Sn8Kdx}b@rTmZ$1Epa(N9$JG!MezOG zxuc9C28W_vk&N`}T_~67{m{l0mnh-499qsveJy^YWw$BQ0R*@U{yMuePUz|U)37x> zFP$_0|4w06ja%j2gBbxvFxwNl?|5uaFRK zH4V>0^Qj^OhKCOO>6CLAI%dVtwG-IM{YD4mG=w9FUBs0RFVz@>vl)OP)c>$2C$!GX z0m054x2&d!Q?S0&y%9}|!L;JJ5c*mIVEVUl0VpcGkb;;;I;l+qFI-R+^%JjkAu}N7CrjJLi3qBPws?+?9NUX~099 z&ZE5aoBJWCz45EheXD=Z7%T%*Sy1jV{E*u}ziVDlzrZpGI%W|kKoYq}U4 z7GIm$(N?EZ;MN`h$dwMsoT=6d#eoSH7d`FZIM2Jni~E<*K<^;)^DvEo2!^!^<#)S6 z5}kw3VSUC7N%oawoWI%}4HJA?4qv+dWr=4H_6T~h_WqZRbQu$CE#!Wu3_itZC}-}C zLn%cM`v3)1_bxHb;aS#Kg~2lVb(WrgVbh9_m@-L=nLqo2549v7%3ND;!?~>`3AYga z7SRKliU`o16J^8leGS-v+w6a1owz2vFEK3en>E4|^@v6f4wt(&g@|{34n|z3`$2Hi z>rg9zqu8fpEF1LH@tXlN9d8_&>ZGrW9-Bf48$V;oFC7Fi>j4S~|*?pJ?8 z)XKs43FO7ro*5AwQmz+HhGH~Ef>xt|5{yPnPlPTPjr*|o;$g)ho+u#)HkJFr|MFSr zzsAU8qrdet-&2myg+!4)P~c*FwI8-}w1MrrSwVb`s@iO9VO>?KEtyMRTXw|E2W__A z&I~VZW1`%GxNBf`4TTvmCL!5es8}k_v|l6HM0YWbbK=p4l+BRlRSMPp2A2H>tPth0 ze<(`<$06gM$BUDBjT%%4TMCb;IFQEV#WM792!hfHzZ zxH4%CQ5tdApFJy^QY4?+2(Xum=*b(1*QFS*Z(AAG~2W1{z zZ;^Lg$8;Zyyqkc{qn9NdF}55)zB6z&^BGdmHz(6&*DEax*3x<*o^vTdVkZ0pd;H-c zFO$B0XxXFx9^#u5h3e>n6LQz2lM9d*jL*eTy)Q(P1Gjz{Fg1*sCV*&*z)};~X=wFt z%&SwOIYigI7r_`CXjrl`a^wP`3-4i_@E(|}>ox~NQb@%F!;WlRUX zv_Ca2PB&l@giE*~{|N)7u{hP5x%?&?&5FxNR?7U4(_#Pt?xRmaipqb=v@Cy}9aPSsjWsg&z@4;E;vnSkra4|jM2F}PQx>_*8LQ6Lfj3*EylaPr2bNon@& z1Izo(YwB}U{lL}?W51=~*Sy%cQubz*3@wS4`8OW=qobV&>zEQq>=h zCped0$B0&dqoA1~^5@y;s2ylDewBkM23aY8{LnF9sJ3Nydq#NO1Ue|n2(L`78yHzwHE0;y) zne&VVKQExz}OQuFD1-x&fIc{eBlDf+rRW(r0Y|QpKtFYK7q1> znNlfn&#>+3r?>|4)Mbuvb(dCDonPTfly|W-4Ez#5h}u#xJXK_AbG6VdpPZwCa6)pZ z)51HSx|m%hx+jhn`wUoF_Fkdb!;%p2VMC{G5W(yUW8DG5%uefOi+hOS(1*-wej76C zW;L6sPZJB(K5No5Qbh$l|HHwjikBe4lC@4|(W(=|=&|jkGx6|ibqG}h_FEs4{j_t% z8`Ot~bas;v3d;_0+akm~k8ytO;tup_k>?z>(VB>Js7^WESx8BAUXKcww-0VUPT0zb zUn)3P_r>NN<2;~kwitC4l`(~H>W`bF@e)21q5aD>YG=tFBuN`ueZIdE8o28MX3qv6 zQxn2BhFH6m>cTIJQ4jDuQZeW2Ho11RDNia<$Mb)3chRM(HXj}`5`ZXjsQx1wj$vS* zd;$x2admgdmIdR>{7N;wCqousJGU&AcALt95*mU6(K2Sy_)ip)@%5LawYSqq+D3ed zp63f`-VKwjZuaeN6(UI$;ZR%5m@wE1%rk?uCPUm#ALPpGXj-1xKH z;7jMIH;%J&VJ$%<#XfnO?#8Jve{#PtR8YEZ$LusOvisAhxhJ!mTCiqy`+Y_jE~ogD zn+ZG(e7rk^Efo!z_?i6$6hGAKlkjCyll?Dmi5)OekYvb0j?AYi)jEke1CF3iT9eRU zt{yXNl2dKO0huAkGM*p65r}J_WWc%C8I=i18mGiH2Aj1zkHfTlz3d)ea7klw1W=~F z?B^~A#>^ceFWcklu1)oE00Rgyq1Es~xGu>yZBr%QFEij>o_Z|lgXdE&1EP?3!d8HL zWp~n37k9!#+^@8b1(i&68gdt=2Zvs^hJWk_^v8zA9AgI z*Z8@KR66vW{On$2n;Qo_tm(&;tNDHR>wKtPd#WeL1N$!#Av)Y4wjV)#tQkwXqMk-& zJkr~P|Dq^d?&XI3YeWxNL-h`B0=8g0`E>Biq9=rtaTqP?a0-|cweLqIABZ`h&wT(R`y`W$P7?Qd0+`f}U+xR(n#*UflRydiu$B2WvEg}XzsB8?D`+E z6|W9A@0&^Uw&cD#Tn@l{y{>^dq#*naW}99)T!A-44ylhdF}QVr!39Ktp9)&A&=(?= zRY4gnl3Ld%GG+gbVPYg`(8I-76WQ4oKe$L0QkS`U|Jj~uvv3P~`Bu1D_FEa<&22xl@fy{rexU6c zNw~pk{1E(#+W`zUgfvD%{mrQH`FSW;C^PSX9-2_gYqm^SkKG*+61n*AM;v{|O)d&f z3QN5^kZ^dYC31aBd4}eKbRLw7W7pNavCvrV8Dltm?k)J|-zApU`VTkTKp}er{rAbl zq8?~Wx!?N_D*O-_UIeP$TiRr$_@)+&+5J{b~&g6;1ANV78mx0 z>`@p0qL1H9BW|xbkPgQ-!%Ms7Iz!O-+Mz8)K#Z&2lY_0Cy7QQywFA)p3D-vPsu6uQ zf?M!-tt`^Bn%o870z|b!OX4%BV&0*`L5P|?Q#++CD4Hoe#qcycPvPGrYzQWtdb>ER z%YHMA5b3S+xs-q_4a;&^QkRsoryOJ^lu#+Uj0LfQ{P8d3)P`LXZ=gx8LloL|MXg<- zL?3R*`5Ugc<{_Rd@dwv$qE55gU&RL~sr7%CR|2mhcFvCofqk1(Z9dWSw*f@3KqA-v zsh*C%X!Xx;8jlu0!0%msY>drINrG>6`6lVWLbCvblGdFPjzBfFPy?JVH+#i#UQwvKS^~1CJ(X9Dr5e@^ z2KdQxOgWMQB-7|F;6bi}KJ?c!8R(Cz+2WX;`leQB`)%y;7OVp`@72+p;bqg*&L%!1 zogOZ*xc>BX^rhv`lB;^8LjvB^<@ZV|Rn47Yqk2p-4WjFy(;lJt(^(O zi3-*520A>P+!J!9FHw%irUxGgrrkLh+6ddmH?kSWczpg4 zk7RT7y^_Af7YTPjKR4=^Rw3QfPNKV7h9#&Snd;I237f)qQ~JOda55@f*{;j9B34Qy zcDs%O;P1YZXd)i?ZZ;g3Wgzrovc=Bfe`p4JfEhg(QQppS$fpD_mp8RdbAnq0WBArX zNV*CRR2deDB;i;xGbW-jV|WZQ#+`HIj>?a?BYgt`oW9V}-GtE;LBAS=>Fo(k1pdHJ z##a*jx7?GHpovNFGuid|#&sBJr{@3V9xqqUHvZz}`Lk3*Xfu~LENETs%diTb@ZjY! zhSnf}(~ApNK4oO5c}(5g27US`|E&loipo1a{G3O#gQAc}1I_>k=z?r7s#gp2qn%F}yX+^{;H(h@&N2a4KQt>l2I< zpZoRRo~){K8$AVbqge+4n#nmM#dGdts0jw%0{KWW2h6ahEPR;;k%KeAD!fX(|ODMVAB} zRLEP~n+K|>rvV7OtymOBuXbG7FajD+!ic6ZlTgc?7Z17yck~gAy&_%LXVlOBMtU?W z9$-Ip8`pfyrF>kqJP1cVY>u$K61cL=<9yjVatQU|F_K~GvRzaZUDQ@nD)YMqx;!2a&=yaGS==#?4$boU^ah7 zjc;D|E6w+$Oft&R&NF=PN0qDos_{K?UHpm!MoMR;Am9iWjB%d1&%Qo-*+~phforwAvz*t%U6u4k<#!$ zH=E>#v4NJ%>lbSFN$#PH+`hxvr9MmKtj_OTKWD1i3Wlxb-1xQsr+;PoC&A0c1;f+| zV;Dv(?a#c}Gs^uf9{~oJ&~m)OYD~WJ^sjiItM?LyTXSJ0s}J@*;7yqLbbl9~`MyXI zCK(*g=i(nT@aDNiuyq6%YAke{d=*W#cBaAy`$6D=M?sEU#!Rn%6k?TR!Er9czceHs zVK%bG$d)8K|LeR16af;?0&D+z3s!a-CueoB%=g&RRjtXp546+p^b2;@fqtRKFH~0k zRTzg1tNz08uMs9n7|VGFH891$e=rEx;c)RFhwkhw`?uIFUgW?yp8bWF-%wMFMXPUp zCjz^*b#-vN%(2FwdHR59qNPKwm<%NnskNbCajlri>pzEj2g6&P9b7_%W3p!z=my{X z0}o&43xJjA=#o8hex(zy#S|xrBQyj?Zo7-k+Mg2YGj}Jm7IVP~a7g;Va}DE#V%S}e z@pgoFcRBokDg2y)v2W|!wJFPRqg_DR=E&c@H=o+)HnWpGmWR(qb2P2}pLrouk~;AX zIlnuFIaP8{@NiWqSHqrtno0Yo4@7YEcEEa@0)yC`sfySU?>KbEm0>eKv2KnSif>5~ zyXB36$Bu)qa>IWgFzx z@1HgMpbbE!OIQQt`_ZxWQzj(t|GWVI`AP=9vqyDPWLwr>QwK`Vl;XUTFs)t1sB4XJ za?^15@Od^_$bcmJ9sAC7h;MC*s{9*-c!$`#QsKlDlPu)(UcGcWlqZHY%jA=(>8AX&1A2In;}Ogu#~uH^5;rLr>eKcGQ= zzt|ptCf*W)b4Ox|ndNx}0qJ02l*}Fl3L%E-;Sc4dB`yU;~9gJQKi zF~qDUkSLR0B^GE52RW`=Y7h{c`^LE&Oh)T3o%uhK5O+6Tb(NF=*;f8W-(sO zvN-x_Q2Jir>3Z`^n(CMy=S?-u@dqS7c(u2Ohu>6iZ7Kk%uxvV=-`z+Z_eJA=L#v9q zn~-=>icl)vr(cC5RV~eAIf^N{X>=J@Tt1n5b3R^M?T@3Uxi!0>#wAfVG^7|~i=~CR zRKE(1Uu844_F%un+YX@{v{s_cV*4ZFCjKQyG=tkuW#`L+77=cFzj0rkqlenr`Khm4 zAe7l%%_N`@H^Qe$605JjojWm1Ly0#2%!~yq2B#rwzSQTSf6rI_D98D z&a>=pr^^rbT5ki%z}4>%t`O*K=2@md*Ba61s*a(K>`A`}7k}~#i#nF|u;3tDAwp`3 z?a|c*ipbTJGm|EEj-1nMGlRBJcGHc47giBiZfp%1LT`UvIheLx1O`uQ3E#g zvvLY7SKpL#eMzlU>X`HEqc{I*?9Maz!~eEX1X2*1#kaS_H@Y8NX{44E*8B;jP4l#u zR!AuIbhWVFwt5ihI>6RNp^fUUHwU4K3jp!1YcbMwG13tFfV9o}hxkHz#2pStiPXS* z#dVoS!0vEB?8WOm9FddB2BVWi6wIUFDx)$$2P13*{h(37LJ42qPaL0oAz?ql9!#~; z#dF^@piW~u`&J|tHAc0%9qHmPFo*Tb%Vh5Kv@@1UUf^%Jr$B-N1AhZ@&)Hci$tijl zscY+R+(ggW ze};#;n|RFHhZw2sQGsVf3@bv##Ip+qSyCW1?Tp&KDQ=Ct8LbsG%~(+1ED|7%0ALFo z@kx*7{59W0GFpD%GlBQ-S}l#(#Ut9sXflhd8!px0MQl(!yNMZNww+)O zRh(0WYYuKIj8FaepcWR5(4HsNZM^0a^4+Q;oGq{~=4B)p3#{8;P@mU|d$q=*uk2`;?n&ik*EInc9GN`fOu z;w~ddIZ2USwT-QAtxC6SR)S8me*3#AV;KQ$Gep`enz0Jy{zgAp;6!8#$5dgUUS-Dg zTY8~!#nNbZ93rAS5zAIK%)WvaEA%waeWc9+cjfacVH^7T9`+~q*<=d|bY*vGlXzz; z73Up?+i4j{m}%6qD9CM(m#|=yqfCKY7M#JcKBtTF2 z+?nV}bDLm{$A>w-?yTqHexe80;|ow$T1{ zC6PxZiwy-pa&T6H_1x`P{N4_NVFqvn@#Ee9ddl>voR=#;xZP5_M9ev8PE95*y!cqi zB`ph&+FK)r!tFPcSrCIAekRJkAPqU2i_4Nr9*titLAsSJX;w_PMm0mfz}Km%N>hp3 zR7)@dAas#lLynsQ_@jTH&|ZYhxGia6(-g$@={=d$lL+>al?9QNX`UszL9k262RCQl zfHb^R)QlB)z8a+49e2&`y@VF3?M^mIabGN}(vNA9?tMn7D(yw?*%-O{wGT>BJq|CD z2tQ_B5p0l}$zxc?MpJI!ux@VNUf&#aBm%_U50$X`i&A7fhi!Q$QsWeo;}jEUnkj+! z1w!3KMpptt9oP&3y(?Ll)`fUx@ERWFa`a2?R&OwmDow?TzD*>WNV-=9%M1Xx+TjY? z?Sh}e4f}R0G!rNQ;ot&2*dMy^s5-oChDAD0!y`E7)G0H*raZKS{#PpIV9?d0_3nPY z%A<$BfAZ_=O>kO0_YM7U&TrBBG;;aQ4vE5v#QH}r7+k9?*Knh|e0B6(-_u50FLSy{ zZQViRp3UlBQZo86WzJHo8ynv!BQIQ}=ONBz>E&Ve@%w7|$~LV=%1XhVg#=kBt?Xw> zTreHW24;a-F8~S0l>TmQ?YS$AgxT&_bk|nt1g6`<9Vawnj#CQFn+?tN#X#>@;Z;>~ zEY>f;L00RHGfTFRc;c8ZgDjGNP&%yo%DLfV4@`h#Vp>Vx?PX_r98iH8bJuZ+>%5w? zh8Zm}W9!|I>7mum7xvVQ)fA!t39dM4BhbC3SBolp zbbT}bCil)+@+A2eNbq0w^Hzv}bUgE4dT;)fp+$V8T6laGi6W-5>`~uep7q5ak&Vu{ z5Di%lU^w0+1Ik65vMgES{(F?cY(D5~_$-2>{PWse69hkP`VH?z>5FryI^UZO3NBf+O%q5P@qRJ-<*b4!S7g_je8(?@iYY$jPA|l3E!<@z~ zH26x9w9y4a`x)UKzgdkiT)$M=>l8f~tV5X2ioeebw5f6%!sJ*F*L5SqT5|J(Qg~hP z!7g%?E%szd+`;ZuG_L{81m1$N_>~9UKp^;@6J@bJys3?Whz#beePle#9`YTQpdw1) zZ)e$m|JvaJR<8>5ZSC%$2`i``Y5W#@d~&h;Wl%x`AR!$%%~v(fMtZ*?&8rpJe=)1n zEfaoB%^DaY93Z$q*5A(s9N}69lux~dt`7!cv8`z9`*Q{GuQt>+lt^D1frAjBj+FS9 z1fngQh(_iCi^3?S@^D=tStNPk*i)b%ILeuvQj}_jOex$8>SlQ&F4ojxm6j+M!Jbt* zbQq--&__I0KdDuAS-z7cpRT_?Waipd_ED>Xb*0i)o8-v{8i}+@KRaN+zr|`))`(N~ z?WM?57tMEhtE!ZeE~}JdY>*Frha??*+JxBwn;$$knJ=%$^`G&8kuMj= z_2O#o1vKqe-zDP^Q~LZ7cOrCYwvX;_i3!ZhP$(xXSFgA(FJwzK+Cg9eW|Z0ICp|+O#*5XM0Jh$gAOG?5FRuY zLIQSif*&xldI5)__bclkbNYaubPBij^t{0_`EGAH;^jivM^_dUwS01nS&H|Tg}tBS z3nm%fYq&1<*+2bs;XDHu@pQTbH$aq4QrTboDV9P`<9{FEZ73RaU%x^&M*2VM%h@Po zA22fuWgn$lFYY4rg911eCn6v_&f-ioi+@~hAF1BzXCn3-Y}Pw;+O)+o-0UcPjFdc^^L&2JJXMA? z*mI7d=d6ObSx=cE?vHeVmf`1;(lv_H90(E1ZG|aMcB5EDu zN|+P_r6G(r0NVDF#)+-wZ0GDZ(=Z*|7(p7v%)8~b#3Jlk@CP5FDKyD*9n94iQG~x; zz6W)C@afhI(0^@+yv_NwN43;V&0&c`@SB#@PMe8&k95qql`G!8M`!WTSOY#n+HeEW z`$>NCcf7s-G+FfLwiR5+itJI+{Wh{qEUSH%O;8h~LM)^7~|_ zMN$QKs0=qbl@bb}=z#P;5_Y27e;#`j!o0?2X%G-hS&3}J2UsIxKM~cX7h3aDGF2c1 zuXlQVUZ2GM*^)SiG#koGzkxV1j4@GucvT&lG-`7C{z5RNFn6OW=t>o%FkQ<+1T_Nr zgD*x!nw>A02m<}lxES44Y`~6%8L*=vnR1~-??!qMBC6wC551~vMgFnlv!v9-Mp&}L4!g&>Z57NlRb(Tv%1 zCETKLJ>|l+3>C?qyWQ2zOpubs8o0U*Uy5bWGJQL3D{X-{j0xB%HZTZ(&?#K0ojmHw z8OY+)kf6~ZQ7@uW>32CGX019ukAc&@m9StO>0JGvul3Vi0WwkUi$uKqTk#z{W#v7o z_Q&E<9u=c+zulQK`!_maMC>u8-7K8$)at%D@cJsl*Bog*j08s|)F}{3XH*kNI7*yy z*Sab}cq5wo@8-o@o$zoW00uHAiG5iqSEdIIL5A@Ye{jwKQ@Coc^tpLsdyqlhT{;oF zxfEZzLg+7`yRw*K-|EIddVFQ$5TN&FD80K*xBuR4=$D;uJCg3e?-A0>XpN+8U_*N) z+^xr(Jl6R*68Z!TP@JJ)-FA1Ej57!lS9`;OefNl%=<(>|56|3%pj^(1o5NgGbLH10js}uW5e5v#w(fhVC0c4h*8% zQ~hTgHZ4mNrq4S*9P&6zdg@mmMrin+^!tjhE_GC3I`nQbjq}6^Q68Sx8W3r#D#)Le z{7O7faL?p>o>wA``2Do}?j6&e!oX-Yjg~gi`tw0(&L8nKL-7NVk&l0q@#1ydwz%g; zUJx2lu2dG?vqycnN0S5qA_c=&Xi+Fp4JqggB#G0GkF?Hdf zJ@JQWUUG}w)XF&;-<#4eAYp4lbAc=W-i%m>Ha6m=8YELa`0FN3!^~HUG<64_v3RUf zeCzcpq%FoZv;xDXg&PMF0?v#F%sA>_Su0Nr!`(%J`sLsIcjabJt%E*@d~tl6`}5JZ z&jZ)0CK@qmEd>zyhN^ew{hLSo+rUb|FNoLL@k$)&;yf+pU!c60{+st_Cwm$^)Z<8r zi*=O>k}FqD_{VyI9xfK$pc*T>Z7GvRNDXpqj7*RN;P zn60?U&_;om(hTTZfNK z3vLES#fUq!+sJ&uk&mFWM1)BeR;Om~3!?zO$W$#MW*#UX;x&v@H+Dzk#j)35Eo4&O^<>^k*}x(sVSwx@mi>QCc*<`+f&q?agx zW%c^`{VHK4f8c@y%5e$p-ocdxw(4tgq+-jbN*Jj9ZpB!vd63oD>&h% zo!7$Xx9&C@I1v}be4S_v4B$--ha+3E{>e}sURVJY(C7&!3U*ajmPI)FdiY_R&)CL^&6pU*7vQP_)(G?iCPyvU{$A3w}{9m!9L4R%rpD$-}@U0 z`*ZvG@{R6M>m;7~^&-jMFWOUya~3j=PpVq8j)!uKruM`R7gDOHetf0?UT6|sq&MMj zx`&Ov^oAUJhVTP`R`qD97s8Gr8(kgWXpBC0WDymuac=*Nc^Pvu%zSn8Yjj2ygdo|E z`=JWaY}9vDd}rv+JMz5wK$Mchi!?d~c>5mw;sGLiTB&=N_Lr&IoYUoF-0|Y?n_4zI z((WbUEryZp-c254RDMPqe1)~xqn7e*)r&o!pMmVn8t7*)2y2We(i{*26t40&|*zjO9r-0NG*$kOm1Ew2F$_oh_1q4{fkiX>0X(kQ!^ z#^2zm!Z(qQBYcguUJxAvzPf_u5 zNEWS?OdU+lq_*fV;@mgBj1NR&9Vlkkbmu&UE*9F64%PP=Rku&v;`Q*zsD34YE?@KMr=FMp-m;^^h)(jiZ=Dk~gKI>5M5^*Q{mSQBk z)&vJ0D?j}}d(4gB^&|k}W$q^ejaYnWe1efN$maYU})mgsJB+XN=OEnL} zNzm*+@7VH!XMO(}!r_NnBF%2^@c)%5UU31{9RLzn4UW+M6MAEpHa*ES8g}8logBG) z#dKREXs9LZe3Be}s6c2&A}?tIJU#uggM0#G+~r3W=J}=_Oh_QvU)nGgcR8bkS%dVo zYubDu`(yx|Q4dM85jNir3|d&TnsfU3s-#P*L#d{$E50*%Kr9n?YNggwz^L$Enis9=WN6uF}J|=j=s{v@1jcPzL==XQf_zaoy*d0w20ffWo&Q)_a z`=7jx4ljso$7r^sBjL%>L^|xJmwxSdF@yA=Ph!)=Fw}enL=Xb&j<8lRMDXXJgeWkOB4= zr_UmK&&oWoeCc$j^~!RiEbb3yiqCz^K@zpMQrH7>X!=Opqr1kau=?LZLKPEM+-dhm zUITFem{E>#+ew@;7r>9V(!GaN?U%P%XQD+s#uC`^ zmb^o52V~E8kZ+1XKus6H-!2H8@QG`Ckk;P0=?L9E0#QOeM!>_d&N)W0W$P9C^qXy1 zv_=^cgwnmbxW8%i@AMtV>+54Jpp+tqpBb8)>ax(#vrpuu@Z)i|0*Ktbg6MKVyNUNWQ7=svox!w1BuGg3| zfz>kH5b|t)BC6kcD!k zJp}a2+qvB2=C=PO?;$7cFv7kdW!giOOvC;y94gs@00Eo((Kj{ockd8G+K!0~|9Y8{*{1ziSa(L~3>}w@W4_`)KJ8?}ul~0Q@t)eQ(l3|=_2(Ha@o8E3@XweL{ z%41b*bBA>E3_bVy8voE%}Dc6;G6Au!`O{{AWKUcn3X9?ZekMk1l zc;J&l3SVgq6}`A2c{G?X zTjmor{!iMz`sGLs!MAQ?iq_;9rGS@%w32#vB&-6fT z4ZPfWf5*qO*4as+4SSo9|4`d5tTJcvqId04OdLk`8oPGcG>V8RipCj4CYHE+_i$z5 znC(lU$D6p_IuquKB)YHJRixwYU2`HtZ+u52AJvZjTk)csnwRc+qudk-nxzlo<=MetTAS&6y<(1M)E<%@7nQr9&B;pFqsEyw z1B~lB>B7vHo$$kHJO8Q8nVVnnIera-gfUNEj@ahzR2ADfo-U^Y4bBTH5C158{M24i ztdn1$hq?jWZ4H7Y7BdcHU>!`;W!HViXI;4cOfjqNor85jm)dxwBhz#L0^5(06;eXl z>rE&2sY{#qY|;^68G>izTCmMbhztwC(|5YFc+AaSvXhCOOPJ-w35V|aEP_XxPiMs# zTx5ezNA*tk#`0&_9k(Wx&!Cn16nT}K-4yfLib4B0E;YQB- zO~wJ#AyWmC=er;SbZB%$K%Vag=YKjNI+h`_X(Pr`=O0NWf+uP_DhRgravCYP)!uW_ zIm|qm5uHl^DINUY(m?npM9qq0#BpVTGjo1_Oeb<>0e6g}M3vgi{p<|G+ zyO$s@z^!r;8S_@JSV(wg=0(tQBg4jW8~%?T%HQqe(-d4ao#ZPKDIBss`^oG$Y3TfD zodH)dAx~{m({|4_JerR2R&?m17bbjkHO>DyU9lPc6D9n;+c9CzuGv?s+V#Of1CpXu zJdW-ZNBrk0|0S|j-Uy^*d7^#pTqSk&E-C5Qyttj-Ut?l_i&5%?tCL}n}__~7~SPAh@~+mXHooJ zXLS#jBnWzxsJ-5$U39~ju$f)AlM;Zkg}g_WnJg=C5zd|tD$HMUriK7FmoFVo_BB7J zV&BOSRHoO1 z;q6hr0=C%^uX%3$<4mW{6Uw^dTnF!rS!BKn^amgA%_m=7tdT@a7fkfrKK8mA#!F*4 z6{pj0%PZ+Nay!SVz75Kg1i*Z4^jH~{kxaaZa1q@KdELD;SvqzyIbM-qa&b;O*sdb% zNw08bDOTA6GR8L3O3`)kM?aO!`_ zN|h7?tncyju6|#$9UOkf8_nEe zmEwh$h02JN2KTCl+6V?Rxz-I8;7MqN8YY)FyQql(;#ZXk3oi?6`YFP52w4VHIp@ag%&e!UL3D9^Ou&aew80aqi2i zseoS+jKYwRGFzip@vmMKD0zKU z(OFsN(J!!i(U-u<)t^~9sQ*rlixwo;?;s->Nw?3pGwl2?3-lc+y%-T*FWa{+{T(rq zSXL8pfjZdev|pvzl?w-76o*Pi8weo2+A8}f{1KU12y-uJToe~Mz;_c`-1=7?Q8Ee` zEkTkm!C7Bf-dDPT@5J#sfgnl#h;5g{4R~A}6mnpRjZ^+qRwYdO3_m8u&bz;UNK6Xb za7ikmX)qGJc_|gz^WQ_b&`E@>>;3fH8}@3@5%^~Lp5nsXl+k%!V#P;@3x(wh<|J>K zWi;f%8Q;i`l}S1Ex`HVwTlmz?>JtWJmpOSBrrck+nHt|U`=~9=NYm5=#S&2oAyD7wgj=*=~J>d6IFFXwPo*s(<(uJQ=n9mltVM^V-U|g9*A7 z3chz)sFI`jwd(Ce)BH&`@wO@5IMuuFEM>AeOSfac8*+>Mo>=;RiL4&^Fo}oTpaWu- z1l&4o%SYfTw%CO+S(*TE*46G(qS%#%QgWqD3F@>NYXyM^--rC$O7$5UIFOHGIwY|q zOW7XPD)khthYF@9ToQ8bkM&<9x=gQv`JWpY1hFT-!p0*}@{O;uB zgFk}{<#P(cj?tJ7H!^qlJsP~bC0~~Y>;3Udb64P9vX#5y3lGXk( zR>*&*^mV_+i}}8?f$~Q^0qu^=@Mff0$h06 zgZaLNFZrpjH?r^D0%wfCUj2Z?>qjm6HXyeLUic|~b_$Le{Q*;2cVCTIVbF_^`8DIGj~ z;Kik`*Yn?UKPuR1s|OxPT)OsdcqvfiKXSB4>1NU1^47YL@E z1I`R7T_U(^N6PXJOfyavi3(nlONQ-LcA`FAk0l0;D=q4$g)L8QFV`2--N8n6$;V|} z9`S?X;&841TmWFLqV!4EehGVT;o7K`BvNd7X^Uj1W*VpWa@*+?NaN7X@y0i+mN_cR z6OYRizpa~FU`-a!r|`AiT5H&vaXf9j4SyV<$99<3gScw>M#Glm>JU9heJdp-yk+mw zIhN_S_xs#AK=OgiVs-^*+W9c~uMSkaSJYs~+2I^_Ji|MXJWXc@KB3FZvd7HUCf#au zztXLb*VvagiRvWd3n>I#Nw*|k67>rezX=;;oI>X!MR(RC2c@eM$QHgxbC{X}C-TI<u2wSerKe47k&B7_|j7}>o2um4cJ}CKw@kKK1yWwxbW+cQqwD& z8n&(g6m!Wt*r|kBevY3FFd80oCn269_95!wu&qwLgJwIHel6_uYPPYzIvbG;X^zRg z^>F{7w`~}Xh?9)3#|p`#f9|~cC!We&V8UyAXFTJc+P`}zYU||eYp>VK%al|9~yfh{5^_eXyt#O|0z7I8-V{;(ty%V*O8G%5XMHB883Z&{%+fH_0ii?IvUEUh$kFcggyC9b9 zPq&n?9r@-P_gKoajCEt%L=oCj>i!h>p6n!V35#9j7oKHiHJb<$J=)`|V1vvi4D3V_ zX@J!3dL2%ezcx#0{y&<|I;^Sxf7oXmjP4F$ba#uuKvKE{0b$aJl&CZtAt2I-q>NBf z1VjOmZV^PJyPFT)uB{+ZQGQMNWZu~M4@??Ue| zz);71MXh`IjLAK0NY15LV8hz*{YGra>}|sywWoD<+3-jW;$QT0p`D%Z3C!+yW>B!P zW!J1{eMr+SQvd!u7$Wu6sJ{Hhze=F}-@&0j3iLY$$w*ilE6{He!m2E7oo-LQhd{FAj}ptr7aG0#O(X7{w-wBNJTl3)1QXYO58F7QKl zlbA(~xftZ8`6h<%pQn+FQOc5)@PWmJc~dX@rqY2}WtW}t{@35Ez1C@BzElKXR^#IC z|NVSH>rNUf{}&w%dG{x`y;Qcau=%?GH?0C$2R*rXq-bCjXbO@ywmsJIGD zcVGAW@JEWOxRG7%EYAI0c*D*5?wWnaF?E_g?2bPyCX)Xm_V~L!9VKO%r})Ja)6m;= z)5I}d3A_ix1n<4Lor;M#(3dYmZ)TG$nTZx%5FD^@jTJn&3CGl}vjrJ5>s(#moDq|0 zg^SKA$u%L)e#1VNhvw`p6jB+dhl^dh6dknhJx{gT)lD7daK$fghWV9`Mtu}=_#FRe zBj2LH0g$%tSSmT!}{$^Wi0f=$yAU*+>a>OabvbP{f~8y^*xv#6ffNQlem?rqYIF*nM!$WFGUG5+_v zYmSrN4M7s{39tr0oA4Bu*I&=sy5E6x$)NP@XDXg33O1D2?TH=jy_1-gB=R?z@ahsu zgWeSOi)R$~RL@xfgdNu&mZ;>A=i#qu`Zoit%CQTNBd7DHvZT*s!hVPy{#O5^ZJr(k zy;dUm&v3{=sw@qnY#}INMZwM{Q+XZ(wMj($`Su5{tK2JMBuh*3{P2(|q6AQUdH0LK zflVUsGw9x&R;H_Ve3?f*%iQun+}r0Pu4Gm2gT(`d`5pP>1hR?Yt@(wm8+Jt^ZZXDQ zwJBujd=IR=p1pG5`1zsvEa%_Xh1#jLO#YWYR_&j9|JN4+gI6Ef`*1tgiM@6E@Ta2sc zkJQ_UR*?byES`FtN6V3*RD@qr1&e5(=tTsb9k^G;!TdcsVT}$p)UJ;m><_+ zu(S8*Z?HMN1o=Kzolx@0LgXsNc?S`=ce@o({6RO|m7_%wh_(B2PQ%~Dx>k@doZ{KX zPFjkf9&Y7Y@2#1;n0Qg2iaeZ)iuZ!_zijEh)AhIFVWY@?R*f46kayw2^3SgoYmu#9 zU;VnJlzrbdnmLHtJSpn?Gc@m=L9>6|j1N44#H*Sgy(~pb_NzXz`tR>pghVmO+kAf7 zB3-aTZWm{|Wz!7*ztxDYKm!DpgFV2tPQO7gBapHF$XM*@OmVL-25BVd00Nn%@)Jl} zdGFJcS%ZKQ(C3BZAw$nx@r;l$Auw$_y$KY?QTYL~6 zPsA%Vj?Byi{NUrL#ay-1$C8l`QGmWT?tRP!*U+okZvxZ>pN^+DMcsWTFK(93nwKnV zPQ&$aK5DMHFMrb?#%G+hN9G4;T(@!oKkuxbzn7XiSMDMm$iDx*Uv9jeom<*a#CM}zSi&n|6I!2(+AV;QvoKXGamLb;*-%^S(bcc?Uewsd}dqs#kI)1sYw|BQ%&I{JK5?jPsA6zZF8i;v5w%VG3lwJ1?JED4U$; zqlODPIA_B=GLtFB{r9hjwd*^sa4ud`kUMpWE#jn=-<^;TZ^G?mE>`iwIfvITyJdfU zlhdAnzHj<+JCRa-fwQLzpOkHNV`kBUCjB~NNC1>V@8iM>+f>G$?|hh9kn0S!=6+{eu9HAc1kFQJ z#6EvK;0$o0RwGkqBSD9uTcanm@!5ou>BJAeQ?Ud-HQrhzpBLx~*||+pUo*H#76l0( zKk-kdb;(njP3)838JCXotSRumjToR#8TlACy(shNqdmfw$)=52d26{zzKUGqz)E;* zb(IDP98TouIAY*7cBP9RdCGUf@3dC>?M{=-mrtL_-?IheLv~L$c*nEMpm%6rm*#^{ z=9XT2hH)xvJr1Lr#Dc~*{r%D!DAqq;t^(cj_Inq{1BO3PIc&I(dU__0h!IX8kL8&< zA!Z>@k91yM2B)TJ<>~9XY5f~E`E4qa<@JHRPqGJuf0w=MhAFnpIrnP|&vk;rB*$4z zi{*aeO~J#bBL|)jLJa-EM8TZ;vt4OMNFlibBHD9nXn-MBjet6kv%qv=Gy8l|{#rjB zbK0CC^9`X+c9-|6U6#)z=AfLQAc`vesJV%*QdoUKjN{3h^~B=0qTsE5aI z-bXc`Vx^3h+WJm1A#i=|^(FVp`-GF##)^VmR|-bl*vL&ZD7O~!;@F>{Z&p}!xaea- zSt3%x-h~8X%=uCYg!*>K;{uUn!TNrDu~M8?P^XeIsO<#+7SB@8>L4Gsl?fq- zR-*Z=Oj zm{*pwXEEZfB*w2HSnK747^+{}jpOEymEIg*QSN+#BM6eLsj6B^jBC?T-ZN_Z7^jPHGu1%VS~_p0*(} zfN9{t)t=x;sy0+pQVcM#$vS#3T%hH2?8d`0Ym-_9YE&XSwedHWM-gw}QNz%|8!%W! zHJlKDYfNis*ArGXSp2nLT_gf!2^ojZ-kIkoD)I2uPXB&Y?H*nueFOz+2uUXSCH|ur zvMau*+i1%HKCy+} zo#g|vb_rAbUw?n{tw7RM=H-ICn@xDeXQ3MLVks0+bUq+W)vvvy(do{F=GdTTh@v-foWEZEwqaY`CX1rgm z4K7IKgcJDVW{X6$Lf^OWMgh;_)#Lelg|tu)3iaqgtk0iWOOa-5sej?`G<+CnIauHB zYD>^7z3oCqYy@2+gL&NwA`|yO(qd#GeypcM^TCe}?G$dFO-6jW;s5)wpX3wcUuLl+ zh9!qkfH}$RWLQqQR`1eqx5UopC(R4~&?+L$bxxUV8Lq6D#m|IEKa{{khc5_|s%z9} zQMOfK;OlTbb#;`y_K+gRD#5@dz*Pp`qWxa0^R-YGA8b3k)Sa0>2D%Wbx>2y4jdzos z`CH!jH62uLsEreNFn|0W85||~Dx0MH9@pLiYV{&yjJ2C|4c4;pY)Yk0-Gqbr#~;=w|xKUD$m~OsL z;$0t$k4_JZF5c;Z85m&ug|w0=sfEa{+?HQR*H(?Z1=KtVT<7lh#JX~O(2JS=?yPD< zC}!HM(U3>y`Ft562=AGd6>}Eh`Bq>o<6Kh?^adanZv9&)7}kHf#JQk?tlI5&#flR_ z>=Ew8h9?~4(6JHw`JjOxd8|C-a>_Mn@ptJ6S;#7!P!R)aa8E)Iq1|_AJk3ifuSk+|IR*0Q@@MVsM4%qxu@4s#|eW`(_GO?*}n%7f4_0xy>`gG z9T_~7sfv1`Qfx}7U!6LomAC3_x&l-=5O4HG$gECgr@FIU%u8yDK(?d_geh7l`m!oc zipUcp%b7U;x9oktX?|5XdOIZXtK!(uTt5)_W%}2cc#aNeyfCPwc=I2RYdYlv*HMCR z3f`984ewfuFu6Z&Y$+x`Un!Keez@kz(mQm9N0^j=@w7NO$7a9@4FJ$SvhG91HOi$x z`v1g2vrk6}e4jT_l$29_lGGQkBH7}qys@D0OACWlNu}3*xYOn&v~dcrcm(s~Sncwc z;rv1w^!B)yW#{eZ6Jvw8Q+bx1gO5GxV4_zSJHpsYp2Kr5P2x8>HVPH>S3YdG`iOl! zq6Mb$$#f#oF#DUje|Mj$fYQP*CB}cxo{h?E*@8jAr#QzFYvc3T?eOcs>zvbYKU`+R z>Dk3F1VOYRBFPC+EMt9Iv9FaWfXdF-E6*0U7k}>a$#vcX94CJ!q?+s`Hy+ii>L*<^ zASAoJDInZ<|36Cfn)cWS*R$=iT5qhFvY;H$OPx6V^mRa7XytMFEJlfBg|PD!(u}0s zbeS0+-z|dP7aToJ4=}M9W{M4JO7K{rC#ad!%>gm{>TrRc6W((dMtZ9Q%Di~L!&eXN z5H_D5H^IiQ0RGuYUCGSda4mP^3~qqLdU>N<(^8zb^z4ZUN$qE^0{{Okz$NT`PE7?1 z8xZSQ5>SfKJdd(YP#?7!KsXNVFB57BTjiU;`EXlb)ilOWzdth>c-}!GcHe!1V4p%n zwt}jg54s??eu9m5U1i$k1KfJ=twiHO+Sy!_4;J9EXCH9(b zp94i_(BvGDb+IltLSoqv$$ujI`l<SIx@F&WY6l z&u3ej6TlyBPZ~>ZB>ze3o7( zntI-R6R*raPiVPw3Ub&~E#2Up%Y>ps2nj?x;y7b{L5DrYwEvCA_&brHykC{(U}~w_ z=}l5vb#e)kzTfzO!3jw3iU@&!v6s7S*t2%9H0*f>QRgl^;>F{$?{|!GlPut1&TN(u zV&8F5$zNQj-whoal@k z$E@)d9Z|W9mZrX|dC0`DrRSbvXlt2h_;=B%;;v}qkIvnJaH(Gc1^udzrnp~&(`!8jn3h3K~UgtW`L_16%Zml#M-{~+&@pKVDI&pYI#G_qC~z7D%(MH zd!eK%;_J0Y;q`zx{FhpzbO37~rt0p|^TajBZptj-W8tC2ln9P5vIXk}ZiZ*a`XEqv z@VCVt?gt+qn38y~06p2BV z(SeE<(C>~it(uIpIm{d*ugG~PWACH>5S7Wyco1kho&NA!32c$5nF!syxR2QrIXAw? z$>@_!PY(9Z({Y6ad(3od);Z+LFkacEhSW;lUwM44MfrZ6Yu&DZe)`iOKx<<62l_?b z)n4pcz%%9z$t#t!mpj;}!v*g9nVuj*Zhz)zip%o|cx}Ynk(j}^f|;QcQc>c-7hsXvF|*sT`Nl_< zm}9^f_;Srb35isD3;eZ}yIODD4|9Mb^sYhc5O_R@ly*4FjEOs<(;~~}UA8?b_27l7 zbG&2~bCbq@C(W*6zADakOpE2CuwFe$hW{Kw;EEvRZNEqbQEd8U=gkIA1vvB%o$F$0 zR@Nf+_XtC0q&tj-B+;Mz61s9wj=$op*VL$TG^X{facV7j6 zo`?-H@wAlaL)}qdKbO2H&223V;LrRRO4FDo+Ks-4-TWveC^`ECD z)W<^kRjJE;PyV}3vD;GP=)Ol)95eG7eOuzE7CvS27xCwBYk3-*@pg9w?iMu_0P%w$ zDVaq;Ai=hQnd|QZo&%LGo8T&`CCld#lXAIMh8L4zxG5JTIeW85F^(UAgV{>>afE=N zEOxxte)ra@O+tz=hD-jIL{@hn*WgVvBX4w`%P)`f%C#qO5?qX(PN=C(btceSNCjS> z-Y61@GA59f-;V()DlU=pHk&SU{-MEh5L--cEJu2J)3c;^gy07fY%GOwQ|M&#&7}EjmisjmnH-%~88DWn7qb&?569Ba|ywJHp_3!lj zirt_IyGCTfvgaz4zbuY7K2Pl#*u9cp0**nBP% zHR`D=;swD&d(NF7E*uo}4{bv&Owr~;YC9##8t<7MMR9o*6e2FsKtYTGJ;+A93og#R2=3~#$4=NHl8Z9+ksSM1eW7_u<*Cy>MtGN?9GReratodLFF z_iT$(Eol^6!X--~iKffp|05qXGorPEQgn&5`R1_Mn$G9PeLb+m8e$O8!bCf&OtBS`9t@t>ljm-ZSyZf$mVy=>S@J54Q)K?m188lGMah( zb~DmJ3XmC^w8T5FQDg*2^5(=pi=A;Kdx*afGpcvpL{!?(ZbeK4rJ{tp6og4=vPlZo zkpl|4)DWX*>iJOMVFw2w0)dR(=lXJIN#sBvZjP^Ug)r6O%}U$n4(|O9EVu)$>vUP) z@)&jrA^1u1mmHcHsP>5xW$3QoBP`Zq1S1D@V@~7a!ud)x20x6al@ppg`kaGOAD`i%#hi*AnEv?IFFfb7THP0uuGR5LIwOMa!+ag=> zWPM$=*$Y46HaqFOx8}I2s&%Uq78*Djz(V8&_`MP27MJ` zw=!DE<8OSFR()&B(z$e7!8Ts*BpKlq$Z_Pz-q z&C_*@t#-%ZH&kVJc|aPeG|N3iuAl=6>e~@pZJd!$=HWhrfeeu;(N`HITovk>(H}qa zY9e_vHu^C0B+zGri1EkkFAiRdRlp0z@78`{3KAO%i9CKh9uwTSYSCTikbS+e?c+kL zqI-TrsG*n2yt2q*B8^FFrzhaC0U>90~5d3YxBNViVFK> z9ACjj;{XCaZ9b+V@55*g(O0!}?kpQo5Kyw*Mw}A%5cpE7mGLRs#anffEU?o3z3@5U z0Dyfw7@%31;AI0m>sRlWQ$Th4VgM9PAANx~oWlDnMuHuJ6S;s4dmKdshUhf=O zwN@9!5V`Es{UfKm;!3VAlm?vlmoaY)!WSpxs1pqm=0PJ5--9(zGP`sBzWXCR6w&=1 zW*BKE%9%2c_0+LKO)|a;E-L zWJWPbFdOF+oVG+0E;D?&iew+3&i=swTM`sn(^$@<+D5j|IKz=ZYo z^y~YtQi#!aZEhjTt;TI`x4|FB&}bPB6~}v_TZcVN?dyDpI}EFp)u>Df&urjCgWn$V zZC{n?nMIDf4G1(wV3lv^xK3UD$;rU%bkYD78txpVp1s1JOdm` za?lDrlVPrdNXt;$2)#CklnI_Xf9)ZJVHfmSU=(>^+tp5=U^$WIZ8ci!;OU zh5&3&{AJ&OfPxj;ey~U|mhah$Oa-ZOZ5I|pv==~!` zhDQbZM-Py+QEc5f zd3R*Z){JT48wYDC9HU=#KWu)4qh2hM!^Jt64P5TRv1cf1WBNn7&q*&DtzyLK#>5e_ z+rzssLrm-gFpa`xYZ@^@11ca^&4ao>WNCX8HLR9=efR|NO{`o{xgux6Z&gkHMC2Mr z3}de2AYeAe%B4uULYhg4Ys8Cu=lUJa&dP^(%aJ+nONXm-_nA)GjyGE;$w7>XNU3XE zQSSNH1D+nF{98I~eHGh9*;O@LFlOg&XD{@LYI1wW27lr1%CNkl7>hOGBgfk22BNt( zs?hW7j%k+FQ`x285)gR>l~#;A0;%?ZATNs9PK-u_s_VWiNCcce$LmTF_-T~VQc3~p zQ|!SkGUVQ$7&ZZ_D`(-+*cFILBQ~IqAyI@SoKwAgby)GO)FgbAWyFfmL5es*Nb*n5 z)LcX6@h`+a%`IW5Vk}86{#Ey&?(tyTid?Y)#hGjlqg&^c7H>%n21BODFE|{0AjMsWuT)iScFYYNsszggaBufpzelX zn*>Pk`euPh_%oR1nZyV@Bc%R#YbPVe zP1q4_CsO9NDCl9L)EIxdDNMZ-zgF||1{crO_#m#r3=vHTb1mz)m+WEUy`)pT0C#Y< z_8<;#8Unxo;L!OK$Ann{J-Y$6n0pr(Y%&)T^b*2NJf-`Z)DY1tBRPreo;k?JEuJ$Q zPZQ|s9Hy5^`V~{}R2Ffn;EhdJ z`Par1gIMMz{!#d?F9bqCHGh6+S(BNwyv#uLLF}z*yDU* zP7NifUd<10dadUF%xHL+rL;8R!yVna#vP&pI#8UuCI)>>gz)odyGsbi+4iDC=+sbt z_uKHQL`++0EAj(Xd)9P881PgWSFwzSg0J(fZb31H&DR`_%?T*@EUml(Np7wmH@f7a zeA(Dgjpi#S+!@l1o}P*W+MmVTUY*Lk;j5uEc{3>xshXSH{wFDe9vn5>0O3&MzZb&T zfhVKBKe|~YB99`9C2UrXt(CEUx;FByA`Tpvckjbo(bH` zh(Zuq>dKrY7Xp32E@Yggn&_-x9L#yPHaRM5kqIRHDCwgp@c9la*LEvYXN=8;4W0;fNfwA?2ca55WtnfeVwM>b zrjw%7<6*{Wz&kgG{lZi7RFZ-nt>Ykx($qw^$87JvOKH?iGLfYBE*F0{;fwh(a7mTU z`F7jEnpC;5npeF8-9dG8(EaF;0|>lH4)F!-aLS?*6baL)+MkjANo=8yeQN(jzK-7* z!XL8FSwVlBe)$B&S$Qly$yjL6xVgZW+VRyA7M1ZAhlM3!WdHi+c%o&ZWv|v7(7SY< zs&h3UX@8VW792sR5Wp=m`H#5M#~G3t@_vQq$v{@DS1Vf6Lb>B1(T!rgK3k&!*OlsM zLN#7AqDy80-H$BVl{ZqVPA~eziYgtGF$~jXhCK0aEi^`jObt$Cn81qDu5)J zgXLaOXJf#ylh5#K-7xXZ4M@U4{Ag#1fa$GLLiXlLzWwcz(<|48$$4n|Ck>ST@oGBqNw`5|!C zKd^zyso}{WW0p-e_AcL~Zqoq)m=`{!Zgn971L|zrK3`v1h-F>lqeQdc^Y#Hof~0{N z2l=dRh3~@)b=6*+2i%k471LP(En;n!2<;ZzXH;sYLAmv^xD1w>pn3}gaO)l2X1 zDw0oo zlk+c`?)MYZZt-TdvQleNrN|Im?93}s;gjQo_Uz%|rPx{GWi!DfN3c%e#1R~Q5FH<{ zl_Hd4ns~3OsH=K<(263g#C_@B{B7L?l4$(4k~sP4j00L)BM*qGwR|^H)YL*&C z^+V+^Mc+YU>rF_33*gg>L)(TD1i3L(qi14=y{u&J96^K91ND-SqXF#k}OuO$|(im$zNEs z)7~Gq(5V8&Q`Qejq_Q_!xFM%_g0o%sRJs$x?HdjagarA6{&7U1{{tVlCk z^40$3XdhjS8tah`H3b4+%;-blcB)I!qP+FQ4l9;#J!CC9NpdO781$Bl51=wD~^7< zRBggM{6CU{;@hGl2WeboBF?ePp$_!#qGV%nMt5BT&uiY$afC9fA$J*{xCwv>Y;Ajf zA@_(((g1g{cInn|CrLic{#^?0NQ&qxvCjWyqd(khrORWN zo0{^7uCFewBUtN|z!dNGkBJz*9UW`g-&72V9qaW~dW8D7$uLB}LGdTGiAGd>@wK{z zR)kRB=J6(1ABqqOJ+O}>-+CNKw&aVyBqa=$(Iyb!u{H})%BWLY5U`s3@42~*ZGxpQ zI*0ZtGCLR{dHp-k(b~lIeHngVM`c6$Kl3gW_}E<=p>~XlJ3|Es5O-bB5+($caQN;M zx=%$**-ARgh`jqc=ww3i(~?b1`qE)uK`Ln?oYV5p&$Q$(u{XVJ3&MaT3BWgmbir<0 ztT`2hQe`-pJj04F&(q*rh#Tl(_|o;;C3^3`_l6u*41bf$nD0t!ia#YFemXw+LsKo% zpWZo@cK6cCER0a7JMIfR^KtwOYl?&dx*}~GT&*Z?b%fS5kx4@5{YDgTR$H77lT(2FsBl=zzn2I{S#&_0Faf^~ElX6VJJL<@ zXq35&CmH7sEZ9#QYAiSk;%3xE>B#92XB*uMwZzL9U*bt5VPr)15U>M`7S!Bre3mEc zJ+X@6ik2R60ue}_zb>G8{fvH*J6EZ?8+^TY?r`UjZb;2)s4X7nSQ@X|Kzjmt6Hbn$ zzs%-1FD=Exl;3{IV<0P#P3s{74qLIIXH(n}fN;M*w>n~O$~Y{%na^(hxa~{fV{?Vz6dB^51D6J!*@Dx)eJ*Tlob$ z!d8&=l-~rNi%DE(b-G4g=O5pgW&{>Yb1vLpAtq5)PPn-snVp3`4v75Xe|cP~lr-$h z%zhlLrdBFC6eb_`k1j`+;X!R}Ykyz6Wv~MSO)Ttr1T9ZasR6fEQ#|Y7UZpnUy`6LX&Jly;#O$TvFw1t4Dv3!@HOm}LP5?AsMh1p& z1%J*EfummjSPbf@jH}ML$!~Tl$-zCbBsB?}W0ENFy-hO2ut(xJyr*Kkyg|-S$P?kf z!&Z1n>&53aMV4XxRt`OB=CKy0l+@ks0+AWq_=W>>vIe< ziVE$bO;N`YJqe28rU3)>eCO%CBrrSvw>-&$ z6UaX2YDq%yggNpLgr_Z-^5aWDjPSotS5}*F-2;i`c_F*D&!J`JKOPLogIdDt#=!;b~xuMnvvubB@D*vIAt}07$l~7dW z5WcHcor_~W!B>11cz&J?Z`Ljw(__E9r8_60BA1tsUr;kUTsk#~MN zhW__&a`Yg(9qq@eNdPGRzMsR7%~ib_bo6}dcaY!Z6CUygcf3o{e0Qq-c|qE3N;5De z@<2gaS9gXg1}rEQ64zs3fXlVK3onWgP*VSH%zKsmuZRf$^}zr=O?3+vIS9{>l=Jjo z|7t)p_dg~D-w~FS>}iYfEGmHTp;*RXishExJBbumAp_BmeD|N^$+Cg%Fm<-3SS+19{fBk8ycm>n7BGD+q!? zAV7|rsD_UiHeWxm+CwaOkAwPXchZfI>VplD9_{B_`>#jnO6cnxj3uaRnH^I@)ess_ zz0f1~zf41CA^36`hgW^dz7k->{1+C)%LW3GM(fzz4)YfW^}wJ$c+Yqdewk0FYInu2 z)yEqgRpjO2HK_=dG{lCuoTtj)$OHzUmM)IWUxnegsKPcl@Xp?Ar8rjEl#*@&`XL5- z;*|Yth6-P>S2S3cpDo6cE?>^hbt0B3mH|NFpO2=iNqg$}YjiHI2r^`dN{Ua<#2W&Kxm`-VD;>=C^Hk2CCrVG; zHrX%sUtLPH$zS^5BF>scSj19?N!rnKve`k)r`rV&O<5#+QI?o z!f1CJ`%K0uzR%(W&$vKvX6Kzs9(bnT^?&$$0CKr(3%DI@ff2rnkpccJq~Bql3>JNl zN_yhIXP^pJNZM)H-hii4_qlXq-g=bL^M8N^K81JR6(U9D-1_qoP3Xa1gY14IUpUmj ziAxW=$O12n4-(ifF|*1fK)1pH7WH-%rF5~?-!2~jnu(+G$ywn|FI~HRq||7p9$>0~ zcRxCQ4=%HkUTV=e4bnVXC7tIq4I3yVqY%l9j1l zb!TMO=3EMj`f%-K60u>8g~LQoM}e67Iz#gz0$p4uY*a-&_ueC=1icR?Kso@aKZoVs&=$3|1yM=4co*06r1^*`79uaBzvp$7cy`EV2`@K z-XIB>n-O*}PQs>M8>gqDwgU{(fH1L9xrE6_)ypW>~IVkTkFj}MGbFFI$qW}tSpn_3&b57T3Ed6rcpXW|3VQB(WIk4Jeo#RM~*%jhaipFa50BZ+HR&fanv>A7Gwx$Y31do3AkfPs=#HDaa8>7>PQR zLX;egaJ^FE`LLRQ&~l02(}kPo^t|IPJP2F3FKcU}Y>*tQrAH)p9GzoF6a@xOvxSF{ zjh`K1*%CCJBy%-X2ljyV?WJdd4;-}QT%|3=NJ`xsQvsP6Vx^V|p~<3z@59u8x364V!=n8Ik<78` zdq=BnkErM4&Ft`_^_jwx;|DFo_^et1Tf^D@^S-ErJRqIrb*ns8Licfe?K0DbvHfgJ zO($gR_0WU#290ephR)#!7sHmK1y)ehHCI4IW93P>+_h~9&L}V6SnBj9b^nUzCzkHD z-5gs8TS*Wxr5iEU)|dIY)a_~xRfw-5ij5q_7$dJavFp4LRfOUBb*V+C@Hqa0ua^)? zNSbZ4`)hXz_O2IgRor7ea<}dPQvCp2VKA97rE}+m-T{x+qmrPxEp!h@=5gnmy!hPf z-8Iz*s}mb`q@pZ6-2bh1h2>n_x!O@b0f$gZ1&yWTCoI=B%mj~fZ@Z^F*cPo0)t zwkA>xgab!fmfWcD#A56}&G1mP>{6P5w}t0vwr4wRLE%dR@V&d;W}wZjDRboBKYVfP z_6+Cz_hmcsk}CQjUngB4a#$`fJmyp3u@np1?;MnOs#zW#z($&2EoG?y)y@{RYlJkmv$%(*C z5{BwRmAtGO`mloQ&q&NQxg9Nl>2*Yokvo#>tFwZ~353n99jl1!-RL_j$)zq$!6sgp z@24YtpYG(AV2f@jnGUf8Ul#G*c22zH(wDboqN$;R#0jB`;DoF7s<^$FUjCIeuD zAZ})9Gj3&AisNC~R)grQ-c2S=jl_HagTe)2tT1({C~A3K(~sVG)eeF+*u zBbMw}9HI!ddyBVQQC{cVk}CIJ2jIX?^)#I$$~3yi_|A?M2*msa$A)6A{{i8KIMst> z5%Mh45;i7Di4I!x(iI&%&3HTX)8mXTf#kYR8Bq2w+BeTXC;z+I9171aSDiVVj+Id? z43fh6vT|~_PvI!*G3+HlfV46!-d!=f?1OYk)OQ)*L*hamVpY!1Tm;d+l;^R;SUyE| zRF^3MX*euVI5zXpo9&NRF;|RwT!{ojS#fXrk14W9tis<%wWh*Fl!5t?fNYC71PHfW zv@*QyJH>-gcLPhMF#*{Wv>G3qf-flAe{(w5C0_(Hm0U4AyCF-NPMnOjlbx0lBY%|Q zp{^|*K-1pQ5fV!sW1vokrT&5wL;0g1&A6@swX3bTqxDSC?CeOOxN6sTCiqi9r_}}< zr(}njxG&zieTeo7S;X8JP6=qYCY5yAQJA=5I#GK_j{g;rr(nTe6yLtYHbz3+?1a+; zpN6$p*^Z2>fq=T~l7GcdvF2lF@9Xcs9FE;|0eG45?bOIB6kym{cT8vC;Zte? zIK|{V72ffAm20RSQZfO(HH>@_cB#f4-NjkPp%~4{=olZr zMF9ay=6;(M^+C}}z*s*FW|7vRNN8j)C9DDO;_R8rAulwN{b3AN_Q$C z%|?TOfS}SKDTst99iu^7KpI9!cf;!4_jg_IU$E!8cHj3o=W{-BPSNK|Bo$uW1buh0 zB=cRbpP@#d@p!kry?aBrn!S&=-qdrTO`RN`Dved2Afkf`W@thZBWhEr^THL&Ztcjd z(Pt13+8Ai%6uVy=@&411vsFx0brMs~G2 z3sv-Q?b^^ zkTQY*TDI$vxAR0uR;j2RR%(o{JH>;2{*41+^roe7!T0?*btngBTBLG zi;=$&kB80d2jOUcE#F=a`6skum1(Wj?>zpDXRT4>#V^VUf$P^+?lT%e?;NY=B*70x z#7;++qaCXK8tD=YL9iGZg0b~ain-mqO#DTf2PRNz!9i?j!3_E@m(H0p_UYR$L`=dG zT{D`?%J0TOZfC>iO%__hFbz^BIblQKv?xt!D#cEd9_)G|^r&ex+>unxl%p&;Usa;N@jWcjYow|<4IC5&QT!AaNWKq2 zs{L&zF)-k4#eAs#^-prB*)2gTOPbs$BVc*6x&7-a!>iu=XHuF5*QZn6Q~KD2Uu4Li z{Y$C)@Ihi7efYJ)pTZYl!0DKP<9*oAtu_NTHsViCrmF-4@WTdDS95cGuC7Kh$GTdG z*p;PPI#z;(*1wS>_CN2ct({kTDFF6}XAY!hV4=rXpsqFrnJWrtDH}Plz1Gx6^u<<5 z^kyTlLDAcrDW~jIWwyPnH@g~~bIpI(^EGz;H*-|l0HfRq?t6Kg?QJH3;kefko2l|y zGBG}rwqgd@dvVK|I`C$N2tp##WoE{u&?mfsT^3oQ}7#=_&b<(K<aLO3ZFq9#nOnTB!eyhP<-;a1I?llKpxm}V~RqW$^-X)epZR2B;Ms4w9soRhK zyrTmyoO)`H;(a!HN-{KO_qAX3YQ>@6a)w6C==-qJ=XMF9U)5wMkeTpjj!D2pFxw(obg7c$bd373ev z1OBoL`oRD3KBy;lX6aEia#;LM8-Zs{bfW(d;o96bO`1OEIIG~;q+PXVGrdlcvH!V> zh&-H~b$bG$Z|if_?8+-Aq~GSd#8c108dYL;F9&&1sWJP8;*c(FNt17!aNWPw}UE;0cZK4GX|NP`nwJ`wL%#r zm}{@7+%9y})|KO12rG6GuIY&*^-Szy2S8! zRF2Ii{@LGlSvkesqg^%|kHo{v>UJ@W)mDw7DbhEQTEk_}N@DHloh7Po-!wY|p;Q8| zRhZ7|*wJ;1mz7d@LMf{;*00+BgSS z;shrqzQK@}b8RB+-*(&BYEYo;;92lOF%`3qtEDXm)2IU#a7!Sx)prn_qbT2wKUU$` z-4DR@;(sQnV3JYlwp5Sb0FUf3`6sttj*5r(^F1KSFQ_*TRMCQc$>NGt>hkE}E#PD+ z`-$>=wEMEBh4)Uu`qIsJgfJJ`Es)JFSD!0VDsk*BJhnI(aH&(ZXQ=g$C`OZOWOk4` z8{aD=1+IS%EHk4w*YSMK3TjJuz92jqF`lRb|1<-cnGO)e38n13(C}cD zZ;EI26MiUDB+SKs0LTxJXb5cDds6M{WmEnn0yedhv;jg_Q#BeQ?-C^1jpqLo91Mp# zwDY(>wHT<{D{*wlZI|Kx;&fq|`O++qyS9PW=AdKxF5<)3`sRh;7j#E zl5pVQJ!D?wbYQ9dE}VMZ%Tum>rw2RicqNkU$6T~2vGSB zP=IvE5V)+G<$B=-6jncPxT4`3~ z{Uc35wW4)+DFQjcV$K_3A_pgy?JB-rKOg={BV*MxGB%8(&N!ziUx=!nt2%#wNunX9kWJ|)x<$RuaYr;H;a@i%R}nBnkZ9mA zvWY0#F;N@|G|vqlT8ss18@O2nP25Mn&Q@)QXIcs9gL=mo-(9!;D3uhTM*XM|jiIVY2yz%ax&FeIA?vedRD76&2-!==qZdzyaI4C%~^JjNomQlNGl zVR)~h^y;nzxkRSe1n8~dyKFA~Kq{4a?eTfFrClpCW%_rUBA$M4!R%Vh*r@}g708G| zk|!R_7DWN{g*SkV8HAB*fO{lSnJQxK+}TAK`MA}??zC_v`Yadn+BJH1&_}Jo+ zK9w^wl|s5%*DvSHz^fU_1aR~Va(7ajPhxMui&*;ho2XM)Zf)(Q)wM1gFG=as(ydCT zPfqOFrHu?+fJw^6ENc~R-p?9aJOs~pYWRSz;u_<9GU73h(cXqT;|gXh^06Ksy-xUS z1pz~>u9u&`@uS)c;xD78W8{KUryT8H0j+DwkDfR2+3DnIpfwmQy6@Jvz zwRJa@v8Vj;R(DuP=UzlC;b=UECtAU=q*N0Bo3W8=1e7uqzMtYKK-6_Pjx)aFmNl^Dh z?f!MUt8I~XXZZVkjY@IOm-IaEd2F^K_Pi zMdB)$X(yB;AIsnaxP=db&CslS7>fV?pN!2THHoc+9ZM7B>C=knG4kiwCI;Q{i8U9O zU9S60{N5;rDwPPQ+R?cNptDzeK`4l99w<_Z*g)l24n8dp^aIkVk;Koys%)(f__UtJ z1LLE8dIS&9NiA-PQ{2;EPjr`y@5$Z&mmrPTI1##V zR8gB#(i&e3{}m`k@I09LXf?}BHN^MT<1Hh(+?iq(5v*B9{5k7vL_d8AqGv&S+}(Qf zpo2OQ6~#bIK(o(R+3RadRAGlByq!W+I=H*G>(D_f$PZdrnH$?vvwSYtiyY$y{GfzR z;WslzpEjh3UeZq*Ms=wg<)HULYgK(XBc4#$GUsqh#7^!&j(>pq2J&9te6;w5Rc0We z`5GHmj&$Q{PooC@V{OhUM*V6^mcAX_ej6rpJVs=#6f57i_+7C^&Kw%i$Lc;yYdJR} zeg{X_j-^z)ye0*GA(Z#I5n|TX9tm^nDns$POOZiYhu0^9F9w$?0N{717DEnTt{oWf z6fDvR*9Tw7Pt~}dcM1)d=;J$yc(U4QMeSx!j!C6n2|Q{XZ$esFm> zd%9jJ$gFteeunON7v(Ck#J_KXeJ1<3S#Nh&`-?_RB zt7vq1zJ>vm^vJ{_o?B9n$l}KVDTX)ROlgAF+`mZY3yz5&nV`sVjAg#_WcLUL z?Emdwa~2@~<}@sOm9-S`tP8uJtM;O+jb%^L%IswL2=WH1M|3{bTx+N1f^2S}N%AC@ z%p4Nxysqa+8Cn}j_qT+;$|FP zdhfMTqhkL_3wSOh#{FD8W8WnGaOvGFd^R=I*mjtJl8bqn)lf*>ybVvqxZd(K3b*{7 z9Ct(aoh!#P`}2Dl`;>z+IHgZ4@HpJ@f!HZ6VW`kLG>m+3n!`?5_SL_+?MwVtdn`2V z1%&-)O>fl@m!*u>W2Wc9o*!TGgP(koG);a}>bIINZaYML_=MBkp2(5fF9WyU181|* z>k!XU2<0Y_yC|#L*b1knX-5ZfYNHE&hc5zIdKN$R8x(f-c8DrX_mMSdbv)CTeW&(H z!i(;fL6KgcSv5J;GpQ=5Bw@kyQbo8oEn7 z$lq~q3~7Gnlz?uC+K1AgqNC>SvNjc>Jm;))lz;imX`D=&uahH}2F{3gjRse4Ryvx2uW1|$-kmdiFx_Lm=r_SzhzC2=6` zfReT>Py|&J=)hokK{*Wmmd_opaW_7gYAy&ES5}={40ZF+ewsEzhxHX1f){p5=tv9j z{3$gVe%OuUs^L<*_jUEe;Ho@E%k@n$G$ZO+4fR|QdELBr8z#`x@3osf^n|Cm2_oo2 z+Sxw)LV{H%s!BPaqwgm@FG(IFw!78wISI5PCG4wp{u+gllfT&qPU4T40)aMR9CiNL zMxna9>>pE$=Fix-VQu2uSPixcbnQ#E2zt|HL_0H)xFel3+jeV6 z&9#DhFajMMFj|n>C6o9ko4#QAu9+9N`z4k8C4GCam%f%xBBYgsHd)Q1lizh5oWLTZ zE~szzLT{-n%UGMUXQ}_O_@88cogE73GcF;uVAbFM&jm=}-b(b*H*!D<7W7I{y}`)^ zDA${gX&gieE%hw^H|fsK^co+JDx0RKK5+fH(t)Ya+V!qBN0mx4i=TeisBw_B*j7 z6wF*H4|Nor5ifN z&DYV`?rSPpT*%vVSmf;}$B!?qzbbyK_DVx?Y|CdGh#5Z6cv*O6>MbWNToQxPWbyB} z_!Oq;JV_HohyV65XdE^+xwFKg_WL{pv;-$qiSA!MtrHp>Pfv*TFWBrka`Uo- zBZ`ALOH}N&jV`H$qh^Da7=%*4h&gxNe3lh_#o5l?n;PxOC}^UZew9Qtblg?*dHO3q zE2UU|&&)KEaZ1 z2u|6w2L5Q4Ocd4WpLI?}cG&4_*#_4qW$nh!%}2T^Ybc;e8WRl1hLlyul_SKPh=5@d z;FA(ye9ds-B0>_#ht@2}SYfQRv#}9!fL(hvJji%Zq<W?FynBC#0D{Y#%| zfQxgOBHn{7RI1$UE)7*Bndi}CI z=Fm+_zj^(qXwCtxWv1ciu!^QEn$wMNZr78ITI=4JWZmL+f*K*M_@q^(0KP|-EEFnX zI)7me_^Y;f-XA(5f0P%szh*x-YXaLi5TPEb56A8316TB%29OTk#Z^X<`}W60SVYNw zjYaVAv#mOxQ_;k~s<@f~Dwt>NMf@*oiwwLcogMcwRRx?zme431=<0iC+l__}GDr;x zIyNSXWy0UTJ*S*Lw=(d9*6@s6Qi*NhMr^6gK=uw|_UhZAE0vo4QpOx{>(WrF3}-{s z^%YN;^v&{x4-v^Uw&#F%$BpY6W8fKBcP1{SS$&`1c;@0;YGsmY$D~8>LJhaTbr?@& zr0en5Ke^u7ee--mEpWY%`v_n3;r+n=}9J@KS(ZW zCzmj#GbL<@y#C$x>cn9%d=qsaPdT`r+g_WPZ=9c|P(;n;)HxO1x;4S5BcN^1$6~lu zRU-Y~G61ZjX?Evr)D4p8TU=fJ6U-U=gtI`Kex?m>dy{z5E8HgA5BqVUe*e59pb|W-EEAn#Z1v_T)Tr3>94EJK9I0Cz< z8mT|Lesp2+ZrLvD-u3901CQ|P=(#3jP-`W-68l)UX(sxK7~-3NLeC#P*`sk-$0RA- zR2pwGfuFwg`UvDL;C_8;dwV@K1YZKjX$E=KfgQ>P}>bGL^m&d8S@o ze7SqlTO_O#nfuvKyd)#?&AqM-MH$3mF0vuG9v5lUnz(k=sCA-#w>%h8izXZlhMzTt zV^WEHLn$%^8`@_-8kPl}Ek|uXJA^%P2)}pgz3TCJ`E!Q)&5nO|7JsQzZgC;Q^}uuc z?X|uz`}Zi(P#0};5~p%bIV$oXigi`}ACaYb?XMavx~%9SX`~SgUk`oDj5&WVitb8P z*jng%%7uH05^yc+=Ff&bmHQbZe>f);VG3xfngomd%wU>1<@frz`Wtvf8tShp^;1$* zj!c)j)mJqfS2h{W`x7GYZ113)L<$J&TB9s4T>i6GUa0g7@#j>`yCd!h3YLUPHG-f} zV)2CpbeufqOYVu^fl&H+8DlOx79q} z(17p6Hzc~Rnx?r05pFD@@Kv)S+?m?QBtHv?O#&2vV~wI%@OK0(%@vn-9{N-HhGU@# zZ&!qZIngqa@vLn0FJG%U1xvG7#uoR0RIpki#N0~gk@eT&G*5B{=%R|X3OjRbg!j*< z+rN^}Pw6kRRDtyU%D=Hc1S52h`sI2?+mNGh4*nm@o3leI#$-0!z21rbrw`)*lv^^~ zEoQ1yZ{ebkDAZ|3+Hxf~!AWaKNx*`Ctn`$m3k;d~rL*fqY(=)DsetC(!!RI-Fo%I` z`}LW3qzP0I4{iYJ^V}~K#ru(}nTPRHvyZh8(o#^*XH7$CKb58=lJ|B5g5{l z_hkp0T1>^T`*ie9o4RKkOTd&5rE*xc;pm{UrYxS(4NcgzQ`)%O@#V&xCQ`OZU}H15 zRWYi^sJe9a)(@mr$Au-dMY|^Kmx^QjVCHuwiZOTl`ch*drB}OeDo)O5aB*M1t))H7 z-KXY1^`(Aev6=De=8Zl8;B0@BA745o_Z(0_fA`P+#g=8O4mKF)3Zvans>}qV|Gc0&l*dfG1R;!X-E#6U?^^jL&+AGw1}H;HCEVCIX$#|9vdJ z?w;?z4M%AC-;8Iq+Fmt3wWCM;RvW4Q_JiyMiqL0yMw)L-;)|++yFq{;;lV0OPgY`* z_vp70k>xN%)|iqHyf!~h@iQSO6)!#^ttzK|sO`DWWR54Y@_UD}=wq)Reg+A> z=c1yafG1kmWhvsSQfN3b)PqUb0g!ftOj9slxV((uRuUDt)BvAs=!|%%ggPYE?7ngi zc*cuI`okUZx>wtwe$3+bD`T%ihDb-jK{PbIKeP+il|m<5*@-=s5B{;eayrJ4bF#|f zTJCQINM8yMCK5)`TU)CzYg}u%FFf^nBjDOWV$LzcA}>Ao-tz;&27&n9+@U`h2LYp5 zmPh)I18Z4b+P39j?#YPB=Y6}Q8Xpozh+~&-Xg+FHWNAU@e@8%=Q4N6X6bSsRBG5L9 zSMFmMB(=fQzeiWkA?Cvv-B(lgpoLu*t(XCXg*_0r?8}}b_GqQEK@9%t-NnGkW_0_; z6lWA0s~3kpnr(JwqXQQ}>~f$nk~q&Ys1>Yg4o<%Ld^m~-H`7Oh@Yk2V&(kWvD3hqI>&vBJYqFPMi?fJa*-A zd5O?J{Ds~ zaYi&$w=+0`P{KP(Ia^CpIBOJB6+9%M5A+bmRwb%jJ>*B<^>Cm3sUrv~jKpOEi4iA^ zIb;fh^S5oBvBO7c;)7!dc>ms=N4W1TBJ38LJ5n!g5qU#D66sIuCjZj^%H`qYy;L{S zs{NIvwY5lo_LK2n<3|TKjkL=!+2{FA%+M7kd1R_0>b4f*Z8rCR znv`wQkedm3pA@*#(bPW9!~{=pUxGVh(5+%bpLEwu-=K5zu_fzmZUsk6^;d?ea5o~k z9897UUgcw*PgLmY$RymLjl-(?&~u-tSG!j(h#y(t$WhS#WI>ExieE7iryY-=cm{D6 zV3oVFU<8k5?d;PmM;$DGT0%B?@K4QIc+kT5NG)i`yt(tTvAh|mnU}EQU@fJCROzLs zp>4HQpdX?-)}%kJ$sKRokpGsb^4SR8W$0IljCgeKbR{b)1qs@=+!Fx8QQ3M4mGapB zMg9!}4iw6=^3>p?>Jz515{?$8Ls?s~lE#blS*5SB@Z6EmzNqJ6SpRaeYr=OJ@{tFD zQHJK=I?FuOQ#l!Au)E1CF=}i-982 zc|4^I?sTT@=nyfJ2hl4%jgq{&`5;O;oE_)SKmO-V1tBu{V~I)WRk*c6w-4mjBFAR; zj(YQl4x(MdWkMVXPN5zr;&*|i)`9;K+k9mkHcTi*Xt_r8i)Ub|M1ogm1SK$W8!jf# zU`e?HmXXkT^6=s0=J>T~8H4;4+-OFd-ZD$?F~v=Sy4np5{Pj-0yFFawTYpdYa)TOZ zmIVc=uYK-RR&3KC7hMiUxaD?AWjbc;IY!wZ*pgv>=*JJ<`H@am8vFVk;?Y+NwL~v2 z48gO-a(IecIiV+V>h0MR$0RIdVV%V>Gg|z2|9)SW?<*NJaY!K%q@dK0$-jVC zsjEwn@2pHUJ~&OLK_XJKow%4;>wdvz*){~}m_Y{3kMX`P@LPx{6N~P4^Om%P#(imP z7Qn`yV69(45833*J7{~Mvr%roqf!d=um9X=k=Ad8T88FR7eKqa$DS2|*ZTdo1icyh4?}loj;%ZTc#VmksHyYTCaG; zeU)RV4!=k^zy&Bu}8K^lwG-9huShr-VqGJx$gj4w!9M6*kbb~Q)%3LbXygsH@aJPh(vuU?Aj$rxhrt`W7K|29cK z>M#9I^bPkAkw{dP@o(d4O9EcSdsKbK`LK-}FF$hq{nqZ+$DA}DZfQX)?EHEbRSB%D zLff2yaXe)^zEff0f7|QS-W;|;GIA`QdJ0_YPqY+5KBt_#JEt$!-1S%5PVK`z$x?g4 z@!4d$MJX$CE1sco1SBf#@LpT!#Zp-~k?h-P4m3~3OtfQ7|B?aWUDVgax<@un8c5-p zXSaTiN*1h&#+}E;Xr-8OF#+YajKnmzuOq1CAeOB0FPS*h$oq>v67>yQWiB*}`&}$h zkHW_9n}uO75O^+FI3x#w4ZgJJi4y$YY{(IuwBk`bUlIQMbkY(gH1@uIAWEhyOq8=% zf029MEXt*Utj;onc5F}?Hm9UEu9!5qm|Uv+FgWQfd$85}gj=8eW!9reuYQ}em1%aZ zhQ8H$mKK@R_7C@Xr&H6UfBXv&5KFMBImBpE<}XYie(BC`;S)|`fEi1CHW|;zU;R+i z<{q#*HNjrgxJCW@Ye3o6WG=TPHR1^Xl}9IL;*WEl%oDtX6nc-}af^OF+R;G%Ww!F2 zLjCzZC!f>!!3w@ev(@eN=hX4)mTsnBb9*{hU8&hj4Q3rV+4_cgn9#Eb$gKp z`0ld?VP1!~;dTHUMcldv&2pzzkaCC8>u-s`$1nN*wlgR3Vh+~go7&wL!mqrJ1jedf zE2-aT9oXF5YsIR*dEf8aDRW`TzsL7SvF_a`Nn>Y|*U`j8b5!IToAbmG4?$+fKf>$R zWrf^_`&{$Nk8Vv+TRJDncNHM0iJBh&>s}YtEGDsf?un?*bZiQ=++QA~+RfoPJUa6k z!{BQ!?DgN=dXO<)V!u!4&-a?i=*dFMg2(_*v;-|57WL_z(Hul-ET%Y~O@ z2%;oyjr#Os)yct$!6825CtoWx9!Kfu2=FraH#DSgmn_jSMZm!{BA%B-uY>LpBG{R2 zntuuw@46U$>3EtPBe42n;fGy^>_03OC&ZtxxNSMG>+t5v>E}fMGan0!xXz1f6-)DA zkc#4XKEBT}Q2!+NWvc?hs1>K2iQyj&moMx8Az~L?4m5|ICRD2%*5_N9rEqs#;tfjjf^yjS}*wM3WssS@G9X0B7W`flcfq7kP0QeCf5RUPTweln07)H$(85m~x#l^36XU#nP`8V>4MF~|&SA6l%rRj-R+hwxs zb?U$C!1!+?(!F(hLCI3DhPwhRCykVQcQ-Qx7V?)Q0^s>s8?Sho;u@k!fMb`e_jnMU zsu|#EsSP8}_fn${{~RV9lI!zn5VZF9u#^9(=QKUfZWu3~dz|Z%91poqs)?>xc+qAp5SciI z@pToq)86h4kj#3&!z}#on^HcXH@kw_K>$s1_$z-0_vp7bi0(qZ2R4dGg5F4Ac|_Bm z4?jyRPKvK@PNYHAov*igNf)@;juL+LqMv1A9y`^YkJ z2XT#c`awlPN$zO?b`-=vy^*B6uH+e{S6>g!%ANWN9|)+D!b@G%4F!*3Y)BD5hw#C~ zpt6-eAFy%LSMx6X)-_g!B& zH`slgZ{Sb8JT+outz9*YVMFz*X^TRWrama0^>pqNo`%Imm1v7#fw5OO@vJ|JV`={X zdX$-d`5*64k|*(7Rpby$esd3bIjpIBHWf=fBc8N)(sk?4J>ITORQ@jI7|7l41Dk2G z$*pxv3pQHe+a_Yf&aer zKb}Xy0uhG>&cGsX)X&ePB&6;?lNW|LqI11d{2g;x@KU9*tALF3c zxRfX!KSEG!IB{K{X+H;4ZT$d*Y|J>vE&nWTu6Ak%&;7?AZa*?FmQji~(hrvOdN0`J z_l*Jf0$L{Qnfj9qbuK6nbZ75liDze=;+gM$@-~K{WzGOM-jbW9DnbIhY`qw;L~>X} z(Jih)?XsP0)U-`Vgx z?n`q6ee9kaH`0u`ay<7b+9rSH{VDLYiO=&;x%P+c z)AdYlu=a?eqDN5K#frE5qhH9{!@sRyQ>WB*(NkDNkWBRYt%1BK)=4TB7{OICZv!N0 zT}Y}?AkTmR17s@AUE4w{e%CipF0LLpiovDei7(q=!1FQ)NLZZ-y9zwKr@yYWa!S;$ z^ysHv@mI&pH6*4ZU!JqeyZ^&=W`3s8s9}Q{eo?amC zs9;DtuPHB$E7}T7!jE(NB>&a2JF~C_3zn;U{m%PWS`I2mO{KDR@P1yX-;#dKP&xwM zSx%TYe*%TwqY3_p%n{f&okHf~e|!ph4r#@7tj^R_o}uNsbQ((a8A3Mdt%+|rzj5{s zr1qSSsmiIIawe4*m&Q$GCIZ*mdj*>+wV*|CCL5Rw5>?8a_%d_X`20(4|8!Top7`V zUFECS4;=fae1RkKE~zsmg4uugJV!Q8`qc0t!@uuih_ZNr*0JJ5c%={jsIlh1OX`o;o~ zXV!x{&a}(H#fo(H`ZrN9%Mjul50rWI9tyX-oUBUKKK?=Oy#Mz51zsl52or=x0Lz*4|_KhVRlK`;en(Bgq-uW&+6d;{Q2_wI^jn` z55tzAJsj}`1EjvCV+O9k9Aj~~&{*dScAO8{-T&tT1SQfFtQg9_SfXd=ZzW~gBL18j zngqCP;k);pN@(dhFDYiX9l{bUd)u_EB|uy{*{!B6BCP;i(8@OIyYb z9UplIK;D5L-)myg`a$CtsRheU6ZNcp)D($>MyO z7R3Em;%wmA;u-|ZdIqhRanS!oL`UHG_~-YQfu^p+chV1tHD1es z`FMMLVXn_o=!PXRRpHzgyodV^_b|_Z=F4^U9`Vb6L0#l|#-wWBmI!;6fxy3kFSg-x zn9Pk5@7q~6Obj5sTU3zmXF?LF;r32u#x^n= zk%-&tddi1@215t$x0#kHEdtCIjFJJXU0_wcsbn!+tJkuukB(Cmq#57}R|gZJ`YJ|K zp3GEL+$QJYVVzHzrr7bualgb+yrDORg*0YL`p@lC|7J*lV&03#w{>4%K0GkAth=f> zUJC#KE-o@O)Hl`&s}L{p+E>7rX0+5uY2h|sFmhVYYqlS*`gS7)&rT)u*TD5%z?=?i zodpAlwll6*>bCA9DU~%|R`D>>z8zKKh#J|O-G6UA^#Ax; z&MuxY4}kD}*T`jl8e_lx13~TjHSC$N7HID7;odj8%psDBN+s(UzjN2Pag&~ayNo{w zE@Vn@CqMbN+zj8?mZqlk!snA>1z2!VyJ2ohMlc83felo8<*|ip%C5%w9)btBWMUV6bRQ+2`|AB5*kE4N zx7cCk+DI@Pc#JR$71yv*ICrk&&p9U<%s1Yb-`lyH2{wg%M(J4TYm48ceiduV4mu^9 z;VI%-&6VR8ltf~o{*V15z6$22q-alDx3Py2BU0&pijj8HoAaklOGt`I_Gv$ZBx6YM>@Ts6h3O zPA|M7lZo?Y=$24}TB@*!p(l=Yb(;hUvTDNW^i!yu9Z_b)j0?TTizJ8m`GUUIz_Ty& zUeOA)ckQ3J2?@lN8=12~D+n?Q8bEjd4gN`P~I|5#1|@IKEnDi#p)vmuehCC~aZEjDjs zKE(1A?pF}r_z+4J#i#4NvvQ5h3EZ>0_7W3Ij|Wc*Ndsr)t4-vJ-EcO;ifJWHzwgs` zcIC~bus0WWB!B#)+XJb3nCMBQSf!c6#|xINi}yXa$;%z;8Jn3IvoT_^yu!P3DYvy; z`ViPOL^c$_>yDYWWd@jubq+ok=Mr+h38Wb)EFUwlmRoZUZ(=IJ&%L;spS)pKX>uZ( z0{?Q!q7CQRoANsH$j0w%;X~NEdOdJ~xfiR?fPb@vOOXzih?bDQiiDk-k^gDm@|H<7 z!992>sFUgJaNG&U-JY1MTTv7ESZIk2!$G~*CiAx7_t}z-0s10aI8RbP%m+Op57gyyY;Okki)BZ?9FvMfuv zn)vuy`^{gQAf9jb*Oa%@Be#3WxK%}ZX!wfvxZ5#1FToMIgm@V7_iv9Yy**Y>bMv$M zbpi^N#gw_P*r(1cLC5{&AlXVf_AT0YRiR@p9{fo1bjXcbMkaD^1RsRE^Qw0xt@8CC zXQce?Up5g1d{j8`>7}p|+3t9>>Dx09(bWk5{_CJ(SCmQpyQ|l>E3E_473X;G>{ug7 zxH*`9ST*kh)woKH+X*eBfvW3Ya_MkE5hnd|)GbQSeX7;%i^kq;n^`OcC+_sWc7f(% z8KWEfmMsS{U(nFxB8@$IHg3|ulH!KL9w)q#_nW5q;?uUrgnvN!L=M)a#`byEh~^Ei zXe9UFLmZu4vv#3}s$!@RZyAT!{6iQ~!o;%Q2_4_5a&^ZNJk;up?ZfwU%4Ke2VY{=PB?n5hX~ zzIXT;8;k>F1^~k*A+gsCzwwhFH}So6W|c49aovZBWl5X=@;#I5s_qQ4O(PmXEJ zrX9R;O9Bw(RHIUn`X`BH0(yE7XBbe&^7AegU4pS*ry%`P`VxBHZKFOVqQGPuO&Xw7 zn^6)5(y$(8$5Inz3p1>lk^}X8^~>T>lMbGpd|PDn3{o8MPXSekrq(eu+Bq%!+#E`Y z87|6c_TG^FPV`GO8K>aiZ3Y*LOlXkE)8pnqVff1Q>~5YsQW{$pjFam6#mXP5 zhxiTWIF*kZ4MG_0NVSQ%4wvxtJ?n2HhwS48(k8cDN z?8*K-a6PsyMhYKSzVY`c&1oP%t*Nnkx^{#KtG-JsyyX&P55#oAKvpc>KT}6gSjnMx zZ6B93Rc-146!Cj-7CeHLt8{t0vYX=hnyI^A?Ag%)s+YxcKUpTQ;KAFfhW%lLoWQ@( zuf@JEY^EO~cZ>yzj2J-CS68_fH7PBrbZw97ez67PaE+`AF}MF!=XU83!Laj63nY32>buzQXThZJkh2mmy~kmvrpxqu zhy5LkbTs&`;!b80Bgod>Q}giA{EG^d2?+8;cDoyrq@tacbYk*AQY~Ez!keWK#(gi6 z1cJltJOl5GM;+C%_LOMt_&=t?Kbj~gI?w2bzxA86)-x|N2}%$VmeH^HRUT?PUVsER zx>RJh%NcT{W-jhGB)bf-N_*U77i2!e-~OIB(8#dLl50pizzHRK)$+{73r#hMv_D}# zSfZ_OX6$U9kP94nlA=gOVpluvHK#%3W8+FW%g+q^_J1^;Ralhq*2UkMA*BWBQjnCA z&KX2XI+T=_mJpFT)gxA_ugx*-#Qf# zLO3IV;rH0Z*wZuYjWHs~oxKpnNsW-v%Xjs}s-`!yrK1#J#uEhY5> zHmB(T>v#_=0q1a!dtZctgKrJ$dZ09z3*zIL{;I4qokc2Lwc9!p`C^VOUuwe(ou^9Q zo0jzwzOYB;R?EvUGKDM_KJOSSSPpqWa9@d_(VBS8Zsn)qLhH=~Fwg<0?#DILtWOl{ zc2W%OEM44u#=SHy)e1z(m`ocSI!uKMLLwiYc9e0B>*q z8}XaF-KfXT4Fh)Ld~wcg+!lSqSv%s0DUG@L=IZRoWwztSnf|NMS{}<8F8wY#hY!?F zh?5&VH~F!UDr7hd1VNt2K5L#Tjg|8O1cU5Jpfb;hrz8F{pp8r5t2bD%+*tFEC9gZy z63=TI$+ereY0RUHTU170DuY_AN+siNo~5rnZdfackxU-wcf?Vd`pIp>5s^wny31TK zrfqtkrR$hi71SK4S{S;^oww9(SY?p9ii=sse)#0t>hp<4;8EZyLq{U#lu%B!u{-5Q znYy02@LJ`f--$# z@rCq(1%fFxzj3o}-up$$L*veCWsBAad=d{31Ty_FBvU(C97QKz$61vIy;2?%7)ULsXOB6k)2KGnEX=?Ns)@PN>HSI07% zl-27_1o?PCM`=S|!`^qTN9=tsLFkbDgL%;P&2b9AbT`t{_KXN#arQuLpY-!5Z+$Af z$p~5*oGvUxHQ2_*w7^?!3kSBSsWz>)-^PJ6gx>6b-SY@}Ql{=fj$q7e>k`C}emiFo ze2ZnX@(wuOU%>}f3?LUQL1;bVPBr&IuU@zJx`RuC6XE_(ogVG27@rxuEg#9eSf-A& zDGJ{(0^OPlwgz9hhaJ&ggn4mYH!_t;gzei8S(?~8i2$^x@B13PSfxOxD2THEgLbd2 zV~p-d_Fd;`s;fQ*$>MuU+Tz`G5?}VTbZF^+?_0c3 z49N4;EV>$B4hmm=l*=eT#dzM#pGNXlkeW?ibB|Y)gg4YX*r1BV@>f8}w{L`YcA=*p z9iM1OwX!8Lv-5;T6KV6Fa%(*WRYtv(eqH}j{kNdYEWmdQRR!(?tVM7|aP_R97=y#V zxH!T!t|rVxDhIWK#&t2V#gm;yII~9^na>j*;OGhptvqo(BI8xq4KQ=U<9c_mXQ#At zD@WS@R0HX?yoilt+13}%7ARa9pkd|MLZF%I#k;Y7(zINN+|Q9wteIl%OZnwC=H@OM`fKH}BgbRPIqk&zkV|M91I z$GPAz_??zuB^Kd+ZUhR}yCM6GcHLITG&j~)g2PLmUSx=ePl$cw07pk$1}S5HDBZ3wEj}2lArU$zw6YlI11I&vRGS zL95P#6Q`cr7eI1NuI!B-bacYd8ML7Y%)W^FGg2SSVrD@LkK?-~LWT!W-${gRQQ_e% zSej^MI8soCW*qA27v6u7tk5Q#>!+_79P{C8Y-KS<>g9uQ=EZO7h=W_>Lzh>-y<2DH zN$xLbf}1r1HRazIhKEQDB>uq?@Ww-5k!({BHsA+*lg3IeTs>!FnKqiv$$DK;Q`6W} zk(Ov$qy1qs>W@RU*$)-x39vv?Ov>|=WK#TkE-kSmk0O{Goi?ikAG(>I^qy=oWle6! z$I?-(@J&XPdYq+1ckTS@P==THsnR+z4Nden-jzk^o>@A#cdP$uy%3eF9^N$z>n#4n1ti*__yGIn(Zwq>wRHHM54F*Z2KlTAqaXC3qTf97CS!mea}mb^ z2BT{o{P+e|$S_b*0;KoN#NQ*#@Y>$paJUC=*&+t$|1QvFLMeCK9Q{f`K6{&sx-#>T zLko+Ih45)S?N?;R!{Nr4Z*39Iw^%3S6PkchiYKk3_xPhIN<4}YaGXuv=W~6`?IGX~ z9rXVWsbm5<^xXr=HVMOD;HKnZg_@xTDMt@E<@B3ec=z&uJ#95H3O^6o{totyhNW%> zXhHhksAy;VGV5b=ULdPz=K&~C44Jjx`K}XI+ zw_^u}@7lH$xL(cmRSBa@YnQ8sk6Yj-+JZTG*T$Ffh>5EVTLIzcmdIRRl8CV#0*m55 zccqrkR%zOg1KFa#LR@b%;n9|8aObh^221~$>zgq7I+wO`5X07s+r4=Zx-XMNjCSDy zE7p`Djnfu|8-EDTEyp*x;S-FpyHv=QuY62meG6^B#!?1hd*yk9nE`}(XNc0($>aZC zuJc#_?d?Wy&62di=JS{Emir*am+&2IDH)KOS2-Lyq78RpuQ2gV2Wlho)dRDXW*8yv zxM}S8YdEri4D#CgZegScVE+kFz|m}OAMi}go|-kgU7_bB{*6`+7eC5adjITmbDOpOIKLk$6B zqX%)PqAfg0KL;fC!*#ga^y9_@kN>bQgU{*=hq0iG{ z)EU>a_UVZE5l6Hr0GQw*cN=KqFhDB?PssoLKQ|Y-jROo$?3Ck0{qNW#7 zdDs+HnDyZp^Ob&-%I^&P!O)-FXsVuyWa+}4k#z0Nrl4SXjQUo z2DF@Zi{FV_KArXozhz;Lez7`f#^53hvxx*gho>C}v|_9{FVRdTX<3^`6SNZi4`TtgIHFAEUXI3s9dx{8Hy zHMf*Bu%_uRszR@O8ghR^1Z_v+oxM|s+zjr?Fqg1LDGry+ca}$%Nh9SL@1fz#|FV|9HZ0QEgj4V8SST{tgAKbQmf@Myae$al^2OMcp z+p0AyP^ND{l>m}>VxQEg?V8y%FNNOUY7)gx`DIhRYEX93H4w~};conYY! zXY9Gz>r~hR##xGseB_&Q?oZrm-0}Fef*^`PO2&$na3VMVV7F?#u{%{%hXbpkE9gio z(;DT;w?7(~n6q2{W$2|Ei2hl13zqME*$kD94~XZObo0!6wl{jEPLtUT$DDn{_r?NY5M-$Q^QAfa`PuVJ#2ET@gU~mmOAxhuuiWO9y!r@1m;3 zVDULx-X(7kGncd4qNX0+`M*CDnZi8uqLn)rRFn{eILCA7X(hQll-60Gbc|IYcED*t z}g^2e|o`hzdKuFEvx z@N7kZW9|;xBFXyc*<0-+Y*sqO%-N2<0qWe#R z0G2IGc^d7)tTgIK;FhTwKQT&X=0A5we})zcI72ua@K_wwbXEnf;_7f>=n~_Fa2`Pz_R)y)?8x9%k7waw~j_ zP+-6#X7vJXF>{lf3d{8AVk~2psX4HGyf~*BwoB+=q=pM^rzx~j-T1+_F|2eNK8q#g zXLCzY3vqSVc5h-!sh$l6tpimWdFR7R`lwfj^(8w&IgM0CII6VbN(I z5Goa_?)Vd#Vv5^G?AV?f^F|!#<19%KEU%_m@dc@rgn52PdwhtMP zsdoSK@htcOD~y5uq+41Kc1-MwFL{>2(+S#kM=uv2A<`8-ETQw=@stEs8kA0Kt+Rs< z4VZz2CG=yCvMFyew?mvD*M|wrA({cfJ<2|kXT3y%P=yF=pqsc8+;Sbo?26HZ=ZC#DrdHK;+5wd3nOJkBK)QY<_)!ej*)kD(wEx*un zus!|*XU1iRLNlP3wH5T}8~3{YdZ-JDcxDKiu3GQpfY zI1OYRsS>qxWK9Q_VqI>4;gDw-)ik&9cY$cu;n@9QjTpW^oQhd+R{8dxA8I_e~)3~p1X&!>&JiZ zH1@P&yr(YTO~$MJQz(C5BzbDI!D_+vLNDcL(8FSjhzdUN%_vVE+aS zk0SXHw)^8bBkTiOYc6mAuR00tb0Lb^vG&sXwZq&84#aRYrhu#C=yWi#p*6yH>eZuG zlxF4h?ad^f1e_3R-=1>5w3Fgo__}4{jT6Buc;>Fu2>PvQHhQ|~ljp;q<&*nC;AVn# zw>PwNN}VKkr{c7ghr!(T?nnCga>#3sJD-d64L$N3g!e`{4TBQxBbhxgAI2IV$cmq! z5HFe@1N!Q59OvKueICUQ63GG$$*tT+jTQ99gdyU&@stn=FXB~7ZA}~k-}?A+3dT1% z1)U5xrPurw&mR#+`VJ7Xuu#o56VHhb9)U>;edCQ~z3tX!rhj>sEL4cpMn%-OcHEPC zN_Nkmafj8O^S;7;JyThI+L~%JoK9zmQRexIruA9#4W#>IEs?| zwG-*xla=!n@J8gru!)lIFo?DLms~C77L03l)@Aovtg*?;k=L`yQ zL>Q&E1YQSOvERXmyUr-V)@$3ql4v%!K+?BYK^Y8|B#cbS&k^gA)pvKUnhMY1VfI}C zjcdi}IQ45SUn~_W#jL7$@(vllCwlh2*P^JRU+%GX?$*Glu&pyRj>hpL&asT&=J7@f zDfXu7WT_ue@r+r@*NqDh8A@m9*4-k@;jp!9xaO1|1acovdVM}RtJ{aI4Z^?AB z2ok3OokHTnx6GgZ#1&oJx%7sjrtHgn)-&;6gJw22Sssx1^X0NJ@VKD$$R@{ZH$LY^~u4VoaX4){qJ=f^FPbYyL| z@n4k)feLJ8^lP*D2#}s0%Zz8v?4avqVWIf`n{^v4(YtMhaR>*H@bfLpPxvFLdhI&tv<4f}a# zj{L@nt54H+&52d{gbCIJDe12m@KxS>jlbM+X3z@Js-8tA*4(-=)2YjstXc#961~&f?pGwyq7=_SGUNQOLA(4n z6`CNTbh`nu4cIzFXPG?wL+`I*wDKNjizQ?sQbbbhpDPE-F#U!<1l;l!214kL9Ss@_ zB1vvYR?wbG71;XM$Z+-2*J**h6q$IS{pik?a1UPMPV4>E2NH~$e+9T%Y1~}0iZSZ7 zuoG8MN1>>@7p39)Giq8K+g9nRjVx3Ix%jIi4=C5bg-6&y+UHL)nbL~uCWvJo)Y!L^ z;sMskOU{T+wyxt_OAR=88fr(_FQ9I^Mm5OMRl9>YDIf@oBZQJMhdqZ z?q)G~CIhU$`SP(P9whY<0c9#vrb#DBO75cNgWKnJ$7Z^)DD=4a3idNj2~j^n3iYV2 zic)l6JAFDNnnxw-?OM1mS*j>@(r#jiWrHI04TDtTi;Z>>$7d5sd-9f$*TLI+A-cij zS!F0}gczvY7T$#U_!>Z$p|ZEiJ9XjOZ1_(LALqZj#lK+&Y9v%nc^WKE%B#OKgFIeE zR)pUk)1h~v!Iju+R*3xF2M`h{mP+N$vQ1U(II&3?0YqT-X?Py%gJ>81~LhHlJ&A4S;kQD!l zaIjrBsrIR^6M4p(R*MK`|DJ`4X0-Kfj}uC$2BI^~^CRmd}uKqbi0= zAti4w_BDm`(Np_zzV{Zg(Ri~P7hbEx!9?V>APK}@`5yJp3on@d#F4Jg4X`XV3VXx9 zcE+cl%d@cGBKNbapvk|!6)+Jb%j z$21C4*<{y*+Og_fZrR26yt(=NI6{-`hnhbCke=0}Z9c6NYHj%xwB7Or0JZ{YYt~#(kFDOPXJTXOYuMXs578~Y zpEU9+|Zzupi5zPgFrVsz{t;0T{VG zut11x09>3xtlo8`ciuyK3r;UJD!VCs2F0B2dqPqt#j6_WxL?D?oo@T4f(frU!D%(U z6lco;5c&Gup$j`F8(^VNe&1kqwuyfS_{by?yiJSLEXKB$Q_v@g{*tQ}Q?)|=edP#9 zUZT?r->=KcwZvSv=HE4n;m8v0ceVt8qyj+8FAKOBxZ0=(oEBRgNiBqpizsYZ-0bMn zd_xud??!oil$+#kk~UZRgV6|L!Ii?NnXMvEHyENMGm3w?E; zF8+Oj3w+m=9uNvftSBA|m@}s<~N5TZ77&+C;w)IZ! z?B;2LQLt!l@1>KYx*_kc$ga(_N+h*>P3;cMyRX6+B|~8rt%wlQU8ZxC7dsUmjxmA z;ypKs1lg@G3uk&b;*u7@SDiBWx3BBjoN9w*%n&8cwgojXmM|r5O-F!azcy6Zrc)Wu zNPTC=B=Y8=JMKN*7x;N$4t+%S&%D5cSq&AN^Yw+>hn7E}F)KJYdG>3CqJM1DNI!yB zLKnBy2kkbtM6}=~-msS%GuIh<0a&{wyuvMJ4)R6WXx70rxy&J?iHC}r84FVwfj~Cr zZo-QHOByC}cJ#4?DZr|j^*&n0nc`;(IM86Mp$fLYZUV z0~N#LzN1k0WmaB=hkP0R6%=-!k;{4kcQc9#9*mSvh;W*g@jz;^sp3+Hb8mBZVdiG3%2=ieL7Lu#!tsRJ1r? z5e%uJMZSk^x*{th$^bJhP5)z5s4W5#y8;=iEQEz&-~)HyenRutEzF}HK~6P zE^#W*y>QO>FQw%8k_l&9>lXDioc59vsLe?!!5mC4EdNB`hletyasZ42j05Zh0@-xT#@tOnR*=^|Y!a z&jCZrY=4XU?hCoFQBcxv8^;#^fFVg0LUxCDD|9ubH%|#D_c+R$@WwyU&o01oD)rt5`GAfhJPosIj)&_GoXQy6ZED-?=6RH1Qdt;@i3Zs4SgnX z`*7+G_G(9b`e(!mW>XJ%!?|V!P%T;m0f4a3i~oR@k^=ii0u|tys(t^ue6QrG5uqYQ}G$` z4V0y_IyaZLV(=u%&$r}XNZr4w)=&2)Z&#L;wCzdpOEV-!(iiwO;mt_w6>*nNqAyo> z#Rqe zQT%qo3eT~0c5i1mPcG0KqP-z^scW4liI2ZXAywMV2JJjUBBYDw=w_JGI{fuv=uF(Uxtfb`la4D!A+DdKsslUR(&8PjT z&j+pA7}{meBPH#su>3Hdz%5njwqBo{F^2s4=nDeHM!MmrvzwQ%v?s1lSkbW1*}E+X z-ArA^fluUl-!rfMQuiR=NaNxr-|Bj)5iflym-zNV6#K!AZp#8m{5;ywid0Cs%Nr7l zPeu4G4xj995}gSVr;pLhIN3jx5K)s?RNCsSS>@Y&RO8$yv?m>Tkso=n`FJ%pNZHxN zKKtzjPAYbqiZIPl$-_Ls`F;a=z`saW)am8HaxoQHBwww58X@;*WE|x46S8@R0KN0Q zO&)50D2*O2#dvriJ0AR zz<-YZ90S!B-zmLrn81=b9B<`x)=VQlPr13$D;qlCP+b#nH`=^?fugG` zwR(%g_$1?#?ae~=CiFvlxEyRjBzQq6+eH`>^?lSNH$4e6UD+g2l(L&FAZno|3m}30Hn77AiCd#%@>0ljU7uvWFn1{MTPJ|gT8+Y6W=jo8y5-$ zvM7mAkog>8E0&CpKH-7^pJ=h?D@|Sacu08&KuIgTR?ti~E8cDHbv3W)Q=98ZYM(tO zpYPK$K4`%5X=obuacS~JC4o{&F(j*0;WJ@`j!HV(P$Q*3@xO1mbsY7x~?FI6)B#i(<{jGdo%?^bHXLwSB;IxRqfYFM6kXhY_+V4rt z<_vY;mhV*A`mwi6n3STE*Nc1y;#W?hr=>nF4yUI|DA$2|+oETum#9Se{B{cGmJ(D} zfvajBE3E;JW@Mp^jXTmg(Q=Z2mnZUHf?$8Mi{M4yi+}W9)Ydb0&$Z00g;?T-`aT;^ zpmdY6nQ0|Jsd9_%p7Nc}@6u9<5){+<^Ocx-BE7(eV{} zpRbKegYr{^z5Hv{z7;PBdG@-by0_?aPo=e8f}g1Iog>ULSE1Km5#b)i=>+T1?~8i} z?bjbn=2XZf`fxxZ8<$G(wZ}{cmTsNw=ST*UBwvx3h)x*e;O_l>$-rP__nQH-k|s{Y z7RDrD#)PC6bOd)(SJHdJU`AOPd zOVE)`?CkPGdpLzn$*R`M!l#hE`z*8oKAP3#Yh6UP18JRjec=k9B>deI`K%8=z`r$$ z)FFvW{2Q_g;<2{Y!wd?7FMaHGt3Kj-*%z_AipY(^5AJ~^vtZ-d0mG%UK5AI1_=(>L z#LS*HeY%mK>*;wzLZXe-MV4(WDm`(17S7LTb}KlKdhv`} z_oHsxe~K@SRUW6XBDM(zrO#&X=V+g5DJzlEroeN$8Q%E_3=gF%RXz6_J^*q%INuIcpE)Y`8?@6^!DDFbVkHEK;3sABb8l1%OXSTQDIrt zx^)~h@~(3sxjF%tJb#CYU@51Ra3$xzLPPPpeQ8laho`cZ9x~tUJdQ*^9KL4ZU#x_LqCx^rM-FYz!A^_IF{OA0J_Bp})i5&CFjc2S47{ zbW7F!yQB&-%#Ei1$=M5h=e{EP)}U@AvE#sSCV`D!Fug28?%$qWSP0w%M4l5Cv1;IZ zr@ac^a=Ja-t}(BNGvHkl7DrNaJSAzX*hm?w+YCRnlA$?&1d$cdo5EasPjx>NBmE_Zm5fXV;i-pL7fqt^Ij{LtNn-(l8V?qb5x#}(0&C4QfX z@qpOaP{Q{Xad+-S#60#_P6?@-t{H`FWC7RxmO;l$5wN7Zmr!`2Q<5gSRfdq*pfaW}FYlcim^Vo$D(bCl4-bn@jGAu)l_;ji~9>(-!PN zkc?+ImW!BxHBPOft^%KNR}7yY?k29;BpTm?I#lw?DaeY{=;U=#il|<6T99`I?rQNO zrjVWB+T+*k%{Cb*kO0D~dhyv-hCa8>xnIbKuwAt?nKN`F!aj(_g|m49aZ4h>zAV1J z+Nz@Bt8Yow30=BG1?;M^2CqqX{d}3*I^i=z1Wsxb;&Vjm_$YjpG6@k0qCi+b_ikLX z`fQf;m4e|zpEHYK-mvc#;l|E~?aV{` z=sVx?OzObxY0qy8Yl41@D)K-G-MICX-em6c)Z6Zm{k)fBFaP)Vex1R$i@{rOLRyih zHEBug^j-hro7?Y9S`fH;#EGm`Gq_PX>|LY9mv&+f>)rg1mPEuEA!M zmEbt2a^iQBz1>Qa<7(4j5b5o~m9Wjy6a`gV!1$SCF!mI)nu$N$R-8JW!)gnr&ABi< za|U@Q@efZQNqE#8?C^auaG7zpuf)Hx(>A55V z;`^bu_OAm3hL05Jv1T>d=>c0fUtK*G(o%+Sp|3iz4_RR&$4C5$ZI5BO7r3cvM8<9_ zn1w^>uIivuiv5(|v}%6qjZdDmXmtzfA37A?+&37a3F`8|nY;3ML+SKFHf5S<3$OYu zW^0JsixYcJhm<8}g`169O%8Ej3)9{Rx{_M=Zkc>V82H}F%?y0>fpy}H3>SvR_&UXb zgrV*TVGRq8NAJEGgp|!KRt8mqXicKv`Jj#X?+vjv{M|B8Q5;>*3wP?9UVZ3qlpU+wglhFHHJns z6arO2vp&e=9J-@x$xT0{0l>@(Uva{L?GI(>4xg3(<$rBb$p?WU}nMvfzKyZU+Ro)xPo zsl$zJ#^L(yUD(}&A{=+imR7$hZLXl|EkJNB3$eZ4I1u{68>^aq8IAjh!y}qpLTkP| z`mhs*sE_m<);vM2z^blY3xS=wq&tuKV_2w$URwqO1%Ufn>Qt$;6JK z&Vkp|Vhwd^qTgkVGwKj8J%dP{O3QDILk%GUl$^b@C^sh{7pv>5sIhZpz3)=w+cpG*>drxWbDhtpwoYEDMn z#pvUR5qN1Kx@Xi8E_gfQWKkCOyCm3kZzl~xpJI(9*jEMz0KC!H8wc}X;q9w6pyVLO1Q%0l)a zm8z3^e!hyl6MOo<59OEaz12@Kk&W>mwI+5qbhCv%mjAyOK*x@C?l-!M50}_8Q!P*` z15YDLnUe~tiwA7Z+SJi4WF8I)ZXy;HmbB659`_EQNvhfq<_QF_1^IkUjXZ==x05DR zQTRZ@bA{ButMC1Ym42WHnthp*UIZT_w=b=#CkPlUPiWE>FDG?bGhB5ZdQ(q0zc(c& zNaAhj89F(a?<@PRc5%Pu*XRB>a-!Lh6s%P`DS7be)5=ZXeoACIYG@ohGm0$*(;hmW z!MQRlueUaN>Z|Pz8>kK%M8;e}5Z-QkX#ITusa$ekL3z=?O95QLG>(iCPKsSx-knz^m*a+#sN{Ne+*mOFHgyGD+!U!il8{&}iTSgp>zFAw? z{V*QQ%TfIGVp-iE^0KlAO?H>`(){C??j1|&59~~C-wie1J$zI(X2CQ0+f&*41epo~ zgn^RJcr(HU%2(U;^C@5J zVD@VE^ewcc&k5peU_{_MeH^7QTNE%VOb$C;-m)h&t~u?Tgni8H>MkzU)Hb#fGlv#h-!<=Qc!B+V@Z#kMsIqQvdKbamTyNFA~l+ z#*@;qXL5TcO$r12ESIexPM4=mk03mUYW_hYUZMBZjkD?wgd*5!vH=hi-YkeJ$uw7L3cjpKO+wiWz+>hkSxqUAq}99OdXHo~LuaJYo? ziSYy(qU=4WMZ+`~Skc0rP_fvy2#wQavFpS@m)ZS+P5vsy(?$x)M_Nsi%uzTN;BbbR z?`2uvxvTI4=F_j($t~)~6c*e`?wQ)|j@j2*DP`#eu{v>1)td5m8z+G6PpM<35;L|1 zcn(Jg5}#y9E{)%-G3qTacO{Ayza+&;=UBO*o^crnmE0K|pD@Y;`;EUHj%2LA)8vD* zX<%A+M6ljQdV-P{F@|Q<$N_AjQ0?j=UclF zTip!%zPQx3s&#LP32Dv!PgtQ?`G_>^&^50UX7R2F_8d~H!^Q-g6j2fCd->N~89YUk z&g)TcKOtYAKq$H)o&)k^i$_?dofSTt*2FxLSh7lQRU%$yeDM%L+p0Jti(6H+`qv`8 z2yIY|xBsSch6`H>miMV*+K^C@ICZanyz!y z6QMij0!|1YNKZxJLMC0aV)Rimg*WZpU)TWcXfSxgPoZ6c2SSwx^2mZ3c!EWB<5!F0 zk-kR4k-J0c*M2(S9g)U~U%qEQ6BNr8$=ff-FrjEi|MUd| z-%j1NTP4D;YLp;Rz2ADdUotyizx*pR*YDl(&wq8G!bkbp1<6kxk?hU7UE8HH-d5Ij z(+4E;A)f)kBl1q(&_z-28H5Ahbk3g%DAg<2FNb&fdVLoEe0An=*A)}Q&`))W&G@Ta zYLg0>=o~iu4TTxRkJJ}yo>0@)Fvrk34n5{ok{>yr6jS`pPD5U+I=9kFC$E_(lKLx) z7W5@7sVwqLBywul?}n8Q;dyw}y*1l#;W6J6uuRp4Va|jux4sS>6rJJIZhsl*4+S4r zZnkZsP~(`Tv$j4#+66N?3L0XKZUHDFZ%<}{E@B_iY2L#Q+Rr4MlN~4+)e`Qmb z*W7G?$i@1BT(0x?|0bJ8g;{+drLR~fsIZe%64b1m%HX*^ai!#j>?!pPz$IhK*GAjy zsOz>)71nsI6=VL@SD4soG#FQ-!cEW_xd1x=oIer<>5R);(C2fLg~OJfqvog=4?!aM z1j4yy;rqH^`m^Q7Z+@5cmqLKtVlwVJn8GRl-W~C`?e zt#+lGq#421zP2Zjg4sPa`sbemCEp~@j+tLWiBmT8``MzOs?i$0VE=aXq0AR8#}IB8 zsaYY(J~E|r!<6yY@`6BzT(DV}_3D3KZY$u954?J2cFt?EIMbpIFO^p>MF4~HsGFah z)Jthx#iRr>cf+g;5`HsH!-$Fv#c?j@HUgTwaTJ zv~jB9)lTwQAN)~*7xV@{5?gz?a0>v?J9#ZBMSi~@y4X^wDru=PiSfe?rRBWSFM-qQ zXO1kN!csI%9}qQ{ELUXE)o0@*anLyMyl=D58Snbp@(~P_4{^S11tP<;*8#OAtl63X zrQdH2pOO6$v3-`gmHL0cHNAf^CoIGGN5S0+&A*pdjCVm;Lj%T zQk&hvLhn!erIPj?{wkle-)>(*9)xIR4VGHhT=f*Fes#Rmv+NVpJk-yjdvap|x-FsY ze)SkiXK-~<4U5G6ruj82dnppbTV9<-jn?bFr)GiJKi9)!PvdmUWap0&$A3jh@JkhT zSf{?-_oDR7RZ0Gq&eWQCLCNZz7_^56Do})WPT)GjOwvDoN=7wKvWQYHlUjeY`}gAu zt|2UFfta3~)tW~=?dK%n38)V4A40nvbcOSLZ!=SDOW^#E@cq5s--thVbOdc#+%I#Z zGy<%7gDM&3C`rAE7mz(XvO1&p8z>5=MlC$>km&F`LxA$^DP1STD$N+=7Qy3(-~(#$*UO?! z=e_4SB%kEq<5KZ=wv!a?jLf{nYPA0+*!lN_`(f+g-H*n~n`ld`@S2m%Vw3~Au8^HT zx))F3pJ&)zPD74#zM?KHT)*k}TsN;go!M@ZdN22F%wZwJq+$8#iI6Q*SVt$_keGP= zBebFk^8hx+q^mk1b0P!;#Oq-9-^Sm2%&;6<;Q7vY!9-rX-!k58V0bK(0Zg<@ZoH(- z@U2(F{S~nwVl`V{k7HDGkdwFGh3Je@cN)wm^QdvZ|0za3C$tK~e5a2$(Y8aVH&=HD-e)V}%G z)w9!h5n{=PEo=XK=OP>=;GMIW<+W}Goldrk!XGw=eX=_~#K~2Q5Bm|i2s{aZ{c6Sca< z(xa|#kk3GY=&@|kVgsueX`V0y=r)4jZr|p_1XY0St!@kBQ=S{M+(pgUp_!i+6_zZC!C0VhMTB zlUl9#07t)+K>sE=jDryQz5OY%=!MfvM^c!o8y?r8O6xlcgsiHzr_-NAs>@Uj855Rz z3~{o4>KfkoVb#oAjH@6V``<0Bn*=NS?245Cj#NQ8i{tP|X=KBQ*hnf?>Xe!Taj^PE zm$gSX#s^=VoOow0aa63*9Ok#|(iY65`g53~BL1IY{@wjHf=SodXjkR1@pPU56 zkxZVrJY6r`#dj)Srco*o-fyzUM4YOn@`F1}@c(3MvZ@!7vxcBzyNh8`D+4^8^+O0Q z$f`R&?C*Hy)yw+DqnE=Os&X(7$}XnMOXl_lwlwKxw?)6OOq2jWF2G1Dh2%E#^)r!( zoGl8mGkm7$td{$s>O_+g;c;zFtG}oFO&*{Ze<|{)M$pLxJK%AjR5#*93m`qoD(M2^ zMcTsIl%gN=n#R_1JaY-SPhStP?X1jm98z7(gdtQ+02eINTQ)Nh`!J~A54%OlY6 zdeZcS?SWpI#Fb;n%W9aY9xkcXHF7&KK#h5XE6OSPV+i3&#Y9me z(6e0-e>n5MWSPtQgL8k_*c3yQBeDfLmSSL${Y$^y#z@@Q$znkAAIR+yecN*Ob+2`r zfZjuUM`i_qh=zm}#(#|P@wbI-Bk^4ISw+4i6u)JihS;lef*P9&r zFVofe!BF$Zuot>_6Rs~_+VYTy#$2&2hEnYNFo%s9y?vB~n_pkriV;aVZb|0ydTj_G zZBmB6U!ezkQ-q<;8x6A(rWwxIt0sv{F&jFOrR$gN7cO{iQYx}+kGotZTxNRN3MH;8 zJ^3RbP>-njkcC|5aV{NN;Jyj^C+(wF(1uNm7`7W3Wii2t!M-bf{~Gw){$tv~ z3hq=?fn0u}CPF=5KR{N#=hy16okMnif67bl#z3(cwu&F~sOA-5Am`~1eC|Yk4&zPf z2#^+GOy+aB+yC;U76;cNt@j>F5ZV&QS~pK-k@}PB(E*GH72zANP^$}LTfta|C-qDtV5G)g8mb+>?CKJ z@GH?MkcbvH2oBEgp&D81jsA9ID0;;4V=zqiYjug=4{4_~a7}&cg|DSKlgtE-p7_;( z0V~~=&hR%%uSWcz6%nnYb{M*reL@VHYR~UF`AIJJ0~jQBHjwtAGMRHM%Ns=IG~(C& z>bU!a@Xub3RMot^z*?n`tJan0eXb81)+Ge>fx>n~CbX%}D$O&ym$^CXXN--l(0qB0 zygZ7eBv@u<*+clLA;sk;6v`7(R%SD)57an*l33Ls6zZ{82v@?xbcep#abj;I`JJnuUvI!o#vv~RpcJ)?=)zB>hBygcz)C+YX0GrRkhTL6*>w5L zOLhu1(hBTmZX&pJ1FlRW)Ev7It@j{tyXf2#0%u-q+RTl=#-hSK>dNxhK}ko9qOA%t z|2)CS9_kJJm!Nz`q=EsmC zBOQHCEbB&4z$*sV?FDKIqmzc;)Qj1t-TGK{sjIf9aI#9)B^a4;%ra4G^-{q2#^UA; zGx~Eorz^wDK{nIU8~b3TVk$3uuZE74Y>eSO&LhrSlqZ=5LS8Bsi28i||L5Lsuu{HV zRwROd)SoaOO6pJ0&k!(=(~mS~B{xqESrOhKF5u%jsd<#QU8T6wl_;NL9NCinfNfki zS@W5nqpd$9T+`9m!JaeO%SU`d55+|u>9UyoQ7nj=mjro97b2!21Dq@qOkpyOg~8U} z!eb)BaC2l~Eh_>(x?|!0jgwvOToC7{Wih2+M3P*-@|=p-0j3szZiIZ2rLWnLoOr4- zIn+(Ok2;Q_WXrZD@aDT*R#XH5Y;pin+)GBEOU5#ML^(nAbi}@9}=a%CHAqE z@u2=1+KBzqBc+NV)(#0>7vZF);aXqJgjV<_lC$8n7TzLaZA3zLIl&u02 zx2P@b`_4`o*;L|t#MrNTU`en%LA22ssD?$;JR2OBd;=c{(i>Y^0~PjKf5yIlpj?y# z{H=!%UQ{_Nawt8=43seM@G}YSlYf-NRFt+4U?lHh*H=*I$ww(Qk?7fevP<+AQ0o0@ zwvHQDuQm7&)m4lTPyX(lHuCu)o7htIKdi{;-PFuMSsD8i7n!fLTP*zxCH2udCEuK> z%(DSqTV$!x9skzYIB{z@8#x7Lms}TXWx3!JS(Civ50{9ZHq9HKG(b8tGIPqXf4-MN z)Zm<>oFfAI5|sb<*5h9>(!si38J{zE62yZHW%4#>BFbd;M=k&RDbp%Q`1gB9YmZDj zDEgMXQPhO|OX*~BnS`ghuHCZnloGAg;Z2X6>Wzgi zJS2XpB*2rPt4&pyb1l42>?i0ptLi1wB@=uBQtu1}1B!-FWM?q!{O1=)sjOxoGI)Gl z{~RqGV?}@HW;VYxz(7RnuBBgw^Q6^?#rV1V@z;$- z<5X!?*Xw7GJJGUPdbWFGXpnFuW!Fz@MZ8gxLd8$5FQgF+@1xnnRG)O`iiJ`qrhUoD z7Z%yi(RO3($=5m&{`%YN<0V1mqmU`4>vYn03vA;1{zE>6QjBiC)&`D(Am*gHRpC^r zsg{=RW^Orwi%(VDoXz)NqjS+v9@id;Fx{77TTG9lcq76ih)yhd)E!zc$kR zddd}{;QsCD7t%7@K<@Iw@l(V{9Rc6hx4R$V3a}-~m6YxCy>;)^JF|%3kX)zp5lG64b;O`6<~Uthm&sPL80 zhZEkaM=00C+jghJNb|nAK&n5C`@YWST{DZI9G;(Um2AQy`0vm9P_Lr3*FGd(S-qF} zK8Yz+Pz~v7MI_o>6;NWN3jm~EGU~h~B$5pgS?iOMEwI8XC5_M=yLIYMliJYu`}oI$ zEkp6lyzugwHR--0zU&Zgl}rk$m}If8h?Q7~utXeq)c z*m4m)OxZ`z-U5t*Gp@J5`@f?K);VH1Eoo0g`n%VLD9N+I<&K-?e(S1U2{W-xlv1wVQ_Gi^Yi%PqCX>C>4eou)bChzQ*YN z#18zcR|?UIGZM_f{$1lOR4=`IbzIGp5WZ^H_Tuql>{Bj)N&b?-CNFHykD&$fQAjH2 zITZKB?rtPHlD%5bj>OIk(v;{?JZlaL(oxy6bXqD8e(3ElaF|Gkc1MMylKy)b%Jx^Y zh4Y5^{z;1jw&D}^52ZH_kD5?x#gFOruQs&{L+&#X!(7zvCzYPkCEA9k+DA_BBX8_VZ z8q|@M6k6ZEEi1okD&h0R?tv%?RPZQX_D=7eC`}PuR#)*Zp~0O>&omgC1Ge<0;G)D+ zZJlb#S$yO=wN>{nyYa1JrXQ_c_Q!G;nnH53fQRgYxfo@}42p(O+qdxabA0FNPlf{# z?>Wx!ZGv(0uMy}wf;Q@4+`1V@5Yf#hLPp$pCzRmU3n_?G6L|c6`d4cy-gbG@sP=!S z*#DXF);9F|{n?lvW{pV3-;hw0!x<@;1@Ib*veq)L&ch2G?U<|F&% z{~~k-oYp}i?=7nxF4p^$bYKY@VXuDiy7#&NCwvZqJL$0HZWQqLAzDFdS)oe!jJH;0 z5~#1M-tJ;_T~s#m%AaKJR_G(6$-mE_yt|kFu((ft)fqxb?N4Sn$ZX%bp2&w-c81vl z(-$qkMS`XiN zMGISMJsokY-*l&E26W0g7r2z-hgQ?}E00gbGd^QlHxOg>h_OvqVWbouT&fSZO=EFX zwW-DN3S}?fo`Ca&TCA~wK*BE=@lWf8sEfqW( zn04!Eb93;JWqeV97*52}OTHaDs}X`wRn{pz62$xv{`;Qj-Rc6pM}nn^O7Fjot)xz*;xR=t&+)W9Ae?!qAD`sqO&5C8iKl? z?pgoqB)DyqdQ;7VN{QKu9t*jL`G{q7$%&(itb zHIi44L=ih@U8^60czsjNgbjS{p*_3DW8J~ve!1!6eoaptf;t?n!F!ta(iTI-E|P@w z`SQ?8h;YGm+FQ|h>C>X5xv95AzfdUnx{1n3psr5EZ7rhEyg=uEm^ zY~5A%6&=D_kYZb$u-mI(pkHGOdwuH{f%X znZs|v+CB`qTc~#JkWZovuk30Xr8{=HM+&vCjM~LP+*0&cR2M{4Obt=?VEXOi#FG=e zUM%-+3kal7rNUjxcak`m54P2i@e0%4=tj4XN|X$mZO-N9cN{CGmmh@WevYok$oWrY_ExP?mB4T$t4=d+&^JDtfEGc&26O9uLq>r3Uddv zp)3+B_c3VZ&`SuE?T+yh3Iso6@8H1f5Kx?Xjk|gmBz#!ngy)u^m`iV%Gh^2@%Tx#j zWYLD%w}tO0d&WLCBZxm}NikxynU{F0s@yf?jd_G8rnDJA-#g=7+B6*}lIFj|`AT$+Ds>O!K1*+>H}N0t^8x)PaUcRY{B725Eh>{>}T z`T2aHu#lJHB@m8I^dg`b;Q#rtlGJsrd6QCs7`};Ev{Ye zA6=9)VX3gj5Fjwy{;$mL_kz2m63(l#FxFQocK^^*PY800!H2Ie7A59UFeqR3`^pfV zN4JQE4O9>4#}L-{U%?i3`=lFSW)nEWZfU07yL;IIC%b{I(k0A8M$_-IbCl>WCI=#` z;x6dE$XiiG&E*jjvZuTjlHdVNn_pUNfrnqQmFKljjajYG$Q%%tWdZJMv#<@LNG~Xv zr;^EP!`aOqjZHAV3b~k1%C@zkpqE(apj*lc?X#&hTbJvTm5o1fNaHIS(9#kzKIB>&i$EeL&@ApE^Iw0$xsJLt8RN( z*#RT^#Y@x)Dg`Ar<k0bYO99l?b5MN6E$f^GPQ2` zso6;xeY(=KMc^bn{i7}3o#hJ%Qtliv)%yn^8!*jrv9Z2L!0BVy@@%p#+yCB2H=yG( zD5VYGwfcFKlISF%Q;~Stx7nEN1w%H;y-(u$k|EIIn)O7 zKV)8BXfv8?Bc5w__ui#@m4*ro&u9Gw<}>p7WRG8#_BKR|5OnQXYII!g8v4b1Cmo=? z&3~XEVlX8vBRg7NCkow!hEyvdnx5_8#7(I>!pe~nE6xc-+rJl2kZT)=>qojXq_Itf z9Uw{e&Jq|ZKEEIwL>~qiby%m>VS9711^56Bly3;ZvTv++Gl3BXfd|lfUS1tC^67~6 z4aDyAbWK~xhpsHv{(O;=oXN!J-Y?FNi*G+OF1eQ|mWY7FVER1qyVoh@0l{e?>j~)O zQjKDZMB3=$&5d3Jo_eGs#Gqxcl; zhEe4b9_g(dI|H8gSD0mfvf zlePy7Q(B0soedn)DMo5ppt1u>k`jsFEy~6TKt-LEZC&R2$DvOj{n*Q9KEMJVpIAvO zh;r5pQU4vekCDez zFxEJezU%smqt;FxJQ-(9VI-{>f@iI z&i+Zh;xZAad7%t!o;p^X7ku-RX;P;O+YD&1 zXU^M+U|`Ct7B|+3q#?9^O5HfZ9iZw?LE4tHtoEJ(M{+B9d-DLYV0@e$cg|LtGq{Of zHnCXj1}W0i=TAye!ucFL2{M9jJr7!LMQwpXJB0h$5-!Gmgo zsiPdN8B%P3kb{L|{p7fh#;N#f#?#uH|JD|sPNy#?ZrqF?3F1-k^@o(j-RjrMmzWOk z$|1TUT{$~Mh*;;yFNdm=y|D|F9&-#{`;6+D*p>Whnj5kG>hE`IzbK~X@9*vL&08g2 zrN6`al*}JqGdj5B{DZ1-i&s%_|0b0PgMTCZ_&w5QBuavItIx|`tk}Wg+m+Q#oq!d& zb1s&D2&D(IkXeUz3s-r#YN!W?CaB`XZ-xq%^i+9$)6`^VlNXuaf=~&Kt;!$x6xLHH?F z?Ua)muKeoU_zE%J(LOGR4J4(JLQWDGYznI;L7xkkfd)$r?oQ5&<{(I5ImD|mYU#q4 zo#rCwj6l@^aH`)lA-#~viJm;JPCun2cuEQ7{$lrG))Mq;ZMu?h1_ro^kuTB^n$|^@ zl+-?dIN*rJ(d#ReI>@mY15x<@1$$-jf6vEMsH`{w$E49j9qGY)ht%xL#W1<65EuwpM8gqD3}-E zmwQDPkZ@qb?$Vo0P2A)gK=9$tNYqf^vG{tFu$9lp2l%h4Uu!X?VC3j1oU&PC4<1RP z%TIz`38r9Fg(7$_Pa7nt6k&oO)YX4K(|8>Nj(b5K3v)mJB*m5l_6J^%UzYMCTrMYi ztzLmbs?)AMu(;n*%jir08jHp9thV?o7^6(J8bd9NzKW>OrNXclmhCqlZd5s+T?>B)^Q9`>Ke670MHckkKd2WL~P!SF<=6-Nr(ngeMAb_6L9rogXqo^#f5Nq zIw4LzsxjDhF9w4iXjm0{80B3Hz)~hP!C`UdR#XDqS|AtGds0Yv89pd2VCf}UqZAGL zA&@ehP*3*hCMX{x)ESI_NKVmr$niQn`3ceVK@*ous|rKVJnBQNF8at}V|pu>d)t5q z_L-*a7f^HdRxF#;aPj2XPl8DTdus9z3#%Ddl!=i{s!Q@TSpeV~)H(fB+5X<=!e~)K zm!6*(3dL|Xt8mRB_JNF+AMK$}cuF>r0&v{fDE=^B{}J?4)bexQU*jH}65BLu;FN$5 z&mXu_ef*Ny@A`>^EL(5+R)D0!b18aJ`EsqOc>{MszBtzGe?i`5feeHvt(=J0M@hvn zP3x~y8As3EgaPc!fF%?O$!0D21T*s8g1UL5|4XC-#WIQ}xgoc>*wa&&_73>ZxSt5Q z-Th9oGPsT$H4L20MT`$2{+>*TDv3Rd?m$xLijWPnFW-;UTU_0BJ`hKQ2 z5!L3fc0V}mFhYVr+9eGY%LXigSefK%G({uQcSP82eRaJ;a1?8+56i!Wt!zCHxpi;( zf9}vmDE-nw*n+vgAjB@r1milbev_Ga-U)xgc;>wEybg9TOyn>}Rqa;nLZhRfc28w> zLT$^mkuhF@IdHHJiC0zDBOX!|?5pI-0`JMsbD!^&*0({Wo5YtKwEA#_6i`E!(EqXs zF}mAWepSGD`}HyQ`zcoKM$alO2kSk4VJxsT#MJ4(c$m#1sV}15$>5h@^9F~;2(cjPg^1BQ_DU0tv3IhT|$JK-+2{K^}J-32& z1Ux`T4p~6B$Uv0lbSptIe&GVv)ib5}s(NTq;;c7Wn6l3iOIs3}J{+-^Lk>)Xomej} zeR-gO0PF?(;OgBq-QjHU3wuJPV1f(q^vV99J;RZ@*bY$O`t~m zZVFazQO_qr%_o7Ol||nu8ng1C?i)N_HC-IT64+oDp9+Kbxs}OH7==F$qSJ3bzkff5 z`&EBKbWx$A{}y=cv39Z2Um$cpw1XBHxkj#i)Mtf#Wp7P5PR1S6Vno_OH}r?2r-?j3 zRv<5hLoHhkZO!}h@cy12LTClg*-pqlUe{xoUF>sT3I>7HRjsBRtx6;_Oa2V|yKJlU zyCgNXLR+wovx5CS?+<*+N~_hmftpWVoy*(2_jro0bqlSg=yPPqz$P4FE?{@j$z)Ir z6lg8I`cezt&A0w>g6M31#PA0TQp2B|CpZz43O&kL5%&rpB)g$d9A^@hzu7L%(^9~P zq0|@}L>Qwz=#p)_k9c%sKRofA=)Fh-6;7B?@Xw$LDTSi(bUe!Z0BiRyaqlFn-&aGY zELL%-tQ#{P?9tNT_%MihVMl|_5`2iur0MTELlgx*s3V=i;v*r^n-uqy>q+h26tQ*t zz%l~aN9bZ4tQA$!!yT)K9T-L8G|DcVj;|14w>((ojpZ0MHTt@yU|Q20F}@;j(N$z-{LcQXKU32X3Z>ka;s z{jGrUs>-$e?$u89Gwi-Q9{W@XY{jp^2TWff8Fu}80z-`o)P!-rpfsi{D%3q=c6U#1+KxF&f!G~ z)F@tMN^WAym#yC6jn`wxPm_!6oqMmEme46jr{zmq7H-N^DY5pCn+fgMy0Tnr=IL>t zoyVMx?5~%+fOBE^`1Uhf4A(T)z{-g0@Jf(@qm^7~kV79qD8{oXL0tM@qRTs@fnGjj zPj6oVS3jkxt)G#wc^HR8EVXMXV%<_B<6ix1j;hlSijP7e|IwBV8`pZa#s%$CVlEk( zEn5+U41|^QQGTe%+9|*=@%w%#XiQjlG)o2ORvPZZTy)y!%R z#9#4{EW*27hq&3WzY%y522uTHi5+I9h4dzm4W?Lf#YzHpC;u}4@%zZA{u5u%R$C++ z4E?44F8M4>-$FWN{4DI5YS<*(m&rS>$H3G!d4(Ied@q?Ra+!7-6*|1l7I^-y>0Wf$ zrpP&m+XX}4Ji(|uFJ%lgWhSb&0R+RK&1$fegFlzh1hC&h=ER^b0$33lHYN~BQW^Vq zkp!&Iab~a24qu{KOTZtERnSO8#K$U%5^}F)$*a7&#{QA}NP{OSZa;4y=)!1O_rx^J z8q2u46O`~90lM)l(wqKyhLb7G2k@1my%FTIA%v?3-C3-C6qU1`!Mlr{jk#ORt^jOu zAugs~n1HoFfNF@>MgOPPK&+phnB|_=%jH91=^Kd39IVRG)0awq0Scqt3rdg$ z>iq&Idi#U$LDI$pkVAa6^}JNfM$Nn(g`i3RsV0#9kiuQ{63W5M$DoF+yD9* z;})AS)wz%tQ*EP{4XnUdXKUJBDg*0OFthtGgcYH<6fdlczB~z;YxYancP~5~iaf7o zyxJZ|9s2!4H9VeP5K0WaZpLj7%1GyKr4XeMbLk3t$?uY|l$3TCAEDUJ7dha%TvS=xeor2zM&mm&&@PtVpVj!H4+i~w ztXD6qEeJeG%+Dv~W-k5klu%tNvdC5>*Sx34n(MpKjz&!hK%bGdHg}k!ytD^O`K0`| ztkwDtW!J3Cl|sVUL`5(|$_(BpX-X5>r`?))_r^QA=7Yewi}#{7a}hEm`kQaXW+`ML zH&fOq@>P$Bk?uFrqGSkiG8bE(Wl0$f>!5ITur2@Vgr$N`eR5Tc;&A$XglM34LK5_x zo1JeG`i^H|JBPj?OH6By1dOwAJn;_n()6O1EO zD6d^AjDyYCPqL*j=Teok5q^(q-Vpbl)|@9TU`3FEb&n}WnQ=cCS{4&v#XocRux}Xw zjb5|yC0ovXu)0Q{BJihT6HUWe5uh&E-=vAIkg_m(_tCJZG|@^f-hED0=C?X6{L8&C zzmVx~c_oAf;TdORipGXWBJp||Oy+p$EBuJ8VTvxwu1lf?CA_LY(iDS^sX1`=Bas6s zbAL#mAY5bD-mbxK$<{NxEO{e+^J%FxF@p~aScBn!Gcx4t0lE~nOw!2~aeJ|Ze#q{a zB5*EDsR+Hn3%78x0*H;AnQ+a01y()_pPHxt^|Gr+N33}16EO+i#A*tV4iu?o|HTs^ z?BK>LOeG?e?i)^wr13M<1fuN{x*HfWP|Ch3QRXlL~MpERhA4p(+SGg~0n3 zlq$3cQK<zJZ>m;(2_UF$U5Rz2}l$PjrTq?OQ={ZH>G5IK^6783KUyE zoylO_{L%kIm?+P&G?b@FP8@iB^m2NKqNd~7;;eRHvGe4Vb~_`%RL;5q{hK)?sEI;b zc9`^U#eKC+h6azs%iL-`^yQK3-a)>NBDr^5H8sMOUvJpRXwi=m)nGzFNBj&w?AmN< z>|BQ(?tJc?sG)=h{Dsal3=jf-V`kEulP*PHl=Mo^7nmprb@hI?y;sDAn>sp%pZJ(U zWD`;)At9ab?7x=^wvRR!}qy5dZ02& z^zw*50Y@rrfEo$hjQ!u=jrNuZk8{`46I8U{h4tVk@EE7HhAwZXEcfq@e?f^q)lp7H zf?2~NWQ(hNJ?tcw)dHE@%g=GcCzN{yb~NA(1wmO61A7l6t=q4Rz-NR{1|E#!@Nvba znmuIvrPY%?&MabJxsmM`H%G}w;J3qA!xs6wk`Ou27rb;hxs)JYM$O44v)fL%_G@wLrU&?nUc?z-^GGC-*GERHrI=Ia+>s8K-c!V_q@pJL!Eaw45n}VBtN1l`IT z4Z**lFHGUi?CDWzE&yXn8|2G2%AC*BMIl^mk_(u%(dQdvd-i%n`_^hh0eJ=OWV1GJ zOORZC9;mcsYQ5(-eZX;jhilendd<_X3l?&x?ZdZhA8Njed&uvQ3_wjTOsf#=tX*1> zXrhV}L{FnRvRkq1l5y~6g0T@}${rjevUR3SlGL}zcdsj4oT0MALvmfu7u!$qM`PKr zRt4T{HGZ6;L3eEA_(Fi+9q9Tc%yaKfG&v`bf~-~^i_6;-W^+Hm5(1a;BNoc2OC{0S z>!9faafUi#JNm6=Gq3rGM(|0Pi$%Ns;geU)w)~` zx;zSkV(rFj53LAUG~m_l`x`z%h67p46Rlp*4hg8Y;nZzW44TLWqv&yJ9I)zZ)&1teW>6<(KFqtt>p(-z z4~J2)VDM*Ai{~pYE3uI9md|)1pD&`R!9Y?IOzKwM-9+GZTa7zvb0rK@Vid!%=W#@) zVYmv31T6wUs)%de@LD0%{nh;no_AN1rhFX)c$-lUU+6olq7EK10pLH;O%jCU|8-5c z?dcdILp_)w?ZNU(Qz*H<2!iNF@70IbmLq;o7xi+kUUnBS-h6%d;c|HM`g?BuT`qte z56H|f5K0GCGR>D)ym=cmy(`Pz+fBr~GE_%yx z)hoLSn=%%bAjdU9udnJpUKO}trEA$s5^vSV?h3%bWGR+@>~6L}>`E93PbDb3Di8x@ zX!TVXgOu(VlPAb}@NVXCVE2tAC)xdLfk)z{Hz{t#M7$L2-y(W& z{i1fOKe$2Y>5?uho+#Vrwe-qHl;!nUyIzK;I%7{~{DR{;JSqDikw>(Vi{{(%9n&{n z^HW~)j&j>|LDvpd-Oa8wZ>mSI1{j)=4*p2B(mz9uP=*$!Vfl%#W-Y|7o?U0SR+SPQ zBif1}I!B>CX_}F57Z&c~k&h{C5_h9#@1jB5 z{@k&E$b^_Kbx4)2fc-DJCpS?9(K7lcj~SvJ z(cJ~?uh9kNsPql9*&{6L$yZeLK5K78`*8gL&0B-|I()S}CbLxj z^(HCUa-#wx!#{8nS>Hm`u3|Lt&C;D>-!fgF4ZTfkya;Q#Cvxwx#Eq~z1lm;!J615s zNXcGPU1aYGXpB6532O>aZGjO@ha;bgwal!MS($aaXI(zq3U#^L#n=1NC%oC(N0=;i zo4V7Bb8~gew8GJPc0FUC8~iEu!<-20JwI9nm#d@N@Wg`Hi>TrAbB?A_)`LkNF`~4f z#FFNc9^+mLjtmQYduHth($#~G<`%REy$uGmdP&ml!nAi$^u`VQ4p9oXj}-}p5S9X9 z7;B{at6DV*xG6dRu_(*&#|KU;%LRUgVxVp*od+-Nl|Fty^AqY-*o3@($Pa*RG#2sZ zP~uAi^re@_zo#0#PhcmqwltP;*G1Z?Q+x{cO2~b8_o|zAJp2+JtQ-J0EkdM{!xhd7 zbg#dg>It3UK{ca26kd^ovW98BG(FDvGx#Mj-Mrc~AJX#8oxoT)kkH24Vt7`ZL{4 zXU+V>E`6So{ineKI&%_2vN4si%q?v;iO&$wA^23D*<6C)&BWpM%0eF8#!Ls{+?7-4 z4*<{G8=mbYI}3W917%K&&I}#SI~B5rHo;%_$eV~p^57d}m2Kp!=S$a*yym$~{F(a9 z$M_U>#JhEi3GA8rrk!BUBaHbvZLe2^^wnLuh*V?@V$1knGrtn^vWb2-b_=H(8`Zelsvm%aW;AW5PkvaBFmmzF zGRMLIw5d6y6urt6d4w~p8XMOToC5o0n6&eeAyl93?vyvWXi)#t*8qG$j=y0d@uER2 zQrGO<4ytiegBQyEg3NgD-&oJHOdkp5VJR0Ze#ULU?))&hen%5lR&_7-Adr1*%vEeGVy38gfol@J;)04vczI}L zYjQ{3H&HMSoIm{&t_O5PFW%+0Y&Bq6=w`8Wb-jxpciFm|XKS~2mFnVK3Y0lNpxIIpMB;A80j>dDFM!>mh!Sd)88PU=P={3#j>k+ zzb1^zt?lOO$s}i`TjR3xGYgU^Eh2EYG{oB3G;BTZZW07ZH<)Mb(8jucn)Q(=8ry7+ z378a>{`a*E^#T(#7C0dJDT1Q21|)k%DB?hG|7K~9<)O#VDTYiGL9~)(4q+j6VJ2FY zAoadEf|_osj;6RrxnxKVOxx6-oYYDR)U&QXU$NY|{CWNIW^$T$tjLwXNy(zq`e=Gq zp?3-;+h?q|u=3}t(Vknhe6J_V2{BM(QZ~96Y-tE``GR?NVg&#$e5bjLOFAUT@o}qS zXFY?!UM3t`d;PTTjXz;`q0X0ZK<-SK2GK?!DGJCa(zS*Nc)KXi#Ir*?gDtf|+2x{g z+Df^ajBJrmd~-GIA{6PCFJ}%_bi>EriAB8CeE>(5)TCi8XyNsQ5q34WxsPC%Jh+`K$UsL+NqD;f;Muy2RRZniw8KoWS#gt1xC zHTWyyJk3;znaUqP8kYTH1GV7L>JAxFlkI`QU8xGWR&Hcq0A$0q~ z+(L+bBq!R5SXKVi1OsJ(~F0+H0*BDe>*a$Q3 zW^Pwp-LLomXCkuu@m-_HGFN`*OAqsqo;2w#3LNs<_oXc;YO67yfsRL`UN+|YmUi_X z_+>{9PUnCGAYyE;9z`C}bamgK3PSdO%<1ZV*(Y0N%lW?Zsh22am->cfFVWCN$b0;- zW~p@f(|68(e15789(3kEZzV-Xp6?a)8-^(LO+9^2UR_;yCGE1d=h5wV@o8?eR%*>d zm^_SzB;R>IldJx_s7IEKtjhg!f^wmRpn`A0H~=WHWs?_CB%3f3{t+*s3ADk5Q}Mko zxw_C632)zPO+<8gQs76SiGC=lPR&CG-ns25h|E29yYkg-mRzTv z5oo8eA?}z!J#dDtJGueZE%5oL)qj1-BnemGs-Q@ZJD{qC+|{!)O94;a=>^MaNK(+J zM#?x6_U!HPWH+NT+J@V4GCf}Am`aeE|2%8of%2MEWuc=4j%fG#CxzWGRq z6v5;tE%_@K4CDe~&fR8@?snxqN#eloZl0d>Pw#T2!_(5*<o z*Bj0v&npAI@Dv-~O83_BkiJ5ue%5^%1D`B=o8FeV^nT^n^7eWXST^jEI)?dY5M|99 z`o6&vU!$)=Div}nwe*EI`JAd=lFT@a5w=cv7KP}yt0?SZTATcb9>7i;}Qfa``4M1ki?XMn;c0- zQ97h#@{0YLb7+x#r7oURc3AF*rP+an9{3BY%SSKngzYNnS57mBJ1}&i!SPFy7OIyz znC9Q)V7Cj{4=mUM3$rM`N}EY?WtT($PcM9o<&lv`hF#QPSDd`V6re?@Z?W9NZ;=B% zyU(?v_|G4`0Yfv(28c~4j2xj7FSm;kK_j18zc=BHi63BQeMS_q~Vqf(W>Cpeh-xp_5T@x0V4 zxtldd-+!v-d^cpznebzpI$47?btsevfWJSf7}ez!9X|6*@c&2PHDE%Y6XrzTXBoZA zR#c!6wR_N&C39A)u5m#NZ2h)L7J9@WPKhgNn0qiwj&*^av*$`j52HpZO$w z7=lQ{l9eU8UJ~RyVvvqtW5zThBO^3%iU<-=Kkr3_N78aLNBnPR{9%Y1%-~T?sR%VT zk`#DCChqPKV7nukNRU2xrW6L0-Q$?Me3i~A0$-ykm{;mCwrcNd3o4zSwHtJx$_@Dk z0|p&B7V^V^2c#zcXN&e|V+>Fx`SW8z5;&NiLSL_edRm|7_`f78T*%-8Zr&&BUd4Nf zlF;6MJ*DIPrM6$7q~z~2^E0sz9o#Y;#qkKbP z0tzDCC7~eAMuU<9(u@vi!5<;85dtC&QqmyZ9bp>Us^k@N*%N9TCd4mPt00TfhDG$ojgO45@-y;-(hOYaN8~aJ|ArinPU#JM~*Q+ zg+1?X%o&?lSc1W}Cd$%JqU(Ru1M38<0WV|u#RNW7yp74yD9PfqP`~#grxg@I(Q8Iz zr?UJWw%_H0e-ylJOT8jz=m8ZG&&c0fxjd}*H4qWvp0%>RVyAKq6H!04v*3oItg6(K z4=)HNxU5M4lVfm$xTTXbVbyNu)lZV}zN2S_f$Wyww#qbqv{$O)_NdG*HG(Y$bst~r z48gN7zSq^XZITBsY)gPOI{;4!;;OY#g8{96ZAp7+KbVimMS`yEb)$axKDkNLr%>6r zN~)x8C;}7ds$`PQKNlrM@rt0=FDaHr_pDy?JKgDs-I4l9qlXxw#czyzCj0(63Y26Y zw-L?i8hX_cx9mx_K~o1OMFm8`^1$EPxJgHQPO;2Yw`6y#@4fGYtrytdUI=a@b%P{^ z${+wdmxXUWqk{}k?0%EXw;K7PPsY6Bii>-MrzAog8D@tNji^C(w#fT6#anML6S43B z;n%_WRH4r`X4E||R~#t4VGd2!PNc7K!pY~0>u(OU{f%f8^|UO zNaYTH5dKZ6j{&+?*^iNKe@tVvmVJmmyBs~I9Q8>o>@3n!qPh&lGkUC)SSMeA)Sj}& z&JHjDfA%LdAK8{?IED#sVsbuH)7pvr;CN5cl~3o}6eE`WmP`b?=KJC>BsLF`Zsq?` zG$-swpy!=An@T3o&KEdH!pME^=_BTnKK@?>AR|}K4XB$mi?9YT0~9t9EXbnt6pC|%bjC}VA_vS> zKZwQfJR@*=7D60huQG}6HWOb+h_z5jwevV2YU5_VZm#^T2pM+EZAGb@vx5kpVFL{t zNl)=W6c`l{D$=2JREx&QO5)Prt2Z7{wa(IbpIR0kvR4))wlHPmWUMwm{+IpwLBxj0 z_lk2e|_>k+%DSk0eDl@D^pC8$f*L~BBG+U0v)hi3IFhW{fp;Ce@H*96?g-zDkq zrOCa>tI%?YZrDfxBPqYVR%E;fu%G`!?kqE}TVm`dUx?q+-%zEOWEu}J^f%NAn6| z^ca|Sm7e|zhJ{e2xz+He z5W9eq$Si-ifnnZl7C4aZabQ)QtU$O>QU&CqYwpg1FR&5!@4>d9nnlVMFWFpkPb!0o zVUz5MUL8TS?bWda-W?$%2z*gnD1Pyenwnn{XO1Jd+ar~}6fx|WATVON>)5-a6RL6t zOnjdn`RjLQn$l=Mq_Wnw1=aO(sk+^S_7HRIe7|3*(Kqd*sg`Z{utS)Iou%{DJ*qC5 zh!I<`X|dT{+|f3n>C#`g^@rn*vas$H?f=w=jb`=+QEk(8N!{l@1|>N2?XAY~+7Rxs>s zY(P9Z2jr=BuoWHdO*s|~QwGFql3BB_9m(yqS(@9x##a$j!J+P0mcb2Fl^t4^OmLT@ zUTMSLJOc!H;f5f7BqmiECH)=DG6mR4T$9n?;ZdQ_`c#|U3))f0FKx`WDEnctqp@ zrPpq+A!f(eu{m(s%6HnPUgXa@O8c(*rM^`?hud4=C&G89mOn6hMRz+JDEC%jmkV4@ zDVzo>65m%j1fb#K2!5nWWLg;lScC2zf*lD6t}NOMkMZ|Z;P|bW~_v`@^`tz zK{pNMq8L}pCOb0?ogS;ZA2?QhI}(d3Jsci;MjLHf76M4y;f9lzUbn_`xOXzESL^pK zF5$6KM3z=E^PoXcuL&bH<0=&9Q|CZo`|(GUb~cWgU^r#$>0TMJeiDhibBEUV&aP6y z8%KXdQ4IZqO|LGw@bA3eCS~Iut21`AH?Gz9%Wwx(LL%NVbUiou5qCXRLHrKZ%y^e( z0^@z&!(2*Zm`%&M+nY~Fwjp?LD!k}7s-sqRY1vY3?OSDmAN7#c{HEvK=GINL=Ye~1 z;GvNYQWqQR((0Q&(zA!q5hN-I>d=&CQF{*1|#MOZXe?qA4eD8gagx zR+X_q z6)Za&u7uuGeyqZ=po?8}Nt(Q}?=cPK&#IL{p9vCuHhSLsz(0f(DDS~wpu)TnIegj`9OGxwL@L(M4?FiF=N3mdA4>Qv%PM8@b$)J3=6{a(C|Xy` z7+#Pee?rZvJcPwOk2uZ*DW!)n;#mW|^8MQS_6ruD&aG;9xur14Kr2BmeXVEtkBJkl zh!d&g>S?0f0@$>Rr>3VBTP{r*C9O=7wkMS`v>`8MUFE9=BPfCiJiD&Aq%n-P#lrQF zD{>HuFuK~Qm0#ooQ0z_Jg=uOOBlH?-V7&d}vjIRmjoS7^_U*{;o%4*kRRe=CXkTOc zdno16nt0rA9GPMW=}O|?e>gm5&_H?1vgLrIe=?1e8l<=Eo@;m76aRE0JMMNyZrCmm z|AP1M`7^#MN?96IqMc#t9=Q@A_A8>_B<2hz`SFIS1nc_ZU#B$U=ru-CzUoJ4$brb` zpUq~fH`91l8)Ar_eopVvuxZDsb_NHbJ=Hv%Y5&DcC z#N5z>1Ov84T-RVy^tZ=mV|^XTup!?ynA-`5e21UAEh2V@({Tg zMoIC7(40du=8#DsWLuLFZ=h+USe43c9|gaU|tw2(>5D&0)t7{kAJN)`RYeyp8Xz~X@m_v<(r!)IR=!nEnOl%0h$ z80B~voU|MGgk)eJ8RAr4CtVUj*WTNg@-%tmSWx|(2p!Dp-5lNb-_6#xLF1?j@uTDq%uw28FqtR?EI62sj1z5=WN-4C6LJ6k zLD{4_s*o_Ex|HCkK}ebiumSF`i(t15bt0YGFUXcRf^eQwm8*3u-eh_I+|v=1$=4RD z;3i6u^Vc=BixvGQ8!Go{93^FiqaW-WyPmh~WZqKRfVlZmE@+=)rxvTwNR2~X2s-WJ zhxVNzr!HZTs({9_p$R8r!^;EDWE=434CS;6CLS3MSvC^SIWSoqtY?v+hb!*$F7H#K z-5P5L2adJIdt|r9B6JK;Bu76bbOk!K5Vh;kIk!v2nn~CD{9eQi2=n+vY2aMxi(2o< zFJ8<1tAH&F&l-oBHP<>t!qW;6hw%!IfYjEbV$b%1pe7Ky<{mmoF?l3&Eq_J_F#WAu zX`=m=2X^CIUu9J&1sH?qM|>uVTfF66&;t=Z8Lh-wTri1>9Msf^-s8BhGR5E7DnB?V zEHXzCq6)=+gUnV9l3pBjH$m5c{g14EJjqH(!`yeODNRoXCcCb-UVALs#E+>&+J1&5 zMS-#~=pcxq!q2)Jnl3*wifBYz$4N#Xe)B+t*=oXa{a1T8k}(7aZXT!@54|qN`{=^w zmS3CE1(>zNsYvs0P;Fbu@&E%bH;$)u#|{h>uxGF-u~70(E6Su>+1ClQ0rDyVCO^Pu zzCe-Qw8*20=N(VAz%K``@3)aHd(unE%R|%dRW?c|8K&0e#caCdj`nsJJoTq(ed6FP zb<{#1up;Mvq`rK#`te;N7tHoU>cx^gB6}e^e&XJh|5! z;E77E2QNsS92)*>{5f5pL?x=mP-d-0-kSjcGtP(6gfc*$-`oIIK&~4~a7u!%=9>+Y z!cY^bmolnJ;P`~IK8_#RLnGQ*QCY?0|J=4XX#gC%zAW+##_Z3%Pt1WZg4%dgmO@@n zJeC%9#dGw>n1YhsbiU2G&IAyw=f7&niG`lFxNH~-D!JH6Nnj1DHNt=V;l%03y$Jf30nP0j=v8YQBo>_Q)_|JJ&7kaU+ zPzNp%Q*{2vS`eTU8TsXqu4F6XsN9@fz?TFxObCKHae zhSpz`-Y_$vTi!%6vsASFdbv1f?%g1~{0qM}5;O^_SXFciedsvnc`Pu)TFKJB@alc} zgZP~y%Q(d9k9wH6#Q@GEPT$|No_}NVqvRxfJ(-5* z9mlJs41qPT!sE1@GtNw{8VkkEv1Knp3UCH~XGpekx8>vILu;9ffk%a4BU{@xH{g|a zEt?yt5mOI4uKt?p;BQ1~z=-jC#$_7zf7rj*lKyK*wjr}b02yE=WDhFEY6nV;^*BicI@Vvm}#E?0h-R;`B5#ZAe{&wR{NB@KL&9p|KW0dleDH$)Ibnr`>f@iZb9L-JK1dT4(VDDo z{0RO@B(JA2k--Z0qu=1}?0;0ms?}Da%v+HI(T%_G=-E{d>xBiu?uHN7wPJhr?*g?n zMO^tS7=}xPiV&E)32XICI=o*k)mvEg8@)eMS_;zDfB!s7H$JjO z9J!jQa_6yS80H?Z}`3r>59>Pd*`39p@82^)%g&Xd zKNzfQ^qr51FS|JoW)8P>#%-8B#=h=33s?Q}WL-c{4Dwjn? zili(@*O#{)raUqT4uXN9_tP)jwhT{^Sw1dVcVCD{LA-`AtJ8Jd>ZYVWfp#$H?D8#M z!U)xu!u_ILKC9~M>|~P*#KQED^61}EQdD8#4Fy@MJ^Ye8K5&FuK)vT<%tUbYTP*pM zPJDUml8%EOl|Wj`S6wBx0v}3iWeB+nnF_%J2xQvIkdq{#Q0)o!K?7pf-9Aa?ioNC$ z_%$Rxi=-B?)2SA37~ftBv38*7suDb_5R7O6J*7S^O8^>H=!q$>dB%x!0HV8vL@s{- zprwRvzAWZ&#ojiT(jVi&LPbq(d;jKE6*X6~wjD*4g$5G^?;-^u{gYts((bKFYL4;F z&oyuFD0oXLwpE6XTEdFXT?Ih4O=Cj`PnSi*&@1@<&{y?0f^y{=w(i?`;86Ull3VHZ z{Wm-m>1G7tFt#q&q9>2o`y_zGRu*B`COX(IsxUa+`QW>ASM;7rcOQ}Gqw4Ve^7B07 ztiy_9kAfh>tO4Eeq@;E>H;XkRP37_m;*U!Pc`;y^m!JT*y<~;?;AXhy^(5{dpWJ%A<%)}|b5AF>16zbVG&K&3CLw9 z5%K)dQ@J11onnMOKg37*L%2oFuulQ`@?~IYTK&*1Vm!go3-b`Ks)GzdpT!OgJ8tJY zWTdX~q&$d{No6!jaJjkTbE}0X*4-i5Bgf950L;xCym{qKl_W0W&j!jS_>6KK^CM-T z_}BQ$z+)piaK1D4ZI^j8Q4)({V1uC=xW&n*NLMvB^@fj-h8AXpGl+Zrd6uNa?>k-2 zlb_94YL4EPBAQ%s#J2Od&j%7G0JOLIJ9W zBQ3Lf6WA;u#}Ep@MhrW;+U{exx;sSm`ogc-7CQpNU|bqy*vuA{?HRM@_lN7Vl=yCJ zj$b>OAL`8guDbU19Nyf9x0?R*_tLulv-|TK)a=XvbL)7-3L77>s}&G)23?UPK-_AZ zpc82#gbF7Lu%iC4uCtIV>79dN+NXp!FVYkM{=!?-c@bVM1;v^smiB%?B<{vyUP>A&EriNh1U8GQKU8#~*$o!Xvp?>@?~tcm>SpIUJj{9lC{MSyiT zASI=lyC)eViaYH_W;eCK5aWk|AMfSU=u7_z3wRtClU?-}>`qb`9NouY3BVmuQq)># zo}w(${ZIindYLCn*;m4P=Qznm+z$Zo3sVyB;TN9e97Z;UU=lNnFTGL{yWOL@tDp3g z#Clxgf&WC*9E@ovx`aeB4YSXAlt`@Ul!a8uZgKW&$E3O9obH^{i+e@`li#HtE4F$vv^8qJb>jtCX^x!>tE` zeRG?s)uWC0K^|;Rs?S*_OR6 zC8oL)MB_$a$Cnv3L_J5f?7@s2kM~?FH$*Ov4E3caWSO;6eLg%u3Y-f2WBEx{XxIh6`s!Ym@Ai#vwY1THJYW+TBOjJ%rNn14w_K?R zxP~bkkbaKy&-oT79V|`>7%3^uVq}fqZKWW<9B~pI_X>oqU8{GD7|73_7LTWO`&|<#zP-JA4LTZe+&2c2df~A{Zy%Yfe1N;i{Ul1jj)C z!jFsSB6+z!DjT`JlXPKx_DQDfTia{U4ZSQHGmGNOb!V`Ia$V`e__AryhV3|}X*6bda4B)O$yUOf&`+TSyE48eU*WDtg; zuH*YoH+9#rJH3kafLB65;Fm4z?baPV!POfn+(TH>1=HqEl#Il}u7u~ir_%CtzPALl zewH@a@zX~-VoYmt&Uv*pRWv9OAax83^o`bvwdF*&jzfvmRND8+@6L|mOMGAo1BwOxLn>42tcl!)H&Gk{=U~c^1*%0!6=U*BA9bNtdPX_Xs&Nr?zlJ?Wr?Hr7yqK z2dwEar(Fmf!iSgdArdZ{7f7*?%amJ^5DcXIh-d!DY`Y`7ca3NNl6)T-Ap&H!Ri@pnj65a3=*|YEu(-w z4Tl5YYh8eU0XwP4{ZJdG!eQ;ucwZ>p2w8$soN|YRdM*fwrWEcBicKn^9uO>+$axaU z&KUQQckzCYE5@d13kBh`^EybpI?aTKHKgK8BMb6_Q;N9Hqatr{>_%gbOsv6sSL{H9-jOHvO_d&&WhxsL z&W~QVX?2t?e%Zbv0NRrfYzS!Soi(opdKEXuJBdBp)TT> zoR=VCAx+!VFNrwm4Uo!{R)0iaE8LeM)E%4Hlb%^;U4A$Md5W~LgfSxgdXr$F+6&`R9$o_vpu=VqUoFby8**f9?r9u(J_0e4 zl5*GCb%raOgnNP*bkU7e4bsI0Xl75cXnrfJ8BSefvh#8BZfIfyL@fy(Yklr(le&ov z-7=X)3jMkBV1AwW8)0>E#c_*;V4OPvCNfE)LB$tsPQw}oO3W5^`87(!P-d0qphvQN zfxuI8o0vLnheF^Y(#8zVSJ)a39gv#|1d@PqOG^oW{ir{Zh0wx#KGc zvhA7wt0>dRTlUg882J$hh?m02^f4R~0hM%TF;$UjMo7S`)=YXNcL02I7X&Aa@g@@@wv08-Wj%&zXs>z zQM38NE;>r@0XT5GFDt2ABCTt1L!~l^+4oS$zoy!+ksp$#KZ?q~=l7ZvBRA8b zDIA<;*B{-K5>}$v@CKBFo6A?-`1B`*;owuUkn@L8=f*A;rgoM;|16bukf}}VeJWu2 z;{e|_%gF939jT906xJpD$e;oWD_7b5D*j(xpV6xg#-0~b03>2TK-vP~ROy4(s%iLy z|KbWP`bY^D!>;#hzd?B~S-Y?BBG+1pV8&9DoAnUwPHQVIvdqb<+u-FvHjPA^oEB7t zI#Sz9cOcmFDq{a>ehGiIM=3TG3_%1X$m`yMB&rg>N$C@jX}FpHAk;705ZQx8g6!o> zzZv>Q_s0;3RR5g*SgU+YQjwDMkPk60ib2N&#WGsPE@F#R_!SiJ-ALf23I34!Rwd%} z;&$;{!XTc2?fKZhP|jE3@n^DH$Br_XHiYA&4cr|aBU5)VWrnlC(=VD*0e-MB#_&eN)t9PlfzX z?Kp;Ihke$GWm;t+W3>Yq@==1(mp&nru@2m)d0NZ&kXy|;f!~=Q%)jfZZugOd5KRb^ z^z0VMutfN-aNPofZu%U!df^_6(yZ*Cj+dkj{%8 z{5wA+YF-6=F@)W-@XNkMT~XDE3iVW7Gt4Qj-QC70;;spBH>kX|Tf8yRHknn)9iO>- zUWbSG3A|ADuS$g;#c=E^mglKdf298FCnz`f@oDJmwXM5p1_H_cWox{D+6aVI!?T`# z8fLIqR|u_DreY#U61N78F^2?2^&3O~`f8|Iqw=D`Esl)F9wKog?moq`8iDe*+a;`ZiYzrLopS?lyx*+ZH z9fj99VMY@)sGt;qqThK~aoPQR3_~d#N0bz%^y_M@|BhrKFavpaF=tGMRwGh)1J2DH z%?mGm49|i+Rmdiy@n6V>NW)99`ss-5K`Fi4DS|^isy^YL+K+;wEg8obH5zd;l6<(hp<{TuQ~I8o#i`y;x%hXd9^wO? z2b(?@ZZ`@wsJ0KC8!qDcvv&CnElJZuK}niv$R5Uo|CqsCApo0u-@{JJ7>{^Xy}=QO z$FAdlVbv?q(~P~F%%9$yodvt|I0y@j80&O^PuG!kc|+C7hHtU4*qQ70fLv%Hn=Jp#Ezb5tI^iTIs5!Wf^(t z6+j{vsOEPuxUv-^Mz=6NM8j`Yw(6UCFiHUi;zCmCJi3 zsclI_Z!lxYBEa=E9v|y0gf;92^}cIhW`D<394EgCe}4FLfWd`c z=@?j7gQGs~^FM(HlfT9CVOA3L@b|xPeRjf1JB{aq>0ak=4aq97IVY7r+;Ly!a*s(! zVlL<({lgXvzpIh-Yb87%TI$jcAgfg3v1W1}uDCxI6gYO>l?yr`h}lGNasLbhbDiL0 z+z=}=HqC1JLyi-nOWC)*xn1#&p52D=HEhhbwUbr&g3wyY*^#^P!aDT(km5NBJbQ4= z50<%WxdW+Kj3n<3fYiNa|Mh7ZI;{9?orQ@yq8xq1F`>=(dKFyQT8(-Z=b@-sH5dF4 zzJM2e|9RfLq7BTaTb3NZ`a##z_AcX>w1X>0X22^~>y~4#LK!If#cOpVowVkUVTMP1 z48&E6mfy{)yqsg+>>DM~-easOUU+QzA*Qvh!krtUZiSfVmkT=GLcjbm#-&2>c3crUw zC-d@iMm_BEj)m2DZ}ac`7NZi>fhRG%rI2m_sUbL7C9U8jhe)m?yl>_uyc>Q)d$l9f zwe7rsnZ7x-XTzO@e$0e4-R0aq0@g+O6T)E3D=t5!6?j?MG`Y-}omqe;PPc0sbNb?? zv0~ptvJlxUHO%{|9U?lhcyrC3esKXMy^o@BZ1ND~jiwSQR72;D;T_FyWjo5J*QhpH zNcZ0+v@e_hi@)Vf*cBr$xs;SU@ePQt)}1_v-`TB*e!AjXtHT`cwTzih%COzq13z?f zOIq1!D=?e%`pH=M_3F0{mkc3a5F|*IeP0M_YCa zxXml{<7vexw6u+hRc|##dukVw9pxrA3!>A;UpFI$RZl?+=;2|Hr?+9(~ZoES# z0?>Gu86~Nkqr{mUj1+!cnZw*NE4#Xg4&YX*4hNyRCEkvvyf5Sbn%@xo7lW?OljgDb z>c$ulzIjB6Bwx;XLKVGK2X-1@VXRD%Kh^>wgkh`y!iz$2^BYUo#)YR7LkjD$YM zhu|Rz=kFaTP?L{w^xGw~D@js;VgQ5zJf$Pu(Vk<|+A@x&bfLx0{_iv7xsvrU5dbnY zoYzB}^f9@ht=ct8@@UQQ7kJ~6(gt+3$Fx#eE2pcsITrFZ#W{O`#~5c}yX2}Bdv7bN z%&v{k^lr`e7+lvH;4r>{Y>+~W#84s_1>QkOVi3NE#q|{Tb*2dk>VA=Sq51KN623OoGhR2*?il&f4wC`Pg4S0l8{+ zL>jZ>#Fg)wx6DU2^U>$IvPJg(Yo$`hfKfe&Qawnb9zHF|~02)!2YeHn*44#cs22KwEp5qwX(PBt9e)e7( z_KNrE)|6LpuI@B14MHDp28$COPy%EVj&fxSEQoHuYOe82R!gvE zm}i2@RJfot5uz21s&d6`@G$8%g6K=?&JRb=lqpa2L~A;FL^=i^aG0pW&uV-F6zP~l zC<%&#FHyliBw|X*ZpJ}SE25Mtd6I@HgbSl9QDiK6&v7^}oN=332&RFTvm3`?sY9{< z8cI~;|JO|FVUN}nZGtf)M{82OKfk~2li4hxe~6Dzl#Arj{eLci6(LY;M@_5NV=NHi z9tkXeN_JALUgkyjX|l~h`j?sGt7yN^yoq7DwXZlX$!ME6TF1>CGNFc9AI2adeo>4~ z&>xEM6aMl*An00(QEI9D*YEoEYny7}ikZ`mpMOl@;j6FQarysjYC!}dOY4Rc=)$pm zuyU2o82!WL>}Uo^*6#~$%Gz-^#c$vJ-f$w8Ktvisrk zjt|)IVa^=A5|}HAS8Ek}f8~G~>$*ODAZp%;vP@l6&sP$|2O2c0gxWP1`(I7h)Nbvw zpYSE?esLL)U=+D5e*sgv1a9QB>#XV`6<-9oe|BKvptzBtLX)gZ+JtN-qmUx3N-X;|g{xEGedw{?0IH$a)^z7T+(A{78d(zJK=+`iug#Aomvbc` zRlG?%_;kX4B>HDr3^WUxPwQ|GIETJ2WAuBha@7X4|C9#ZQA=_Q*qSVv+3VtbD`* zNP9A}aLOe*!1bx8VD=9&D{QOYT(i4G@c`EDYZ}qeQoOrGORUgH&X!ZRX53Z>_J`rz_NJ$<@<-?sOHu*ZK{9Dz$9i78QJCug@sFDo0g?tdF z`kk#XxN=Chz@~h_IQ$m2#&5`;b>^e=4p{2PU0(Ktu#erVxlx!;_29^WSK&bA<7&>D z9DM{k1fV2N>?H8Pe9pW~zj)CBh0jAVYZH1&Lt`^@Kf<*~dVAV6x%L5~$3jDgn5!LC zM5$u&$UUwC-T=={3<@GAgqK$)E@n$GCUW!e%n(&%x}%X}2UvsmQttA>@}8vfj_Ccq#0C_kn)) zFDB-?H>7toWC@#sUN*V({tMs)ZYmBez4Z-P;SKNA(mEC|M$UVFj4W+8dXCaMJ$N#) zcn_+iLr}F~Cp+o!8``i(S?UsmUI;F~>N0^@y}A;o(*(0Q3IMj$0DKn%?_%&v!Mz$) zlIWG?U#RtAkpxTh^@PpM^Jn`Tx{KU*%?|ILIC_m%T_X)qj&5klYj8P_Vkxlk9a;uv zR2weH`WYgMJ$JO~03K7s<$}UiiC5}CKe(iE1R;LJ3C7Fek}>y|G1Esy8VId{a51~L z2G7!VL}-;_{{B+<6PHxtAa@(oxSL-?+R^}Vc%wv<_y+mVjuTvzN65!rIV{2i;s~IRJXEgOg{}BD-15Yd*>eB|3*Y_l@M)MAT(becy5AD5}OWpydexIbe%+ zPC59&(K@kpLqX;-GIwi)W#I16^>AM@9a|tm@SuE!RqQQF`sjBtc2>OW{QDKKc=JUY zK!fcTZ^XfixbJyE2nEi#snCn)*pM|ZXo+_$khpSOgScNS35_|yr!P7*HbVB#;7vmC z6pWlRcB$PKa}?gz(U!WjdGamTU3UeOY1d{;P^Q`ZCbX>;&KE4NZrfE681%}ugjjHZ z2`G6FK=rEZFGCd7M#7O1S`m;eZ97KDB|3!E1^ip8krB3WmYf&Ofs=1=a9Ey%hl1<5 zBa{AGnaC5Je!n7QwUc`wFyr+(zT>NjB6Hk_zgasit@W;pc|SWoCqvdZU_O&vUkdL7 zU7=5qfN5~(0N=A|TV}FU2;y-chAeq8EJa=0-Tj|jQpF}Dp9{e5nL!5d&$B1bA>LAV zO=598+Yk7<`{c6HRZBLP+K?2|D53Q1u9jJS($4S)ZDna~6J)11UH zI3oYr!$Iv|eyWats}bAso^|+bh&S1xr7f#vcT3TOV=7`mfz5V4!{t0ky5yj83rELj z7X&=PNTP zv=Be=dC3xamei0a7-(-a*-Y}8A>B6QJ_V}z7qrx_htv??P?J?o#~d?D>jMC1wD`6? zuG_Vwbs*HT5i9V>qsrFeD;T8!h`A|;e>$M~bAW4iXe>Ol-;!dI8aSt1Q7gm&2t7DT zEq`4_&M>Ncwk9AjdB{@M2so9BwNr_!J8=Dl=Mlnjml4yoY?3TrnSX!TS^Axcs$|N~ z&3mJD_Y9wOe7c0)UwodDw{!WI$foGNj7zTgyjaikn^O?E3sJ}6m>OwDv!!K^xt6*X%F6q*X9lW4$*D7 z@B!CZ0s5;95dR$`;TFz-at9E%B9ksEoXGZpsc(#z$TOx;?guSi=XBD0ux>p7MG{EY z6~AUYsw`VQL4IGf)r>5RY%ED#9o3B#(#u!)o?UKCIiDxlJ--}MO-V44SrB`!?x}UG zN4}GB2|Oa_Y8crW-?s`*QAT@(EEulyZBQr7-Ytds zPi85kf7hRmIX$;|YJr}4f6o(0wr?sR9cmv@t|`qHj)^5h*i1@v*;}noaYh%N+eZJd z5H8>5Xqa1|LfI_@#)qO-N20V}AGD^X=d@f+0qRIWA|FdDbEWge?>Y-vm9kn(lh#iH z>FJf&7R_Y{DvxPf$YYR*t@Z$*%3ExBYhPf}Uo@rOGDe_lcm-w;_;sjcgPZzB%$sZZ z&PVqVDuB_m5ck6MYEleXp0(FFr1(%bcn9L7%OHuSRPSk~J5~IxYyBKIT{uRI;Hgmy zvD8(K)5THqa|l3%iUK>}L|BoSkh`m@j-d)cT7)9|bZFMEQcZx9*k}7+HGr zrBwJGU>M0ajLl(zyIwSz-j`ZuVCZ6nAwugd_y$l2(CRD)D%~DjtR@+(U4Hj#M%WpH zcVO*sXoHVjZSyVP9?FChG|98(mLCL;#tx9^#w-2n(2~7z$^cxn#n=xRI-mZ%ZB}VX zlTCVesyAy{{1EgInqS4?(gsPp*E3HW5KrR`0)H;GylDMy_hwB?0$ueBz)YFGsy}h+ z6$3yh(f|-@$%>7U?SIb4@A-OsE0dQXTO4PcDP^CO47>F~i??2Og&4g+w|tUdoT&WzCv7QNpAx!CM2$d-^dwfQj6&E0UgRt3?56?y4jLP`?qTA`5u$3q_6- zxs+V!DU0pVylBW?PrzL0NKVHR*!3?^-{Szl%23>pGVyhf*!$yI-a+kZkUqS~a&g^%Do0c*MLoghh|aL! z(R3R57Wcs-l{mPZ_Wl>0pJooyBH1QFn=3Y10M-gh^xfQ%VYd^DJ}IDa7}q3m_Z;7M zO75e`>&mwa%tE<{0UF1_&f||<(^=@1VlP-AK~4h(F&;B2@L z(a5m0^z1y8!kq^X#++QYOnq=Tv6RA%yQSXdd|{4xrSWCP!cC7j^UBL!`!_i>X$x&( zuP2m=<*<7VD@TMTBv6U6TCwIt7a5LW1OaBOOApT#zYj&&H#F&1Ea~HJX>hOTUYUUA zPa{`&gbNKQ?Rb~tKD+5e{h>s&0goB;f6r~_1Y3YZqb%>nga z&oYBDs$ur->&=*;67uEy@;#K@Ew;^W0GX}DoYK1v(5-_NU`Q=kO>mR~xGRrV!%-~= zD6yKeChc~V2oq8DiZJ~W;eqkzarv7gi0nIJg%gVKr4D^9OjUYFK|v4@g#Vie^0p@f z$L{|i&xZ{Bhx}PSFwrhQp!AIYuK@!7sxvQ%Gb%6eCJlSOaQiol=9`NG`A+)bO$n#T z+Mhi{mMSTind|v_tw*R(cE#?P0oF;q zFT+R^7I@02K31(5sAf|8^BU!ItT&89_xWCU@Bk@+9CbrjIYU{AEgmZL4ZpN{Og#cX z|DcWxan3xm50#PvJ!*qn78C7CtZkLc8NZ^26=e|KV@o!`{tE=39G<=(_8@IoPL~K- z&(qi;B5dTsBBh|DFhaT! zX&51(bSTZ}mJpDJ5z^falG2hRw};R7dHw!{?VS7Eulu^L_eFfWOXcZ9OtQkHC&y|` zx{L@i;`c2D(arqz^?@Gv^Fd{XoKGx2%bpV>y=6MpKWGJmH}@+TLd;adeM$0G*71g! z0&{zpXxC`ix3l37hhIJc#!z9Rs9fQ6ADr#s8ft4$)|S0V-rwg~H6z1bC2y?nTTQL_ zbZlA|5FNEFi4M0Vq>n2{Z+Wo=KK5hLSLeMB1(E!|bPhp1z7Mmlok8H8UxOb>bn-O^ zdW`%&V!MG-J%22|&P%39x61(|C;C|@IOhkq-IX2kmER)Fesx!Ojj?Q>-9j|os2UJ5 zhX}vf{d^`{)vII!ce@vcSJ+&kcut^J%Y1rHkh`<)x_Sy_Ug@wqzFIvOe z2@)tE%P=3P(~KM-o)baitoyM3jy_LW-M!nZg#+8$J69X3I4~4nTFvM_CIMleSgB2O$Z}@GHTk{Kfq~ z%H8w~Hr_7z^P2P}CE)GpO0K`_RJh6p3%207D4dU5`Xepkk=hYl0Su@lFfSUo|1&o= z*O}X2CL;Wv+SVkDIY-7?o?(~;?T?_a>DyCRspO$NE1tKswV=uB*vDVUhM&UaxK|4S z2NEYPMV={9C;E#pJ9vVCa0LoH-!_-ZGov(mk-|E;a#REYl`U4=q8o@vOQNf2=c?i! zyv+WCeVbJ~87Q=~Qk(!IqM+GEfNNw}FX~cFuM5G>n?gm|aR15i3m+mfLm2Ukc0@+{_mXoZxnzZ zd(etvupK?4TOk3@v5{S%-Jyiu=}o@B>bSdoZTW#CP>W?;u(SF>AD-;g@V{CJ=!e;8|4V}P-P*q`mSHUlBPnSYug^>E`lj46Nqw4_ zQ+G7Kh^;%0&CK8So@d1V#Z;@nY78oV6?1*TN^b}GR8ob)PkX}uaFea9G~Lcj5tOj# zW=0!+2Ue*oqi7D>Ec_oMI=u)+(=KI&QlRR>PbuK0MU)Rhv!!UHS@SDF>`bsaN_{vS zAK8cR%7%PTe>Fl`UH>My>5&6E!|U0bvr+}7P1Wj-2yQy-RMj+s9gz{@x8T^X&1V|h zMkzSC(c$Z%E?rc#(g7VM0rcJ6>H*` zx+UB&94!;u>kC?SkshqKS^rwM+9HW3t~87`kwWTOzrhlGaUXD!S5$@r<%ms`;h$9S z`G5a)%zu+|?pGUf)er$43ZRtC73Z<4ikdX)YmyrD&l)cT=h5>yZ`~SKWM7ZdC#>S& z6{TUO*+#$J{orMcmwmwLyhyDCi^p2iBbFn@$8vSIxoZRy?a&U=Qr)d32_N{0t*QHyb52)jJP{7|!1C7t z?vGcbq-Q2p9;eqz`E+>5KB`9Pjyaom1#F#yBk+rYEp(KlK2Vb-T>b_i>abhZ6~)*n zPTE7KWCu)@h2V3YjcL^L+Fx7T!f>u;40^D`W>W0zW|q9N7pwoaUiq?(Z++EjLJvp0 z6!}%bjT0}9Ct&zmk@1Zywuk!{rc-)H5UH*nnBM&FB3>oqHTff2RL^ankM+KZpNT#T zoZjI`5Gd(=n%Oq$+BTIxDvL#iL@(!)70UtH$1{f*;j|#0FQ46v_(AdPtSyUe+ZM6K z2*Z?*?oC$nUsy`FBbxb?8?5v>%pVNQj4wh$O5F93vW0|WulG2Ygm(Jw{6y^6S|2`m z{*p}9f+;OrZWOrG22q*!TD|3uc}2PAEl5=PAJEI-R^C({<<1#w4{Q>O-w<`+vAi$^+4B4Xm( zG>`owdJEQO$L$YpPBtPPJ)S3pcA~?k znyi!$=eAbT7kz{fd7p)at$E^tAC-{7X0ik4I7_=T^%#@AM0u2o?Vi~Dw6l5~IaHdN zHj|gkm4g0p$n?zflal92UOi^P=HmdC-jiS6Q7$*G3q3xF5meY&*I#lXR9ffL*jinWgcsP(IKR={Q`K6>Pn+#1BYB=E6ms(GP}y zyuEQ6L0-@w+Uz?ygb+VnV0f1Mfj5p(`O`{jd!t)!g(FkvBFKKe1@UdouWZYMgS#NA z)=mGJ8&@@4*BRYV9@x%)t4EqX?OR<Y;%pEH!AR*2GknEd9EGk$@2XVAaTGu}~S2^NNtz|M?Fad@_L*)17(Ae!sxIvcUX1 zSk;vi=7nX8>kW#Qly4T4@*_by-LNyt>Zgg649Ous<1S+J9=$9Z)Tu;s*)e3B4}{OX zNO3h)5w~P+jsFT{fLLpB+ybO3I>%0FNLZpSF!#Oivtq;D#>DKJx48P(+d6$*{;}X>f_RoA_WX~ossk$AkhUB%R<&$m9xK%Gcb|Q>f#Mwm&#_%eL|O6t zX}HGND_6;_K2-C>P}Tzv9T3*y;)wq42L!C(%1iqSK=QT2h9QSRAsi#=gIyzm^&2k+ zysB^}YUi|>J&VnyV73_S8QS{VnFaXGC;YK-7$~D)bQ;HKIP~M3QQXoQAG3kfy4MIi zcLpf1dyn*IdpwBT$In&I&g~3Wc+B)h-n=Z1f8?61@+%_nvGnNNiHc zRg@e;T*5yNbDvH;aTEPWn`zXeXyqKg=iU(tF~GDe_nLkciq*mCkg{ld5EsE1gtPdi zE>Lp1t)(pRNrQRSgk#2al22e_Tjd~DHr;FX1ME1*PWl^^xEsy=*922+9735T8cFa~ zg3oZmdX7cR5hPQin0y~dDmdg>Uawp! zZaxMT5wy)}$$I(2oNwy9gwZZ;Gdql$97z0zLeI+t7K-j*!=t{smBND@>K}<152Ti=*Nh5aSxl~2XM@Dzw5q?h9s;(X2By-nRvfXAB}cBzOJ+HiP|lW|1z2Mh zdOHv5o0IDW856U{vaMO#vnq#jSa4$MGVoj6%JPFe-sf>?UT~>j6=hy`biv+Qej#mT z*DJ>D3Qy7b>U|T?Ry7<;=!TmpiqJe4uXJLq>@~{KCu6r4`iJgD-ey*xmaR+2jtriu zd5Q%PxSHU>K9bq3>Y)n;eYxPWL&IvRGen_PGQ(2BkUOpYhI^N!_F8%zZekR*ZfSRY;n@-{Wlf& zJ1af*scSOFln!4SC|shVWx6*PBtMYC+F8V~%KTEEh2?$=V@j2sQQPOw9XuVkOgWix zvbo$AZ9508w$yBF#<>6VH%&u}C9ye&b@v;w=zQC&;f8&DGTgZHIBBC32n>zid*#Dv z)~wS4@hj-btSen}l=)Ju7Kp4Z5Ho4Y0)UnAeNmRu*sx!{xtncczD#ktb!RsUcWPH> z4yQ}YvKMzZ@VfkhfMuu~>JCMPb!nFtaFZUM7Jz77@#fl3Fc$N`gocjaIy`xvEbjD# z`aVc3s7^|}I^R^c&=+^uGfCT(T1@)dhQj_h*#Z{Qz(^$MHES|)TZpm|dPqzkXqk%c z3Q}b$eDq<2N&Y3@y%XheKvAQsLHad{!M=5~QRlbsvkNS5Hp zSDr_UxF{yWAR%d5LmaoCnKeE+m3Q^0(>>Ffiuu1k2hvb04SlS1wCtE#6&ybjwY+-tp6+$P)(_^(E`#dYbkhvd>#e@9vWPXRb`y&K}|PF#MD20-j6>%VJ*cP0y_^ zaO+Xsw`ND|6IK;o?y30!3|<9$!Pk@gW2_51m`pRvz*;Te2#2IC%Q~rT3qv=AR)0q; zOH2agG3fqYES&GA`PmOOi$O`=*DQp{JonC#tpA({qf*?&ffh( za%$TSJx$C#ay}j9N7yK80Max6PGGTKPAU)16V8$Z#i>9&pYv75gdq+Ccv`}5NCQ%R zUT6(afGvs049pmH1Y-T{H#vYJ6=(#b*g?{7(yp7wv^`FL7WaA_uK*U@wMD7B|MLRu zg0kkFMCl3MyPejU$^0VMI(Ja`G?AxAAY1O9ZLfa&B#L(FkJj!3iot4drS!%?fD<>F zpz5qp<03lakk$Dizr=jeOP1#kuGH&Vu@JwmR;t;ZTOz&;FAX(yq19o#28|+Z zK2633s%cgE{c{~PL=?}1-Ul@Gh*5~7jq6>kC3yP-)Lcc5f292xf6eh$!6Ta}1PwVm zw(YNzpl}Z7PV{gmlvX+OHQEsQTc+(`BY-h5_mP)hMYNbOCc#Fge_35H5ny#pU!D@} zvV3tr*q9XB8?UM<<;MltVP4?RhncSn+noiyo;ow5Qn4IIaFdGL2HmuD)PSB~F+$pM z(-%+2;CrX3rUhOO_LVP5+0KbmA)>|E_9GVyKhL+$q3Xv`8GdboOnH`3&JGV$*l}P| zknRa5a>=MJg=YluJ1o@0hfQ75zh>f2+@350V|hwr9rUZutVbe*;*-m}bzL0)r=lnKO+q|Ls6YqxIdSz0(`A80PcvrH?jAL*c zCKc6Us$%;g9GB>ggpLLdot$HCXm(7@y+{;zt3RBsgDw3AO@8J!MthbhsenSDNjME3u4@3RD*tO9_`*>?GeytfId{X>c@B_ix2O;67h=P=9oZ%{y& z=IsvpEuWCM1U z!Sod;E3BAq-w0)?x&28(EaHxLl{$`wEc|ca^Kh)o$oXC^HSE7Wn}Sbt^`y?Eryc?325WT>RDh zSi>kYrI}RHXS>Jj7RAGxqt775RwSMVSRhq$6>n`D5y=GR`R|SE{W1GOyeaXvBsbFm za0v#vxW^x7LDwQK4aZ(MT%-Hp7M5K*6pR59a0=&d)op}eJHoRXI%Vy2-ksZ_9X0$& zImax0rb|ku_c+}enE@HsR6x;pidj20yBsSqOH!-(1iZ2D<=-h(#7QO8YhG=Y9r=@I8MlKozzsA};UMR`!E- z+r+7bDqOWc=)A<5;qJ`+;1O20V^8?8OrWx;0rG5cf-Aw2>-BZ9!?pXata((skhe|F z5xb05M9Tvf6-ML+77;8(Ucg@4*guKwt(I2A&|PL-PPjjX+AH#CKW8yP1Dsd_s*^d| z^P3)~bdN_|1I)D5c<^;C3W40O|)f;Yp;q}-SP9{vy z-w!;wflnvyyBfeJjop9rd3n|VPjo0qDYY}~LR0m-m~g)C%YMQWk|ppUwAqp%n=aOoy|?7fZb8M30{pKDdZazbH*@?)BZu((DAbIJ)_^ zlvWqNkXO868=Z_KN5zp}UwUEzj$ZcUorYcY*lzo2+;7dxaze^Q%nClIWt89pgZB-&NZ!lwoJ4xaOFB9#^{{uN`|NJrmVTME1!#lb&6P*@G5vAt7)f z-6+jhJ_WtDzknMbXw8sMsw;c{jbUXy_>t1%gCie79$VFjplpiNmt%X>{oRu(T&)_-r!kSdd6WKK z&94dObyJ_h$-KJxtqH7Jip{xMKLqKBxX)q9D`1=)J%4Szkrsho*LQ)P5S`Ihn`Gqi9_uZE8#8UTPS2--vw#0g(Y0^}$veFS}T<%%-w<^)iK9XP!E3 zH?AAdgCB1CUGKHOZmqsEY%DzYpJ;y3v1(tE5wvp>vB zE?Dvf0{(}=Z>VhD1@W-aTwb`9*F=>wEfVnigs74->xJ_ycPHo8dJ-jU&_HbdWn~Z~ zf7|{sCV8U6D#{cY$?OOpw|&m~&Iw4PM30igGY^}rE^!xSj#FQ?%_gH=;^`@N+?@U* z)%0CejMVVm_VfcIxwd6b!L_2pw*g{4@4GgG+DdTieOmdz@?y%7NA7ow1VF6RC*N=W z+O*7z4b%LZ{ydt+#+1ny@UH6!EU`DAxCl-k6-aXkM^2Z2DJ^INTts%bMTVqAhm08B z8tf`NUIf1oWz9q$gT?T)|9+HR>LrYpkYqT}7bO48>t@LQ@n9%E+=$yf0_2=1h>YXe z2Wf}qr*d@bA+&AEI-7yrGkDuFP-UfL`28b3zXc!XI^y)d7oNF8$s{}L1%lU`H%x7A zaqnV|dMp2OgeXU9H%fhC#?$N5;Nk|WmiIGdg&C`Lo%c6jiwgK}Zus&dHCJzuGqhB< zgoMxx=|vVr%8W8!{z4Rz@KCeV&px6xGnAQ$4=E(d*uJ5-{(_oTW1$9;BgCL4+*hK6 z+SH1cxTD$46!u)~G~Qu`-o!4l1+LzXYqHlrkI8+sx{;R$JP1iAiv13Udj-#n4E-w3 zZ_*1GOm!}A{T@E~RBQQDK)#bfMV|?n%{xF_a;R?PB`K}7$-Wyuk>8JiBQJXlQ!W5P zeFeb^@6u-_Tu6KKh16d~=4G}Uo_Ku$inCc1E+8L3a0soW4LBAW)G))_;G`9u~<+pZ~(tgHeQvaPi_Ld8v z;2QGpEjw0YeR!M`w`nE?K-D2ITKFfE@?`TWFl4j~`!Rie20`H(Vu77qQe8uPD-rIZ z;{GS-j|mf2a;6Dl04s-NH390rFsnUBX-OpTo{(SEKu7${?Zdy}RqHj?Q#xJEPdw1@ zG|RRUmb3@>vl3N;e}>7&!e(eD0a~qBzTZ=?bRONzx&5{%k$>iIZl6r$MH&Om>k@Gv z7q0xlO$k`&hyA#PY|`JKf}EEabe@_;FP)Z=Fn`ciHUV(k3H*I;zXEUv$3*d!Sqmu8 zf%cUCDfs>5{9t=qQ#g9yb?#*P(2jjVjy9wyO`2$mCm7!)bWyNwvV2qsBix}&5)8NJ z>v5s}pj?0l>k8I`$lq~591IfDT*am*14OGkp5V$14TRaB(H?LEIHg0RR+ZsA2c~0y zpt5s%-rp@)(M>wHNwOF8BMG-4haL`SKap*k86-{f$LAldGJg?I6!#+~Th3Ww>3}bX z%V5Am9osqz^hIoM3%mGvcL@JQ+xGZKxCP&l-lJk*(^fjO8I{mX{GYEe#)zmdoIF>dqyO9Iu; z?(EuY@%?X7ksWwNhZcvR-~&ZxnXBh*Hx|Z;cd!WgOtN)hvsTobC3P{L^HgW z@dkFDHDkrPPT)QG@-iM&P$<;sy^H{vK^cIO@fO#K?gE11WFXs7P2i@B6Blbz8#8a8 z>@`eZoa0Cug&t6UL$crvM8HRV@g@sD3v#S)|0JmwKnG8UzF{K!Mr9gfgJb74Ere0e z!L1wXTGg-ap)#*2f9!?xU^q;^`2p{xR)wtmGHU)tI?xO&?O#<7L(U0#GUR6>drl=< zv*;qRi+cFxMfp|yVIC%;0(}z(Q}rhcX{C!`?v|p$SDC8%O)zDZ1@bFPBDz+5OyQJj&daYy=I zcGUZsy)rX#coC^dT%XZjC%o!_b1(eNMx66x!Bg1&Erw-%qd!Z%YvKdE;n0dJ<+ps3 zBQF>BXQF&fg`e8oE>yfE#t4C$-Zv_tj-`@?CgMzUHA|DHzjBh)7}#+NgsPJ(%0;y< zmi$*EC{5k(z{_-JeHx}pr-DbI zvdpN3Beq3uXd`>?(LyfaRNA5qV_BETp79gC7WJKb7XGA7R@_kD2L0palkJ5VH8d;d z!3YXXwC~Z5(E9P^D|fgJ3Hy#dbti|J6s|Lu9VMue{+Dh|LH3>h_J1qIBI;06VD*bymBJ8vAxF#856uhOj0NzglPs0er&G7sTktFq z)n^Cfwe8AOdr1sGN7X8xHi{}=(m5oiJKi$VUngV-SUJolJ{}7TyjXy^^tJeuCnR>r z(DzshOf0`!F|z#nh2&j&cEfQP($_ZYK3`TsW4Xs@Pw?rmOL|BRv4!W%3$ZDbu9E+J z#4{h@j-8H};Raq2muIxD2s1mGuL(*3A%ZP6?OE;+QV1Uyh5|x=#exFK+dlQLjHPz9V@@6+Gl77{RpZsWqlKID>c0 z_#kHWmi}$4Nc}pN$wY9mLn9Y;p~rbF7bH~gC?{l>v5=iy4WXGB2=BK~9Ewi=5b6fe z*Lf;iUVOV#W@U4ckeS5)1uLX*5KpcAxS09N9}315W+DK2ANhXXj;0NH>zF418P(|f zl0^6LS9HyBM+$b(p&RE*fnj)nM%b%qNRR;bqPM?}I?KqBM`%>IeF3I`Q?a$10PRfq ze5s6XTG*8ffJPqO1KZPmzO@^KijtS_T)9?f!cjpuQ7-1sDBrG+oWtLYi<#R;8sBQ?IXXKH3}1Y%#+ky_b<4jX;+L(Rz9as`f)Y%C$p#h z=sMdi7}>FrA6Z2ugS|@0VTN!~%eC)ZO&NIKbk4SI92I9cM1MytvJr~}4nY3~WRH}XDFozNXAxONy zQbb%bAS!yFL;_ol_^gx$YeqLXV$ER1t~4GTXl)Jy z4qvD=4wvw^WyQXN@Dh5y@)MhS9OhCXG6?NVWX0r}W`18OG7xs?!SKUH<@)GV*FS2h zbY6{{?-AEvTDQh&r9FfN)PCoV*NqL*iSxJ5GBGiucy49%HjeEHVRslv9I zBys9P3hOAnCV+g810iI9&d4o3?6&(5CG}tK2=_RdY|T(@LNesO{YaEmLL_Bm=bwYx zlyx?q%4Dl$>9aIhI+U95h^bqwb_56QH_@3QnYstZ8r^oUmikmyBFBYOAS(dm?5sY?KXj6Aqn;3)tjR;+HmRb;7Y++W2G;>` z*psP8zuK2@!8I^sygdxvl4s3jVnrW%EB*I-2i1GZF~x;CgcTxUGQDm@cYq|epw)4U z*BbT#{BloLy>}+}*4Gpqa`Wr+KPt0J{0+Qi#1mN0T>krAF)MobJ6%m-NjPs-I%oYe zpMl;kd*JLZWi0$H!5rrI5!I=^YDV{e@B>e#L^grng{0_;KqFsp( z^QTq=V<~HIygR8#JydUSaiu@7%W)ShvKwSyz?8)!GK&G?$$i$U4wl1&2EbHRL;sTE@6$oG)u87;6)% zo{GNRQ@Z4lbZ(ZPMdOjkG7r;3fMTW=Rfu6%BsXrjXb2VK*b z83k8}7k4!eMzos54R=|>a1IDL-jV%2r?c#I8vEl)%h>_$t`$>tocK?<{Tq8AV zXr-y+=sLAj>gLzIPrJhHH?%OxZe$u3wug^?f4)~|bDac$*s`Lp-W>PxrgXKelop=0 z9ppcUtUl>~eh;RZchbkY*xPhy;G9r=0zux{p+S82c`NC3$@}CBHZUQ*pDN`68al~v z9ElWSQiM-A49t-!j+DZK7Du|_LV{pU2*z8xl7rWJ;a}6W)%nN50HsrDtmboz-BFz=uQ~0gKYUcW85cR-=aM85@oEGTHLN`nRV} z?dZu{hXHBR58x;GQODrHZQKbO=VnDB!_H(pLOb}4aE`-2?cYf|@5dPT%Fl>7pGlnt zP4VRMH5XOU7Ir&TQYtK@#tvUp!RY-Z8P$xR|0ep*Ba-|L%Za?xhwmA4)8_qU+*Eq) z3}f0T{#y)Y!^zC!7R!z%dhEW84BOw_gE}CvnfDFA4_GWNhGQXrg6-MO%`7~h7nAJ7WggM~R^jt=jNIHto0-c+Th22L zF|Vd_e@y}SsTSS|3>MMht-2nH>P5EX)e(BlC-^G%RyM@HEK(U8Z&=q-|F*#G_DH#O zFtvWBOXQ|4HK6Jx2qrS=ybL@evAyc)FNO5m-Nq`pqB)_}W z+20OkO)bzUXyktPt%RFZ)J|iBpi^~iI)6FH&$9A$xtksU2^zaCEIvv^d6{AvWLXs= zkIF{_NxxoaWcIuYagL^Sgq!02E8?i+m(4BW_a{z!_9`@Tqg%wbQoRKP(z$-U)S$*{ zmGj4bB1|NtN8@GzCCWdleyS@dQ%L`B8y`v^ZBIzn^-~1C1lnpN1dtQI3Ocomko>zr z!BN|A#w3PD^i8ti7A58}wct^Rj!1UVFIUY(*68+J` zk;CWP!beRkq5iiqFN1g25EcTjUSgb_^mJ`LZG|RvKa?m0>&b#dM9ZcwksHOs+(uNt zo09ehg{c@h$Mc6>YAu&NS_U^Z<&BD}QeML*#*X?iP3} zmjr$pj@?DzXZg0EINmr{#}&w8-NUsQS@xLZiHcv zE%!cU9=;RMAN@VoX5Fa3arCgjTXpaugBUrn1b%eNTmro>o73O5Y#Rc)_ib^zE7Iok zndFJtH>uqfLKsPGA9c5IIN5Xl19T8=fJEii5j}si!iEEXy8@Y(UNIWHA_+1JfACkg zK`)-rneXGu$MrB*^*$1ctgJx6t;!vH72@}Pzu28;Lx)`jp+)-4QC>`8^LX{ChYLXg z@p}lu+i}`%&uFsy{)Q52m6-RfXn7DyMTSx5ikpjA>bH+U>MyX&y;AFSomR|TW|9{F zF#W1tAcPIhv6Uq37yRMuEkbK1^uj~)*nw&(Aay2G9n$-Sn%M*I82r#5xV&C{2Poua zuTsK8`)QvaY=Q|ciORJ~Mt)$a%*ct8#_F^7LgjMMO;3#Oe{E$#NHUbu_EVrE(T=@z zh^;IaqywL7y?P!}z?Rg%I(mfBZ1iDg9}rac<|R;*omu#wt7H22pb^&UU*8qK{YH>c)rE~ZShLU?c*yNb9}4q3uC zyCiOId-nr@YYtRS*tAme!5?!2ec#riquOKStTs!UECrAL*3UP#jPEaO1HGu$c)s$A|NB8&N@vgbn5s?Y$3i#xH zlcYDI_9Sot3eP-VmC?ocnJly#=iH!*F;Z!N3t#%5U{xZt2QlN@KSeOuSoIC$(5)Tq z4l!^k6<>6SDb)Yv(4E*D$AXMkBajbQP;X;JV^#n;^{v^G8n&t#aBas)QTAJHp2iP* z*Rua{kJ=`JfhRxcd9np*VL^^*^cCmp^nlutXF{_eS+Nq^fa6 z9`(INHYK;9L(>;z)-0dw51eY^z9Zxl%e1Rm;s~E+72Va3EpM2x+ezHb$W%VJX4TCz z-i64$>on<;|40=(;8JBYbrnjm>`CtWmPKfCWmy~<+0U4K5K>`-7Ci95?fM}CZx@0~ z(&6m4%09(W@mGVjCcfnJV#0|e_=gpX4f%;1Vv1Es-_8Gl^R)wQdbvZ{2IwV4s)fAu zI-AwRd!be1o8#FE!iL`DpQMvzS1WHZbSn08->bkpSOEJ|G0r6w6a9%j(HZ z<+Sq80H2nvhfNo{%Pdi0%HJ50_Xgnm#~qU(A434nLr3`5g;3?`2qyWS= z^;CwR8mTvF{+|~hn~80OH58?aY3u%VN)VsI)z0PZ_+dBEIK^2xWN=Q;&p1WC~Yo(O+3}Zh91;?L;D#e zmOg0WW4z4T{mQu+XN+JKl%599>txhgt8Y%eNilNjJSih|{-qYnhP}GmI5W}v{nvuR z36F=B;|8duPgBXakdu0xPvNAtRw=mqDd)0DjVM+M+Qe8@JDDCMk|ZOX_zvU5{kMhN zYq#g=oz$JrO0L6d00~|tsga)dz0yqf9Ry?wqq+N^?_3ssp)yKQMsp}39d)7bB@LO@ zIkJ1q&ba}aSB=;d#I6Kwlo_U)uSQucPwTmN{+)Fc52l1)$~F5jxGk1Cy3F8Y+tLeJhoQANp*iWUzmI5fDlMNGsTW*Cm{Tqah>~At6IxLlm6(J4+34H-V zf;-dLsCevLTKLdk1R$ZF^$nDm#Csy7w-SA9paxxkNbN_?xWX3t_}}4u%<|{$02NtQ z3JxJ)Kgc4^uN3sN)i3ilsaLmOI5?eYn22@IAdQKvmft1gj1K|!P!F6s8xz62*>{S# zkX-IH9+4E}8WkpcMpn?q7<U(9+abC z2${kA!({Z}9oJYqd@6t{h>{eo4$K-TgrUqo`_?t_%j|;EyDpeR8P#6~bNlo2sV_y?Jd_wo`Z$}K%8NRfdhtAD zy~TQ#Vw5>c(y&q)-|432gT8&12hlMfZu@RG)mVX_GGqx8Lt;Ed-4Jx#8FJBZ7;+=`2lU|GlW zJ*QglO9*lKh$ok-WMljLa^%fowJco7|Hsy{al&FaI-Bx(k2#=-=AHtNZY2gT71)8( zqBd#(_6SnMiewZkiV6_MK;S=kvyL*xZ#EnBba0^ln$2|p^zQ0c9ez_&$mUP9FWbY| zEt5zHekUtZ4(;_h@Zrx`!Gf;@^o9m%d9vo+IgqrxMT#S z9dUEqS1MSs2+-V3tyXP`Y#bR$lM%^sOy-B~hE!0_#nWU*YZS?` zYlL~1TDhy7vDaYGMdLeexK_LRymGB?ziulDR+;@I95~?^*7FXT2teg~8Mp8UqSwC;Bv zXiJY4$BWHp^YRg$@k>w(-|m*1d4caht8=o5Y8QyGlA->@Qpp+fbVzpZpC+8u0lnT( zY0<&|M#5XUeH9gRPf0-*CU*zGkC<~9{K4CwEFO7$?VS%!AGFNOknFRczbIf&Rkv>) zQ2+T5;?K>}Y^=O!c0`q?~hhj9@Bam;>Y zavH!-M`Qd3YnINuGX3EZ;oYxpg@#|w)^Jv%n0?pO>;{`|G+$bsKEt9KY74Qgusn*1 zJr8gbfv1oad}Bjmyo-&wL7E5w4Nc1O@;v+lAAvD=jmYsZr3(*kFJi{Bp&LBRaM%#J zD)9(;we17}w&H@*QvG?zs=#PknBAO8xMIcTziG!1X;X^FUIhZ zeIIytwBnvOqIxp|0I$D6JW2NtDGrz2>wW63#qFJR|3Q~y2)Z{f<-98J*72mgH;%8i zBNHgQkNjy|wl%sE9^*eZ5io8sOV6}b%ob_I2Wb#Cdz(CoO3TskZ}D1UmD~xzn`QrIx&MBXqwe*IwWGMG4wJujvq|VP0{T3PN)m+Mt>C`KfPDXMUk?&I#?2z$G z1#J7m41iVDJICSGMG9wQ?%Vl)HtReID^d*u<8T775O4a}Zu}e>EfsJ1Px$n zY`Nw5C@WFyKYH#~^4w;RMEow_zy~I*AskTVOmBFj?e!N{f!FU+Xg0fOz6G&<2^8Ar z3%~&&qDE@VR?SFa^y_rhJKXjCm3>Hk;$)$YIVM&q&ojj48i%{Z zf919f7eJ4*fVgEkg=Bv7-7!adiv^IrsCfVP&S=nJx83+r`n)*NkJI3`&L8%qPL5w2 zCaoJT>7zXCHZ08~M^mMyh60|X$<$8;a^5Sy`0`?kUzLxX$C5$-xS_Vd{&##PkpkjF>T9zCap{5*7aJtMWM|!&Cso%50x0+_hSDG;YQbUqu+TmTf9q71>Kh#e|5`vNNn6-~el((kAih{9%Ku)Uu^vaCB+IIrs8J+mB%ndNMu zr4&s&)0PW-J$&^s-{&qQl{#zk$n)Bf6mlX-M@s%ql67~I##)G(j9C%nHEyUT%TUsm z1`4%hPhEn(UFZEm(N~GnHneyuaez`2>F1;{z=dJQq3qw0EawLO%G33a z{&rY2fSj9&O-=G28rc6OOg(N#ffva4%_5fV)NBu5UYIIN==vLWhk8Y2wu}(4T04YE zC+@1AcX>ouBmkeih7Uf1@=wPUDZ#moS=B258LyRx_fO+;6#Dt+`*~^7e%0jc-^TB2 z<6Lil@f!W3!G<{K)r+H-KlZlgx1^82BKOoDZ$jd9tD%6W^s-8lJLI;S!Z*D`0Sf0& zD6{eT(^*5UN>J+_{^WUQM5gqsx6J7a*q&UwB{`TL9io**A3%*+->}9PV5Kf zNp(~ng7n)4uXW$w*u54N+z-ybU)?4Y>P^xe{Oh7hBad zU@Md~gi$1jE#7>050hQI2e4!%@q58UIrJ1y|1Y{4|n7_tDyX_tnS$ou_N z11$)^{D7016?$|&J2D~}{q{#&^4*7ie@h%4edKU-=k#{~kd(~R_P5Ogr47;?9O>hh zO;$3<$Ho{MA}@Y*E;W%%bj_}K{PpSRVNt%lp23&Jcp-(Pl~tK~c~@HmPo6#Md_&Af zzNa4-g^uSwv0Y5nQhD9J@#Y^L{PX+mYio>!ui~z;R_=ziA5$4IUO6Q2B!GH|45o2M`eWiI zbR(t%+^#qCf+BY#c{q0MxQPd3GmRwYIwWN1J$e8D7wD0ytQ4jE2{TOiX%?E^i{oa3MAgIG#m?%(wI0IM1Gb8Q`- zwNd35o{vj-uEyNnFNgH&uL0+1g0d{=lQ!+kh)t2r^pM>K{j7{6lVG=!0pt@ zeYN|Kw2QD8j}FU}PeB#6Un75>=a&bh#|r#cs~>~Jm>v=*!Hi$t#)wd66&t-$1tjHe zHwUTbX{_8-sKa3Wzm54rR0}Haxt1$SoHAvL$V@A>I^GJ5z3gUT6M_OX zI(ltRjJ5w{?;^Ob+tBoSPuV_s;N#+wJOq}jH890OE#H5!tb6AoWC_T!7)gb(YhD5( zOsn&!UKf76w3R!1%Q!%<@%aU3o8L+5MS#o|VgjQ8^P4V^X>+6lubr8gUzV58j-D2e zV%#VZh=!|`WzPKre3eS0ehdGqEcv^UOwhS>f$+=EMzSLJjxN&5|3}kRzcu~--Hp** z(w!n8-7!i)T2K&>M!FObq(+CdDAFMaBKZN7W}`z=Vv?hzy9bMB-yfd;VAr+#e&6T3 z&Uu{!^+#Bn=_21(B%PfNQ4$fU6e+)H4HEl$0*bil5H7HL#Z|5^enYyu@M${?{O`bH z#_{VLj7}=D>}BIu^+MZva=vYH_xdhg){+td{}Kn9uDB<^w%O@Y&sg)fp^6aRq;=uo zIA_OV+H~E$S8owBRmZF+VKQ8bYkbD_l7Q{H{g5l=FL~EV+ft?#?x!*GJri|GOD*m~2 zE@I3cf4e7k@!v{s3B)tXMndx)`*xm9Da;8WX8zNCX|)f@j!pY_wKFDJzH|NCGmuXi{nG2vXUVopbD5X3zOFH>aJMz7!4|RA>v;#Z9 z%`iXmY8Prq18GBU=4MwHQd*2#$h@thE2>h*>T$y?bobcCz63KCMnJ>wF7PHOb`$A` z`Go*dus+%w{sa|9weM3g>w06!{o!rd=WWw`Z$ZT3)7qiL0i4TQC=x`-30D@pkA5V3id*}ATjTuT0XHo9bP|yZC$bV z?T$yWVFUm{NZDD7Y_YqSbpqet1+rj~#TTA0PQd9Gp8o*z>ku|eTt>-z4dR6qv5xby zU6j-S#8bcGKIoYG-MjA%(hOuz33u=BFfQ(D-IU0m3V;mS+O97bOu9(+HUOE#hZ?n) zz;h`MHtL8wvjjVg$d z80a$X!pIMFS0HboNX}&YWnBJyJ(KS@%fCqvr+D?YRC0Sft zahkDjNLZAI1Lw%oq8V@AsiGG*tm$|zhxCQgcGx}CY< zU9>Z*^lv1dR?{b{x`MvzyB2s?X82eZC+V6KfB6OdcU=3Pa@4c&)jVSPSKR*vs}K0y z#(W5OQk@I&V_Zc5og!ZYXJf@)13$Ux{E&c9?4Q65)h@{9L6LP!M6v^F=XWLFFG&Rm zVpA9V`^cNr)3zRZ91@7CmpHF9pi3QKHh8;MhE)C4FwE8tSMUcEzDY)=J zxe0U<;>w-ueqUDa(X6^bMrP@1`mileVAEGK(B6H36_m>pW5sO$;)0c8PEHP8CYvxw zEd=Mkc&A1UCy!y}byH%~Ac*4I8~W4p`Hs_Qmi&$y{Cz~MKBLzn@tDID0?^qv@eK0AC6nlZ8ZUMy(Pr=JNmhEBKago>Pb{K&DaCL+Sqw>MS2e)>L-SgGe?AK zVlaa-@r>z>B7UVsFc=M?0(8ctCo**pHixACJI6omuwSGtllvp|IR6qX=^ z6toKlfZLi&O!(&pw2?0>6>}o_h$2$&GB?D&ectWt&4=n<3{gjJIt`vlI6>^1vDxiK z`J;;^7NK=sdU8adnrrZHJQ06;Gbs-sU~!G?Zb%X!3zjoO;~Z9!FHI`%k1nARTN>CF zAwU}v+6s6q_RI|xe$w#LIS*=pzPTp8Inn=waO6J5B2TL2)MN+?1cm>4%0TLOsz|O? z@?zNWcyuLW;SnNO#6;5b(i3JdGHIwUfyC7nh%18oA|KY(fANK~dIbKp+rY|ylVSYP zsG&pAsZjC)se|&XJX$UJ}V%RfnF&eu}*_+KQThyLX)t3TUnfYOdFtt>s=bsz*kR9h)csAf6Wx z3Sz(7XMQ3+2$@A;7K&Tvlqj8V_ZHM@d04a9y>CY73eK17oSA?0Prtv(jnNBX`@$WW z5#6f#jE)^2e&+HLpBHpKa4W$|nANEBBX?6;1Np!ieBDj1|+&pPh~%_l1A*2 zO4xA6(#7tzv0%S(Enfrj{6nJtwRbEtXgCD+iYp#YypO_ao&voP&2^q z9bNqzz3(zFvGyjSp=nx zQDHdC6TgF~zk)-=&`vhWhYb<)G@2zpD#IW=J@%Tt2%|Pug7`)G@+6Sztx8R%l(*kW zWn=N=F|vZP;EK3;J>*MQL^z}Y^H>?dStG`@Z7?|<9J_UyFz3adxM!E5L%iu9yQlv- zw!0XEjUpO`08VcpNvv)+nw^e97~aQ|Y3dO`_z|ovJo0XAP3W2Lu(ofiy4eq_H%&rQ z+5wQ`RmJq+T$ww|6R^%Li(+Ld`U?om+KKO9X8d}ikAHg)&mk<8sc2)e6fL-KLUG=& zj-8B=m6Y#NW8xk5j#QdqbbgRWMT6dUj_E3g17RROO8lPg^wN@ zWW1Vfk~kx)z3jt<933NEx}42mY*&2a*nBWT+n9`+p~5do8*|QnjKD|zhKm1c;XOtO z7V0Vmu=C=3G^0OLKKA{E%B}mBUw?r5=FpTGV6NCu^`D^C7d&w&JAP~0ez8#h#WonL zMg5;$#?`aU7)&mW28JT_ciWs3*z<)y#r+$sIzX#L)}|6Q?`p zcs%>hnCNE9JeIJ{pr}u{Sve~{R0}R7JmjVAe7sUaP%3FaEtXzD&2#g!dtMjVgi+!Y zfIlIy7k{_4F&#jpv;tcJzfR$AbmQhW8WuJiL|w6>RlFxoMXVQ@r_lC zu3q)$J1>9$$$OpaD6`m8T8U0m5^C)GIu(kCna#R@kTwPsM@ldiVEN8TL(k5!^Nyh4 zL|g>JP}fmCJMJ~cXEb3sEl7vx%)PKG9rV0|EH>m$=CjGxoh*OtS{SP;4O*fAXKzE< zP;C93-I3uC;TszDzl63F7kj*0V78ldEMx;xDr?K$Kec^6pCN5z+7V>`9|= zmqzMeV}R=W8hXfBl`XMu4s{=M?`;ClL*Vk^gya@>4BvKpT|2PExZ&-Eu zR*WI`$lD%bw~P7xS_auPbL&O!R*AlFM|C16RVn-j2d*Ljukvom+2kz{2_9iNc7mI9 zJ@Nc7rg*c%6G7#$)^zLz_;{lQy3~7CRm=?9j?4NX#QE=QorgqQ0sbo-x+_#qn-wl` zi*XkaY;ql~=$e!TdR>#$(KN`)lpBPV0}aB`nCy55;DF+Y$tSo>5)i=8@0jvc3(?N; z?p?Rm2iJX_-uR!g#UH}$T!Fj;JH%z6HhyK%9)cR}Onko)NIg%+*p@I{DO8>sZiVNQ zP3^P~`URV)0lrE`H$i-uqrCov@5Ah0XjOAQ>vS}Maw zJwZ48c_ATI`@BGc9dfA8cfhV#B6Z&cgb`dH?C`3+x4pp~BF*z(5v z!uEDU+ujcca-I8OpqkKI=2th=C87)S%cfflb!JWl&o}9rKfDz54x7l_(C^>VFF)mX zyrmV2urvFSNDtL!s$ON?TKk(jo`chORwFx0I^NeZ#V|3wBla!0_uWN(_$4Nr#Zi6c z)I1&GmBO*KjcCLZNWHTXI>O4Bh9OnByUOVb@ZaA1VMxMmNQRF{lcTfu8`xg6%iBez zK4&H^sKYN&qjud6j%F(28StIQ3^9sDQq!s;V{u{YefMk<7P)}@{E?8?+lC=NrWZRG z@O|lAS)+=bV&6Xvla>Dym^>q4fw)03##a#QKd6?9+|(xJvVzPD`b9iei}Zi^9NVR` zbXpcx^b_-Ip=BIWbXRY7=5Cnh@QoD_*!ADY+yq>EgG<=n=`~1JAR}>nQtIo81%M}! z_80?&iD8!T5_}cQwNBGMmCh)J?mVS_HXCi+!?UtfCb#y*|vgNo;aTnyxk5C}Molv=VdhpRXZb^Phh2Ejt&iZn)oT06@hq zD@Sc;k3c>GT8Ev0q(z*?+1}f{FaF=KUGyhyPfwfeqataUg8~KJXp7(v^mb7*tY}or zT7OG7Aa(xW@HY{@YP?Ld>)JAst77wTXZkJHiji0_aZ^9 zKAaQ2rJSlmjz~n`4QKQ+``mNysO365!3QfMXYb<)xG4}g?5Ekkha)@)dlsA(Oj8JR zOTG3x)&C0Y(^m}JqtIZAjn^uS1W>S+;t}Gt27gYu%|m-u*f1*3Ohj;W9hRgMoZ)%+ z%elk-?ckA?VB`$G5u@%N1ruE&gYFseOlz|ED$x*~_yjD>itV?VV?lwqE!1dN(IRDg z6q~Va=3;9-w4ipZNL_-y@gH|RP-v(cX{m_})KrS7rh;{zwTy?8Q8s5mlz@|z*b62# zAmF7SruRqdthJ}7z8fa!gcQ)wwAt`VgBRUzG8rn33r9dAl+l9n@NT<&H*9_mE&NCm z+4Ud1rUKktuOtW!BBVB@<<)fQP2enYWWrT)QDHBCi?VfJ^AMS6z8p0yJSLJHe)D6! zrukHnIStS*;7ITH#A?vf{!GB{{bSZ@ve;=^kPJ<~QRpm6hJ)Jx$FTHO$b4$Yh^E6c zmWY;R3zoFuN4w!`A4)La0`6b>Od=a)vS(5w5-@plf8Ss{eqE<%TG%(@yx68ou zdNZHxf`_K{U8!`-FZt;0xxDf5tTfdQ=p4IBYuM!J37Px|PCvV2(#6w^Y5H)01F^w! z%H;(N;G96j99*lZm?m>%?BRdBcNQ(QF zl)+|hk-sqRgDMmOGQvi4R-}*M)Eq)Cm|2Pi-?*vrP{S>A*bU5pSMq9z^%E(p&!XX7 zH^cPi&sWAuM=h*jUKy(&_Looydq>3B7I;U+NsD-B@wUsfuVv}a((kRow$NQhNUG17 zMA!}W#7SQe)pQ_dPY_k}p2eNq6~#yu!!;k}J@ZNh<<_sY`=PI9$+X6_6=D*$XfRVf zhC~QuCA*>#+PPN>Nt5n^(es+JNr(V~8Q7VGhLXP;H7Kbpm#wPWK3g@o`0$A4G`ORi z%B_p@Ew`P!?LmH+TU4aXBIF@lbtsHr{MvB+v-CtutNO>Ks0*sKj{DOUmD0<0jPdYqhpt~Y^qO|g(%G(!kJanyrMV2Xd>h|}b|)tMmaxW`@(w!nOf zQgHGWa|pHG-3?UqV!c}wc~>af{IqiLC|5bCym)55wps0av6S4YXMV~71;{(AI4bF& z0)y*nomT{~HKVjqyA66ShuZ6&#miDc3Fgt-I0RVD%;+vd8Qg(#0b0f08_}IuVwsqEuj+!hn$nRsw*SU0TRZ5KNqyjwhDiw)=QWfps(C z$IWCpL~kEZN5{oSKoqE4$cW5T_V-pHZVYCNPI-AmLB6G zx$@Bd{ud@O3`c>jTTB2eT`B&lkZJITBv30<0}hU?{6NgW%%n4SAM|s*jIYG+@%fx^ z{Mu)J@tfek{S3{nvB3Ai698fXN|C%O--psCcbyt3f{XId*(3x~R7y>`KuN9TmO1|4 z#s9$rLK|{9y9~08qg~(-U>4vi>kf^0jV9#`@%;@1Lk)=?G^JZl8$? zoD!|j-8W0Re24#;{^3LsHBY5*7KDQzqtMwS{pjDlY-RV>8cH*uuX6X!c&$Uw&xdi9 z6Bb0ZcBgZC4A}am)@(A~qWRhIpTK)_UVrL7AE;ed6*ukNycwc=1#zlW(u5XkloKD9pPjFnx-GF8&|(J7G2*OigcyxY};*90lIoKNR+B z4@1oT&)$+Tlt>?uETICg(oHC$3kzy7>4D)tHYzl)Y9g6K;N#V}w#)jQcJ}bADnVQV zph?JvW-QVHOgbl3^kE5m`HdkgO#dFG+KFYW>mWj~mvC~F9URA?y4_GKwp~3{W=`KI zYs>cIV~kjBdHxuzhBu_2u8^u0_5|Vl3&0&t?v&z~841&{+U5p$OT#+n?<}2>=p)eI z-zOUXR8E?M_fqMaH0NaB`%i`T1vhjiAWyt2(bo+v3iSdr7VfsoZk_Yr02+mg&r%U` zYXR2Bb@*?o9-J=3TqvDJ5KSO5d5Q_c^?pe{vpD8`Jdo}HcP>-wv3Gg!qdUv?b!&XB<>5O9GBh}~qcLQmr!kQs`d*{u2%XC~5 zGpTtTn251gSX`^T+J^@R{607D9~W_XeOT;-gqp3jz9mcyfQ=3k&jk+F8WJuvy5!vo zvJ&M~Vl94Dby8EyB;xCifqh8`uZxGDw?I-NZUNy~-D}`tcI8r(e`q^r09U{`{U=z{ zeP*@3ECm;wmCn}NtRlSN>qVY+oI+Fi9nni(KRI(G(33LRBOf z97Hq`*h@=3N!{0G6mQ2BC-z{ul|zRf91wlWSxfXm zIl(2Bv%v@{kaeq237LG&`3mrT{(^hX!6Xm%eFpofE@Q(ox2W=#ZOpZ0_UZ^0RQ$i| z-9faQFl5ELOb6y)Bw7JjU`EJL1D^6iSMhXAt68p}3*LBw<_p^1fs^e#?#wgd zoY2G`tApa*^MmU$H2O4JEB?gUKJFnRLzfV1p?BN;Vx zv~Sx$@imSzxU)^Hy&Y^y_9;r4?aKZzC$#d8$4^lcz7lnyssX)iX;r)ji`$^@Z&ssl z%o%(+1?_FVV=OiBEp%wR3i89G{mE-|3RkKUvMTv{(9Qv{*ALoGyxL`CrTAj?y#7tX zq@i8SAcwn%o3G=@b)h+e%gESQ{X}$zqSsWWkkj!c27l%BB@ISJevzS_UKB|FW2t@C z9rH`}()oi;$(vzMWvW+6M$@!3X~&U@Vq<`y$iE1klu4Ri{n#_gjpo!(wn@MDDDqz! ziAmJb%G;D$8=U?HEz9!p1p{8=;w)|`)xh`uDwpnqz=dJLwYCWqb#zK&ZQ!yQ=9C#S=yxA|3$e9Y z_N%QEcK5&fb`(Ld_ZP*MfP6rt@>MY_@E18C7qwI#NlxnAg8i+JlqXL)^0s)0rM-s_ zA}z-um?nR7EaDHQegOx;|=1I*agSySs|nhgF~tG>Anu<#*IXdL|XT|48;yFBR1^88{lJawZ-G$iKA<$VN?@G zz{gP!qb1xP0fakv8NaO_qA64AUI&ZMU%=#Q#u?bUE0CLR0fsv36_^Z?%$(2TFkbEQX1@awAPwBb36tWoF#Hr#7G z{Zx^zCy+{_)jJqM#f{<+DoRuhUL4wQ)Fg$@5Z<_?=xoy&Y>H*x;;E=c-T)~{{Ager zFBADy9_5C1&JddOgQYnmTemUWGUmFr`ZDw%)?H3DOuPS_3Q7sdM28FAM>X&1X;Gfu z@9I9>T19An@D(>C$}zXjG4EIlAReqT-9Qq0t`X1Z>I!}3r0uk*g)Y&$RL|pNg;Y%? zC%o^W%4SzUiTK1a4BR5&!aGuB-7!}FJRB*0;SU;9*l0&nb`aR2Q&gB!N{ z5EOCClw3PGMO9o4@B1|z=2of_73{><9lI$ie~2e79r|xu{n0pAqx5|T{#W)}Oy%Ew zNQ%Q5{FJiw(mH35&M%DAXj1FZr7er!_zTqU&@kdP1n_q4`dOsDUr5@g#@yrt|E|0o zb@zd1H0mWXyGfpAsB8C?6}i@~F9Har_tHe6m`)ERvMWyEu90-=L5m!7v5a2-!s}(P zbvn^?H1F-YnaD3JWpXX_37B{QJfrf@#SX8zhR$9d_P$m5!2~Psi%rJSU9da1*Tt74 zy+hJWq5^pDpM#kmB)j^j6#Z>%rh zGKDKgW_q$8xbcM1pkt>$wp#ml9GP5Q0c6KZvV_mYUX+xh}Z zLf)G8)Ne(mI7aF{sS^e9KeL4vMo`&_QrOi!P^?(tGT9Idg!9C0FRWc?Wfc%j_$mmC z+z%ad${r|qst9HgfS+D`nV^{=F%2#wFHt`0K&r0Y8&8XM!yFG>nXcqgn^~w? z(hZyb*R4hLah_!&nTnv2PW-Wt6}84kdV$XZ4H&iv&`UF?F!w&RfhT;4PvMmXZ(VJi z{X9(C36M7Y{sa&6iU&8t2`lU7oD9&FTy53ih{&7gs>mFRZwb08tBKn0jB6x3U$lG(qg`7Dz*nBY!P$g1Q4RS=p(L;e z@=5BY05_7Y<&^x_2`qu&VO#E_hzJ{qcxZN2L`@&~@9v3Z;Y$?soWn2a(*#Y0X6#-Z zWvs2o<-z!Tq(9MaJg39oJ8O|_h$z556Mg8uQhy(5{jf}5<=5K!GTwyfD6{&w!rG{6 z@-mr;EtO2(i+NoYDx4FwV~FV&Mo{D(Ml`I2_bhEa2;mB50icL*U4~y0B|BXKUO5wS zXHXpQw@206cSqlZDvsDji+>Mo>WFY$EqUqh#F(`*Ca}@h9wHlnb^9LCv%ITLE`DqJ z^L!|$f{}Prs{HnFa98eoj6V+9q)$_%uXTU|&^o6pbQw$8RdQEPCg%*IN(sS-`}Fcs z{CcqrtoZUI{GM=)H5a-H&#r4zwXK|!onxk?=!@q0g{!5X zV8+~M9e-l^LnaS;@&vh`QMEp$>cwy6=<_4WR8kI?u*cdHDRtCO-{|bN`!{QwDcF9; z1ko}NQyd}g@7~X)S=2`=pdqUP5no*1WzpNy={8U@H5g&10RZI5MJ(78GxVPk#`^+l zMZz@|2*Y&u^#C7qL1gc%2_ce5&iK2X<=LeXi1%fc`*D348nM0U-5B*~Mm$AC+lgU8 zPnB3g(aZaZ^82?bb3gj9r@rjNSGQjfmrU{MJx}2*Ard3uPjfd;Jd|sU{u}!wdkNs~ z)cRm2Bz2gsM3iGp-6up_>@IB+d!n71JZ}0;d2ZrQ{o$RrWBvK37WwGO9DvtLYFPm< z3f;u`YgQJnm-DbV`RyUH{yiK(AWf_HQN7}i_Q!!_&QiOGL>!Np0E>en35dz0uGpJf z>tT=$z>s>-)2TelU+}J7-!Qgo^u^|t9p%x|DV>?yTc^y)d_JuPN?+}Khsaec2= zH!A6!8b+cWlT<)}7W7-uG`#sM+o#4%`1Ar%t?pJ|F;vD9o~Ldil~cMcUy^!5C?qT! zQ!U~W(>Ju6k?}`J5rG@%4SHNb9Re|S)PoSLs>-PfXsyE$DqQXtCErCoOJ1s8brIVb zzF45Aw3q6cg^-*cHw=GsO1_;jSyzWF;T*>g{x}HkqG8#(By~XHgr9t`%dZY^aX)IH z@}&smgTtBA?eUw1(_!y}Sqq=j=u?M>bS31(!+AbpWM2`%vW zefyWHl*14DadyR991HioZ-FbICs#24EM>3@%VNfu%A_~%NpM~4Tx(s@=$m7O!aMl3 zU0%2;VPpe-qx#zNY5j@yID`;@c|ML^V!>Xedn=cBU5k=MUIsZ(*G}E+=$^49)bnUu zCMJDo(dsCW3ZEP8wmM0_O8T$x)Tjxp<9!;3eo=uY{&xBs!njG&duy-&*4cM&Y@fDN zYbMy|D76lYADG|SO)&oOAKkRMe?8f~>qBy`Pw^u8%7Gz10WRlRj0vStR@pC$TE9Tk z@01KlMLg@;N1?+wu*LDJ1@x6tD9s}xWG1>~@Ib&@AgMD%eJsUBq8QKLtl`UH@T?Z2 zv_Zpjo7LY}6Y%Bj_pYEd5d!+Ge(^3G;j`k43=7Z{z;`c0Abo=9 z7UvD?zxK%s$SLM+?LvI>_@Pb?ad`JE{&N<|H`sJSH3l6&@xC@-_fpKsJK(;wq*q{H z`$M7X4Lpg0-wT@VgW}Z@51I!FpBjcYsG=!6Z^B=v;rCsR+^e}j=0~8rSh38vi$k~1 zogluWczjoHZvlPtjJV^MQip9d2pc&X_8Swe#u{5Pwh8Pe6MZO)YYb{1J$(poH$qPv zL>^d~(tURLe=mR#2a^@mZ|0LLOs9#T8wp}1>VoWzo9;W`E+A_OpO-Qgg-ctRP6R#2f^W6Z(X#U+_3Js>&K8kvcHgf=}hn7w+GyeR- zbAF29z8f%>5P^`JsO1!q?DkeKvCU(jNC8$s0Jtho4pq;daCvY%J;;={y^CI;u4P1X=5AezJh`}p zRWt69c*v;n(&3Hm1mp(Z{hg>Uns(XzV9TP@d0#dh!hTK9S zBE#5{!I+q@8;o*Gr*8#XTPTPB(cT6raZlL+``v^?+pC_oXUUU>X2BtzechB3GupM7ip1`g zC^ERr9d0*L30-WAdu(w6b@p|!9jA^23OD-3s5%76$zkV?peI$W7;81yJ{kv|4esk* zAds|e2p#e1FRcGeppQBb)|S`}#hWIzVf1^;_U86cZ;*+7)(555-Oo;C3;ZCwEoGzv zMS-aJU-}3aJ2kftnm~Yd;U(MCii^uvf!&N&r>o^S6a)vWgHgnqSekYWO(y~_G->|% z-Rnp1o`&vyQgL<$2%HPewCI=FMIwH!`%V(D_AwlUCDzRR>IQ2);@?&G0r(Sb%eB6D zJ|tZu^BZl9L}9<(Nl8xD9d&Z(Qe^Q;-9Kt@Dv#7Vm>7rn;9nd(r?u<<2eIlhX}`gV zF!XCP`NrWZlwnw>%ioX~hcn)!OJPHVx%>6#EaItX26Oa7EP;||#F6c8* zaaO>jPB{M_^qI2m25TgWltJHnz%Gd3jm3S>zu z9&JWlHYYu?5j8&bb&qDTlxpFwVL?#9jLbZ@^3^^0UCo%9E*45>sBPQWBsPZwM)S(W}1r*@2MK27mCE0vAl zjO=Vj@)+L*I>}LRPQ6%hT}@1-;i!K4foZQTb!JuLZUp&5z>1-m$OMLAEono8dB1(O<_P?^$8| zUpGM>>x6PX%L5Bv&2V^<@drlY8UON2ZF0t$Tn<_}YfuS)0iEDZ9fTOp{_v;gcY^M& z?Qg?yU9C|8JDJ6*EvCxv<9K`RM2R0wnw~zKopt7K85D1nWLrG+`_w0sPgGP8f`VW> z$uxS!4Hm~n_@whYpAvS49fy1J$U(NDjK+x}!&^c@IL%l3P4`4#_a{2{E@X`wp73i* zPa23nfD0ejcV7j04It)KbHn~YB`<;3k8OI79~+DzTo$1+IDcc)H`Et_Bhh9o_{ApH zTP+gJ?2ikZ=|0b#3iMKDBUVzP6rzc^EQ|g9+bInBj}?`6LsLO?O8)wnbCP~VSfi=3 znRkRj)iZl9_^&&whHt%c1lHpT3|tM`LlpryLwZK9aQUU4Q-;r||K+3m_bEO&@um>M zB@q1m(}c!Z{2xpc(9IpQRN(6JXwBupP}@(tCW&ZX)+>O?e#UZ1tLMbhgsLboQ;^FB zFx!Vz+9j(E<9>d7d8b`NyiHSc6}e>$p8ej3Q<@0A8jbm01k7l`9=NMT6prX}1WX#g zKdGi|Xyt2eLb<+9a?<_ z@#n}P@y(2vh|+J$7kvNAd}Gie>H`~B6!ix{?k$by;QF}*FgOP zF0>OrkYsFVzezF@rP;>Wft$CKU9Fiyup*#c4_ZK0x2ha~PfEAnfbjXho>x3QF9-|F z;|h5|J&0AuF~KDIRxC04-0ZS%$PZJerD~Q9YfhO`rhWuVCjh));lIirEp;!Vp6?co zy*kfj($(^t*u$&`_}beDK6)_ysWRf0-iX<)`<}Ww8KPAXLAl+>834KG0NkeSLZ$PJ zC2Vo?T&Y_OupL9$3FVcL!<4e5mm{IeQ#E7fHu<`hCXrDoc%-0pT{fFaoWJKMha*n8 zMqFwK;jDB)#^NGivk*8a^~7XUE~IPv3&FH-JH$BzVnNmZ=T`A(XJ%|oRF2X=L_}|l zGDe!ZMDr_0!Pj3Alz!!RVE02a=O;T)IQKh3O~2oY8hl~2k9fZ+!*%yVE^+2_|D!f` z`5+=22vs-OM9;ZGy6QODi+t)%{SVute;K}IMg58UdWEmjxH9d7s5Zyhi_MTkPP&yE^v*;aCl zq`MV9D|H;bR=!4Wei__dx14%UV*#yZ8bAZ{`NV&!ON8CI z=C*Y1a+9S{pSyx8O#T*L+j>j=(s!u)=v{=l2^Ul#6Ov5O05z7E|DJ_)P%FhGyK~CW zMN}gp`MC%I<5+Oe1;Xh3SzVw@&fnq=JT?52g-EH7A5M2^{N8T(-5leuF}=yl==~3u zCwy6t+mH>Va~k0=Sh&$(v2T1l_1@U|UNgUo`-W_6jgO|DZ8Bryn^B3m>ET(ftZEq9 zN&cX`sH!>~92Io$Sm*k4rLD^SuWfhk>8Jbb&gs4^A=D>^w1r;|>XBcYKlB#+kvtA$ ziT_*~VFXP!m~slPlXD?@+p(JfTs?8f`$eOZ&g9d>Te&rmp16*uTG)3lO08H+^v)xt zVWqE;aJhBuOK)+T(A`2qzSnb+i$r<$AJRvrn;esKmp2vg;>++3G6c9^97VixnmG)0 zTQUeqFh!M3g?8lSIj5|AhVv1IU`7F=0DJ`H;wItQX z!^@zu3e~L}hdBDl{!Ol;s+%D_B6Y!*W7O;C|$EtUMZxv!|dp zJIb(Yu8DihrpwxSsvisVApm&SbdKc5R{>TJ@0@AGlTZH{a{Lf#_h7Se>eSK`j{NGv z4xLZMYVC%%SP4=2tq^T&FM%^fj9V(DC%seecT>ANR=4KP+VY?a-?P5%JrdCI0GKUb zR<*SWm0_HNf#j|Ik}CR(HT=;R9fo~5e@7(%Cn~K_A|tRyj^b%;r?0y7x3EWlQ_U); zgDdDF^%TB3rsd@SyXziX;2IMrC{k>z5H4@kNGTh1FXSG8x6uESvICLHW7Q}kINaa) zKX&}tQ#uByBGh?1F8X=WrS(@9yHMDI0f=qN;NGBba+YDz8Ne@N&NGJ}(<*zxXYk>T zbJ#^^AN{d?8#z}>D+H^RAG^Pq$-DNp4{r4HAoi~jbSKr$v?_ zZYQVw8V$A(Pkh&Fg4Ae3<)mztTKrr6%JbRp_159gWz{gj9X0q$LeLz*g6Y-#-&)}r zMC0T$f&*OeEF(*B8Zm*+iq4pj2~27R^`JlH`S0KMAJ();(-ipvBK`dm@jm^b$*E{R z*wU7kD`lIdL05380XB)*CZoAv(;$m=kg-{lH6 z?*5D!ya0t%-F0fAuGv8Gl?_tA)0Ko%^ybHZN9gcU6k{sHLZEAI9nsi($8b6Fhbq`9 znqijhotvd?6S}z(_=&lP@5HbuwviH~2Dk=bOl}F*bK9?lC;L79S0DgKZ8eP#I&%2Y zj%9x!=rKSVhuRMRdTSMgYhF0v<@c&M(r4M?c#P z5we3&v+>YMM@uM_cV@M+`(Xh|lj3+LdFkD$~(+uO*qJi2irOOgCF19w`=K%y_U~O^XV>@aoxh( z;w(7;Yr!FW&+0Knv#~Gf6Clpa5ASkszBt4=65?655ekHhg^>ZQIU||XL^SzLrQVrl zJ8S7>Te7<#Kkh%-Cc2DS4Ha5H4@h!HA^x|K%?WvU7n+n20Wz?A^zUhbUl#)By=Jp% zsn?t&C@>oTHk?1Ck-0BF>G969J!7}%Ru79AWolclOXZ(d#j#QJhUO)jXk&N(ondV9 zerSfT$L4Lix*XadP%fUMAwFrb^WVd7%OVp#J{~?1^{g!nTm5T%B6w-BTf~n=pGZ#q z_lHM^8sKN#*{g?&?uIlovIhC-p9y=;fvI=QuM{e!UegYktp#n@U*#6 zoAxsalmLjIx&8I^M~f{lx{kj}|_HJWhB?q`qtJh{n)!!34Cmi!e)`FPymlU3kT| zLXB~FAiYUy@b?#*goG4oo}5XTJZM8$YrolY5r{ncs`;+-1zDj0LEkBBGBbVif;D%A zS$QyJnyXr_*XplAiK?b<@yIZ&n)=%7+{0&msQr{d#Gft--V*vqLi`dV78^akQPPj$ z;33tYah$m~iR#g00@^$pdWvY*g#J9TqZ_rov}mBP3RsXDxQZaSd3OCLGmtclHFYMI zz8IAGsBGd$myd-)@Be7}%CIKi_wRcfjBb>aPC<|ki6MprjZ`Xt%ksMBW47o$8@-&dU4HaVP>H|L^_`^i-PWm;T(CpeT|G?v7EPuV;0_J7n5(Ql&MW`0$X zX6OQK!~+QM^xEM!OLk0^i#2xlPtq>5N}Q@D&0t=!2N;gRp=LXC26St6=TPKpnqBmGQaxZ(Or!mjZ zojLB&|0pY_v2r8)0fkN%6@3-x7o;8@+#QNB?|i*n%*CDlmv@nfa{N*mv`^e6otMuU z311A;?8jfiQ3Rl;XPKHsmf&dZGFZv{O#Q+gZgRzr*&NwK=3gHYLb`uuPW^~!zYaMO zdUeV9{yTfgAzRnZI{VLUp#yB|gztI!g}b2Ag~yl^NkT2ZO z5NDPENGAbGXZ%~^0#FuIf9{ns&XPagaeI%v%SQKzSTOAR*MqhKe`d~pg=3~driDVg z1hwf)6~3_7<$)x*T$>+6#SksibAp(w)>nw48#x@~;t`_-4)*z-+{~B4+n2nfpPYXi zZnsB_ye2yPxEfI#YWnf=M5}WPHSD+t>V+WyS3kcZpF!HAS~<%Y=7%_Q67z86nv5VT*)PaB7!Ch zuWB9(f@eBDxuX z0JRs$?RxrQ-uutyOx7P+opz_kU@4d=fyv16+qZHR>}^R>)e(CuO+tH^s3d?ydqd#oGBm z&M;!{pevkaRghZW?K(5zB{jhmps zIYQ6`M-Da@{Wi&PHA$2lqbez4^b2P-gPsa1G<-==%`NrrE}eBsM*T_a&G}DfTScNa z)QmpCHYo!?$=d+Dtsk-Ab-P98f&R4*id`~wd4Yj$73^nRidqO55>VXHd;&g`PDX~>7v?h!`!suJeEs$+lZSh?F^4Tk zLgJEc_-kd8x`sGXOZ;bAUsCgLhb3@EV5=7S7CxW_nIwujhD7^1x-|(p_XL8gjN^w| zeB~G}wumB~S*h;wkx6wRJ=2c%n4)McPHFGWs2H=IG4M-k>IXy-+#<24(SDV4`s|Y zHfH|#Eo%qeR@~h)zAT_*9L2FiK*kQQnYCMG9QjbjI!Jp^bs@I)9Y(Ycw}~z&!v~Ce zc&5FER}HPRo1cn0;r<-CXJ@ zwP)ucLV0Bq+St0dHip==QtfZ~&UB_gu*7E-?Z4D|5{FS=UKpCD*AsoXG0^Vm0B&?U z!<22fr?qvu8pk6C$xm0mQKwc9Q|m~&m#+fal94>QzvB30!_rJ$b(d8lo){ywJPyGB z+J|eJ@-px9(iullEEj~%ARyJ6@i?}tYu2I>Oq*(~>n(9_4(D1}r=7EN7uD7ICv6k%KMmm#-#PMR=?E8S_JeCpa6I+XkjJUO!!iOQ58CO* zOlMFdNra~?fo$8T$uwB5kH^~+wa(OXt$1O^If}zF+%(&(%D27zMkJ8Kqm0ZGs|t0m zeu2mV71ls+)(bW0MU3$XEkf7%G*1$5d4qrU3J%Q z{t%&`o%;jdPhQAs|ASjWU&hO6@88nmFE$ttEHuF4#hLFsu@@=QmSnxoLQP+YKMzEE zv=z`B-Wa^(%Cn1>(A`_IyoY=FuK~v-hOTHbRR947NpQue&9g1v6AyY2Lv55t_DPwx zTG@-93a{;6^Zz!!EaZ#O)r|UP`nnI-?N`00#-ML71x;Lw61q9FdV4~7dFpj>@n;o| z?UL7Fb6L%!1_Aeo4debrDBnBERRn)ktt=&+DdudhG~M#LR+=S^{KvigsyhVQc8et# zrt$R!d2)37CB(%c&$DSB2lG@Ti=J;^xcMXfN zv7?9vq4$XRv^4s2-?u4@fP+Is8eP;c9haN53-k3zgEV7XdJa>WBek47@kN;*s8om-)OlNyCB(hfq)jWU z=;Nbhz9dHO$A00AIzbEYTY0f9NV-J(KA%Nk-%au|J1@3WhPFf6X~G+|`4}`Fx;pPlz;i zR;KD9`0mimjy?!eakMUWVTOGtG`Y-ZQ4xO#d)0a;4ZTVG&n+!TvL||ah59Gm)ea#V zEyge3f~lwijrLYA6O9XvGq1n4e1V8NzuB8cH`nIQRJ#S>{#?mC%zS$P14B5>y|P&X zqGH-n0|vg7f8)(n;>?UyW~Ba-$K)*#A#Lc)0WdEEI>F<+aBI(tCGK99e{NVRK<4Td z8@~Ste*7FEOX%_LzCIy5_KZU(4HtH$YJYWim%p^4!UQT>UnEoZhR3QUaa0c)`rmJM zYF?GUY6}Fh6cm+9vsJJl%6Fz5zCxr;hIx&2ix>r$8obl?5b=JyrLU1v;LbUgc2sd} z7B{^v&+v6?x(-Wy_BWuF0w|;u4V|oD)FlBY%M+&#dAjb!s!9iDWwVIOR<+JK;(o95 z-kG79d{tgYIiGc$A>-2R7r8jPaxt^AR~3TlQSTmz8F~$r#vhcfSi~hgN%PajT;_{2 zj;{-)f;j3o?ve}iB1r0zO%Mmexb>mZTL(L|FMd9MByJz!!}pDx!n3iG*X265>`ZKl zx)=@l8@SJjf$|=vmcWb^tn{bPFrC0vI^y({pgIUWcdMZAu@w*rFFz1}q=4@c_!_8^ zf}m+h0Z5W4-zwEPs;S(Lm@gG#@6VDH64UYqvdQX<9Kb*0KST{hCnYEtEn(gkg(3C@oB1uHHag;Ud+9$n_QFM633cy2s>`dXNh5Y{+`-J zcaOmmeeYr(cSZIC%&w}Z#c`?5Ol$|SyuV{mS6Q!;5-jinkxn?UPPHTxl!~=Lfl?s^ zZ2!&!NRs1cMkm}8%cjwCD6!P`L`S`~h&M%mENBl184%VGcRu65*2<92Kd8bN)pPB&1 zCy5WUMgd5MXutNwy6MvD*(w5jDtOU=Gq{+)QDDQ;V278$S8!0!DZzd8hp6xZthC*2 zWm{wwU4duvqsZD1%BjanLRLq`_mqSbKX`F!jc>EZSRpDOaC>g&M?EA|cZ~ z_FGR0zfK5l#6=TpBra!e`xmS+dr+lKy8eGHz|^eS_qJZi;H)V!{T>wr*Fwm~Qv(+S z$%BJ0iWYQlXtKhW6b2r!MrT#VJf@QBe;{QU`qZ`ff`;RcXjW`HHFD3T^HP~wf$-s9 zn|u?I=F9J#NxW|!>n>$jU$5h~vMNd~r|ag4m9-Bu;3c|O=O#@U{;voyKnq#EkZxW2 zIei9y^#Pjh@oq93<8*%+CIJ>sXg`BE;${zUdSDeI6PgevV7VL-o^o7lXB*$a6xd44 zS=x>{_il1SplzD$lXg_RNZN1S_@E8=3@W7&EZ&rcc|cV*y)KdD(fh|d-__qTnB6yfl9=YIu>XwRFQq0_>@ILU3o6WpCW)nUpabI^!@7ePy{ z)eJ?ccPUZvx_;V#b&E=F1F9UNB7wwFpm5iWRLT5Ml*73huV+%waH}AtM>Cpm&<4I>SvR0agXk3Re1+~j9k=VJ*g}|>tMbf z(31(XJrzl%GG0#~7^*}X1GSnlNwz0D0Ux)Ob>IyfsLiYTeKQZIp0l|lq)}7 zRXR0$Kk(W@yrM(UFf+#GKObi`i4lpw`_$i4`2qKiM(Bos`D4H)U2+V|wBSXU2_D}`IlO5p?{jVN z$Apd3PsWKhO`~pMr&~Zf*e{9k(n{8fD7dDo>VF)X1w7iiwge2b=w!qhCdHMG!~nW`W%Y z4$s<@L6PQkvHpI^DPaxEWz4ypQjlLl&P%*{Wo}=el_R;f2jbTmv5-bLq! zBOMOx_RGk@39@u)JbbgfAosjNG?ejO_|Z?@P(cV!#u3&Z99HqqC2cIs{zwBtA=-iL zr~#FBFw^M4U$W>k0fR20W2qnMyY94T-3ERkQM=bE2I=BToU#b@D^Rp24HpLL-g`1+ z&LGk*R*u*T5}=tuJ{TNr+StFO-6MD@(&YiZ}By*Bb?*RfpL&YeyyH#K(W^eYi21OM_!a>7Wp zAW~q3)>ne{*!AYyS3eZ*06gaTP=e=dKvVBw1ji~xfo+BfF_+q}xeO-fR_X|z`jFJ{ zOVJ;H(2D4rCCk5qm`xJEFMzdYBqRneZ9|{kcfkyv`IaPLNk`y}EuUL_b9QvNrwy8J zjH9kTzW4B-V$bY)_^Yw8`-EASS(c#zOUk;$-96vJ{UPT0eQfTdNVo-OZ&LKz^NLIu zMxJB*$<;5Jqp3LO3-$WtmsE}+ulr%^5e96VKE>SaoDL528uc!d6fWe9Q|Be?yLoMJ z#~hh?u;_mYEsnRc5Yp8xS6xs>D~It)WFi7m-K2^D5|PWhwinU zqG;NwTId!;}SR>9}4awIR^wEkW#aa(leVx#KY)4IDDbX z!7(EPi15bSf*x5OzZ4S$M9k$?Ub@Lw$v%bU*%}xG)R=1&32-VYi zAvBECu;&%?xr1ARiJ1D!cSfe8I}0V9JL5~GnU9)O*5%x7c?+a?c5@!7A31m&kcwfC z$m}bW;$sZ{the=xv}ZhCYc>{3+Ho(BQ;HTWoIFXa!}tV_%KhhLN>zVt5ZO3XsN0_t zk_h4{D6iQMEOTmqaKzQvtM}=!PwIuy$)PrVbfnKexSbjEyJDF zWubW=BHt~rf9Y>e$yM3A34|?E*REtZp$|8Zt6N?=|G~7x>EvBq&6Iqykq%?5A-KRK z-$TZw;J&0~VcF1AxxGhQat(q>d;E&&gzL|8>1fUq^0Lu!jIzv{VS@7RBI8=v0xhS2 zjdKUXCG^k$-L2%t#TW`-KnIiwQ}tVV45lfDo;v*0ZUOpy3sh7*@L&9c=M@>h|Lv8E zql{Y$GN+9t-c-0Evk6KQ0=4zd2hYnvn1UOrF0Ow`TK=~l=RS^q+(i;N$VeL?PYFLH~FrO4rM5J!wz#_HC<>$`3OXNszv_slu zeEy$}yw8Z7kMYv>)Qv=AQF`oYR&R`ysZ(9=yy&{l5Dbv}ODciN%o)wB#Nh>8aL#`R zN=Z`7uTfR6JFertp1Ws z!{#*7I(faIYl1|YACbiP*Q)(CNpp-i5DX|KU9gYhpi?(@f)@XkKhKO2HVuNmF@guz7-Ledp+I3-dxYyIgfj++RuoXmI)R90x+(J!So|B%u_f z1>i5imEFOW)iCGq2MH&VdP@GlbbCNZV0`My66*Wvl_-_ims6vfa3ePteJBr;&)##2TF9-F$tEF;>98Mm=TZfFo+U6I3yKq z8yFdk7Hq{V>B!3EaOHh259)NP&T!>SY9rxb!j*+urH*jOXaM3E<$bb|xhJE(vD*A` z(Bx)3R5>A+JI^^epUw98)o5$-TGc3iXNSehEMI{%6+wKZ#FB{ovCskCbFC{`U2AKh z9KdDM*|GiJsVdxk*P7iZ^iRND;_HtJrn0sDW|g2q^}d;=!fz8_H0I^M(fk+@Pk#2& zfc~MLDQeR`2GFSu*XsB)`zgn_a84(G)(Y

    DW1Sk}MF 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 z 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

    C#uj?d1WF~x5YA-d+AlV8B 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 H=&1h(qhG_# literal 0 HcmV?d00001 diff --git a/cmake/packaging/lammps.icns b/cmake/packaging/lammps.icns new file mode 100644 index 0000000000000000000000000000000000000000..836faa7e228bee5770c342b866cdad7126fc8f5a GIT binary patch literal 1550873 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≦^OJCIf?*6r(mQEGHqyo_j-< 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

    e}7ij)RmwbOf+B%I?2^kaT;C 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ƾ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

    v5{kRYZ4Rq@0cvyon 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�U`DtX}!^i-#uxWBrGu?{q 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

    oQDPp8_WKqTRdU$Lj&c?gRpX2G8_n=eNlGCQ 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�j6_vam2wNr$MgW9eO)o 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 z

    xC!N%b^co-SLqn=SaxM)&*!=5;fP_0iiF#L&5R8Rx=F!AV@x-ik?nYT4y>CzVC zkFJU|R1UU(Vc7A#apSUZ@|th^ z|LEh()92T<0J0Jf@(^%qdVzNacJ&QYc72^pWt|=+tV84_Jv0Jhmmffs(y_>^ji9^` zL>R?T6{idt7V-4`O~t`~%2e{b$PM+QzQ8#LxyYD!S9VVq*|DQY|FYI=Rh#J-zqmd< z`z*UFWV)aJM3WYpCp~e*hY$QTJqCKf7ft_;Z`!v@{KE`oV)_}Qzv^zqf_Gzrx7NDE=eP9an-eKpFT?uGFJ5b{I~G2mHd zu0OaUfJ<6Rn&I4^7qaRR%d^x+ySNmV`%@^o`9!5y_QfBT{VKH(EY1@!W%Caol22{X zGvWJ>KRMRxLCkqZU6M9|NoLNAf+=F!&~og=Es{k5r-_1OB0T_Xm2A z{kRQN)gsDq_SDb#9LmBNZ98u2kmo(fpSoniPdy{=k$cMRFzshypcjCeC%)4~i8pQ> z>Da$^{(t|P?tXYqvZB}K7<%0YFww>^=EDP;V5=|S_^l3F$se3s&P^K=u-by3#Tg+A z!nz=|q5K&sOcp$0NIoWq95K)3e}dDyzNq#|McIeGJeYbhrt1+(T&eANndI?>o{j9D zUz;N@6Fy2nH$kSwKbq5Ot#mqJqRlbtR8H>WGQrwX8hj*uk2`(t@;V}~x9|!=*9#p7 zKkedVq3ZZ&Gdx$PI;0OA@tHsLK_>qo$+~JLc=Q1s?o%4s++qS>bZobDwrmQ}Hqp)a z7fr24BSKI#W9zN6h=$;`dSya3>O_RoX(K$k{p0cbI5gH8>og5nV_r$Z0?a~t}27RdGL z$1ywq`P5@J1KG@6Y&HPd5JWb6@*nyylYh!X-k>vS&=+{ZvC;d$4>Af5=2xB=)1Fw_ zBs)NtLlAjS|EnHC0q*wczI2vn_Y*w3>Cn7zpgGVx)3H?E+qbTW2mW84BHM8Co^yj# zo;CA^D*S)RzJ7Kp9tPL&t17EAa_27L_mMFKo%BB+(=mDGw)ewh9rMy^FDt!X<)gzN zc76NUmpgb*03_&4UKtQ9$PxG`1_*nEdlv9f;PKBwUmZhr^m#uo(#@w+cx?h)xl`9F z{T6NjOLveCq5VW-+%s4eQK0coSmjoIPS+ZEz3T5Af5soWE9g(hPrLBL6MsJ1>tQlN zqVT-0*FTQL0|#E|=iM|eE#hcrzxsiT!WH4;KL7wg07*naREP3JClB3O3?fX|0sR+V z$Y4Nx(;8xx-}E=}6vy-NH>|v-BW`dJ$i@qJD~q-(4e>F!-tl_1MvEf7i3&miXiw<2$Y6s8{=UUF#=$F7AUY zO8jx&y3MPDjJDg3x7^LfX&{o0%O>YgTjZ|kTp_VV<*k5I02ks@>mUL?&@ z#<@g^$+J&~SdkZUQTE#!*$U%2T@ysn*NXp4TL{v&XYjPTS@e@ObtrDrGNF`C9Qem{`Yv5} z!woyeQ^sz%<8U8trOH-%@AyLNZJVS1(0+U3CtTb))oULIS^)Z2zU}{aA70kI8Hc(= zlUkyXK~4BT*k)0XcmBO2s7Zim>xuZl3oYyOq@RnfM91&|{Q!8wwqNNzF8CpSkRb#l z1AWX<4uuKuma^!)NeV2bhX)+Xqbk3>^7Bf_y?cBrQi~kxLmj21AA|>ViR>1WDd)mk z{g5FJ-k+mq{}|V)BW;Nr!w>Q|?MZ9;j_&>O;e+l6M*3&+pT&=!@OMAJ0uW#Pxbd|X z0k6KRoBrR>0>EXR{x~uZFi}b$01q%OYi!Uv?Y%3^m;g~(wgR$ zams)nu)smTd{*$_kgot}3}OL5&xsYB;O&P~D3WL5+6Za(1F!N>{&km<7Yr7lr7RyI z=h*gm;;zg3Q@M=!2$_UcPlliAhZ067=y-YmTt*8z`v<%Z$~{25@2!)H)&r1xbO3DM z3B>rHO(FCFpJL^>@8|{e5zxSNZMsEIbetD-wA|`UpC_O4n28Bm5p@>`Zf3#-qMMp&1EeD{4(i7o{D&w zgRuU!?BB@#^APS~HTwbaP~xnaH&o#>wgB)i3&mVccc9}vhevNq(DPXj59&<*OW0BL z-SN*IJ(GWR{GRa9xg$8R5Ao^fGXacXE3;tf0OGd5N9Yl_rL&(qc9rIAl2_u`HRsbR zEmsj^5*6hi%E2FlaPznH0|D18-ml|RemP#p!26^bZbVflZyw;gzI@7!4j!80 zGVu>DxT9}cd-9L+ANoUI5At;K?%<=$K|2#+bj=44tJ3KFZK2EDTW=Ac$zcu`+tnBopEtEm=Oi;en>i}PWy)Ua)=rjPA0&?7+ z^uSPV9?> z!^C%40J@{O&bQyLy%_f4htKPxx3{KWUwL)(_h{fx^bj+*dCzY^Lxjv|%X zF~~T#|KIrfVEXLZffj@IwFv&5c>k6xWl~mllkknEY11VV#w_vM;g0`4w`tojW4Qgh zF0f-<7XH#FK=+aUybdxh{B&QCBmdm_@T@-d_nLU%P2KkYfflSm?gUCUlQ3W*3ED==pW}657raK$ijtaiTqceA?Tuj8wr-j04`Z$glU}k1oC?H}`<$ zliw`BEeilMKQM9j{T$GoIRNtk^grw}A8;Sv{4nrB_yV}1{p>O(tBA7gCu_%1+a@30 zHt@kR9wpQ#(M)&i4gzW&!WorA;po45J@iChM98r*wgpGjVXJDqw7dUe=z+!km$TX)QeXgc&IoQ^z# zZxNocjzTjEH44Z6fo^PF^J&0iEdp?C3ppz|b@r!w3X_q=2Rd&HHJuR}Im#;ozS663 zAnE8?)HpcOWqs4nbpZ^6{%7((VMcW3J-)@8E?T9Ts004uuv)kEd;>Z*Hyho-6Nw-JQPq`s?YHSME-)zkWLXM3(~} zYmwS&71uDg)!HlPH6qxCa^18ZD%^zg^;}1L3&Kq_5+m z{4Wze6#nrYa3%zq_%jL2MPHwNc2_rizpVG6f1!8(Uy{-fe!wHhY773MIg3NQ_kRoq zolFW)xTbx}e`1sd^+`2^+$u8}6uYDaSA<1Z$!&N^LGtJyI)*o>BXlKFJ}LI$G5R9Z zw`v1r*wFuwmuD*u$3Ma0jc*R7wRSu2es@PFA+GCnfbVoM+^Iel$3h4&;9P2rif=v$ z4?ur$=GKCNYNAR4hoMbPcj(jMF^y)7ro*@ovR!s2{awG*jc4?PAGquUXVpHw{=WU0cfND!BUOiDX#zeNJotuw zp*`uOwGp&}x$A*AWVZzaIi<9+W(uW4c>AF*v{&O4g@0b8a2ZS}74IX{5CNqUn7X6D z1b}<>JWmKUDVC!5)z?Sb^?pWQhqx%&KpBPpy6NHqN5nM}YAA%R;Fnhe+KzodIt23M?M%A1n2|q=;X&uoqGS>@7C%E zU!1=F<|jV#e@BZ%Ir3k0aJ`@t3qX1GgNcF{bt06i5I{62Jm3jEG@1Kx5K;{`QW_3- zBWIHg&aG>j+#f3$TRd5AZa!~?j5i@h8gXkz|C&c#2v?V^kIEHo)m+!s+|=s{FCj^{bd1&4qqKVO26nnclgZ%bpm9eUpn#aa1qdi zjGyk;#=SWHws`TwEllho7BrJ$SM*G0&2!*GastH=&H~V|C?p6!#~r-NWUzA43Fsiy+66GaZ4?#1FZNVW7{Q5SsYu@;{V*zoV}Pp*E>ivfxv4XiJ;R z3dWN+g=gB!x0nS#P%UKzf0+mZsd$6&49Zd6K#by2c5>!uFLKW=jtqH#bABnURz!;a zlwl}N0PSl6cszab@iW5B3z|56uH(?(i5CuZH^geXC^0xZ%&uxCerlBSchbU`HVk}~;cF#x(}F{tSe4=jG_PahF_HOA z{L*~rjcIx>6aJ(HX5owO2SWSsLZ1v8c_aJ~9-triL|;dF|NZB@>wj{pFTm^{hzG!t z@M<}s7Q&!623P>hWpJSfi#$R=Pt*(ton+l_hezCZGbu0;n$}HICTaM`c=-j-1!KL~ zEX?|EE+dSUXX)439mkKJ%kw}IMTuEh0N@oz1cFJv63u6D=&2?(D|Wf954@;&-4Eoi z?aUA13Fq8!8W5dO`k?QCV&cd6&x8+|9xS+(^<=*M;fGoXunyQdAv_R^j%ZmleW3R) z3~^WtBL-B5jERFyLXnh0AY)L|NiH3Ob;RNUbU^VUe8l3_sZPCeuav&i=%-XkejW=! z+y}sk*n7GZceDOL@g<0cKIcF5^ZPGb*Ir)p&>WyneJ~f`)JH7zFC3dU!V{J|j}1lJ z@>@3_>0RST=nZ{G+jK6s$m?zb5>yzrAeRlEhQmu5;kj=SrOiM{JiycsIDll80e(JZ zZp8f;7w+g(n7$0bn;1`kp?5xO=IJW{eQd zRX+)RR{dD{mGFBtRfB;C1%!ysl@6W`fDR$T6#-lPTk(P;PX>OsOJBD>+X z+?wneP*3FvHugxgD}p?`h9s#>`jsMCor914>76TI$g}n3h27leE6feV2fqAK-*@%S zp6EZm^DpI#jy|jV8T_M+g&%wZqz8YL0r5iy_@*s!OPl3zV z^mHffc&EB-%1a1%%IWTZ3-i+@C)EM4kTaFLg|Q*~LY{ zkXRIQ)u>pk<50rekDGAH+KnG!@nc(g@4Sg)@|g)}EAs93U;I-X8Ol}+)Tgv)p~mWH*Zbf-sL?%Xb;Z7SCr!{v~UuHyC8V)Ukag>LEwj8BfXm+=qrYJ_YssszR)&q!vj0ULl4F1$Nh=(ReqNRbm*AHDfnbC1#g%XT>L;+>4}9|tmwsx&wgvHzR^%5m_bebZ)3-p7d|xE^RX@`d6TdK8=~89&F3_w^~-ecwmK zBosR5PZ{L{PIxT~Np0jB&jj!*9TRvd_#EwK0@(0U1keSdbKoLtIt8%i=&z9ZL>SRi zIw7C@J37**-i&h=U)2A5^4Gc`;{le5J~YXD|JDV}C#4r!7eKBT8ILSO3*z93?mrr) z>02%|23*#CK?Oo5BB8%b)3IC}bi6Dg$`3ODyM~ zIb)(T8|K{p=Ax65FpeG{Y>UcGqsA|EFy*YqYEIp(|cqxkaT{- z&*G4KA5ZJMzZVbjDnR##@;=zmY5ukB-^ij!ohd`F{nR`m7+@!dcmDUa+Q+e|sdoRl z_1&v{7T9$1-MPEt_GK+ghpo)Q7=k2=bXr17m^;n`bvpGKuJe?eL0b8dzA_Y*m0zWL zx1NiD^hq4Pjmm`GlA0{20qipPNTTu+KJ@|xa>$OB27b$=+T;~X?HF-w@kU{tE;u-P z)#awc*KFwtFe|??9^oh8A9gW@SQnbzV)?2IT=Re=qs{#6;luiTi#UL!F z0oV!b-9Mhzeq1bd@Xk}!9T?&|%}uT}{8$ux+%^eQ$0eN!K*Qo^qL)cR{5?Tn5|9Z( zF8KQDtIhPm2PfX~{p1sN{*-?D!gT3bUHqv^&8H(&xF_zu^rtTag*V^>43!Q~#7{Ul zblCg?r4k<)eobA|AvB{b;w`OE!y&a!|L}&8p(0WaX}qRG1OqV(c+ghQwUR+x+orYB z90wmzCiPKvJAzSE6b+O`m89K|d+X;l0lYcgxqVBEKzDQ^U_HJ2?!I0L*!NB_N5Y{! zJOG|qG+B0k;fapVb3*UsWQZ$Jbx1uD({v|}x?nN5O#C~p;Ry5mrZq5Qm<6Mr9Kr|T z=V|)li;Z{w;qA{p+lUt~O}D>$XS(=|UI9X`y+hs=0N0v?Y3G0C3;*DO;4tzJekGgL zzh^9fZbE{10J`y)ro>Gj0i}tpvh0gL@rr2r7YuTwNLgq_y;3%aarsIoMi>bUE_|V# zKQ9>jB$(3cR71BlV*=v?d8zl2@bS#_`;T7HD>2-x?jpi7q`Z{W52 zfsyXWH{s@suDf|HRoAm(fNj&XB@BJrBwp=Q9Jb+_-W}I8-{pz)1G)QwML>9fML>Aq z+BJCK;`H6-r_+UFUGycK&96_WV8(=e4X77~r5}{+v-6r$HEL}0K&5Sk&FEm5#)9WY zLN|VhS8CG5KjfRWN)>mo?*!eOVFOM;((cft3xz{`by`v;uv=m|dKE`6-5T>M#Zt9a6Ei~iN` zD^hu6XMF&g$#y#N)jya|1~>sJt!xOEvh-`CBo<)lcW1ie5v+dG7XavhfECZ5dDXhB z+ICuerAZwr86#+e+Q;UXU+sejxad+}xbPiO@XGl%(Fb++!=XO;$1A~1{w@E|ecbec zexadx!!j>iTfULO<_G)@OF9O3u^A5mBVYC5`8zT1h1Xl0_&sQ;9-~Vd;a2uLjW7y6xN86Q0zlG9*h%nO4|H#Gg1TTAen#f+K60 zc*zUROaQqmW7O&$uQ~|^2zg}TTjlUGky}cl92})t3s8FbdHsh8O6~|j)&*!7_%?f2zzbAZg z!xzxFE%D=P0mNh4#ou)9IOyH+q_v;;h8<6Z;BS6t7arikM`+KaFN;3mhfh9%AE?-K z)5S|#43@IXL^%^;WCvMi=Z6I#zWAU%!B~S%WldlC?KV%0X*4vPLv!%)XFo}9WE$!q zFd)DH{Mci-t{0{F`Q$af;J_n2 z+Whg=o72Z1pH9F1?RxsR|CU!KPQ4KL{PTO_0~Q1|l|1HkfV>(II!h9Ug+bz)rri$^ z*QV2H&S*Ow7kXmb-}1jq^pn2L4~gT_KW_Ku)Ccvyb?a2GeQeaG&Gb+Ilr$#V7oN>R zA9xO~g%6Jf>WfmLY zoi0Ps(9;gcQ+(Nm!Hs?bcfik-t2+#&`*6a+Z53i!R$yVscL>mD_~gNJdNuH;iq7jG zdD40P6_$J&PzwOk1zP{Z^+a7XMTcTM&6wJBCBFQoyZq)2Xw>vA9iiiKU0$VIIO4bL z&-o|=664B3TVO4(qL@h5a+NsI*fLb(!<>&&R0loxR1^CwW^l}%*E~4o(XS4{vl+0N;xtluU(0DcsX{Q;T#QR3iC ziOx1kJd)4gP93Ow6q~$X%0Q;U%>zG54ZB4bv;gp|I{cT_;p_Xnr+Oju+#0oCm;G?j zi!VmfE*~c>%nPi5d%`#HfoYF2z(5ceoTkHW{5BnN;TMqCagE6CjnQUBkGXdSPF?Pt zhe?|PfXnnCU>KFnj&I&Ch2A_LS_-}f5NE5hQ>MTanWroT(#_MR?0Ctm4*%dl3t~F@ zcXIcJc;TKF0Z^FvMBrw6=bgRjFaCnv;FWiSc`uyf!OMvNwY(MqcrLal1?_fyREyM! zO3Ac>?`kK?>BL9j4?JNka1S~X&ZIvV{N?yBlm5T`+Y>4K8@~qdrPj?bJ^{on&zkU> z|K|roVQ*?GjHL{XS|0W7?_?ei|PrC#NC;F@1es7bY zly&z-#JL{SiG?51f;&e$J^53v(lK+zDxV{HSD5kONS}hz9nd-n{=fe>6XuOh0EGTO z``P~Vv!7)V0J88turu%vY#z~r9= zAZY&4N1N%&m9-ZESP-I3r0wl#5m<|{w*8@1C|haOFK^SCu^@WF9A9HJ)UX`l%8Y$~`$KPJqhN6jk1JY*0mvR>y31>q zdUd}6PteDafjaRz3!S&VEVa3A-q;Jyduv1k7m zx!|aO#(Zy(8BfrT#sBC4p$GU2&1e2V?qxeZIBvObnl1V08(Q+4o`G&yFp3{4_Ya=L zcAVKE(ObVJlYkn|9z|}GZ+zC6z3a`xxFGwdz9(&^g%SGN6gtA6A3s!nYR)?bBn{}PVyIjIDl zG|Vid1TDeD(e)${pE?}9do=00&CXS@z5AF6qUxx+=9K^jbxALs01xrPK}oay>?U$5 zLhl=@(_i1aF1T~N06@p4PyOs`(5I6_;o*x9+2H}FJ<*3R81%b?FTV$M;0FFs$h6mQ zXeoClj-qV9K9&S{sKf0-lcqPk7HHzgVI|M?fmf9WdOAVr9=rjBLzpx$Ii!9J?9@AD z0q(4RHt8w{Ml1z}_uN?lXF=$6b5lEK?4BhPyXh#+9G}f8fXNF1TolKyU|$xveJVgL z)nnKdY~#nN?hGiAk4{lFK!xju(t=VSIQ$8>!mk#piR0vti9eG)j&`%-$3%d4+TVMR zBfrZt@S*r0=v&Wx;~9fwgzlRB*Nz_xL4wqu8c=c%-C}7EmN5KLZl^n3ZML9?I|MAF zcqfsE2Fn67=22t42xP#Le-t~>7oxjJrJ2qyQThGq2n$5eo=D~6B2dB2cy<}2y8G>%>f%=6%n*Ky39JeQZ%>$(6#D_lTrbQoK_ki~B>=$3Ki_JpT_Cr?c z>$n4iML^4zaX>#W8Q7Bycrg%JgHGTJi@$A!oA#Eo8XE)?iVFs?IX~W{K%b^ATK<^yIc&T9FR9(4iG;$;L@ucs7*S*7%E7gp|GFF25r+%? zapRARzfb*)^oIwChwh($&O83O@Dmr>U%9gJS0DPhxcdiO`u3`xCwvy3wV5n}`HV&Rjyuc)-}PV&rY%C(dSFM$8D=pjrx#Cy4vR`s&X1`b*RDHK$ma*ZQ? z2&aB7(|rPQB#@Idp231Q3mjSr<9&bNyqE;Pvna~Ap^2jU!p%mf0W=l_KXT5MVN-=K zLGk*Ba893(9Jef69vJI;yeAFWt3JPYVy0o!-SHz`)Q`VG>+ZPI3chfQ}tfWb6u!bHzW zoou+}$0Q{4fmLCCfSU zLFK3BoMQmNvBh#R0@hnkQ=P1J-pf5Z?Yun&26K8lJN}2hi zVazLnGY`NcMeCW)3Y(_>5gd37E}<621M?hDoM2J#M5k8t997WH4{iNy6g1`Gzv*f? z>P~$aut}_PT@CR-j}9(_3=H~A8cE~XYO5|ivf_98jlebIFZ0=FlPA{%+2wot?Y-&U zcQ@Vy3(!JPn#P3l=n zce%X?pxK=P$REXqokw4WsT~n6g6c0!@R;k`2)cfqS1H!|ROH_D=9?RRHgZq?m5zt= zioi+>L7_bp!DVNd^7RD0YaE(Wch}tXb)tTX^bRf){_sHaLEi1}U4C|Q@v}IU$sb4k zuU_Q~53#^M$UtvieOgKWp@1h|R(Nw9JpE+wV&u7>-{pg*dyf-@Ya-}}LI^yeEgWTh zcbeV&BrWj9gZgZ!JoAA2aLFkOJt=el&I2f44J|$(CbVZ_7yJeBg16K$lRlEoJpvEEgh$AXRevYm_ho=w^Ie}3_SgeF zpADoQItj4ayr`XGy#wTO>apj2>wJuprfJihaC8O7TkfD^S>b#h zGoVe;TAqsEiBrDj1H+gXLPx@}LAI!7+SgAaVFp|Mme(?De|QJ}NxwjrE>nEwF;ENO z8sj&6+$lw0QT>>|V3AWOYzm!jzLDI0RL?wTjy~_pryuvV%k9^ICG*k!SPTOn$S3qG z+_}SoZs^V}yG?)M8^^>A`HZ%q3?ME413pQ9h%tRh7j5abEyln?>&03405}87#b4GL zTo}2&=Yf?5UXGvnk6K*S*F$dq-()(M25LSv=NSVi_bV>^Vx^azUj!Y?U>9LtI&V7s z>I~f}N|-HmNFG9u;FQq26DOXy*i7;R=l;TJoiBnf;4veb|~ZoxTF>Y-~$idfz05K@=p2CI?skbGX`Xm0Wb7U0q?}` z>-CsZz7@UJtp5Rq$r+O@cH5W`T)xa}0_+0s`85G1ge(N0^kXvdQ*9JvF#yB!t#Hc4 z&%!{Pey6*~DU^PcdnWu$_IW3r-Cb_;{`ljy7ABI$(Oz~ZnGihKP$$0gDT7$e$%MvQrTQSiabv;&BPze zZZNbILckj(=$SbQAZW#5$QLC6r7n?`C#5`LrlIbkh>z71ac}Mrv!wdIspRhjSiKH+m^zq3VfCHO!Np75B+;F zh-dO%H}t0tocQ3L2Y8VaDz|jOH769{5%S${pb83&NB(1A&xcfP$S2))5#xuz?9 zK;o838|m~BHC7;FzzzmFCk|?pA4*i?9VSjO-EfD1$*w%~h@Wy>UTGNVs=FuiS`0Rv zq5+rjlX#3DhrAQRY6x6If8RjGXU;&G@RSzH5B13~-Hh*k;8a)UKg6);cIVDoJU}0i z#lhEKUul7GUl#|id~Zab{Ad~PaMK^R7kr?%*|MG&zEJNZUck}^aG4+U$K^;rlYV%C zlRwa(_x(A!1fM+Eun?^NpG6LKL8*Z7$gbyn1HAi7kkXcp3mRZM4mbV4JTWZ%EwI8b zVKJ>WdTarWK1jnDB!yG^GOYdzzYSLIMJK9C0@vLy#?n5 z0G;&F#E!9qQ*fB@5PgRFHI0od0PL+L*e7}oK$`^T%fRPc?#P!Pv=}0s%rrB-kauW{ z1!vF;9B*68Ei^G*NrN_lk3ZB_WWf~eD9?Y1Pr1}-q^)z!WQ9IZwOOH3?~@k*BJWif z#(&E{ITYu%Xc1g8aJsss7_F8|xUyJ8XG=T87vh0~Bi#$NzNNnOs^Z|G^JUoeXOUxH zxbS9J(Kq@5bc9Oa1A5^WPFtoG<`2W~HvJsaDRxcXf?HsB=&o!jQGl2txE&I98K9yZ z&5!KZhbm?<_vPJsQo#{NopjHSPDveK{P)v$x35n3o-P0^czo(RTNqfaey&Tu{!b}3 zuZg#r_%ZQk;A3zW!_&FDV~j$#4CpQNB@_robqLO9G$ai#zWJA8E%B61zJ^1%7Pwg^ zw>%w)+X79U*}Xj7=v%$|8h{PY5r7p!wI>}p^`_HOSX$un8UW>?crd`BNK!W@GAJH7 z_P6Ht;k7HM^z&ob^~fi^H1K=37e$NRU)moVet;+7gHi&(BfMc=AwIZOX8q#_SNMxJ z?1DGqaKU*7Z$k9WDMRt14JjU6y~`KnoERoOGp}jD>7n0zgo1~5UwP8wQ%^yeSttQZ zy`izZGSr0Q;_#)FL&H)JwOM5{G2(di-U+)t4_^StBzzi|&O4=F2bVG!RYi`$FP!G64FAFIez{e$YGpMHUh`O~S&?jT;*u?1&E|n*r3j=M?rKIa%!w1k(*7Dr6DPFM5x4$v4;8Yna zGH$1s29C1C1x9pX{7p#%9>XD_fMCcU8^g4m|1lH0rG5^w}`mPZUzzD`K8e`nx+xZyn* z`|+x?`y&?2vq9SboR0 ze?*pn6tSeWkayftUis)aW+M?T#VgWj30_iXMUZ%PK{ipIv2t%{>gL>bQ$RZK z9QRf}(~~&(q3f!A;vb$znHkLBw@wGX>qEtI{Fjw+!}@eWU<~*@KYi>P5GHc(ytA^) z1dauPmtWp!g18(D1_p(n$siL!(8WZ69b6{(O!iRfdHsOnz{IiBx2*(yPlfJF5`}c+ z^I)F~pLo~1lweQ(!3PFRHE!f~e_)q1=ny5qJVX49Yy7~(LRb88#X}0WpFH6?a0_Kb zBYAPN(~@{MR?3;%tl})=eqUE*m0|~Ej_=Ad8`3E+wOL$zvQA9hvx_W+&_Jq(`W9}) zUi(zUT;Lz{T)A?pcdaQTh6x@tXF&k^zx9^N)^j4oC=F<6wS;7@dtzWg|D{i8?tCfKhboD zrUgg3`2w1EeMTM#Tws!J+RySv+hgZTx{zz7^9&#H*CId`3F|a~9u$lX{Wgdd&ciqK z1uB*b88FbUa)+sw{5}oFIHUfcpi;>n@cWzJoKDy_EdIRl#-3%L`$L%6UsCtN#ge2k zsb`|k1fPWg7W(+Y0Ed8s6oQP1zEF7ITqopa4fs25V z{hje&?VsiR0r=m>#SVQ;hKfVZI&4=tp>tUh!%u;S14zf1Ov&u<{ZvnM#tZ05rgCQb ztE|yq&vV(X1ANFLm=-{E3P3%q3PJzDO29n%<5Ub*CxUceMDChV@;NYjd%XT3eb+kfjbN02=J`onSgMl>c;q%dtpl@4g2> z$>+rQ-AaA($9&+9oGzEny*hj=Uf=_K5g**xZ>4DmkAtG%&Kug-A4(LsHo8?B6CY@l z$(_RTWk(MWh8Sq&6uHn5N{Tk*gYc9mn&wz%6iW}*%HnwgS?!^oQS!nI#LM~zZ4dfK z$s;b)hSV1*4}|+ticYv7O=oJ8nWP_VP}I478wH;U+tCq|`6&KO`oRlnxY#}ofKpFh zCIu+@9Q9?FkLD9z;J*Pu6 zh1GwA2VmmR8_ozn!4KhynHQ9n$s$l=TG|mA$IpVG=xI3y0pJX}LOZCKdQk>`LP;SH z%wl3RgY6oco@F}tCL^xsKK96sQvpeQHVMNS7(m+?<$7dmsi9L%y zSQdz=26RT|ap4tQcmUo&_TeGYA6fpZ{!Dr}_DesI2_Ur8gIi9E55V_gk!xsA9I*Jo zQ|u`J;RpBvzM-!mZ}Mf5k+NoJ{VX zh<|+A!;477s}AgZp9%;1?C+^8H^O&&+&*14=?Rf0fH@I3KP&~G;a@g{vKhceQ0O_! zv}sD?z-j0fymWZi1y;s1CT%eeb-Y}>=^Ii;^9_>B9{>xMog3*iU6)d!@m5G-B(TQJ*6^jSy8Z%vzL{=;UL+I@;wj$>`q04GshM; zOb98hIwvxscz7Z~o7gdua@b0Sm5BkKc56~e9lZmpmR*5M|vbxX@G&epO%7u#Qxb9tsre@y|Q~S76f5a6*FD zWlm4EJ9zSuQ~uZ=#4a z#sp-HaO{eFX@;vz&Z}it7-ubo+ zkWQOa&l*=O7pmh*x`4k91P^S^&)0!C4Y+@hJE6dn|4f(Yho+k`ShyMZA<&Jp#xX8N zsetS@NV452VD!wYFqjJY;-;P!J_F`i|ha@qG7f@^z;n?P=%Jx!KukTmr!wXJPr{bi!6Baj8BLP zSLe|{`KRVwVnD*iyKL-cS->^W`fnN3Gx;9{en-G}B@;ZAKnG8n9TS=U7<_$5`oS^61w9SOkD) zNF#4A?j)=z{YTk%ZmMnAelYkFuC!aex49)qc81Ql(YxQ=o#Bfg{XSc027T_cO-IWE zGSM(7M3oO1`$@+_chXSui?5jE*$+Pu7uWFk1?|a}exYv^IcUgaPm?gyQ$ZdTh{StA zhI<^KW75(GkVkaAZvn_a2KIBr8(9RPFH9L3^r1g7Sd@Q`e)9gOR{X`A=fR{O;MgyU z%*X@XI@(^eEPBrLH9TpBBfFGQwkLJuGrhrY^8>V3K3RAne9}B%stCtSyhDHdp$x(* zKk@S-jNohX$D}em(65OApDJ3U=Q>hn(n{_f1Tb+KOY-d0ih64t(50|@CmfZp{PLZ3 z<4HeCzbF65E{67DapW3riSrJ+Wt@0u2Zr*uz!gn_Gat~;Bl8tzv0nYbiZt_=+<8F| zTx(H+yGYEJJXdrn6FQDjN_R3pz{;46ou}fQw(C#5%>}L-3sG7ORo&dr6Gt07j<5)* zi{NzpceB=of#+fY0DP$RS^#8H;~nslU-YB&)1eWVQiR~!Cg}JfZb@HKlxfcA+%8J# zJVSq31S0GN!x9f&fZsNW$#_mm)0r_tAqP9I!y_E|M;jha9Q>I{zx6-S-LHs3f47}+ zfQ#~;pYHjt9LhZ(hF4tX&48BElJ9MN33rYMZ*4|=j&bcTm;ROPb987PT|n_J2AVGr zGpIZ*`xJwjsXTkeNP`##J;39J3y5x!)bW=>9%O+TAE4T?Fe!P-0txBo%RF5GIA8P} zT7$sp*l$h#yb6y}<^f#-?GCtH=Ry#>gY05jI7=u>Xcw_2-jOO!u5CFLq$G|v8V*p* zEMtkFgC}b`^nd`AiNOr41PVo=U>B1C+Xc%721T(AaHLgxY6pODj)(EwO7DRmB}Kx{ zs{dxK7jDnP0)X&krOT_lC|V3|;0+57MiblyZzF#2Z(DcTE@y~mfEN*+##6yR6E1;- zE$|dAp@-5l(Ni3YFjDq60GgK66R&uHY*e#4^w5y{Q#L%(bd+o5jc3UES>ksl7qqv_ zkp~_i+0Un*E`!MigT5xq<^k>cX!qyr8?Z;?3s1%-afER(1!I?Z6!V711tK(~obXiA zGf9vi_~I}3HShwkwkpp`KQJy%KlDYSA3-L1^a0SD3HOHga>El$00YNFoNsrNf!Zib zl@+#PLRbqx1}PZB157!^S1wVd%sfCrs+(b{t0qb8N*YHLcDBvl>V-P;$%H5L3wF9) z)&3S%@C!ZNerQHIIf$3vv_%GE4QtwSnHv);_$OtU{tN(0@BYDM)T1dm3Vuz(%>$BI zW8|0d~hY zB705@bZ=e2bZeZ_cKq$OAKIcGHg13l?*tzDl8#KpHQj*$ukZn{QqZUJY+Fc*P)`5= zKmbWZK~zp4gbyeqlYbO!@T}*GW~N&NT5&RvCqCD*{S{Sd)Va+FLHyVr(!@97hm{sV zPB{&u@4@pL0BxOL1yEf*N#a!rotioyM%2^0|GgoUJ{sCZhIi?YBm{SZi`QnvF%b=u zRR3E3DJ6e~a^E57N+a9$b4U|~RD8>EN`x<#XNHQyv*b~8{zIwo)ZA0 zu#=5qD6xxkoC5v$?(AFk7r4%uPK$DTM~E_F#0Th*8LEx+2t*BdpCyvgWIxw)alOtF^xU|dl)N|xoS98S) z1IZ!)Y(R!(lIX^f&qf~A$?5F;0LQNibYJL6EK1){(PTW6zo8A28t9k5$O1S>oEzrm zB2Unmz+#iDXm5oW{Dii~Wz!wGGB1!;Whu=&z>Zg`VK6_EANl}K_)Q6jgj|cxhLe9j zg`wwrK?vTU?nNIt`1+NgQ@_LAi$$a{p{HC~NH1TQM?upZ9>7Ey^kk4-a!+iXaOQvD zZ%i=8Z&~9wu?DF4(5PX6hW6ked534fKYk|8vQ2;U4z#a0^MiO|UJR)G<^^!936}BP zb%I9n&s9pj(@$5mOSUT|)vjM8IGNjRo&`YkrM)g6KGo#U^-jC|DxlhE-cnlb%sDUP z0PP=fQuIWI`D;F~3+!mfhiNyV2mT6#BAVYChMbNkZPp3Xs{l=U=-D|GE;=tUKg73` zLcbn^8$VAnkEk-1Z}0B&jt+PzUV+E)!BFn7MFa3N z%X;xf8r}G76f|xLS*Qn8Z%X75=gf@Py97ljr`Ys>O%Q~=C6-=`#C6h z#2S{mQxBdiza|k*bJtEiG)aO7eET!7XWzij^XHznngb4EJ>Y{r<7J6A_!f_#ET9x& z!JWeLFB5!}YSGckK0FXU$Y~Jb!71erMs$N-o0aJ7et?~RJg!iQG&{kHa{W?*$*H0s zdv1oWa?LaKxyRxUvPB^%{!zWM15A5TMxF`3!PD&g&(MpehZytK#h{NA!X`GSBWp^Q4T^$Tsm~`3+}k zIneSN*oIf0{4W^_x)XSk7Z+LN^C^&T6Bds~Cx9=?n&;)GVO^b_lFv?1jqvHVECA#c z7-XU4fkrOjECe(MbmJQl9mZ|@AWS5UTmxIpeBo#(suY3l!i_kmq?rgNdSV<$c#doR zq0>9x5XNixPV2A}@>qkbEb;M5xA(%sa~86l14Hlo)SN>MFo1FMH}9`3@BEddnZ5Ck zVUR$0=>RNPvv5Z+61ON~$zw^O06nYWx@<>Vc;d_NC`em^wUtd}0chYZx1P;J-ADI$ zPn%9E^>)WDP%{z@xZZ$sZRIh^Gvdh&&W;nQhE_q^S+?h8H)4 zFBB!^`5uh%z%ya?_H>k4p8$l0$Vza!TlL@|iZ6cXfaN#%4sM`zY-2w<3`Q%_mX%nVw(@> z1A3xNpP+nY;f0m&03aWhJmvazgkF?@_NmNRwe;)Mf;4l7UHuGZY(#2IVwV#@LLJj> zqAq&A7W?J}0qV`GBonU$(2n$R0<7#^MoK+fzsLgjKR_>NTb4H3Piq=C4{}MzjJQn9 z^1GAf4pwn0&hpM9DH?~k_~H>Pxq(~ys4h=wE{hEDC*1MCJseF`eE5Wsc(p6s`Omt`7^kMXUC5$ozk?&UIkKGox^Uw7!V`FaCLTYDqi?2EV6nu- zbd0530n?sH8KXO1`(0#(UBXsTT_!I4l0QGn{E>J+`ypX+q;6wb6*WH>9AO1xFty5k z+%{Z+pJ@lqe`?Ml1|k}z1X~zrWJ#Uf?u~08P+Wv}fP?u9o zjtvXU88#?fOk}LI(GIn%iSWQ?g_d*D3_Id8sm4_U8ZIy+4n24{TCw$Lf~KuJo}9xg zt$;vY^Aq(DUs^d~V3E(n$4ocY0Y6(6V= zPxMu0_=AklmIUgNMUWI29-#Q}j>2KMz&pVYw(soz=w#FWOTPIV9Hi~wr2XA8Q$vAv zJDw=;2Ypc)wFqc_=)QsY(A?$w8I+y)^aDwcUv$&L04D-MyFAgD<}u2dzF8hjC)o3V zx&^8LoqLXnhq%!a+x4S8)N@QHExZ+uBfa_<`OcoF7B) z_tczA42YrYJGUrH5n?2Xj&4-iI$Tn?iwlHFJu`opD9#qM@<&LLE&d2H3RsKqL&{F3 z`t5SMjO}m)IG`@g$^&)B4CQ-(Q@ksYwmChSDxN&03>qI@20-K)$|LE_8nv+o{m>1b z5MDjfR)^=NhQ2*1a&zxP!F>_J5^+26qw;{Ce?702|5+LLLz+jR7ZIp~)PhXJg+|ml zf6#_h6tdLc*%aa#@hjaE`6|+}C~wrW^HDBQ%HxS&@dEXvTu*X=J^Kb+<+YY>k6W&W z73S3DLdMWo(!hoA4KB<>y8E+tJG~fZ8#%A)blUG)nBQxO10l+OG4F)HuS;|brNsnR6ro9<@c4ml=m;# zhmg1*hgO3z@2ho<8p8ogL`MR@ivhwrma;5E9ZxaL z{0!6ayDohQHf7I60Jc2XA@eZ&X&wMSW#J3Or{ClA(A*WUT~Z1-BfoA7UxESgYKJHB z^s7~WT+^R0=_P-Pj|5cPi_Ymsz;W@E;n5oeH`1BnY{=iXqW*y6n({p71GxS4;qnu- z39TPK`6oRvTV<$#Wt`cCNtnKjuR-jsUQ`)Z^0;&Idp=Z?e;9?5wjgqgiT=Q0p5y9DJl(e#$7tZ^po96;n1{H!)7|6Fc(d~ zx4n(q0MXT3IrISVu>9M3GFUX-I&GnJ^JD6RBGxcG6F-9uJci3oGyFg|Mw*O|?-z{X zn0WLNKgOhd5daT$*e$!t=(1ek+5Yk3ABqcjar0<5JfHwLB-m!=hsFyo3Q+I*|Nrd0 zX_sZmb)J`%SykPb2|%1B${Zxilk8=A*fh!f`=@hon=EN{NXehvOE@+v&J^8HYYdC6ba&SH|H?5@&YO1r0a&3&C5J|nXoJn?xs1yz#91=n{azg$<$OG0#YtlYE;NxPB z7P^9m%vFqI+W<=K;={gheEs>CuCDKYo9}@C1@-=%w5RH%qo+4!?iYg_W*-e|(ii>R z^vhfNeK*eW&c8Skw!U;%&i9SM#w+{6%q1=ChqAS*z>C|6Ys|<>P;u)d>E=v3Ud@05 z^0&AoiKeu$6|6GhOZzlqm_@(1n!ZjS^q;zuHhgg*xCaNZ)4<303{ScAuQ>Uz@ru83 zD-0p`mu$MA6o0yf>$I`-E2+^tLz4)uc?(>B$~BeWRZk}H6*esll#+WH`;xqsl-SVS zx|a({`H7yHF;BmVI|lO7>*zfm3%hay;OV-o3HTC3-w7qZi^KAOb7Y-32yz|`v}r=^ zA!F8J9pbF`GVT1*MzfUqeA+qGL@;as#O?|g60iEwU&7~$eBcUX4#kJohS#umNn9UFPOa@kQ=tJeK!rVow0F*;8j{=^>{ z^6pZU{Y(TOxsqRDz{mJ`jKAsnhbjKa*B?ATu5c&`z4%v)C%h*0p(NVTo{bH$}5LxY{KI`<-;Ztc}5H@Mext!m@o*2SN z5567Uq!%B(J7l`XTIruVzQOIHZ3rOFgwv@v&0G2LCoE7GSEYVT>XL|@X`LWp%ajjV zx$*MB2A6<8H71+xFBdYt)7)~T!6aFn1W*`2Z9^VdG&eEXX5mtYdFxt*n)yV3^Fo`9IKBdJavkW5Vi$iM4L)AAZp1i!HQ0t&%{? zd)o~`g*_>B6s~2rk-l-Wi6#;uEbwsZkk zfhic77FzxBIPW#-f}A<|5gtH~MGwVxC_s6@$5k%D4WBy}aW$8tJJR(?XJN-Z#)5J2 zE1jt;I>k1cK6$oNi3f7gZr^kO>QHUN!rA6t|6bSR?X=#D7kAjTwySu+ZT=+Efg}E;_04|K6`*7}gn=)@V<@n;m6}x^B?$NX|`iHq;{Kxr| zj&D#wS^A=r`NW;L1wi1*Z+Mi+_+$fP-dx7J__uE@U!Uk%+&m}crKq=YtQMlFx?)R)PckZO97;d%`Lr2Ityw6yr_nB89e%hh)}Bz-Va3rlEasGbm~N5a`;bI%ek$cku<{ z(jONbSO*EYEGKLl9H=MhcOieg`#Zzf2AhPSpdrww-r!PR*0u3X=)G_#o(Fe9=ipQd ziBEY2ADEG@ZnR7v#ISkxWy$M?a(Th}yzB?g;F8nES6LN?bu3+%DvSn*+6e^GjCmv= zxrGRrKQ4-_AGnA6Tkih^vZU<031nOt zaaDXZH1YAb3PMwn9_a8#LJL4@i{PoP$wR_sNhq9NGPXz(lbbx#>r!V5Plo*CMLcx% zPGm}MCAP(#eN5K$vvq{GIX!W8p)S&#*N3IPYNl>X!`Mp$0ku#5?NBDGro(AQYo+tQA4=^wsd z@aAoG$*1M{zWlFax3sD@Q>52SKQ%CPr^OzvEY~s zhPI`V=|^6YB(1++1|v+obO+Qt`fj{nrDf^9+Sq7bSPJA%zvVlpH06y_Ui8aA6=d9|Kl`rG5!}D02f2b^MO3@Cfn2LudnX!|AuG(zP&Qb(jyd#-Z*oP z@d(TkfrbZCf1oQyRqhDZs@}Mf3NwmTWxxbmbAVPVz0FU!^=!xbHz8M%tV$!0D{eSS z%skzK*}@5|A6nJ;qz}8Ba)-3k>AMnq1F%Zs5}ZaH3ptFq-K{Z;*EQic?}$TEj0SYl z_0Qb~a)y6lq>sK8cuiUThDXs))85AMuWMEzS~?SHz_`_^-R;yWw|Wg!5`` z#s9>lwCR<4b%5c487O;I+FOqkdSObdmT4P1BtR{0QdTf*)=U^bn?S3*0B-cPzK(hN z){3T`@onI8oD10d`=9Yh*sp;bz5|`Ro{kS>MGqJ*ZbJ8*8bfCY7ef%*#2*-GI=r)Z zVE86}B-KiRTQrv*8y%9BTtkwsmz%oEpZ>TBjc>Z)sn1Z$wJrMtb?I+t96o4TdP5(4 z97LVC8GDW`3d?#4CoUX)dH7GHJ#}5cxZr_qWcV0_n?ZvU$Gq@Knt012gUY|*MNfcm z(qE^4ysXQsX{pU0oVuoTAR%EB%|zB0KWwr{a$yDO93p7K7K?tE^476m%}WJm=>Z|- z+zF>H)Ml{`IcIp*8N-?#%XL3Vd6EazO;6al0n9ia?tL80u`?Ejc;-6tCOKYZQA`}u zABTm0oF?r?X29&W@UuP}rEaTF`}|lOS6Z*yhW@7K&jJmVW+{=h#;v4%Zbc18pM=Kb zJMN4Le}#?Pjrn@iaU>+iWnMh9p(f|4`QpGn&nU-VX+wbEk-W^U!icxmIr7Zj;DSle z-an4s=9{k!*^o9EMpkqu1E}o&2d}KL&J?Yjs0fC9?HynS9H@&qPb_`yJ z@CIu?Cf_zzIQl{UU`Be*M(8bH49Nx>)m(@>t_&_@NM8)27*OH=9ENqrZv^Csn-PWz ziZI!gjexAQO|UH2I{b~^PMu5Ovyj}=H=$F2Q4ZNTcfAZ4fMvnDP_EHQA_en!3n*dwp(+&&{gR6zlzc;*wY}o_qj)<_P zW=&}Ml<_Z{E>j>zxcOY^Pcuw0zSBJr>0KcXzhj6V4Eh)*8kI~UyFqKOye4h@>23YJ z=JcXP?3;!Xcg(v9utPoB(BSP6wH%K|@8GINj;9`WL%w+fGk9D01n(b&C5bwVQQ!%* z4Pfbq=sn{Lpd-W3G^kJ6Y0rg2IEi1|QeWxJH*PDY5zm5_c=*8d|V-1ZrzhPUg<~Xm@zAc#ukCbbLewvQ4WK(y>Aue>|uV8pU z+0Y&sxA2?jg!RE~^g7|;AN=BZ`5QefESxyCto@KS3&&=evwli{>X<|WjR@5sp;hYO zH*NaRHc|;0!w((=iw%H_A?4$NF#Y;0@7(Q?|CP5m zBRc&N1cdMmCIDwYyFhh{S3p~(bwnido5+gSjBnjF)K>25LKgCCr!R_rP1aTVv&f%* zj&FO%$$Jef%3*JP6hrH!?4~>lQ-i^}$it{{(RVs=-18zPe8;Ha@6k^Un8BTRW6Uaf z@v$a+adCWhuke=94dWP}G}8^&sM974o*SSEm8SGt%3bg{>uNpnlV$8i{XHJgg0

  1. +IQUqKzjuWePfYQr?2BJ$>!@?r7JX3TUYzL$ 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%0A?$6@tg*B=`>5YL5e3wPKIEBmu`|Q$6bST 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ΦK!4g@4m_4W9L&4g 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 literal 0 HcmV?d00001 diff --git a/cmake/packaging/png2iconset.sh b/cmake/packaging/png2iconset.sh new file mode 100755 index 0000000000..c89a5c3381 --- /dev/null +++ b/cmake/packaging/png2iconset.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +if [ $# != 2 ] +then + echo "usage: $0 " + exit 1 +fi + +png="$1" +ico="$2" + +if [ ! -f ${png} ] +then + echo "PNG Image $1 not found" +fi + +rm -rf ${ico}.iconset +mkdir ${ico}.iconset +sips -z 16 16 ${png} --out ${ico}.iconset/icon_16x16.png +sips -z 32 32 ${png} --out ${ico}.iconset/icon_16x16@2x.png +sips -z 32 32 ${png} --out ${ico}.iconset/icon_32x32.png +sips -z 64 64 ${png} --out ${ico}.iconset/icon_32x32@2x.png +sips -z 128 128 ${png} --out ${ico}.iconset/icon_128x128.png +sips -z 256 256 ${png} --out ${ico}.iconset/icon_128x128@2x.png +sips -z 256 256 ${png} --out ${ico}.iconset/icon_256x256.png +sips -z 512 512 ${png} --out ${ico}.iconset/icon_256x256@2x.png +sips -z 512 512 ${png} --out ${ico}.iconset/icon_512x512.png +sips -z 1024 1024 ${png} --out ${ico}.iconset/icon_512x512@2x.png +iconutil -c icns ${ico}.iconset +rm -rf ${ico}.iconset diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 15efc3a0c3..3d6f5ccc71 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -81,12 +81,11 @@ set(PROJECT_SOURCES ${PLUGIN_LOADER_SRC} ) qt_add_resources(PROJECT_SOURCES lammpsgui.qrc) -if(APPLE) - set(MACOSX_BUNDLE_BUNDLE_NAME lammps-gui) - set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}) + +if(CPACK_GENERATOR STREQUAL "DragNDrop") set(MACOSX_BUNDLE_COPYRIGHT GPLv2) set(MACOSX_BUNDLE_GUI_IDENTIFIER org.lammps.gui) - set(MACOSX_BUNDLE_INFO_STRING "A Simple GUI for LAMMPS") + set(MACOSX_BUNDLE_INFO_STRING "LAMMPS") set(MACOSX_BUNDLE_LONG_VERSION_STRING 0.9) set(MACOSX_BUNDLE_SHORT_VERSION_STRING 0.9.0) get_filename_component(MACOSX_BUNDLE_ICON_FILE ${MACOSX_ICON_FILE} NAME) @@ -126,6 +125,10 @@ else() endif() target_compile_definitions(lammps-gui PRIVATE LAMMPS_GUI_VERSION="${PROJECT_VERSION}") target_link_libraries(lammps-gui PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) +if(BUILD_OMP) + find_package(OpenMP COMPONENTS CXX REQUIRED) + target_link_libraries(lammps-gui PRIVATE OpenMP::OpenMP_CXX) +endif() set_target_properties(lammps-gui PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com @@ -135,6 +138,12 @@ set_target_properties(lammps-gui PROPERTIES WIN32_EXECUTABLE TRUE ) +if(CPACK_GENERATOR STREQUAL "DragNDrop") + install(TARGETS lammps-gui BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX}) +else() + install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() + if(QT_VERSION_MAJOR EQUAL 6) qt_finalize_executable(lammps-gui) endif() diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index c997b6d950..657d43360f 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -50,7 +50,11 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : setWindowIcon(QIcon(":/lammps-icon-128x128.png")); +#if (__APPLE__) + QFont text_font("Menlo"); +#else QFont text_font(":/monospace.ttf"); +#endif text_font.setStyleHint(QFont::TypeWriter); ui->textEdit->document()->setDefaultFont(text_font); ui->textEdit->setMinimumSize(800, 600); @@ -411,7 +415,11 @@ void LammpsGui::run_buffer() logwindow->setWindowTitle("LAMMPS-GUI - Output from running LAMMPS on buffer - " + current_file); logwindow->setWindowIcon(QIcon(":/lammps-icon-128x128.png")); +#if (__APPLE__) + QFont text_font("Menlo"); +#else QFont text_font(":/monospace.ttf"); +#endif text_font.setStyleHint(QFont::TypeWriter); logwindow->document()->setDefaultFont(text_font); logwindow->setLineWrapMode(QPlainTextEdit::NoWrap); diff --git a/tools/lammps-gui/lammpsgui.qrc b/tools/lammps-gui/lammpsgui.qrc index eceaeaabba..391ebcc5d1 100644 --- a/tools/lammps-gui/lammpsgui.qrc +++ b/tools/lammps-gui/lammpsgui.qrc @@ -1,6 +1,6 @@ - DejaVuSansMono.ttf + DejaVuSansMono.ttf lammps-icon-128x128.png diff --git a/tools/phonon/CMakeLists.txt b/tools/phonon/CMakeLists.txt index 60da1cc79f..f3c3b8386c 100644 --- a/tools/phonon/CMakeLists.txt +++ b/tools/phonon/CMakeLists.txt @@ -85,6 +85,7 @@ if(USE_SPGLIB) include(LAMMPSUtils) GetFallbackURL(SPGLIB_URL SPGLIB_FALLBACK) + string(REPLACE ";" "$" CMAKE_OSX_ARCHITECTURES_ "${CMAKE_OSX_ARCHITECTURES}") include(ExternalProject) ExternalProject_Add(spglib_build URL ${SPGLIB_URL} ${SPGLIB_FALLBACK} @@ -96,6 +97,8 @@ if(USE_SPGLIB) -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_POSITION_INDEPENDENT_CODE=ON + -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_} + -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} UPDATE_COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.spglib ${CMAKE_CURRENT_BINARY_DIR}/spglib_build_ext/src/spglib_build/CMakeLists.txt INSTALL_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/spglib_build_ext/src/spglib_build-build --target install BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/spglib_build_ext/lib/${CMAKE_STATIC_LIBRARY_PREFIX}symspg${CMAKE_STATIC_LIBRARY_SUFFIX}" From 81790e1c44ea9a07d838553b25d0d21724b967b8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 29 Jul 2023 21:27:36 -0400 Subject: [PATCH 184/247] update DMG installer background image with instructions --- cmake/packaging/LAMMPS_DMG_Background.png | Bin 66554 -> 86828 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cmake/packaging/LAMMPS_DMG_Background.png b/cmake/packaging/LAMMPS_DMG_Background.png index 2d812bfd1c694b00f21e648e9f7b9b593e706cd7..6d365483af34c605f9e969bdaffdf2ff61a486da 100644 GIT binary patch literal 86828 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

    1RGZLXv&$+ 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

      q^w0}Y;w;%1JreEeUlHdyySB9fLx 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
      K>I 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

      }@9s$g8==ea@S6WeO$u;a+@cl;3iOP~2D0cKFSZ zr1xp^+F-$%Ox0vuM0|hJZ&)ipO-&7J&%HdFLKb~J*s=R?2Vr4mz9J^3&z)ITrUPP- z4WFD7I4+QdgUwbRa{xBS#XfdW8-JWcGmNU;hq;lfSFaA6x}B;QTHF)yJ}wIif+Z{% zS#dnxcM$P8tqL;G!6EV$KVEMf?xX;w!l9LmN(hvbL6tY&m8ADvzqR2ij?(#Oa~*FX zR)BL*RE}{ciasZqY5U(xs^Tez6SWN|KqAa%f4zPE_H9NU z`C9&*F-}LVUQM%UH0+FZXm@*(ggz8E*6i$GfDv4xiC-SHp&XSs8Ut0ue7yH)t(FIP z+TQBrJ8D;$m~QDm;^pO41I?PQnWMD{KoZn4O&r^L^=Nmc_a9Ur-dq10Zw~_JrQyhi5N#CWycef@pMHpS%Su9V?V#amU>@ z8pgTUL05o|D59gH_u5v&VqB}*iU5AS(M*9YEf-18m7NXi9_zOC_h+_d&J_+0rJmm2 zGf6ZUZltytVZ;CLOX=<9WcoUN#4aSfLV}(U>aa=S&{KHm7plPLuHEc+DL&I$W`*GTHmuTyRCOk>kwfd%>nsle$ z`O)5f2h0Z$dtxZ9p_FhJu>PGJ426aTgt>eKZ9Uj1L{wD4z_wZV_((vaHfX3yXj)4i zG^3h(d9BlpD7fICO~2JP>JG>=c2_MOcjrKT0tz)#+I6zdLMG>k%fin?_AyeR^!uDF3!iLBPehwCri?`L^2H2 z#6Vo5MHo1d|E_MO^UC_cT=H~V96u1wIzZ|WFgl)u60AZcm%<$L1KT3LeEAj7%CTx7m} z{Q`=&va&c@UkrjXliV-Vo*w4>W`%n4vSs>3v*`=KD!8O|pu&IPo3N1}xSfoCAW;AL z9d}wOZ(6kOMM|9p0YNnd3I3zAQ{KUWSM>R!f2S0N7D#F{xPwuNiQ%A5q57W-BxLvw zenbSw>NNA#cl%HXqCb4N0Al0w=WEJwd}p02PcC3eNzlsJ{hajzcNkKZ^$8ni>CdaK zFW*6O1wsWy8M)qLeo0AsfK53a9ZI|MS@Hx4kCKKj+WptBujWW}h7TLP<$CY@aO9s7 z+kLe!-kQQUM|1qrYp}>5hzcGy;GnYBn1 z3?&C%+@JWco?axoa|^y3-WC!X+L}P)!!`F;e{|AdSZmg{GDk!uvsW{|fAt{uUu=%3 zFKT%|zTE;1r+6WI)SWK2#X3oH`%7grTy%cvcU~iS8?HlJL3lQTG#BvkIf}L>((jTk zLpb>yjZ9o$PN;jubt#fwB1E^);_VSFR8Ngh%Jopw3d~!{ZN{spptLshWGHQb#(@<5 zhRt$n8iUTFNhL7^ zl9okGjOORhpWp=$i-H6p>P1WJS}o?ZqUa8g?g%)8IR3{*{SK&E2)w8pG^%1q*gp#c z_xiM;sWVZ^R7u1xId?oKg~>YMgZtS{6;Xy@Fj7nw<6szDMg?yuG9AD)`QB7Id zap+Uzh{pPGR8_9kRJJ7#sjiaUoHoY| zXFps&ruk`Bm4s`|s1;PrJ#qQJXp67(mcm#e0s;MlAex#?%#;F_L}arKDnW)7PPYsU zXgwv3rN@@6P(C$YEe43Aoie9Mc86ou{08O6YZo49-T{9$Ix5N+NcTe^&-XPigD$OH zEL|ID@Zo`)*oMJvHO4sFZVj46ra;gGJLLdm@dJN31(H~&+WjVY5rTR$nwp~^qUVQ; zIY2}FdakP7$gtKgnF%I8LPSokHO2c+3aIUny*`iB0)>IPlm=e_D0dDapuB+~PbceM zsPBZ!v7iNrQ?CdQjXfY48^D)8sw9f)(Sd3Wq<6=|r{Hb^aJuohgBBDe=SLaTeFpr* z&(Y5R=L6mH3}=;PP%#TGk|qJIFcAWV72)KFeeJ7$>x)5iLywc2!Eh|@Fb2YpGA!^u zsKG3%JICO;9xpR&U%4U(HWb0Vc)^SNo=ri-?}hB?0VP|-JEZ1D0qQ<}L;#`ROL|q5 z9NhwZMGOY19sV>0qsviZGxQRSc9YREha1%4SbH~~{Z$rt@|ys-QXQ0+?tEjZm3_3L zL1DTeJZ@4}(GEirbZ|uh`89_Z(5nW^nHQELN7278N1L$j)#Fd;={U$FkYg}MnQz{_ zIq60PW$zT+ChNTeAb6(ZRc=Ay;mwdJ;g>nIOjbwB=X)~np}fNV{_`L9XKTI}dBzH^ ze_rAokIw=A-;PB5(B@RH-(?PFoW?b@;8H%8_N2(in)Jb)>r9S>d@)1)5lDk>cnk86 zET5}_Lbwmjg$S_AEL+&EyTO8CMDEJodH{|n8AN@C7ORd$HCVjL$o=Gr$?%LQg}#k$v>*4g0WLxLg{@wAF!T2>9GSmUoaOmqUo`X$o@^Y$TBAm;>58QftS!g;DS`zY1kaMp zR8m$BgS~^^D_)rp!Uy$Rot)Lh8s0xu)hUxPamZ>yDW#D%0oM~ayl?a8=T8-W*k6~YP%!+T{`tdCwLz+U)9I+Bt5nwns#86J#G zoU)=72?(`yW2G!}^W+16hD1hP=ntE;6D?!prPu~w{Cv;MPXk7y{Hwvw1?t80w zbQn0RCv^Il4K%Vv$F&ua?UfO2PswE1UxnMZU&2*F0U-vNbtzDW8eH_cx1`W&>TQx#kyY+fg7e(LJWf(QwRU^u7X0;%a_<(gIG6GwZjmditPz;nA>9)cGz<~%+=DdGre9s+?4)D<k?2a0q99H585pmn~QU;)+m74{rV1kew1KozzX0t)*W-E4yPVyq#5pr;Q zah^UD!jAcgli8a^C*^hMgeo?0nXnPmuK{)~jCO|MyOkLXbsVcto!ElGj~1R@r)JYG$M z(um~KZ8p^I7%YAg>s$@Sycx8PYlrOqq1q3;{B5x7CL9!%m1P|r`928QM}U8J1_7R@ zXK?~y?FptRN_apRqV_UZ>fbekNIEg{-b~dN2)HhgWI=d;7D7}D>^ExlhEtn#D*rKQnQY_`bz-HX|VR1*QXi_9{nWQUK${T*lh;5MP=IH zpbkPIYR*jZRoDPjsW`oAR!3TP_WlIsG!R&}EIW%KAHkl|%DJpxVsi@>!_YGTB+kp@u8~5U84v0XLPJB*BLWRdu^lOa zt?&9xxt=`zr(-u`?{92W6oOESIp^-4fV=Bgk3eVW`41kKDq~o~?r-Kw&`Ksp)jPyr z1Q3JiM3-^2uf74L(yS-_uCUMPv3ciPSh$nn39MS-h3O4f?8VsUNlFw)92`SYF)@B9 zOG1S)I(Gm)362udbsyX33oZ^YG=NBhVmc!!1(uC@C$xCs)vx-48+(3@$W5Gn8O$vA zYWl`N!oVPSOuKEyqRZ+i6+~z~n%+?IiQt0n0Mh+t-&v!MN=}Z1{!=O{1wm22M6Emc zIofLi`A&F8?W^0Cg@ElanaildIUw?004ZiDEtK?fmkwP0V+=`11L4ggAJNoEC`FLg z9Rzm76Z>Z;_`TtP8(?|dhPQMVK2~*F9wdg0_iLGE-&)yjc!mG4a0n%*AEEsMYyk_^ ze|ct}BH7ud?H_LHe0y~M9k*c!)ZZtGJ_wrnyih#-0|U*VnpqBhWrC>*0^)9GQLp+7E*tsv0j!9m`Oxp3P7v)x|o$4Aeo)NZT`3Kn1O z(l=E8)T2{KM=Pag%DSRe?%u6$<*6kgeo=2C4d;P1`7I4;Lk@r zlA$3X6*gfZsi>bkSmwYIKtS~p9IZ6yD}L6_r-!ba%h1yP!N{*<<;^Wj&Bu?7lh5MY zorj+NTMLkWJMSARcKcN2BlzJDA2LCm(#cK}FsVb{w_DhZRa^$W)4Va=q6Rh>+Db#v zz83Tipv{YfQt-&BtCQ61|G`J;rtq`B1VDEIRL-D&Ft8^|u!n&u1`HT^Ttv-VU*AN8 z`#D4on2m(@dfwb4;a;GdZ1a08WCVY^sFBA9R2$712thm zfqJ1O2)YZvuP|Q*?X;=+d|)Wy41!8h=wUNUNYDZFy-K|X@tE4S~~=!pW_`=+E6%R`v(W12Wo0R!+|Pc_8F6 zc+90E4!}b4!dtB~L)SJG?Pu=DDlMXQ1~tdmD<@9Av>l$BL4m)R(;p%ecxeh;@RoYN zb7*FRfWq3ZwZ$9<2ZqMrgZ{=w&<1zc;vJaUf{_VmH#MH{s965Hp+oUn1A*bzlSCdL zHZ?Ue7#*Q#Zf?eUjx`COL_~}Vw*2Z{YM66a@6%AV8aV=PeG&AR8~`O61!wWeO(1T{ zX5Z;|!K?z%ib}WuRq{ZzHzPO$1PW@IT-DUL!~R)e0haWfvZgM z9wuZCcUMA7C%kEZKz|40_lDz)0*Zw&(qUfbWxObbIUtmapbdt-Vipk*`Rq2P?S94w ztVZB66g*Yy*kN)k=*W)4^!NIu9n@vw(krTinIRsJW61WdOjU-JeW==#=*ZH*(j9O} zPzPsuqPF&dz9Drl96I!Ik{d4CmV|y`0SxUq&39p;mC*6ov*@>PH5Y4sZNm806m0M< zXy-hg`9X~C=gwlk40P@pnfD>Bf^&0o)q{gui+eK?=R%X^F+Qk=4}ob4dJz@npr$nz zSB^90B%PNjp(O%NMp!La&_5vL04|I3a4KEaB7g;>p@pnN*wKTOgicf)bhabWb}Ue} zddRf`7=Rk}K3cIH`gYa(ctai(?6T0vKW0Zzc5T$iSw6Uitj zT47INa>RbZ2zc=$7`VbV(8=?G(|a8s&jHgcDha|&K8L-@=}^zn{{l5ahNwd-#7X(o zfDi}YBLIx?yU-#!>x+(< zKyT@)q-0Is2DBWyO4>)N+zO$IE72h2+`}0(I zCMA&mg782X6+hYu0lfkfGru4_G9Ux=5&`y=Kte#R*#5THm#xWx3ZPvAfEa*o zb1?sYkvMIzmqj6X|@NnFd*2^18a#kmr>C1ST|q4nen3$xt#7BB53`MLveg3f5IqW#6s8oynvZ&0G3xlRBz z%T+wd_i=-Dal_KiyNXZUmVKtX?$uaQ8f0hT@-re}LWr3;)%xDWAsoc;{o@J9e6)6z zt<@Z%;BQjri$(hf^cuXJwjN?LK41@diIOki2B0H8efqOki;=iQD}28{<(~>ltk!IX z&G-f&JPqgy5izZV`-2f&=-Z$#J5goiA2cT>euccH^FfadM<=SoLH_+=JQHl+f4%n_ z&J8T-e~v3lhW#G-XKa<3`2yDe_6@Aazup>j8zDvh^;TIX-}A`->8~Xql-Q0^@4xl$ zOI6EICnJu|j(GX+v%OA{`9G`h|JQ5yziY++-`W0Omn8p3w~XvH&_w70Gcs$^T|oP3 z_5UEyt1HB)UEu622tUpir3GwKZ28wu1d=-gL0^M;*)YBF;JGls&D(%~K@9?}G9Y`< z$n?$5)}*@x(?_rPA3XmDk@|u4pNF}9PI7$sLv|-?@t*-!9Ql6`z!3bJK^sAsw5^+U z)cog5FTZ3#>~4c7hCk>?)5qS0j{{3714{?wenCO=*I|?rs$#v3Ad9FdHT!lB7X~6cy>nST-_; zaL_iZWNJhTrxGOzN7%%XBXc;WGA75A43TjsmA2X5@8@y)uJ>KvMgs&voazB&)+&QcCJ-z1_9)k122cLbb(t0RXs>c>^A7S}iDeR837j z_xm=2P)%+wbIcJ_RxVnXfT7TowFmAXzOJn;q8F|xMP~tSWq7VO15f&$Csi?8r+S-;nMB1?xm@HEB2WTR2JTZ$_j`&t!#}`QuGPj>( z8%u+-`m}iGdEBWD3`9z4kVa61YFyrpc%t;90c16^7E50cPqAe$C1Wu@Pg*+tXyZw| zktdo+vBuf}_q}dt$at&1AZ3am3_>zEB_)N%bt5=9#Y}1|TdzGpLXL@|BSIgI4<8l* z!-7B(+#Mz86cu8m6l5A2OE4E}lK1iw{)om<@tNsG;rgYx{)D071{C(FDY?ujULKw+ z$ON%)MqZMzyd#CeD~R5|ekg`kvWHgwbzKpYw?mxB*astpTupP1GpNi8#3eLc*DNxF z5+qSW`^TiHxrL|ha$#PzAML-=;`scl2cAv2NslDHqHP8P(2C~e(T_aK-mCQeqOt-g zw;RvDy6opCITzHSk>zidmi~OplsjZOtQtm!>MiJkURMRFZ97oC137)Wy}jM(@J8%{ zbA{bl{Cr)l8;MF1FfsujqjT8?v&pmako#8PN_wC-8nm zR8$bG&FQcuL_yplB9?5wk>>G)rb$c#O{uA?yO{tmn9FMsW}Grnt3dAug1neg#7&U6 z#%hXKkAJ%u0VySr0)syP}BaV(z$kj4ujn(zvqC}1LGB|3B zMQwYgv>i=}cKZ?%6EpLkt;Gahl4a8i0j{KEC^FpK+(53J&3V5s52Zf1m9IXpS*A@JakEAKxt_5^`ucLxN@?BXGNIFhe)S%L4HC{G3 zsDY25Em(dRyNZlD?a4ZBUfyf4Rl`#TYU|TKfBu{%{N|V%rPg7;7#tS4C69@UB?y=? zHrx2$!zY~3(kh}glyo>BN9~d3HzblLE1iY(7($K)icl0-Fg!!^7RoKdg9BJpP;ghT zUUlDHhs_9tsP_@2-3-UV61X;y{i8Qc8MzQIf$Hg|2;F=1$Vb~$6j|Pl7l8Lrr$ZCs zCWV=e1X0iT`lG8^iz$`$N5Hi*y%2rM6KJ;+yvN=jX`7ny1sm|Zf&^?-su(*+%g2ue z6=EA`WSxmB3m3=D`Y>%Z!tg;gs_*9IiGWlz6(B*`Iy?)RREtj;s$K~K5W}ha`yYl7 zA}@oJhiB=X6@e@7Mn%Ex@^~(Q4ejRkU|ws25nR7MJq3-LQUF;nenkp4F*XVd`%?}sL3)N}1*~hl28DurPZa6}nW!|kO4jed|RB+a2ktfvjpi(ET$s|1*E1)Akxa>#E_24ZkDk>=j_}B8VP${2+ zWfZ_yfay0K^*}}kTEz%k52OCuFn~rAQ&ADYCW;h>$J3XbnDNE*UWb0R#j*HfuBfi?*IezY!8RhrBX<+?-_EE&K$l}|mWeijBQ4n-&X1R=B8Q4qjMcHVw=ahw z`VmNd{@OvbZHYeng^)TITu7t2D#d=is0=L=sTXo|bj;~s$)k?|iV~xFjT-?}>p$qr zkXGnda`T`c23&ZDs=s>K61Wz9 zJw4aT0$9spB1J)|lEgLV{fNXS;}%godi%%qf$l3O#{v-6>g+tWYn(oG=6UPWQA*H` zRivdfjCpUBkl;jt?eP;0HP3r}%m2AtvZRA+vO9kl>_VUM(NzK3fU{Y~paGvsYEpto z-*J5_hBxB5jI#SaFLCzl*&}PVq6m$~S|$9gnpzp6)Pa~afKt#)FXAW)cNig=Y{g4N z<~-HGeqZeRo4{5^0gF;2SG!eNSvlqTI&+zgQ`^LWJ?y|$VY89#lR07uU%vfE3t)0q z_G?@i5X)ZX4hx+!+j2hj)IVof8$y?YR+nL1^7i)5(Im)Cm}8#MJhFPEX&uJX@(_wB z3kzYm`xUWaOHPCYQw_9;`_~$WRyn!}f;jy?F$nZ@mA0`?k`2(OfC)_#Mu{kNl-VPP z*C}B=urZcW!aIkz498zBd$|L%W3B>z0yYbU%woi#U8RTi zv#;m5onv4R`U77ZCx%w7#uGM@Pxx$kTd=j^pKlY&o!$yZGk@=u;MK8ocjJR?Cy`>) zGDssyNVwXaMLIfPeD0EsFINdKrq?Yf;-a&HgixO9Fx_$vRYi`@GhX>-k%GT4HaZI| zChP_z7jYKIhY=PmsRoqAg*qG>Wrf3sDOk|70E@ z7mY29B_#n;#Gn}Ebj`5eXHQZ1xPrE(6#Qf5g6jID{1R2ttO@j<@ngbwv~#7^+ogRv zLE838cr8qCpICsJ+WNrLuv_aa4oYLsij3isK)`Fb1x-Ju z=?YFbKxieRW|hGO0jp-boz7TaTY2^TNzx#c7XfaKmlvYfi)cbp0(h<1BB1j87XTdy z)zS@}Zdml#Wq(9%+Q{p6?SRxoG{#8LWPggnM2Zi*AfNwve6L{NU-3gxrHun@7BP)Uiv@uB{kO@8JPz&L)6PPbi>l6ie6uEc0tSXk&W zw8VKg66p3S&}3d>8m2`~%!dR^Isi&tgNBBKqDyIs;9uH1F?01*k5wm`tq@Syqrz8F zRrQxuua*w(RGN?J=Lfe$CKJ?L%PcBdHb90_&YqbC0|jwS`q2iy&jvTG&Ye5A^iZED zqS4VzkVu~UfU#jh_|LZ=101O0D3t?(TqVT@Ejh&eq2vyK?S(cb2!qT;hiE5gv0+{+0Lqm!oJgkzx=-K z)Qj!SC>g%Ir|?b2+w@OWR=`tL70=vN>mBsd`_*kLTbo+T61491rHWiFsvo>FCR)j} zU8Rjd*;n3q>&iuc-@%7TNhtU5_Om#Ue-I4 zuLs95uVlY``CvkgaP|1xF~{LROq0X@&&_PARJ<<#!nnmC>#U`jS;gd}cLT3^ECTV| z+}y)(mjf{m_Oq+18AwGMo0~86O)Y2d_2DL-{cf06*;RO9pGbg@&#d}q&bJU1K)&<3 z=tqf}O!e%nPs3@pQih@Q2AfNl6d?fP_3-e>7Um38TTYz*^VO@vt*nZv$;rJXd&iX^ z`u;|CNH7%2L7MxOv#Gw@uyJEQ3d|NaR*_PVXDPFUw zdA6##>}mh-;kIMWqhO`qF`i{8k?V9UVh&Ii$_r2!4tGqou*YAc1ZmtLi zLkI{6v<+UG0n5JRJUjvU5yK%pQQHfz%h9xq`AvN<_$owVaqbnPakx)UC6yq$ZE-2+62g zm_&kMn)ZMX5y8pUyRyiCL5YitOZ;#E7O}OhE%US2k@AnS-LL!v@QfxpL%iU4(y0(= zVlL(GA=+ADDDis1$f+?SZ9Z#7h+u9aqYf5Tgd*grHe(Bmu$Gn<($r;Gub~V$CMY6O z4e?mDe*-H@DpJ!I1>aXo*?LV1or!4Rf2?JAKAWq}a>B^r!Ug%s$w?W%SWHW-NY`crO!)~=Nr&%&md>D`*$`gDplseg9izxQa{P^ z5uY@OJZo}QP{vQS@Bl`~4oWmkQ-5w4>Ygu%t$M4{di}~9kkRcC0K01VK&jSxHn{@4>c1uF&8hMZ69tTemz=QjMXN*=f?8zB83=cY37^bn>kZvbm>rXlkjN@56o}QaZ%tII(3NNI z+_}>Yo93h_+qCt(;Nl1D+7;4C_BsjDYaV{4XOQ&3R}Un_F>zaz-(0#l-K=lYfUX)OtGHwZZhRq$)H zmQg-!E`lhPUVl8X$)WXFgf>Jo+1c3+IVK2hHjh{%gM)(!pxnSI4h#%PM&*dY>Ff?6 zTwo~2_hXak8Z!qG)*jW{eL(lPRAfzhH9VV@7JI22 z8EmUX0&Y)@_cZ$4*Ol53n)UMK2K;I2I4%hkP$QzVFg=BZh2PL)lS&!5PD>CKF0q&Lk*G7bWZ}Hy!FeO8$e(coXuvVY1aMsU38>wK&N1{NhTzjQuo~Wl zhax5QB-fLuG3&((_Yo(2uB70*2LZ45Pv*mjAgW#m zpw(~|;#Z;yZyW}8yJMon#s4> z;wD=cm)+hME>tTe1Hcm!Jtlt%VKpPI|c$>HmlP6q_~ z2F@$BxOKNKK0z4Gc#zl#(2H=^&Bcj9ZJpDY^{m5ymkbae^TJV z)goI7tv9eGy5baIDlllVThBb}eO1-*59m~y_@<$u0Tl247+@i=M-12EsI)&j$LgwG zsMPLYduH~<@1K4_c2-x7<}#(~U-8Ik*vNfBK|$NYlW0MJ;oa@uZL9jGh(b>)q}jMD^w z<6`>vgEj^mHx;xv#i`Im?wQ>YnmClf~yxX44WAZ?pT zAl~F)`+kH4M0h}6zNDRxoVYf4vK2^i;eqxF6&4iu{jhRu993?5`Cyj!eyc z%Vf=F+7x@sidoBUs$eqxKaY=B1BlL-tIU(cxz72FxLvz;LFjYz*$hx9X_A3Et;QJJ zZT%w60S91askU6%o9kM1s&t=^0;4ON9!tz!UrLIpuc3 zq~#d&2eku8n;JZwTO&!=r_~@#@Yc+Z1t4@F1Eos?$p3WG52B)w#w?Vmy1BY?BVF9X zf9J3d^UD`1*%N#^&Iw)u36jd?56C(GRuTC5Vo7=~3teuxn}MH|aasX({r8yP;?X~x z-EkY;=9ML^xsrhW?DO->uDD++2oQR~?AToxhiyc}k>hS2u~m`@CrG~tJvrGMTmfyg zeRzq-kPhiv;KUc2Y-D6)o(U6ht+0m1S3Axs2v#8hLK>jWn82f^RVImOy;dS(V40s8 z_7^Ed5Azyp9IH{;v|8q1t4ocNO>SrXz~Z$bglxRDd^)UYYKWD*J=3MfDaYhl|BGdO z7?U_G8>cGR`gnE25kE8fXnsTY{GUe84Lw%zomo;k1UeHD#+@T@g{`@aWvYSulWmAg z>k+I(7G~bRH=)MGdRbm65uw654<{9ZL< zZUNt>FEhk)@`nOnLVg~>=9@0-hprpGZ zI>XGqEz^enl+CzcPh!{ z(CxNT!6xvBoLU25Zgz;wE}2b~6(#%S<%i?~akC;XA^vAxUi3&_oXgeZOT0|*2-Bor z(S3F9Dco{dS($_p=lpv#1oxvm{83dfjtnzAp=Qf6$ET9^aukgW0E~y{9u)!{JU844 zpZILD10gZaud-L6c0Az0Io)e+kDolTQ_5&^&|-LCNv2t6E*y$K8Xqy!!Awj{e4L!` z-(3L8G-_O4t`L`5)ieBhB&Dd2Rs zOvGK-kSPvec;dH1giJi<5GMe@{Wl6i6b8v+)YxD^EU zCe>FQFN_l>%-+FsJ|kQa%@Ni}2Y51I5S^7Wes_uhz!a2~>pY#|rpRiM1O~a~udPIs zH~e4S_#Zu8U7!-#!Dk>)#ElsDFagWVgxGrT!VL`ybO4HAODgK_KZvXy4AfpBQ|S%K zFZfAgasEk<&O5Wvo!SRbq^Rr3z@cZ(E-uv$`)fRX;kn#9cqK7RaBR_6;U_OGDaJ0x zp*F_`&wZD#?C!RBR?LlR>y4x7&z}z{lM$$78^SReN;28ODF%;?je&Jl!s<*;P3;ru zL0tg+(PEGt+S_P>&XCr9KeAg#Jp0hC^X+4KP~8wf>_r@F z;(v^E5Wldiav|7);t2BsR?sQ(VMtA6|Hyvlm_y#tH0E8c z_uW2593TJIOKU9+h zp86s>Jdm5z{gXr;A)@24DK1~W%v)mT(n?b9$ZQVGVJGIXfwCh_8r=n(@I~3e+wTE( z(dqOi=K~&>1n@mXGcwAp)z#Hm+1b1sH*U-p9+2l-c>^_qJ3!Ix!)syvH+hJRctE)J zt}ZaB`{?>&eaQkW_!IJg7=yHyGvRnwDaZer9;`D43=Udc#J{meGxR%G@JceFzrP`T7g zjQHRRj|i$1lZ<}6rtvAzy+3E4N99ntC9-;B>En0}0yKgU97)mw1{3m=|EoNMuSDq6 zC4c_Q0RBHog*v*3<`BdZ3G!S3a+&^RZU3dO!RnKy@b5(Y?}=co+Pg|^z1bJjSaN!P NQP)w+IBIqEzX0q|v9|yK From 2d6ae69048f1d38abc0d3bc3cedc3f8fc3ddf2b5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 00:11:40 -0400 Subject: [PATCH 185/247] include updates from @rbberger --- cmake/packaging/README.macos | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/cmake/packaging/README.macos b/cmake/packaging/README.macos index 3f494e9391..d8842b15ba 100644 --- a/cmake/packaging/README.macos +++ b/cmake/packaging/README.macos @@ -23,7 +23,7 @@ these steps: 3. Add the following lines to the end of the file, save it, and close the editor - LAMMPS_INSTALL_DIR=/Applications/lammps-gui.app/Contents + LAMMPS_INSTALL_DIR=/Applications/LAMMPS.app/Contents LAMMPS_POTENTIALS=${LAMMPS_INSTALL_DIR}/share/lammps/potentials LAMMPS_BENCH_DIR=${LAMMPS_INSTALL_DIR}/share/lammps/bench MSI2LMP_LIBRARY=${LAMMPS_INSTALL_DIR}/share/lammps/frc_files @@ -37,10 +37,24 @@ these steps: Note, you don't have to type this in new terminals, since they will apply the changes from .zprofile automatically. -5. Try running LAMMPS + Note: the above assumes you use the default shell (zsh) that comes with + MacOS. If you customized MacOS to use a different shell, you'll need to modify + that shell's init file (.cshrc, .bashrc, etc.) instead with appropiate commands + to modify the same environment variables. - lmp -in $LAMMPS_BENCH_DIR/in.lj +5. Try running LAMMPS (which might fail, see step 7) -6. Try running LAMMPS GUI + lmp -in ${LAMMPS_BENCH_DIR}/in.lj - lammps-gui $LAMMPS_BENCH_DIR/in.rhodo +6. Try running the LAMMPS GUI + + lammps-gui ${LAMMPS_BENCH_DIR}/in.rhodo + +7. Allow the excutables (lmp, lammps-gui, msi2lmp, binary2txt, phana, stl_bin2txt) + + MacOS will likely block the initial run of the executables, since they + were downloaded from the internet and are missing a known signature from an + identified developer. Go to "Settings" and search for "Security settings". It + should display a message that an executable like "lmp" was blocked. Press + "Open anyway", which might prompt you for your admin credentials. Afterwards + "lmp" and the other executables should work as expected. From b3766384c3a5c9295a53bcd14b2f96f33844e842 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 00:12:09 -0400 Subject: [PATCH 186/247] fixup rpath for lmp executable so it can find libomp --- cmake/packaging/build-macos-dmg-with-gui.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmake/packaging/build-macos-dmg-with-gui.sh b/cmake/packaging/build-macos-dmg-with-gui.sh index b871bf4775..b5ce4de940 100755 --- a/cmake/packaging/build-macos-dmg-with-gui.sh +++ b/cmake/packaging/build-macos-dmg-with-gui.sh @@ -4,9 +4,11 @@ APP_NAME=lammps-gui echo "Delete old files, if they exist" rm -f ${APP_NAME}.dmg ${APP_NAME}-rw.dmg LAMMPS-macOS-multiarch.dmg +echo "Fixup dynamic loader paths" +install_name_tool -change /usr/local/lib/libomp.dylib @executable_path/../Frameworks/libomp.dylib ${APP_NAME}.app/Contents/bin/lmp echo "Create initial dmg file with macdeployqt" -macdeployqt lammps-gui.app -always-overwrite -dmg +macdeployqt lammps-gui.app -dmg echo "Create writable dmg file" hdiutil convert ${APP_NAME}.dmg -format UDRW -o ${APP_NAME}-rw.dmg From e23176d633fec696d7bde50acb12b11bbf0b1e1e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 02:41:35 -0400 Subject: [PATCH 187/247] no more rpath fixing needed. add icon to disk image --- cmake/packaging/build-macos-dmg-with-gui.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/packaging/build-macos-dmg-with-gui.sh b/cmake/packaging/build-macos-dmg-with-gui.sh index b5ce4de940..5204e519c2 100755 --- a/cmake/packaging/build-macos-dmg-with-gui.sh +++ b/cmake/packaging/build-macos-dmg-with-gui.sh @@ -4,8 +4,6 @@ APP_NAME=lammps-gui echo "Delete old files, if they exist" rm -f ${APP_NAME}.dmg ${APP_NAME}-rw.dmg LAMMPS-macOS-multiarch.dmg -echo "Fixup dynamic loader paths" -install_name_tool -change /usr/local/lib/libomp.dylib @executable_path/../Frameworks/libomp.dylib ${APP_NAME}.app/Contents/bin/lmp echo "Create initial dmg file with macdeployqt" macdeployqt lammps-gui.app -dmg @@ -100,6 +98,12 @@ echo "Unmount modified disk image and convert to compressed read-only image" hdiutil detach "${DEVICE}" hdiutil convert "${APP_NAME}-rw.dmg" -format UDZO -o "LAMMPS-macOS-multiarch.dmg" +echo "Attach icon to .dmg file" +echo "read 'icns' (-16455) \"lammps-gui.app/Contents/Resources/lammps.icns\";" > icon.rsrc +Rez -a icon.rsrc -o LAMMPS-macOS-multiarch.dmg +SetFile -a C LAMMPS-macOS-multiarch.dmg +rm icon.rsrc + echo "Delete temporary disk images" rm -f "${APP_NAME}-rw.dmg" rm -f "${APP_NAME}.dmg" From 05c8d260d9769137b8ebc111eeb85cfd7aff51eb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 02:43:00 -0400 Subject: [PATCH 188/247] use OpenMP with maximum number of threads by default we still honor OMP_NUM_THREADS, if present. --- tools/lammps-gui/lammpsgui.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index ac59e250a4..c7fb3cfbc4 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -39,6 +39,11 @@ #include "library.h" #endif +#if defined(_OPENMP) +#include +#include +#endif + // duplicate string static char *mystrdup(const std::string &text) { @@ -61,10 +66,18 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : current_file.clear(); recent_files.clear(); +#if defined(_OPENMP) + // use maximum number of available threads unless OMP_NUM_THREADS was set + auto nthreads = std::to_string(omp_get_max_threads()); + setenv("OMP_NUM_THREADS", nthreads.c_str(), 0); +#endif + lammps_args.clear(); lammps_args.push_back(mystrdup("LAMMPS-GUI")); lammps_args.push_back(mystrdup("-log")); lammps_args.push_back(mystrdup("none")); + lammps_args.push_back(mystrdup("-suffix")); + lammps_args.push_back(mystrdup("omp")); setWindowIcon(QIcon(":/lammps-icon-128x128.png")); #if (__APPLE__) From ac9163447c3cc22b6f4abcb55cb786ad19299776 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 07:23:32 -0400 Subject: [PATCH 189/247] minor layout and behavior tweaks --- tools/lammps-gui/codeeditor.cpp | 8 ++++--- tools/lammps-gui/lammpsgui.cpp | 10 ++++----- tools/lammps-gui/lammpsgui.ui | 40 ++++++++++++++------------------- 3 files changed, 27 insertions(+), 31 deletions(-) diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index 13519b0652..adac225298 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -27,10 +27,8 @@ CodeEditor::CodeEditor(QWidget *parent) : QPlainTextEdit(parent) connect(this, &CodeEditor::blockCountChanged, this, &CodeEditor::updateLineNumberAreaWidth); connect(this, &CodeEditor::updateRequest, this, &CodeEditor::updateLineNumberArea); - // connect(this, &CodeEditor::cursorPositionChanged, this, &CodeEditor::highlightCurrentLine); updateLineNumberAreaWidth(0); - // highlightCurrentLine(); } int CodeEditor::lineNumberAreaWidth() @@ -78,11 +76,15 @@ void CodeEditor::dropEvent(QDropEvent *event) if (event->mimeData()->hasUrls()) { auto file = event->mimeData()->urls()[0].url().remove("file://"); auto gui = dynamic_cast(parent()); - if (gui) gui->open_file(file); + if (gui) { + moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); + gui->open_file(file); + } } else if (event->mimeData()->hasText()) { fprintf(stderr, "Drag - Drop for text block not yet implemented: text=%s\n", event->mimeData()->text().toStdString().c_str()); } + QPlainTextEdit::dropEvent(event); } void CodeEditor::resizeEvent(QResizeEvent *e) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index c7fb3cfbc4..a17f624ac1 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -82,12 +82,13 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : setWindowIcon(QIcon(":/lammps-icon-128x128.png")); #if (__APPLE__) QFont text_font("Menlo"); + setenv("QT_FONT_DPI", "96", 0); #else QFont text_font(":/Monospace.ttf"); #endif text_font.setStyleHint(QFont::TypeWriter); ui->textEdit->document()->setDefaultFont(text_font); - ui->textEdit->setMinimumSize(800, 600); + ui->textEdit->setMinimumSize(600, 400); connect(ui->actionNew, &QAction::triggered, this, &LammpsGui::new_document); connect(ui->actionOpen, &QAction::triggered, this, &LammpsGui::open); @@ -451,7 +452,7 @@ void LammpsGui::run_buffer() text_font.setStyleHint(QFont::TypeWriter); logwindow->document()->setDefaultFont(text_font); logwindow->setLineWrapMode(QPlainTextEdit::NoWrap); - logwindow->setMinimumSize(800, 600); + logwindow->setMinimumSize(600, 400); QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), logwindow); QObject::connect(shortcut, &QShortcut::activated, logwindow, &QPlainTextEdit::close); shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Slash), logwindow); @@ -509,14 +510,13 @@ void LammpsGui::about() msg.setWindowTitle("About LAMMPS-GUI"); msg.setText(version.c_str()); msg.setInformativeText(info.c_str()); - msg.setIconPixmap(QPixmap(":/lammps-icon-128x128.png")); + msg.setIconPixmap(QPixmap(":/lammps-icon-128x128.png").scaled(64,64)); msg.setStandardButtons(QMessageBox::Ok); QFont font; - font.setFamilies(QStringList({"Sans", "Arial", "Helvetica"})); font.setFixedPitch(true); font.setStyleHint(QFont::TypeWriter); + font.setFamilies(QStringList({"Arial", "Helvetica"})); font.setPointSize(8); - font.setWeight(QFont::Medium); msg.setFont(font); msg.exec(); } diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index 4e06f3b62a..b0f9d38261 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -6,40 +6,33 @@ 0 0 - 800 - 600 + 600 + 400 LammpsGui - - - - 0 - 40 - 741 - 381 - - - - - - - true - - - - - + + + + + true + + + true + + + + 0 0 - 800 + 600 24 @@ -309,7 +302,8 @@ - + + .. Edit Preferences... From 080d868e4049a591c8f0cc016773ea58b4247ebc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 11:50:00 -0400 Subject: [PATCH 190/247] mention setting QT_FONT_DPI in README file since it has no effect in the binary --- cmake/packaging/README.macos | 13 +++++++++++-- tools/lammps-gui/lammpsgui.cpp | 1 - 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/cmake/packaging/README.macos b/cmake/packaging/README.macos index d8842b15ba..0325045983 100644 --- a/cmake/packaging/README.macos +++ b/cmake/packaging/README.macos @@ -19,7 +19,7 @@ these steps: open ~/.zprofile This will open a text editor for modifying the .zprofile file in your home - directory. + directory. 3. Add the following lines to the end of the file, save it, and close the editor @@ -50,7 +50,16 @@ these steps: lammps-gui ${LAMMPS_BENCH_DIR}/in.rhodo -7. Allow the excutables (lmp, lammps-gui, msi2lmp, binary2txt, phana, stl_bin2txt) + Depending on the size and resolution of your screen, the fonts may + be too small to read. This can be adjusted by setting the environment + variable QT_FONT_DPI. The default value would be 72, so to increase + the fonts by a third one can add to the .zprofile file the line + + export QT_FONT_DPI=96 + + and reload as shown above. + +7. Give permission to execute the commands (lmp, lammps-gui, msi2lmp, binary2txt, phana, stl_bin2txt) MacOS will likely block the initial run of the executables, since they were downloaded from the internet and are missing a known signature from an diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index a17f624ac1..a26a71cd92 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -82,7 +82,6 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : setWindowIcon(QIcon(":/lammps-icon-128x128.png")); #if (__APPLE__) QFont text_font("Menlo"); - setenv("QT_FONT_DPI", "96", 0); #else QFont text_font(":/Monospace.ttf"); #endif From 9e5dcfcf78c6a5a0f238ea6b873ee7a6e128140b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 13:10:11 -0400 Subject: [PATCH 191/247] update for packaging a .dmg file w/o CPack (untested) --- cmake/packaging/MacOSXBundleInfo.plist.in | 34 +++++++++++ tools/lammps-gui/CMakeLists.txt | 69 +++++++++++++++-------- 2 files changed, 79 insertions(+), 24 deletions(-) create mode 100644 cmake/packaging/MacOSXBundleInfo.plist.in diff --git a/cmake/packaging/MacOSXBundleInfo.plist.in b/cmake/packaging/MacOSXBundleInfo.plist.in new file mode 100644 index 0000000000..33ce5a602b --- /dev/null +++ b/cmake/packaging/MacOSXBundleInfo.plist.in @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + en-US + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + CFBundleDisplayName + The LAMMPS Molecular Dynamics Software + CFBundleIconFile + lammps + CFBundleIdentifier + org.lammps.gui + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLongVersionString + ${MACOSX_BUNDLE_LONG_VERSION_STRING} + CFBundleName + LAMMPS + CFBundlePackageType + APPL + CFBundleShortVersionString + ${MACOSX_BUNDLE_SHORT_VERSION_STRING} + CFBundleSignature + ???? + CFBundleVersion + ${MACOSX_BUNDLE_BUNDLE_VERSION} + CSResourcesFileMapped + + NSHumanReadableCopyright + ${MACOSX_BUNDLE_COPYRIGHT} + + diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 043bdc60bd..4cc20d820c 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -17,10 +17,6 @@ option(LAMMPS_GUI_USE_PLUGIN "Load LAMMPS library dynamically at runtime" OFF) if(LAMMPS_DIR) set(LAMMPS_HEADER_DIR ${LAMMPS_SOURCE_DIR}) set(LAMMPS_LIBRARY lammps) - set(LAMMPS_PLUGINLIB_DIR ${LAMMPS_DIR}/examples/COUPLE/plugin) - if(APPLE) - set(MACOSX_ICON_FILE ${LAMMPS_DIR}/cmake/packaging/lammps.icns) - endif() else() # NOTE: the next line should be commented out when used outside of the LAMMPS package get_filename_component(LAMMPS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../src ABSOLUTE) @@ -28,9 +24,7 @@ else() if(NOT LAMMPS_HEADER_DIR) message(FATAL_ERROR "Must set LAMMPS_HEADER_DIR") endif() - if(APPLE) - set(MACOSX_ICON_FILE ${LAMMPS_SOURCE_DIR}/../cmake/packaging/lammps.icns) - endif() + get_filename_component(LAMMPS_DIR ${LAMMPS_SOURCE_DIR}/.. ABSOLUTE) # find LAMMPS library find_library(LAMMPS_LIBRARY NAMES lammps lammps_serial @@ -56,7 +50,8 @@ else() add_compile_definitions(_CRT_SECURE_NO_WARNINGS) endif() endif() - + +set(LAMMPS_PLUGINLIB_DIR ${LAMMPS_DIR}/examples/COUPLE/plugin) find_package(QT NAMES Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) @@ -84,13 +79,10 @@ set(PROJECT_SOURCES ) qt_add_resources(PROJECT_SOURCES lammpsgui.qrc) -if(CPACK_GENERATOR STREQUAL "DragNDrop") - set(MACOSX_BUNDLE_COPYRIGHT GPLv2) - set(MACOSX_BUNDLE_GUI_IDENTIFIER org.lammps.gui) - set(MACOSX_BUNDLE_INFO_STRING "LAMMPS") - set(MACOSX_BUNDLE_LONG_VERSION_STRING 0.9) - set(MACOSX_BUNDLE_SHORT_VERSION_STRING 0.9.0) - get_filename_component(MACOSX_BUNDLE_ICON_FILE ${MACOSX_ICON_FILE} NAME) +if(APPLE) + set(MACOSX_ICON_FILE ${LAMMPS_DIR}/cmake/packaging/lammps.icns) + set(MACOSX_README_FILE ${LAMMPS_DIR}/cmake/packaging/README.macos) + set(MACOSX_BACKGROUND_FILE ${LAMMPS_DIR}/cmake/packaging/LAMMPS_DMG_Background.png) endif() if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) @@ -132,18 +124,47 @@ if(BUILD_OMP) target_link_libraries(lammps-gui PRIVATE OpenMP::OpenMP_CXX) endif() -set_target_properties(lammps-gui PROPERTIES - MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com +if(APPLE) + set_target_properties(lammps-gui PROPERTIES + MACOSX_BUNDLE_INFO_PLIST ${LAMMPS_DIR}/cmake/packaging/MacOSXBundleInfo.plist.in MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} + MACOSX_BUNDLE_ICON_FILE lammps.icns + MACOSX_BUNDLE_COPYRIGHT "(c) 2003 - 2023, The LAMMPS Developers" MACOSX_BUNDLE TRUE - WIN32_EXECUTABLE TRUE -) - -if(CPACK_GENERATOR STREQUAL "DragNDrop") - install(TARGETS lammps-gui BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX}) -else() - install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) + ) + # additional steps to populate the bundle tree and create the .dmg image file + set(APP_CONTENTS ${CMAKE_BINARY_DIR}/lammps-gui.app/Contents) + set_custom_target(complete-bundle ALL + ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/bin + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/lmp ${APP_CONTENTS}/bin/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/msi2lmp ${APP_CONTENTS}/bin/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/binary2txt ${APP_CONTENTS}/bin/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/stl_bin2txt ${APP_CONTENTS}/bin/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/phana ${APP_CONTENTS}/bin/ + COMMAND ${CMAKE_COMMAND} -E create_symlink ../MacOS/lammps-gui ${APP_CONTENTS}/bin/lammps-gui + COMMAND ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/Resources + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_DIR}/cmake/packaging/README.macos ${APP_CONTENTS}/Resources/README.txt + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_DIR}/cmake/packaging/LAMMPS_DMG_Background.png ${APP_CONTENTS}/Resources + COMMAND ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/share/lammps + COMMAND ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/share/lammps/man/man1 + COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${LAMMPS_DIR}/potentials ${APP_CONTENTS}/share/lammps/ + COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${LAMMPS_DIR}/bench ${APP_CONTENTS}/share/lammps/ + COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${LAMMPS_DIR}/tools/msi2lmp/frc_files ${APP_CONTENTS}/share/lammps/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_DIR}/doc/lammps.1 ${APP_CONTENTS}/share/lammps/man/man1/ + COMMAND ${CMAKE_COMMAND} -E create_symlink lammps.1 ${APP_CONTENTS}/share/lammps/man/man1/lmp.1 + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_DIR}/doc/msi2lmp.1 ${APP_CONTENTS}/share/lammps/man/man1 + DEPENDS lammps-gui lammps + COMMENT "Copying additional files into macOS app bundle tree" + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + set_custom_target(build-dmg ALL + COMMAND ${LAMMPS_DIR}/cmake/packaging/build-macos-dmg-with-gui.sh + DEPENDS complete-bundle + COMMENT "Create Drag-n-Drop installer disk image from app bundle" + BYPRODUCT LAMMPS-macOS-multiarch.dmg + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) endif() if(QT_VERSION_MAJOR EQUAL 6) From 12fee35d782072af7c5727e033fa45f7501d8d05 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 13:32:46 -0400 Subject: [PATCH 192/247] fix bugs and typos --- tools/lammps-gui/CMakeLists.txt | 11 ++++++----- tools/lammps-gui/codeeditor.cpp | 6 +++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 4cc20d820c..8d1958a66b 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -135,7 +135,7 @@ if(APPLE) ) # additional steps to populate the bundle tree and create the .dmg image file set(APP_CONTENTS ${CMAKE_BINARY_DIR}/lammps-gui.app/Contents) - set_custom_target(complete-bundle ALL + add_custom_target(complete-bundle ALL ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/bin COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/lmp ${APP_CONTENTS}/bin/ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/msi2lmp ${APP_CONTENTS}/bin/ @@ -145,12 +145,13 @@ if(APPLE) COMMAND ${CMAKE_COMMAND} -E create_symlink ../MacOS/lammps-gui ${APP_CONTENTS}/bin/lammps-gui COMMAND ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/Resources COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_DIR}/cmake/packaging/README.macos ${APP_CONTENTS}/Resources/README.txt + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_DIR}/cmake/packaging/lammps.icns ${APP_CONTENTS}/Resources COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_DIR}/cmake/packaging/LAMMPS_DMG_Background.png ${APP_CONTENTS}/Resources COMMAND ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/share/lammps COMMAND ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/share/lammps/man/man1 - COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${LAMMPS_DIR}/potentials ${APP_CONTENTS}/share/lammps/ - COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${LAMMPS_DIR}/bench ${APP_CONTENTS}/share/lammps/ - COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${LAMMPS_DIR}/tools/msi2lmp/frc_files ${APP_CONTENTS}/share/lammps/ + COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DIR}/potentials ${APP_CONTENTS}/share/lammps/potentials + COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DIR}/bench ${APP_CONTENTS}/share/lammps/bench + COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DIR}/tools/msi2lmp/frc_files ${APP_CONTENTS}/share/lammps/frc_files COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_DIR}/doc/lammps.1 ${APP_CONTENTS}/share/lammps/man/man1/ COMMAND ${CMAKE_COMMAND} -E create_symlink lammps.1 ${APP_CONTENTS}/share/lammps/man/man1/lmp.1 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_DIR}/doc/msi2lmp.1 ${APP_CONTENTS}/share/lammps/man/man1 @@ -158,7 +159,7 @@ if(APPLE) COMMENT "Copying additional files into macOS app bundle tree" WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) - set_custom_target(build-dmg ALL + add_custom_target(build-dmg ALL COMMAND ${LAMMPS_DIR}/cmake/packaging/build-macos-dmg-with-gui.sh DEPENDS complete-bundle COMMENT "Create Drag-n-Drop installer disk image from app bundle" diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index adac225298..827a6bb7d3 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -72,8 +72,8 @@ bool CodeEditor::canInsertFromMimeData(const QMimeData *source) const void CodeEditor::dropEvent(QDropEvent *event) { - event->acceptProposedAction(); if (event->mimeData()->hasUrls()) { + event->accept(); auto file = event->mimeData()->urls()[0].url().remove("file://"); auto gui = dynamic_cast(parent()); if (gui) { @@ -81,10 +81,10 @@ void CodeEditor::dropEvent(QDropEvent *event) gui->open_file(file); } } else if (event->mimeData()->hasText()) { + event->accept(); fprintf(stderr, "Drag - Drop for text block not yet implemented: text=%s\n", event->mimeData()->text().toStdString().c_str()); - } - QPlainTextEdit::dropEvent(event); + } else event->ignore(); } void CodeEditor::resizeEvent(QResizeEvent *e) From 93b2f248411cdd9329e65b72e655ebf13d6c5e28 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 13:35:08 -0400 Subject: [PATCH 193/247] update installer background image --- cmake/packaging/LAMMPS_DMG_Background.png | Bin 86828 -> 87175 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cmake/packaging/LAMMPS_DMG_Background.png b/cmake/packaging/LAMMPS_DMG_Background.png index 6d365483af34c605f9e969bdaffdf2ff61a486da..5ceb55c5e7a47424702968da06d2705504225962 100644 GIT binary patch delta 24048 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 S@FETQaq|cK4XU7sFa8Ax#~z;m delta 23185 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 Date: Sun, 30 Jul 2023 15:54:06 -0400 Subject: [PATCH 194/247] Windos portability --- .gitignore | 1 + tools/lammps-gui/lammpsgui.cpp | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index a89f75cc9a..ed514d96fa 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,4 @@ out/x86 out/x64 src/Makefile.package-e src/Makefile.package.settings-e +/cmake/build/x64-Debug-Clang diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index a26a71cd92..b454e215dc 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -69,7 +69,13 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : #if defined(_OPENMP) // use maximum number of available threads unless OMP_NUM_THREADS was set auto nthreads = std::to_string(omp_get_max_threads()); +#if _WIN32 + if (!getenv("OMP_NUM_THREADS")) { + _putenv_s("OMP_NUM_THREADS", nthreads.c_str()); + } +#else setenv("OMP_NUM_THREADS", nthreads.c_str(), 0); +#endif #endif lammps_args.clear(); From c95bf2c14b6a12d9f4e809f9aed767006e09be6c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 19:23:42 -0400 Subject: [PATCH 195/247] add image viewer dialog for write_dump image output, help can open link to manual --- tools/lammps-gui/CMakeLists.txt | 2 + tools/lammps-gui/TODO.md | 6 +- tools/lammps-gui/codeeditor.cpp | 9 +- tools/lammps-gui/imageviewer.cpp | 180 +++++++++++++++++++++++++++++++ tools/lammps-gui/imageviewer.h | 64 +++++++++++ tools/lammps-gui/lammpsgui.cpp | 90 ++++++++++++++-- tools/lammps-gui/lammpsgui.h | 5 + tools/lammps-gui/lammpsgui.ui | 27 ++++- tools/lammps-gui/preferences.cpp | 10 +- tools/lammps-gui/preferences.h | 3 +- tools/lammps-gui/stdcapture.cpp | 2 +- 11 files changed, 373 insertions(+), 25 deletions(-) create mode 100644 tools/lammps-gui/imageviewer.cpp create mode 100644 tools/lammps-gui/imageviewer.h diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 8d1958a66b..a736b8405f 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -66,6 +66,8 @@ set(PROJECT_SOURCES codeeditor.h highlighter.cpp highlighter.h + imageviewer.cpp + imageviewer.h linenumberarea.h lammpsgui.cpp lammpsgui.h diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index 170211516e..8412b11d6d 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -3,13 +3,14 @@ LAMMPS-GUI TODO list: # Short term goals - add "Help" entry to menu bar. Should open a popup window with a one page description of how to use it. Use HTML or Markdown text. +- display current working directory - add CTRL-q hotkey to log windows so you can exit the entire application (add do you really want to? dialog to this) -- add "render" dialog where a "write_dump image" can be triggered. dialog should offer options for size, zoom, rotation, colors(?) - add "syntax check" with enabled "-skiprun" flag - add settings dialog where certain properties can be set through customizing the LAMMPS command line - + enable/disable OpenMP (via suffix), select number of OpenMP threads + + enable/disable OpenMP (via suffix), OPT package, select number of OpenMP threads + toggle whether captured screen output should include input file echo + select Font + + snapshot image options - store settings/preferences when changed and read at startup - add list of 5(?) most recently opened/saved files to file dialog (and also write to settings state on exit) (note: must store full path!) @@ -18,4 +19,3 @@ LAMMPS-GUI TODO list: - have command text input file in/above status bar where individual commands can be tested. have insert button to copy line into file at the current point - support text completion as done with lammps-shell - have context menu for known commands to offer retrieving help by dispatching URL to webbrowser (process index from sphinx for that purpose) - (embed html viewer to render pages locally, mathjax??) diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index 827a6bb7d3..f0a375efc0 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -12,8 +12,8 @@ ------------------------------------------------------------------------- */ #include "codeeditor.h" -#include "linenumberarea.h" #include "lammpsgui.h" +#include "linenumberarea.h" #include #include @@ -67,7 +67,7 @@ void CodeEditor::dragEnterEvent(QDragEnterEvent *event) bool CodeEditor::canInsertFromMimeData(const QMimeData *source) const { - return source->hasUrls(); // || source->hasText(); + return source->hasUrls(); // || source->hasText(); } void CodeEditor::dropEvent(QDropEvent *event) @@ -75,7 +75,7 @@ void CodeEditor::dropEvent(QDropEvent *event) if (event->mimeData()->hasUrls()) { event->accept(); auto file = event->mimeData()->urls()[0].url().remove("file://"); - auto gui = dynamic_cast(parent()); + auto gui = dynamic_cast(parent()); if (gui) { moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); gui->open_file(file); @@ -84,7 +84,8 @@ void CodeEditor::dropEvent(QDropEvent *event) event->accept(); fprintf(stderr, "Drag - Drop for text block not yet implemented: text=%s\n", event->mimeData()->text().toStdString().c_str()); - } else event->ignore(); + } else + event->ignore(); } void CodeEditor::resizeEvent(QResizeEvent *e) diff --git a/tools/lammps-gui/imageviewer.cpp b/tools/lammps-gui/imageviewer.cpp new file mode 100644 index 0000000000..70bd105a96 --- /dev/null +++ b/tools/lammps-gui/imageviewer.cpp @@ -0,0 +1,180 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "imageviewer.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +ImageViewer::ImageViewer(const QString &fileName, QWidget *parent) : + QDialog(parent), imageLabel(new QLabel), scrollArea(new QScrollArea), menuBar(new QMenuBar) +{ + imageLabel->setBackgroundRole(QPalette::Base); + imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); + imageLabel->setScaledContents(true); + imageLabel->minimumSizeHint(); + + scrollArea->setBackgroundRole(QPalette::Dark); + scrollArea->setWidget(imageLabel); + scrollArea->setVisible(false); + + buttonBox = new QDialogButtonBox(QDialogButtonBox::Close); + + connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(menuBar); + mainLayout->addWidget(scrollArea); + mainLayout->addWidget(buttonBox); + setWindowTitle(QString("Image Viewer: ") + QFileInfo(fileName).completeBaseName()); + + createActions(); + + QImageReader reader(fileName); + reader.setAutoTransform(true); + const QImage newImage = reader.read(); + if (newImage.isNull()) { + QMessageBox::warning(this, QGuiApplication::applicationDisplayName(), + tr("Cannot load %1: %2").arg(fileName, reader.errorString())); + return; + } + image = newImage; + imageLabel->setPixmap(QPixmap::fromImage(image)); + scaleFactor = 1.0; + resize(image.width() + 20, image.height() + 50); + + scrollArea->setVisible(true); + fitToWindowAct->setEnabled(true); + updateActions(); + if (!fitToWindowAct->isChecked()) imageLabel->adjustSize(); + setLayout(mainLayout); +} + +void ImageViewer::saveAs() +{ + QString fileName = QFileDialog::getSaveFileName(this, "Save Image File As", QString(), + "Image Files (*.jpg *.png *.bmp *.ppm)"); + saveFile(fileName); +} + +void ImageViewer::copy() {} + +void ImageViewer::zoomIn() +{ + scaleImage(1.25); +} + +void ImageViewer::zoomOut() +{ + scaleImage(0.8); +} + +void ImageViewer::normalSize() +{ + imageLabel->adjustSize(); + scaleFactor = 1.0; +} + +void ImageViewer::fitToWindow() +{ + bool fitToWindow = fitToWindowAct->isChecked(); + scrollArea->setWidgetResizable(fitToWindow); + if (!fitToWindow) normalSize(); + updateActions(); +} + +void ImageViewer::saveFile(const QString &fileName) +{ + if (!fileName.isEmpty()) image.save(fileName); +} + +void ImageViewer::createActions() +{ + QMenu *fileMenu = menuBar->addMenu(tr("&File")); + + saveAsAct = fileMenu->addAction(tr("&Save As..."), this, &ImageViewer::saveAs); + saveAsAct->setEnabled(false); + fileMenu->addSeparator(); + copyAct = fileMenu->addAction(tr("&Copy"), this, &ImageViewer::copy); + copyAct->setShortcut(QKeySequence::Copy); + copyAct->setEnabled(false); + fileMenu->addSeparator(); + QAction *exitAct = fileMenu->addAction(tr("&Close"), this, &QWidget::close); + exitAct->setShortcut(tr("Ctrl+W")); + + QMenu *viewMenu = menuBar->addMenu(tr("&View")); + + zoomInAct = viewMenu->addAction(tr("Zoom &In (25%)"), this, &ImageViewer::zoomIn); + zoomInAct->setShortcut(QKeySequence::ZoomIn); + zoomInAct->setEnabled(false); + + zoomOutAct = viewMenu->addAction(tr("Zoom &Out (25%)"), this, &ImageViewer::zoomOut); + zoomOutAct->setShortcut(QKeySequence::ZoomOut); + zoomOutAct->setEnabled(false); + + normalSizeAct = viewMenu->addAction(tr("&Normal Size"), this, &ImageViewer::normalSize); + normalSizeAct->setShortcut(tr("Ctrl+S")); + normalSizeAct->setEnabled(false); + + viewMenu->addSeparator(); + + fitToWindowAct = viewMenu->addAction(tr("&Fit to Window"), this, &ImageViewer::fitToWindow); + fitToWindowAct->setEnabled(false); + fitToWindowAct->setCheckable(true); + fitToWindowAct->setShortcut(tr("Ctrl+F")); +} + +void ImageViewer::updateActions() +{ + saveAsAct->setEnabled(!image.isNull()); + copyAct->setEnabled(!image.isNull()); + zoomInAct->setEnabled(!fitToWindowAct->isChecked()); + zoomOutAct->setEnabled(!fitToWindowAct->isChecked()); + normalSizeAct->setEnabled(!fitToWindowAct->isChecked()); +} + +void ImageViewer::scaleImage(double factor) +{ + scaleFactor *= factor; + imageLabel->resize(scaleFactor * imageLabel->pixmap(Qt::ReturnByValue).size()); + + adjustScrollBar(scrollArea->horizontalScrollBar(), factor); + adjustScrollBar(scrollArea->verticalScrollBar(), factor); + zoomInAct->setEnabled(scaleFactor < 3.0); + zoomOutAct->setEnabled(scaleFactor > 0.333); +} + +void ImageViewer::adjustScrollBar(QScrollBar *scrollBar, double factor) +{ + scrollBar->setValue( + int(factor * scrollBar->value() + ((factor - 1) * scrollBar->pageStep() / 2))); +} + +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/imageviewer.h b/tools/lammps-gui/imageviewer.h new file mode 100644 index 0000000000..56e0fda63b --- /dev/null +++ b/tools/lammps-gui/imageviewer.h @@ -0,0 +1,64 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef IMAGEVIEWER_H +#define IMAGEVIEWER_H + +#include +#include + +class QAction; +class QMenuBar; +class QDialogButtonBox; +class QLabel; +class QScrollArea; +class QScrollBar; +class QStatusBar; + +class ImageViewer : public QDialog { + Q_OBJECT + +public: + explicit ImageViewer(const QString &fileName, QWidget *parent = nullptr); + +private slots: + void saveAs(); + void copy(); + void zoomIn(); + void zoomOut(); + void normalSize(); + void fitToWindow(); + +private: + void createActions(); + void updateActions(); + void saveFile(const QString &fileName); + void scaleImage(double factor); + void adjustScrollBar(QScrollBar *scrollBar, double factor); + +private: + QImage image; + QMenuBar *menuBar; + QLabel *imageLabel; + QScrollArea *scrollArea; + QDialogButtonBox *buttonBox; + double scaleFactor = 1.0; + + QAction *saveAsAct; + QAction *copyAct; + QAction *zoomInAct; + QAction *zoomOutAct; + QAction *normalSizeAct; + QAction *fitToWindowAct; +}; +#endif diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index b454e215dc..88c4902d20 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -14,6 +14,7 @@ #include "lammpsgui.h" #include "highlighter.h" +#include "imageviewer.h" #include "lammpsrunner.h" #include "preferences.h" #include "stdcapture.h" @@ -30,6 +31,9 @@ #include #include #include +#include +#include + #include #include @@ -44,6 +48,12 @@ #include #endif +#if defined(_WIN32) +#include +#else +#include +#endif + // duplicate string static char *mystrdup(const std::string &text) { @@ -54,9 +64,9 @@ static char *mystrdup(const std::string &text) LammpsGui::LammpsGui(QWidget *parent, const char *filename) : QMainWindow(parent), ui(new Ui::LammpsGui), highlighter(nullptr), capturer(nullptr), - status(nullptr), logwindow(nullptr), logupdater(nullptr), progress(nullptr), - prefdialog(nullptr), lammps_handle(nullptr), plugin_handle(nullptr), plugin_path(nullptr), - is_running(false) + status(nullptr), logwindow(nullptr), imagewindow(nullptr), logupdater(nullptr), + progress(nullptr), prefdialog(nullptr), lammps_handle(nullptr), plugin_handle(nullptr), + plugin_path(nullptr), is_running(false) { ui->setupUi(this); this->setCentralWidget(ui->textEdit); @@ -78,6 +88,17 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : #endif #endif + const char *tmpdir = getenv("TMPDIR"); + if (!tmpdir) tmpdir = getenv("TMP"); + if (!tmpdir) tmpdir = getenv("TEMPDIR"); + if (!tmpdir) tmpdir = getenv("TEMP"); +#if _WIN32 + if (!tmpdir) tmpdir = "C:\\Windows\\Temp"; +#else + if (!tmpdir) tmpdir = "/tmp"; +#endif + temp_dir = tmpdir; + lammps_args.clear(); lammps_args.push_back(mystrdup("LAMMPS-GUI")); lammps_args.push_back(mystrdup("-log")); @@ -107,8 +128,10 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : connect(ui->actionRedo, &QAction::triggered, this, &LammpsGui::redo); connect(ui->actionRun_Buffer, &QAction::triggered, this, &LammpsGui::run_buffer); connect(ui->actionStop_LAMMPS, &QAction::triggered, this, &LammpsGui::stop_run); + connect(ui->actionImage, &QAction::triggered, this, &LammpsGui::view_image); connect(ui->actionAbout_LAMMPS_GUI, &QAction::triggered, this, &LammpsGui::about); connect(ui->action_Help, &QAction::triggered, this, &LammpsGui::help); + connect(ui->actionLAMMPS_Manual, &QAction::triggered, this, &LammpsGui::manual); connect(ui->actionEdit_Preferences, &QAction::triggered, this, &LammpsGui::preferences); connect(ui->textEdit->document(), &QTextDocument::modificationChanged, this, &LammpsGui::modified); @@ -158,6 +181,7 @@ LammpsGui::~LammpsGui() delete capturer; delete status; delete logwindow; + delete imagewindow; } void LammpsGui::new_document() @@ -469,6 +493,55 @@ void LammpsGui::run_buffer() logupdater->start(1000); } +void LammpsGui::view_image() +{ + // LAMMPS is not re-entrant, so we can only query LAMMPS when it is not running + if (!is_running) { + start_lammps(); + int box = 0; +#if defined(LAMMPS_GUI_USE_PLUGIN) + box = ((liblammpsplugin_t *)plugin_handle)->extract_setting(lammps_handle, "box_exists"); +#else + box = lammps_extract_setting(lammps_handle, "box_exist"); +#endif + if (!box) { + QMessageBox::warning(this, "ImageViewer Error", + "Cannot create snapshot image without a system box"); + return; + } + + std::string dumpcmd = "write_dump all image '"; + QString dumpfile = temp_dir; +#if defined(_WIN32) + dumpfile += '\\'; +#else + dumpfile += '/'; +#endif + dumpfile += current_file + ".ppm"; + + dumpcmd += dumpfile.toStdString() + "' type type size 800 600"; + +#if defined(LAMMPS_GUI_USE_PLUGIN) + ((liblammpsplugin_t *)plugin_handle)->command(lammps_handle, dumpcmd.c_str()); +#else + lammps_command(lammps_handle, dumpcmd.c_str()); +#endif + imagewindow = new ImageViewer(dumpfile); +#if 0 +#if defined(_WIN32) + _unlink(dumpfile.toLocal8Bit()); +#else + unlink(dumpfile.toLocal8Bit()); +#endif +#endif + } else { + QMessageBox::warning(this, "ImageViewer Error", + "Cannot create snapshot image while LAMMPS is running"); + return; + } + imagewindow->show(); +} + void LammpsGui::clear() { if (lammps_handle) { @@ -500,9 +573,9 @@ void LammpsGui::about() start_lammps(); capturer->BeginCapture(); #if defined(LAMMPS_GUI_USE_PLUGIN) - ((liblammpsplugin_t *)plugin_handle)->commands_string(lammps_handle, "info config"); + ((liblammpsplugin_t *)plugin_handle)->commands(lammps_handle, "info config"); #else - lammps_commands_string(lammps_handle, "info config"); + lammps_command(lammps_handle, "info config"); #endif capturer->EndCapture(); info = capturer->GetCapture(); @@ -515,7 +588,7 @@ void LammpsGui::about() msg.setWindowTitle("About LAMMPS-GUI"); msg.setText(version.c_str()); msg.setInformativeText(info.c_str()); - msg.setIconPixmap(QPixmap(":/lammps-icon-128x128.png").scaled(64,64)); + msg.setIconPixmap(QPixmap(":/lammps-icon-128x128.png").scaled(64, 64)); msg.setStandardButtons(QMessageBox::Ok); QFont font; font.setFixedPitch(true); @@ -532,6 +605,11 @@ void LammpsGui::help() QMessageBox::information(this, "LAMMPS-GUI Help", helpmsg); } +void LammpsGui::manual() +{ + QDesktopServices::openUrl(QUrl("https://docs.lammps.org/")); +} + void LammpsGui::preferences() { QString helpmsg = "This is LAMMPS-GUI version " LAMMPS_GUI_VERSION; diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 7db1ff2825..d683b677c5 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -34,6 +34,7 @@ class QTimer; class Highlighter; class StdCapture; class Preferences; +class ImageViewer; class LammpsGui : public QMainWindow { Q_OBJECT @@ -64,8 +65,10 @@ private slots: void clear(); void run_buffer(); void stop_run(); + void view_image(); void about(); void help(); + void manual(); void logupdate(); void modified(); void preferences(); @@ -76,12 +79,14 @@ private: StdCapture *capturer; QLabel *status; QPlainTextEdit *logwindow; + ImageViewer *imagewindow; QTimer *logupdater; QProgressBar *progress; Preferences *prefdialog; QString current_file; QString current_dir; + QString temp_dir; void *lammps_handle; void *plugin_handle; const char *plugin_path; diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index b0f9d38261..9fbdf38446 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -67,6 +67,8 @@ + + @@ -74,6 +76,7 @@ + @@ -276,6 +279,20 @@ Ctrl+/ + + + + + + &View Snapshot + + + View Snapshot of current LAMMPS state + + + Ctrl+I + + @@ -306,7 +323,15 @@ .. - Edit Preferences... + Edit &Preferences... + + + + + + + + LAMMPS &Manual diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index 58be0f55fb..d29fcd6d1b 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -13,13 +13,7 @@ #include "preferences.h" -#include #include +#include -Preferences::Preferences(QWidget *parent) : QDialog(parent) -{ - -} - - - +Preferences::Preferences(QWidget *parent) : QDialog(parent) {} diff --git a/tools/lammps-gui/preferences.h b/tools/lammps-gui/preferences.h index 0cd8f374c0..cc15d62ded 100644 --- a/tools/lammps-gui/preferences.h +++ b/tools/lammps-gui/preferences.h @@ -19,8 +19,7 @@ class QTabWidget; class QDialogButtonBox; -class Preferences : public QDialog -{ +class Preferences : public QDialog { Q_OBJECT public: diff --git a/tools/lammps-gui/stdcapture.cpp b/tools/lammps-gui/stdcapture.cpp index 952c01e0d4..428277cc10 100644 --- a/tools/lammps-gui/stdcapture.cpp +++ b/tools/lammps-gui/stdcapture.cpp @@ -46,7 +46,7 @@ StdCapture::StdCapture() : m_oldStdOut(0), m_capturing(false) if (_pipe(m_pipe, 65536, O_BINARY) == -1) return; #else if (pipe(m_pipe) == -1) return; - fcntl(m_pipe[READ], F_SETFL, fcntl(m_pipe[READ], F_GETFL)|O_NONBLOCK); + fcntl(m_pipe[READ], F_SETFL, fcntl(m_pipe[READ], F_GETFL) | O_NONBLOCK); #endif m_oldStdOut = dup(fileno(stdout)); if (m_oldStdOut == -1) return; From e899a07b4c191f39767d6b6656b5d8455e57d3c3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 20:39:15 -0400 Subject: [PATCH 196/247] Show current working directory and share space with progress bar. Show/hide the other. --- tools/lammps-gui/TODO.md | 1 - tools/lammps-gui/lammpsgui.cpp | 43 ++++++++++++++++++++++++---------- tools/lammps-gui/lammpsgui.h | 1 + 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index 8412b11d6d..ea6321c136 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -3,7 +3,6 @@ LAMMPS-GUI TODO list: # Short term goals - add "Help" entry to menu bar. Should open a popup window with a one page description of how to use it. Use HTML or Markdown text. -- display current working directory - add CTRL-q hotkey to log windows so you can exit the entire application (add do you really want to? dialog to this) - add "syntax check" with enabled "-skiprun" flag - add settings dialog where certain properties can be set through customizing the LAMMPS command line diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 88c4902d20..8a4339671d 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -20,6 +20,7 @@ #include "stdcapture.h" #include "ui_lammpsgui.h" +#include #include #include #include @@ -31,7 +32,6 @@ #include #include #include -#include #include #include @@ -65,8 +65,8 @@ static char *mystrdup(const std::string &text) LammpsGui::LammpsGui(QWidget *parent, const char *filename) : QMainWindow(parent), ui(new Ui::LammpsGui), highlighter(nullptr), capturer(nullptr), status(nullptr), logwindow(nullptr), imagewindow(nullptr), logupdater(nullptr), - progress(nullptr), prefdialog(nullptr), lammps_handle(nullptr), plugin_handle(nullptr), - plugin_path(nullptr), is_running(false) + dirstatus(nullptr), progress(nullptr), prefdialog(nullptr), lammps_handle(nullptr), + plugin_handle(nullptr), plugin_path(nullptr), is_running(false) { ui->setupUi(this); this->setCentralWidget(ui->textEdit); @@ -74,6 +74,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : prefdialog = new Preferences(this); capturer = new StdCapture; current_file.clear(); + current_dir = QDir(".").absolutePath(); recent_files.clear(); #if defined(_OPENMP) @@ -142,6 +143,19 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : ui->actionPaste->setEnabled(false); #endif + status = new QLabel("Ready."); + status->setFixedWidth(250); + ui->statusbar->addWidget(status); + dirstatus = new QLabel(QString(" Directory: ") + current_dir); + dirstatus->setMinimumWidth(500); + ui->statusbar->addWidget(dirstatus); + progress = new QProgressBar(); + progress->setRange(0, 1000); + progress->setMinimumWidth(500); + progress->hide(); + dirstatus->show(); + ui->statusbar->addWidget(progress); + #if defined(LAMMPS_GUI_USE_PLUGIN) liblammpsplugin_t *lammps = nullptr; for (const auto libfile : {"liblammps.so", "./liblammps.so", "liblammps.dylib", @@ -161,17 +175,12 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : if (do_exit) exit(1); #endif - if (filename) + if (filename) { open_file(filename); - else + } else { setWindowTitle(QString("LAMMPS-GUI - *unknown*")); - status = new QLabel("Ready."); - status->setFixedWidth(300); - ui->statusbar->addWidget(status); - progress = new QProgressBar(); - progress->setRange(0, 1000); - progress->setFixedWidth(500); - ui->statusbar->addWidget(progress); + } + } LammpsGui::~LammpsGui() @@ -182,6 +191,7 @@ LammpsGui::~LammpsGui() delete status; delete logwindow; delete imagewindow; + delete dirstatus; } void LammpsGui::new_document() @@ -249,6 +259,7 @@ void LammpsGui::open_file(const QString &fileName) ui->textEdit->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); ui->textEdit->document()->setModified(false); file.close(); + dirstatus->setText(QString(" Directory: ") + current_dir); } void LammpsGui::write_file(const QString &fileName) @@ -256,6 +267,8 @@ void LammpsGui::write_file(const QString &fileName) QFile file(fileName); QFileInfo path(file); current_file = path.fileName(); + current_dir = path.absolutePath(); + if (!file.open(QIODevice::WriteOnly | QFile::Text)) { QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString()); return; @@ -265,6 +278,7 @@ void LammpsGui::write_file(const QString &fileName) QString text = ui->textEdit->toPlainText(); out << text; file.close(); + dirstatus->setText(QString(" Directory: ") + current_dir); ui->textEdit->document()->setModified(false); } @@ -446,10 +460,15 @@ void LammpsGui::run_done() QString("Error running LAMMPS:\n\n") + errorbuf); } is_running = false; + progress->hide(); + dirstatus->show(); } void LammpsGui::run_buffer() { + progress->setValue(0); + dirstatus->hide(); + progress->show(); status->setText("Running LAMMPS. Please wait..."); status->repaint(); start_lammps(); diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index d683b677c5..b33b410aaf 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -81,6 +81,7 @@ private: QPlainTextEdit *logwindow; ImageViewer *imagewindow; QTimer *logupdater; + QLabel *dirstatus; QProgressBar *progress; Preferences *prefdialog; From 6d58910c5cf14a0e875a86e4595df9e8a3fc2d64 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 30 Jul 2023 20:56:45 -0400 Subject: [PATCH 197/247] Add new VS configuration for compiling LAMMPS GUI --- cmake/CMakeSettings.json | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/cmake/CMakeSettings.json b/cmake/CMakeSettings.json index 205b443bf1..c880962535 100644 --- a/cmake/CMakeSettings.json +++ b/cmake/CMakeSettings.json @@ -63,6 +63,11 @@ "name": "ENABLE_TESTING", "value": "True", "type": "BOOL" + }, + { + "name": "BUILD_LAMMPS_GUI", + "value": "False", + "type": "BOOL" } ] }, @@ -303,6 +308,54 @@ "type": "STRING" } ] + }, + { + "name": "x64-GUI-MSVC", + "generator": "Ninja", + "configurationType": "Release", + "buildRoot": "${workspaceRoot}\\build\\${name}", + "installRoot": "${workspaceRoot}\\install\\${name}", + "cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake -D QT_DIR=C:\\Qt\\5.15.2\\msvc2019_64\\lib\\cmake\\Qt5 -D Qt5_DIR=C:\\Qt\\5.15.2\\msvc2019_64\\lib\\cmake\\Qt5", + "buildCommandArgs": "", + "ctestCommandArgs": "-V", + "inheritEnvironments": [ "msvc_x64_x64" ], + "variables": [ + { + "name": "BUILD_SHARED_LIBS", + "value": "True", + "type": "BOOL" + }, + { + "name": "BUILD_TOOLS", + "value": "True", + "type": "BOOL" + }, + { + "name": "LAMMPS_EXCEPTIONS", + "value": "True", + "type": "BOOL" + }, + { + "name": "ENABLE_TESTING", + "value": "False", + "type": "BOOL" + }, + { + "name": "BUILD_MPI", + "value": "False", + "type": "BOOL" + }, + { + "name": "WITH_PNG", + "value": "False", + "type": "BOOL" + }, + { + "name": "BUILD_LAMMPS_GUI", + "value": "True", + "type": "BOOL" + } + ] } ] } \ No newline at end of file From 72ea2673ddf6758d7970777ab4876861ff4b4cf8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Jul 2023 00:07:32 -0400 Subject: [PATCH 198/247] update LAMMPS manual and README file --- doc/src/Tools.rst | 123 ++++++++++++++++++++ doc/utils/sphinx-config/false_positives.txt | 2 + tools/lammps-gui/README.md | 110 +++++++++++++---- 3 files changed, 213 insertions(+), 22 deletions(-) diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index bccb9abe73..a8ff70c12d 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -93,6 +93,7 @@ Miscellaneous tools * :ref:`i-pi ` * :ref:`kate ` * :ref:`LAMMPS shell ` + * :ref:`LAMMPS GUI ` * :ref:`LAMMPS magic patterns for file(1) ` * :ref:`Offline build tool ` * :ref:`singularity/apptainer ` @@ -634,6 +635,128 @@ you first need to use the :doc:`clear` command. ---------- +.. _lammps_gui: + +LAMMPS GUI +---------- + +.. versionadded:: TBD + +Overview +^^^^^^^^ + +LAMMPS GUI is essentially a small graphical text editor that is linked +to the :ref:`LAMMPS C-library interface ` and thus can run +LAMMPS using the contents of the editor's text buffer as input. This is similar to what people usually +would do using a text editor to edit the input and then a command line +terminal window to run the input commands. The main benefit is that +this integrates very well with graphical desktop environments and that +it is easier to use for beginners in running computations and thus very +suitable for tutorials on LAMMPS. A small difference is that for the +LAMMPS GUI it is not require to commit its buffer to a file first. + +Features +^^^^^^^^ + +The main window of the LAMMPS GUI is a generic text editor window with +line numbers and syntax highlighting set up for LAMMPS input files. It +can be used to edit any kind of text file. The output of a run is +captured and displayed in a separate dialog window and not sent to the +console. The log window is regularly updated during the run and a +progress bar for the run command shown in the main window. Starting a +new run will open another log windows. The state of LAMMPS will be reset +between two runs. After the simulation is finished, an image of the +simulated system can be created and shown in an image viewer window. +Ongoing runs can be stopped at the next iteration via triggering a +timeout. + +When opening a file, the editor will determine the directory where the +file resides and switch its current working directory to that folder. +Many LAMMPS inputs contain commands that read other files, typically +from the folder with the input file. The GUI will always show the +current working directory. The editor window can also receive (entire) +files via drag-n-drop from a file manager GUI or a desktop environment. +When exiting the GUI with a modified buffer, a dialog asking to either +cancel, ignore the modifications, or save the file with show up. Same +when attempting to load a new file into a modified buffer. + +Almost all functionality is accessible from the menu or via hotkeys. +Which those hotkeys are, is shown next to the entries in the menu. Log +and image viewer windows can be closed with CTRL-W (or Command-W on +macOS). The "About LAMMPS" dialog will show the LAMMPS version and the +features included into the LAMMPS library linked to the LAMMPS GUI. + +Due to its nature as a graphical application, it is not possible to use +the LAMMPS GUI in parallel with MPI, but OpenMP multi-threading is +available. + +Prerequisites and portability +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +LAMMPS GUI is programmed in C++ based on the C++11 standard and using +the `Qt GUI framework `_, currently +using Qt version 5.15LTS for better compatibility with older compilers +and operating systems. It has been successfully compiled and tested on: + +- Fedora Linux 38 x86\_64 using GCC 13 and Clang 16 +- Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64 +- Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36 + +Compilation +^^^^^^^^^^^ + +The source for the LAMMPS GUI is included with the LAMMPS source code +distribution in the folder `tools/lammps-gui` and thus it can be can be +built as part of a regular LAMMPS compilation. +:doc:`Using CMake ` is required. +To enable its compilation the CMake variable ``-D BUILD_LAMMPS_GUI=on`` +must be set when creating the CMake configuration. All other settings +(compiler, flags, compile type) for LAMMPS GUI are then inherited from +the regular LAMMPS build. If the Qt library is packaged for Linux +distributions, then its location is typically auto-detected since the +required CMake configuration files are stored in a location where CMake +can find them without additional help. Otherwise, the location of the +Qt library installation must be indicated by setting +``-D Qt5_DIR=/path/to/qt5/lib/cmake/Qt5``, which is a path to a folder inside +the Qt installation that contains the file ``Qt5Config.cmake``. + +It is also possible to build the LAMMPS GUI as a standalone executable +(e.g. when LAMMPS has been compiled with traditional make), then the +CMake configuration needs to be told where to find the LAMMPS headers +and the LAMMPS library, via `-D LAMMPS_SOURCE_DIR=/path/to/lammps/src`. +CMake will try to guess a build folder with the LAMMPS library from that +path, but it can also be set with `-D LAMMPS_LIB_DIR=/path/to/lammps/lib`. + +Rather than linking to the LAMMPS library during compilation, it is also +possible to compile the GUI with a plugin loader library that will load +the LAMMPS library dynamically at runtime during the start of the GUI +from a shared library; e.g. `liblammps.so` or `liblammps.dylib` or +`liblammps.dll` (depending on the operating system). This has the +advantage that the LAMMPS library can be updated LAMMPS without having +to recompile the GUI. The ABI of the LAMMPS C-library interface is very +stable and generally backward compatible. This feature is enabled by +setting ``-D LAMMPS_GUI_USE_PLUGIN=on`` and then +``-D LAMMPS_PLUGINLIB_DIR=/path/to/lammps/plugin/loader``. Typically, this +would be the ``examples/COUPLE/plugin`` folder of the LAMMPS distribution. + +Platform notes +^^^^^^^^^^^^^^ + +macOS +""""" + +When building on macOS, the build procedure will try to manufacture a +drag-n-drop installer, LAMMPS-macOS-multiarch.dmg. To build multi-arch +executables that will run on both, arm64 and x86_64 architectures +natively, it is necessary to set the CMake variable +``-D CMAKE_OSX_ARCHITECTURES=arm64;x86_64``. To achieve wide compatibility +with different macOS versions, you can also set +``-D CMAKE_OSX_DEPLOYMENT_TARGET=11.0`` which will set compatibility to macOS +11 (Big Sur) and later, even if you are compiling on a more recent macOS +version. + +---------- + .. _arc: lmp2arc tool diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index a68cd2714f..cc7b986ddf 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -3488,6 +3488,7 @@ supercell superset supersphere Supinski +Sur Surblys surfactant surfactants @@ -3833,6 +3834,7 @@ vectorized Vegt vel Velázquez +Ventura venv Verlag verlet diff --git a/tools/lammps-gui/README.md b/tools/lammps-gui/README.md index d2481f8e69..2af9ee6faa 100644 --- a/tools/lammps-gui/README.md +++ b/tools/lammps-gui/README.md @@ -2,37 +2,103 @@ LAMMPS GUI # Overview -This is essentially a small graphical text editor that is linked to the LAMMPS -library and thus can run LAMMPS using the contents of the text buffer as input. -The output of the run is captured and displayed in a separate window dialog. +LAMMPS GUI is essentially a small graphical text editor that is linked +to the LAMMPS library and thus can run LAMMPS using the contents of the +text buffer as input. This is similar to what people usually would do +using a text editor to edit the input and then a command line terminal +window to run the input commands. The main benefit is that this +integrates very well with graphical desktop environments and that it is +easier to use for beginners in running computations and thus very +suitable for tutorials on LAMMPS. + +# Features + +The main window of the LAMMPS GUI is a text editor window with syntax +highlighting set up for LAMMPS input files. It can be used to edit any +kind of text file, but then trying to run those files will cause errors. +The output of a run is captured and displayed in a separate window +dialog. The log window is updated during the run and a progress bar for +each run command shown in the main window. Starting a new run will open +another log windows. After the simulation is finished, an image of the +simulated system can be created and shown in another window. Ongoing +runs can be stopped at the next iteration via triggering a timeout. + +When opening a file, the editor will determine the directory where the +file resides and switch its current working directory to that folder. +Many LAMMPS inputs contain commands that read other files, typically +from the folder with the input file. The GUI will show the current +working directory. The editor window can also receive (entire) files +via drag-n-drop from a file manager GUI or a desktop environment. + +Almost all commands are accessible via hotkeys. Which those hotkeys are, +is shown next to the entries in the menu. Log and image viewer windows +can be closed with CTRL-W (or Command-W on macOS). The "About LAMMPS" +dialog will show the LAMMPS version and the features included into the +LAMMPS library linked to the LAMMPS GUI. + +Due to its nature as a graphical application, it is not possible to use +the LAMMPS GUI in parallel with MPI, but OpenMP multi-threading is +available. # Prerequisites and portability -The GUI is programmed with the Qt cross-platform GUI toolkit, currently using -version 5.15LTS. It has been compiled and tested on: -- Fedora Linux 38 x86\_64 -- Apple macOS 12 (Monterey) x86\_64 -- Windows 10 x86_64 (via MinGW Linux to Windows cross-compiler) +LAMMPS GUI is programmed using the Qt cross-platform GUI toolkit, +currently using Qt version 5.15LTS for better compatibility with older +compilers. It has been successfully compiled and tested on: -To compile you need to have LAMMPS compiled (so it can be linked to the LAMMPS -C-library interface) and Qt 5.15LTS installed. +- Fedora Linux 38 x86\_64 using GCC 13 and Clang 16 +- Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64 +- Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36 # Compilation -The source is bundled with the LAMMPS source code distribution and thus can be -built as part of the regular LAMMPS build by setting `-D BUILD_LAMMPS_GUI=on`. -All other settings are then inherited from the regular LAMMPS build. +The source for the LAMMPS GUI is included with the LAMMPS source code +distribution in the folder `tools/lammps-gui` and thus it can be can be +built as part of a regular LAMMPS compilation. Using CMake is required. +To enable its compilation the CMake variable `-D BUILD_LAMMPS_GUI=on` +must be set when creating the CMake configuration. All other settings +(compiler, flags, compile type) for LAMMPS GUI are then inherited from +the regular LAMMPS build. If the Qt library is packaged for Linux +distributions, then its location is typically auto-detected since the +required CMake configuration files are stored in a location where CMake +can find them without additional help. Otherwise, the location of the +Qt library installation must be indicated by setting `-D +Qt5_DIR=/path/to/qt5/lib/cmake/Qt5`, which is a path to a folder inside +the Qt installation that contains the file `Qt5Config.cmake`. -It is also possible to build the GUI as a standalone compilation, then the -CMake configuration needs to be told where to find the LAMMPS headers and -the LAMMPS library, via `-D LAMMPS_SOURCE_DIR=/path/to/lammps/src`. CMake -will try to guess a build folder with the LAMMPS library from that path, -but it can also be set with `-D LAMMPS_LIB_DIR=/path/to/lammps/lib`. +It is also possible to build the LAMMPS GUI as a standalone executable +(e.g. when LAMMPS has been compiled with traditional make), then the +CMake configuration needs to be told where to find the LAMMPS headers +and the LAMMPS library, via `-D LAMMPS_SOURCE_DIR=/path/to/lammps/src`. +CMake will try to guess a build folder with the LAMMPS library from that +path, but it can also be set with `-D LAMMPS_LIB_DIR=/path/to/lammps/lib`. -It is also possible to compile the GUI without embedding the LAMMPS library -directly, but to dynamically load it later as a shared library. This has -the advantage that you can update LAMMPS without having to recompile the GUI. -This is triggered by setting `-D LAMMPS_GUI_USE_PLUGIN=on` and then +Rather than linking to the LAMMPS library during compilation, it is also +possible to compile the GUI with a plugin loader library that will load +the LAMMPS library at runtime during startup of the GUI from a shared +library; e.g. `liblammps.so` or `liblammps.dylib` or `liblammps.dll` +depending on the operating system. This has the advantage that the +LAMMPS library can be updated LAMMPS without having to recompile the +GUI. The ABI of the LAMMPS C-library interface is very stable and +generally backward compatible. This feature is enabled by setting +`-D LAMMPS_GUI_USE_PLUGIN=on` and then `-D LAMMPS_PLUGINLIB_DIR=/path/to/lammps/plugin/loader`. Typically, this would be the `examples/COUPLE/plugin` folder of the LAMMPS distribution. +# Platform notes + +## macOS + +When building on macOS, the build procedure will try to manufacture a +drag-n-drop installer, LAMMPS-macOS-multiarch.dmg. To build multi-arch +executables that will run on both, arm64 and x86_64 architectures +natively, it is necessary to set the CMake variable +`-D CMAKE_OSX_ARCHITECTURES=arm64;x86_64`. To achieve wide compatibility +with different macOS versions, you can also set +`-D CMAKE_OSX_DEPLOYMENT_TARGET=11.0` which will set compatibility to macOS +11 (Big Sur) and later, even if you are compiling on a more recent macOS +version. + +-------- + +updated by Axel Kohlmeyer, 08/1023 From 75254bf305ba0ddf56dfcdd9b28a5188e927f38e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Jul 2023 01:00:36 -0400 Subject: [PATCH 199/247] simplify. only look for Qt5 at the moment. --- tools/lammps-gui/CMakeLists.txt | 37 ++++++--------------------------- 1 file changed, 6 insertions(+), 31 deletions(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index a736b8405f..f77d10ae2d 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.10) -project(lammps-gui VERSION 0.9 LANGUAGES CXX) +project(lammps-gui VERSION 0.9.1 LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -52,8 +52,7 @@ else() endif() set(LAMMPS_PLUGINLIB_DIR ${LAMMPS_DIR}/examples/COUPLE/plugin) -find_package(QT NAMES Qt5 REQUIRED COMPONENTS Widgets) -find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) +find_package(Qt5 REQUIRED COMPONENTS Widgets) if(LAMMPS_GUI_USE_PLUGIN) enable_language(C) @@ -87,30 +86,10 @@ if(APPLE) set(MACOSX_BACKGROUND_FILE ${LAMMPS_DIR}/cmake/packaging/LAMMPS_DMG_Background.png) endif() -if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) - qt_add_executable(lammps-gui - MANUAL_FINALIZATION - ${MACOS_ICON_FILE} - ${PROJECT_SOURCES} - ) -# Define target properties for Android with Qt 6 as: -# set_property(TARGET lammps-gui APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR -# ${CMAKE_CURRENT_SOURCE_DIR}/android) -# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation -else() - if(ANDROID) - add_library(lammps-gui SHARED - ${PROJECT_SOURCES} - ) -# Define properties for Android with Qt 5 after find_package() calls as: -# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") - else() - add_executable(lammps-gui - ${MACOSX_ICON_FILE} - ${PROJECT_SOURCES} - ) - endif() -endif() +add_executable(lammps-gui + ${MACOSX_ICON_FILE} + ${PROJECT_SOURCES} +) if(LAMMPS_GUI_USE_PLUGIN) target_compile_definitions(lammps-gui PRIVATE LAMMPS_GUI_USE_PLUGIN) @@ -169,7 +148,3 @@ if(APPLE) WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) endif() - -if(QT_VERSION_MAJOR EQUAL 6) - qt_finalize_executable(lammps-gui) -endif() From cadc45d41d53d6ecb660494f65b7f691938bb272 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Jul 2023 01:01:00 -0400 Subject: [PATCH 200/247] implement quick help dialog --- tools/lammps-gui/TODO.md | 3 +-- tools/lammps-gui/lammpsgui.cpp | 38 +++++++++++++++++++++++++++++++--- tools/lammps-gui/lammpsgui.ui | 4 ++-- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index ea6321c136..3b1087db26 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -2,10 +2,9 @@ LAMMPS-GUI TODO list: # Short term goals -- add "Help" entry to menu bar. Should open a popup window with a one page description of how to use it. Use HTML or Markdown text. - add CTRL-q hotkey to log windows so you can exit the entire application (add do you really want to? dialog to this) - add "syntax check" with enabled "-skiprun" flag -- add settings dialog where certain properties can be set through customizing the LAMMPS command line +- add multi-tab settings dialog where certain properties can be set through customizing the LAMMPS command line + enable/disable OpenMP (via suffix), OPT package, select number of OpenMP threads + toggle whether captured screen output should include input file echo + select Font diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 8a4339671d..91d82f0efe 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -180,7 +180,6 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : } else { setWindowTitle(QString("LAMMPS-GUI - *unknown*")); } - } LammpsGui::~LammpsGui() @@ -620,8 +619,41 @@ void LammpsGui::about() void LammpsGui::help() { - QString helpmsg = "This is LAMMPS-GUI version " LAMMPS_GUI_VERSION; - QMessageBox::information(this, "LAMMPS-GUI Help", helpmsg); + QMessageBox::information( + this, "LAMMPS-GUI Quick Help", + "



      " + "Overview" + "
      LAMMPS GUI is a graphical text editor that is " + "linked to the LAMMPS library and thus can run LAMMPS directly using " + "the contents of the text buffer as input through the LAMMPS C-library " + "interface. This makes it convenient to use for beginners and during " + "tutorials


      " + "Features" + "
      The main window of the LAMMPS GUI is a text " + "editor window with syntax highlighting. The output of a LAMMPS run is " + "captured and displayed in a log window. The log window is updated " + "regularly during the run, as is a progress bar in the main window. " + "After the simulation is finished, an image of the simulated system " + "can be created and shown (and saved) in image viewer window. Ongoing " + "runs can be stopped at the next run iteration.

      " + "
      When opening a file, the editor will determine " + "the directory where the input file resides and switch its current " + "working directory to that same folder. Many LAMMPS inputs contain " + "commands that read other files, typically from the folder as the " + "input file. The GUI will show its current working directory. " + "In addition to using the menu, the editor window also receive files " + "as the first command line argument or via drag-n-drop from a " + "graphical file manager GUI or a desktop environment.

      " + "
      Almost all commands are accessible via hotkeys. " + "Which those hotkeys are, is shown next to the entries in the menus. " + "Log and image viewer windows can be closed with CTRL-W (or Command-W " + "on macOS).

      " + "
      The 'About LAMMPS' dialog will show the " + "LAMMPS version and the features included into the LAMMPS library " + "linked to the LAMMPS GUI.

      " + "Due to its nature as a graphical application, it is not " + "possible to use the LAMMPS GUI in parallel with MPI, but OpenMP " + "multi-threading is available.
      "); } void LammpsGui::manual() diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index 9fbdf38446..a307fe2525 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -311,10 +311,10 @@ .. - &Help + Quick &Help - Short Help + Quick Help From 68454b3f732323a127a8f2ab57366f5b5d3ac00d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Jul 2023 02:12:32 -0400 Subject: [PATCH 201/247] small help window tweak --- tools/lammps-gui/lammpsgui.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 91d82f0efe..48ca018851 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -621,14 +621,14 @@ void LammpsGui::help() { QMessageBox::information( this, "LAMMPS-GUI Quick Help", - "
      This is LAMMPS-GUI version " LAMMPS_GUI_VERSION "
      This is LAMMPS-GUI version " LAMMPS_GUI_VERSION "


      " - "Overview" + "
      This is LAMMPS-GUI version " LAMMPS_GUI_VERSION "


      " + "Overview" "
      LAMMPS GUI is a graphical text editor that is " "linked to the LAMMPS library and thus can run LAMMPS directly using " "the contents of the text buffer as input through the LAMMPS C-library " "interface. This makes it convenient to use for beginners and during " "tutorials


      " - "Features" + "Features" "
      The main window of the LAMMPS GUI is a text " "editor window with syntax highlighting. The output of a LAMMPS run is " "captured and displayed in a log window. The log window is updated " From 0a0184221cbda4e83e513dfbb7d7f6e5144b1bb3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Jul 2023 05:09:08 -0400 Subject: [PATCH 202/247] custom message box is more readable and wider --- tools/lammps-gui/lammpsgui.cpp | 73 ++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 48ca018851..07695b2e0e 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -619,41 +619,44 @@ void LammpsGui::about() void LammpsGui::help() { - QMessageBox::information( - this, "LAMMPS-GUI Quick Help", - "
      This is LAMMPS-GUI version " LAMMPS_GUI_VERSION "


      " - "Overview" - "
      LAMMPS GUI is a graphical text editor that is " - "linked to the LAMMPS library and thus can run LAMMPS directly using " - "the contents of the text buffer as input through the LAMMPS C-library " - "interface. This makes it convenient to use for beginners and during " - "tutorials


      " - "Features" - "
      The main window of the LAMMPS GUI is a text " - "editor window with syntax highlighting. The output of a LAMMPS run is " - "captured and displayed in a log window. The log window is updated " - "regularly during the run, as is a progress bar in the main window. " - "After the simulation is finished, an image of the simulated system " - "can be created and shown (and saved) in image viewer window. Ongoing " - "runs can be stopped at the next run iteration.

      " - "
      When opening a file, the editor will determine " - "the directory where the input file resides and switch its current " - "working directory to that same folder. Many LAMMPS inputs contain " - "commands that read other files, typically from the folder as the " - "input file. The GUI will show its current working directory. " - "In addition to using the menu, the editor window also receive files " - "as the first command line argument or via drag-n-drop from a " - "graphical file manager GUI or a desktop environment.

      " - "
      Almost all commands are accessible via hotkeys. " - "Which those hotkeys are, is shown next to the entries in the menus. " - "Log and image viewer windows can be closed with CTRL-W (or Command-W " - "on macOS).

      " - "
      The 'About LAMMPS' dialog will show the " - "LAMMPS version and the features included into the LAMMPS library " - "linked to the LAMMPS GUI.

      " - "Due to its nature as a graphical application, it is not " - "possible to use the LAMMPS GUI in parallel with MPI, but OpenMP " - "multi-threading is available.
      "); + QMessageBox msg; + msg.setWindowTitle("LAMMPS-GUI Quick Help"); + msg.setText("
      This is LAMMPS-GUI version " LAMMPS_GUI_VERSION "
      "); + msg.setInformativeText("Overview" + "
      LAMMPS GUI is a graphical text editor that is " + "linked to the LAMMPS library and thus can run LAMMPS directly using " + "the contents of the text buffer as input through the LAMMPS C-library " + "interface. This makes it convenient to use for beginners and during " + "tutorials


      " + "Features" + "
      The main window of the LAMMPS GUI is a text " + "editor window with syntax highlighting. The output of a LAMMPS run is " + "captured and displayed in a log window. The log window is updated " + "regularly during the run, as is a progress bar in the main window. " + "After the simulation is finished, an image of the simulated system " + "can be created and shown (and saved) in image viewer window. Ongoing " + "runs can be stopped at the next run iteration.

      " + "
      When opening a file, the editor will determine " + "the directory where the input file resides and switch its current " + "working directory to that same folder. Many LAMMPS inputs contain " + "commands that read other files, typically from the folder as the " + "input file. The GUI will show its current working directory. " + "In addition to using the menu, the editor window also receive files " + "as the first command line argument or via drag-n-drop from a " + "graphical file manager GUI or a desktop environment.

      " + "
      Almost all commands are accessible via hotkeys. " + "Which those hotkeys are, is shown next to the entries in the menus. " + "Log and image viewer windows can be closed with CTRL-W (or Command-W " + "on macOS).

      " + "
      The 'About LAMMPS' dialog will show the " + "LAMMPS version and the features included into the LAMMPS library " + "linked to the LAMMPS GUI.

      " + "Due to its nature as a graphical application, it is not " + "possible to use the LAMMPS GUI in parallel with MPI, but OpenMP " + "multi-threading is available.
      "); + msg.setIconPixmap(QPixmap(":/lammps-icon-128x128.png").scaled(64, 64)); + msg.setStandardButtons(QMessageBox::Close); + msg.exec(); } void LammpsGui::manual() From 2f159df3b74bae8bcc737c508da6db0a76377c9a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Jul 2023 07:04:25 -0400 Subject: [PATCH 203/247] changes for portability with Qt 5.12 on Ubuntu 20.04LTS --- tools/lammps-gui/CMakeLists.txt | 4 ++-- tools/lammps-gui/imageviewer.cpp | 4 ++++ tools/lammps-gui/lammpsgui.cpp | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index f77d10ae2d..adfe236ee5 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -78,7 +78,7 @@ set(PROJECT_SOURCES stdcapture.cpp ${PLUGIN_LOADER_SRC} ) -qt_add_resources(PROJECT_SOURCES lammpsgui.qrc) +qt5_add_resources(PROJECT_SOURCES lammpsgui.qrc) if(APPLE) set(MACOSX_ICON_FILE ${LAMMPS_DIR}/cmake/packaging/lammps.icns) @@ -99,7 +99,7 @@ else() target_link_libraries(lammps-gui PRIVATE ${LAMMPS_LIBRARY}) endif() target_compile_definitions(lammps-gui PRIVATE LAMMPS_GUI_VERSION="${PROJECT_VERSION}") -target_link_libraries(lammps-gui PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) +target_link_libraries(lammps-gui PRIVATE Qt5::Widgets) if(BUILD_OMP) find_package(OpenMP COMPONENTS CXX REQUIRED) target_link_libraries(lammps-gui PRIVATE OpenMP::OpenMP_CXX) diff --git a/tools/lammps-gui/imageviewer.cpp b/tools/lammps-gui/imageviewer.cpp index 70bd105a96..6b38e6bbe9 100644 --- a/tools/lammps-gui/imageviewer.cpp +++ b/tools/lammps-gui/imageviewer.cpp @@ -161,7 +161,11 @@ void ImageViewer::updateActions() void ImageViewer::scaleImage(double factor) { scaleFactor *= factor; +#if QT_VERSION < QT_VERSION_CHECK(5,15,0) + imageLabel->resize(scaleFactor * imageLabel->pixmap()->size()); +#else imageLabel->resize(scaleFactor * imageLabel->pixmap(Qt::ReturnByValue).size()); +#endif adjustScrollBar(scrollArea->horizontalScrollBar(), factor); adjustScrollBar(scrollArea->verticalScrollBar(), factor); diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 07695b2e0e..c51c5f8904 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -611,7 +611,7 @@ void LammpsGui::about() QFont font; font.setFixedPitch(true); font.setStyleHint(QFont::TypeWriter); - font.setFamilies(QStringList({"Arial", "Helvetica"})); + font.setFamily("Arial"); font.setPointSize(8); msg.setFont(font); msg.exec(); From d41bf628c7bfb1a81ecd6b359e3f645b2c408ce1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Jul 2023 07:59:10 -0400 Subject: [PATCH 204/247] display number of threads in use for LAMMPS instance in status bar --- tools/lammps-gui/imageviewer.cpp | 2 +- tools/lammps-gui/lammpsgui.cpp | 12 +++++++----- tools/lammps-gui/lammpsgui.h | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/tools/lammps-gui/imageviewer.cpp b/tools/lammps-gui/imageviewer.cpp index 6b38e6bbe9..da84fa95a4 100644 --- a/tools/lammps-gui/imageviewer.cpp +++ b/tools/lammps-gui/imageviewer.cpp @@ -161,7 +161,7 @@ void ImageViewer::updateActions() void ImageViewer::scaleImage(double factor) { scaleFactor *= factor; -#if QT_VERSION < QT_VERSION_CHECK(5,15,0) +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) imageLabel->resize(scaleFactor * imageLabel->pixmap()->size()); #else imageLabel->resize(scaleFactor * imageLabel->pixmap(Qt::ReturnByValue).size()); diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index c51c5f8904..4e91971edd 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -79,14 +79,16 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : #if defined(_OPENMP) // use maximum number of available threads unless OMP_NUM_THREADS was set - auto nthreads = std::to_string(omp_get_max_threads()); + nthreads = omp_get_max_threads(); #if _WIN32 if (!getenv("OMP_NUM_THREADS")) { - _putenv_s("OMP_NUM_THREADS", nthreads.c_str()); + _putenv_s("OMP_NUM_THREADS", std::to_string(nthreads).c_str()); } #else - setenv("OMP_NUM_THREADS", nthreads.c_str(), 0); + setenv("OMP_NUM_THREADS", std::to_string(nthreads).c_str(), 0); #endif +#else + nthreads = 1; #endif const char *tmpdir = getenv("TMPDIR"); @@ -144,7 +146,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : #endif status = new QLabel("Ready."); - status->setFixedWidth(250); + status->setFixedWidth(300); ui->statusbar->addWidget(status); dirstatus = new QLabel(QString(" Directory: ") + current_dir); dirstatus->setMinimumWidth(500); @@ -468,7 +470,7 @@ void LammpsGui::run_buffer() progress->setValue(0); dirstatus->hide(); progress->show(); - status->setText("Running LAMMPS. Please wait..."); + status->setText(QString("Running LAMMPS with %1 thread(s)...").arg(nthreads)); status->repaint(); start_lammps(); if (!lammps_handle) return; diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index b33b410aaf..2c45cb3212 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -92,6 +92,7 @@ private: void *plugin_handle; const char *plugin_path; bool is_running; + int nthreads; std::vector recent_files; std::vector lammps_args; }; From b5a5cf1c9661a655fd5e8677889ec7842de39265 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Jul 2023 14:32:10 -0400 Subject: [PATCH 205/247] support zooming image with mousewheel --- tools/lammps-gui/imageviewer.cpp | 33 ++++++++++++++++++++++++++++---- tools/lammps-gui/imageviewer.h | 8 ++++++++ 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/tools/lammps-gui/imageviewer.cpp b/tools/lammps-gui/imageviewer.cpp index da84fa95a4..ec2f6cfbc4 100644 --- a/tools/lammps-gui/imageviewer.cpp +++ b/tools/lammps-gui/imageviewer.cpp @@ -24,11 +24,13 @@ #include #include #include +#include #include #include #include #include #include +#include ImageViewer::ImageViewer(const QString &fileName, QWidget *parent) : QDialog(parent), imageLabel(new QLabel), scrollArea(new QScrollArea), menuBar(new QMenuBar) @@ -40,6 +42,8 @@ ImageViewer::ImageViewer(const QString &fileName, QWidget *parent) : scrollArea->setBackgroundRole(QPalette::Dark); scrollArea->setWidget(imageLabel); + scrollArea->setMouseTracking(true); + scrollArea->installEventFilter(this); scrollArea->setVisible(false); buttonBox = new QDialogButtonBox(QDialogButtonBox::Close); @@ -86,12 +90,12 @@ void ImageViewer::copy() {} void ImageViewer::zoomIn() { - scaleImage(1.25); + scaleImage(1.1); } void ImageViewer::zoomOut() { - scaleImage(0.8); + scaleImage(0.9); } void ImageViewer::normalSize() @@ -129,11 +133,11 @@ void ImageViewer::createActions() QMenu *viewMenu = menuBar->addMenu(tr("&View")); - zoomInAct = viewMenu->addAction(tr("Zoom &In (25%)"), this, &ImageViewer::zoomIn); + zoomInAct = viewMenu->addAction(tr("Zoom &In (10%)"), this, &ImageViewer::zoomIn); zoomInAct->setShortcut(QKeySequence::ZoomIn); zoomInAct->setEnabled(false); - zoomOutAct = viewMenu->addAction(tr("Zoom &Out (25%)"), this, &ImageViewer::zoomOut); + zoomOutAct = viewMenu->addAction(tr("Zoom &Out (10%)"), this, &ImageViewer::zoomOut); zoomOutAct->setShortcut(QKeySequence::ZoomOut); zoomOutAct->setEnabled(false); @@ -179,6 +183,27 @@ void ImageViewer::adjustScrollBar(QScrollBar *scrollBar, double factor) int(factor * scrollBar->value() + ((factor - 1) * scrollBar->pageStep() / 2))); } +bool ImageViewer::eventFilter(QObject *, QEvent *event) +{ + if (event->type() == QEvent::Wheel) { + wheelEvent((QWheelEvent *)event); + return true; + } + return false; +} + +void ImageViewer::wheelEvent(QWheelEvent *event) +{ + QPoint num = event->angleDelta(); + if (!num.isNull()) { + if (num.y() > 0) + zoomIn(); + else + zoomOut(); + } + event->accept(); +} + // Local Variables: // c-basic-offset: 4 // End: diff --git a/tools/lammps-gui/imageviewer.h b/tools/lammps-gui/imageviewer.h index 56e0fda63b..edd66c9e73 100644 --- a/tools/lammps-gui/imageviewer.h +++ b/tools/lammps-gui/imageviewer.h @@ -21,9 +21,11 @@ class QAction; class QMenuBar; class QDialogButtonBox; class QLabel; +class QObject; class QScrollArea; class QScrollBar; class QStatusBar; +class QWheelEvent; class ImageViewer : public QDialog { Q_OBJECT @@ -45,6 +47,8 @@ private: void saveFile(const QString &fileName); void scaleImage(double factor); void adjustScrollBar(QScrollBar *scrollBar, double factor); + bool eventFilter(QObject *object, QEvent *event); + void wheelEvent(QWheelEvent *event); private: QImage image; @@ -62,3 +66,7 @@ private: QAction *fitToWindowAct; }; #endif + +// Local Variables: +// c-basic-offset: 4 +// End: From 49d411e7c12dc649389dabbc48cb507b5dc27ce6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Jul 2023 14:43:09 -0400 Subject: [PATCH 206/247] update --- tools/lammps-gui/TODO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index 3b1087db26..9db35a3fe6 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -17,3 +17,4 @@ LAMMPS-GUI TODO list: - have command text input file in/above status bar where individual commands can be tested. have insert button to copy line into file at the current point - support text completion as done with lammps-shell - have context menu for known commands to offer retrieving help by dispatching URL to webbrowser (process index from sphinx for that purpose) +- add a "python" mode, where instead of launching LAMMPS, python is loaded that the LAMMPS python module is made available. From 33e893dbedef12f771a44540611fb3549816cc4a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 31 Jul 2023 17:22:26 -0400 Subject: [PATCH 207/247] cleanup. must include lammps-gui in install targets. windows cross-deploy --- cmake/packaging/build_windows_cross_zip.sh | 26 ++++++++++++++++++++++ tools/lammps-gui/CMakeLists.txt | 18 ++++++++++----- 2 files changed, 39 insertions(+), 5 deletions(-) create mode 100755 cmake/packaging/build_windows_cross_zip.sh diff --git a/cmake/packaging/build_windows_cross_zip.sh b/cmake/packaging/build_windows_cross_zip.sh new file mode 100755 index 0000000000..5659b84f74 --- /dev/null +++ b/cmake/packaging/build_windows_cross_zip.sh @@ -0,0 +1,26 @@ +#!/bin/bash -vx + +APP_NAME=lammps-gui +DESTDIR=${PWD}/../LAMMPS_GUI + +echo "Delete old files, if they exist" +rm -rvf ${DESTDIR} LAMMPS-Win10-amd64.zip + +echo "Create staging area for deployment and populate" +DESTDIR=${DESTDIR} cmake --install . --prefix "/" + +echo "Add required dependencies for Qt" +for dll in Qt5Core.dll Qt5Gui.dll Qt5Widgets.dll +do \ + cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/${dll} ${DESTDIR}/bin/ +done +for dir in styles platforms imageformats +do \ + mkdir -p ${DESTDIR}/${dir} + cp -r /usr/x86_64-w64-mingw32/sys-root/mingw/lib/qt5/plugins/${dir}/*.dll ${DESTDIR}/${dir} +done + +pushd .. +zip -9rv LAMMPS-Win10-amd64.zip LAMMPS_GUI +popd +exit 0 diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index adfe236ee5..489108ba45 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -2,8 +2,6 @@ cmake_minimum_required(VERSION 3.10) project(lammps-gui VERSION 0.9.1 LANGUAGES CXX) -set(CMAKE_INCLUDE_CURRENT_DIR ON) - set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) @@ -11,7 +9,14 @@ set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) +# checks option(LAMMPS_GUI_USE_PLUGIN "Load LAMMPS library dynamically at runtime" OFF) +if(NOT LAMMPS_EXCEPTIONS) + message(FATAL_ERROR "Must enable LAMMPS_EXCEPTIONS for building the LAMMPS GUI") +endif() +if(BUILD_MPI) + message(FATAL_ERROR "Must disable BUILD_MPI or building the LAMMPS GUI") +endif() # when this file is included as subdirectory in the LAMMPS build, many settings are directly imported if(LAMMPS_DIR) @@ -50,15 +55,15 @@ else() add_compile_definitions(_CRT_SECURE_NO_WARNINGS) endif() endif() - -set(LAMMPS_PLUGINLIB_DIR ${LAMMPS_DIR}/examples/COUPLE/plugin) -find_package(Qt5 REQUIRED COMPONENTS Widgets) +set(LAMMPS_PLUGINLIB_DIR ${LAMMPS_DIR}/examples/COUPLE/plugin) if(LAMMPS_GUI_USE_PLUGIN) enable_language(C) set(PLUGIN_LOADER_SRC ${LAMMPS_PLUGINLIB_DIR}/liblammpsplugin.c) endif() +find_package(Qt5 REQUIRED COMPONENTS Widgets) + set(PROJECT_SOURCES main.cpp codeeditor.cpp @@ -98,6 +103,7 @@ else() target_include_directories(lammps-gui PRIVATE ${LAMMPS_HEADER_DIR}) target_link_libraries(lammps-gui PRIVATE ${LAMMPS_LIBRARY}) endif() +target_include_directories(lammps-gui PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_definitions(lammps-gui PRIVATE LAMMPS_GUI_VERSION="${PROJECT_VERSION}") target_link_libraries(lammps-gui PRIVATE Qt5::Widgets) if(BUILD_OMP) @@ -147,4 +153,6 @@ if(APPLE) BYPRODUCT LAMMPS-macOS-multiarch.dmg WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) +else() + install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() From fbf05fb9a920e0ca89e97b7cbf6e38b24eef5418 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 00:32:57 -0400 Subject: [PATCH 208/247] copy runtime libs/dlls during install --- tools/lammps-gui/CMakeLists.txt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 489108ba45..cf0d3113e6 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.21) project(lammps-gui VERSION 0.9.1 LANGUAGES CXX) @@ -153,6 +153,14 @@ if(APPLE) BYPRODUCT LAMMPS-macOS-multiarch.dmg WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) +elseif(WIN32) + install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(FILES $ TYPE BIN) else() install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(TARGETS lammps-gui RUNTIME ARCHIVE LIBRARY RUNTIME FRAMEWORK BUNDLE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(TARGETS lammps-gui + COMPONENT lammps-gui + RUNTIME_DEPENDENCIES + DIRECTORIES ${CMAKE_INSTALL_LIBDIR}) endif() From be9d246b93874ef44e61a57ff4e88f042ba76c13 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 01:05:38 -0400 Subject: [PATCH 209/247] install runtime deps on Linux --- tools/lammps-gui/CMakeLists.txt | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index cf0d3113e6..30bc4b127a 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -156,11 +156,28 @@ if(APPLE) elseif(WIN32) install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) install(FILES $ TYPE BIN) + install(FILES $ TYPE BIN) + install(FILES $ TYPE BIN) else() install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) - install(TARGETS lammps-gui RUNTIME ARCHIVE LIBRARY RUNTIME FRAMEWORK BUNDLE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - install(TARGETS lammps-gui - COMPONENT lammps-gui - RUNTIME_DEPENDENCIES - DIRECTORIES ${CMAKE_INSTALL_LIBDIR}) + install(CODE [[ + file(GET_RUNTIME_DEPENDENCIES + LIBRARIES $ + EXECUTABLES $ $ + RESOLVED_DEPENDENCIES_VAR _r_deps + UNRESOLVED_DEPENDENCIES_VAR _u_deps + ) + foreach(_file ${_r_deps}) + file(INSTALL + DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" + TYPE SHARED_LIBRARY + FOLLOW_SYMLINK_CHAIN + FILES "${_file}" + ) + endforeach() + list(LENGTH _u_deps _u_length) + if("${_u_length}" GREATER 0) + message(WARNING "Unresolved dependencies detected: ${_u_deps}") + endif() + ]]) endif() From 5fdeefe0ac8726586d9c625337a6e4ed1f927602 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 01:34:08 -0400 Subject: [PATCH 210/247] Linux deployment script --- cmake/packaging/build_linux_zip.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 cmake/packaging/build_linux_zip.sh diff --git a/cmake/packaging/build_linux_zip.sh b/cmake/packaging/build_linux_zip.sh new file mode 100755 index 0000000000..0e68567873 --- /dev/null +++ b/cmake/packaging/build_linux_zip.sh @@ -0,0 +1,30 @@ +#!/bin/bash -vx + +APP_NAME=lammps-gui +DESTDIR=${PWD}/../LAMMPS_GUI + +echo "Delete old files, if they exist" +rm -rvf ${DESTDIR} LAMMPS-Linux-amd64.zip + +echo "Create staging area for deployment and populate" +DESTDIR=${DESTDIR} cmake --install . --prefix "/" + +echo "Remove libc related files" +rm -v ${DESTDIR}/lib ld*.so ${DESTDIR}/lib/ld*.so.[0-9] +rm -v ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}.so.? +rm -v ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}-[0-9].[0-9]*.so + +# get qt dir +QTDIR=$(ldd ${DESTDIR}/bin/lammps-gui | grep libQt5Core | sed -e 's/^.*=> *//' -e 's/libQt5Core.so.*$/qt5/') + +echo "Add required dependencies for Qt" +for dir in styles platforms imageformats +do \ + mkdir -p ${DESTDIR}/lib/${dir} + cp -r ${QTDIR}/plugins/${dir} ${DESTDIR}/lib/ +done + +pushd .. +zip -9rv LAMMPS-Linux-amd64.zip LAMMPS_GUI +popd +exit 0 From 349cf728b1730be2c7ecce131c49bc4a1a2e2fd7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 02:13:48 -0400 Subject: [PATCH 211/247] various tweaks, remove debug info, delete backward system libs --- cmake/packaging/build_linux_zip.sh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/cmake/packaging/build_linux_zip.sh b/cmake/packaging/build_linux_zip.sh index 0e68567873..4c1c7d2c12 100755 --- a/cmake/packaging/build_linux_zip.sh +++ b/cmake/packaging/build_linux_zip.sh @@ -9,19 +9,30 @@ rm -rvf ${DESTDIR} LAMMPS-Linux-amd64.zip echo "Create staging area for deployment and populate" DESTDIR=${DESTDIR} cmake --install . --prefix "/" -echo "Remove libc related files" -rm -v ${DESTDIR}/lib ld*.so ${DESTDIR}/lib/ld*.so.[0-9] +echo "Remove debug info" +for s in ${DESTDIR}/bin/* ${DESTDIR}/lib/liblammps* +do \ + strip --strip-debug $s +done + +echo "Remove libc, gcc, and X11 related files" +rm -v ${DESTDIR}/lib/ld*.so ${DESTDIR}/lib/ld*.so.[0-9] rm -v ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}.so.? rm -v ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}-[0-9].[0-9]*.so +rm -v ${DESTDIR}/lib/libX* ${DESTDIR}/lib/libxcb* # get qt dir QTDIR=$(ldd ${DESTDIR}/bin/lammps-gui | grep libQt5Core | sed -e 's/^.*=> *//' -e 's/libQt5Core.so.*$/qt5/') +cat > ${DESTDIR}/bin/qt.conf < Date: Tue, 1 Aug 2023 02:28:56 -0400 Subject: [PATCH 212/247] strip debug info only on files, not symlinks. get deps for Qt platform plugins --- cmake/packaging/build_linux_zip.sh | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/cmake/packaging/build_linux_zip.sh b/cmake/packaging/build_linux_zip.sh index 4c1c7d2c12..15a12ab6dd 100755 --- a/cmake/packaging/build_linux_zip.sh +++ b/cmake/packaging/build_linux_zip.sh @@ -12,7 +12,7 @@ DESTDIR=${DESTDIR} cmake --install . --prefix "/" echo "Remove debug info" for s in ${DESTDIR}/bin/* ${DESTDIR}/lib/liblammps* do \ - strip --strip-debug $s + test -f $s && strip --strip-debug $s done echo "Remove libc, gcc, and X11 related files" @@ -28,10 +28,20 @@ cat > ${DESTDIR}/bin/qt.conf < *//' -e 's/\(libQt5.*.so.*\) .*$/\1/') +for dep in ${QTDEPS} +do \ + cp ${dep} ${DESTDIR}/lib +done + +echo "Add required dependencies for Qt" +for dir in styles imageformats do \ - mkdir -p ${DESTDIR}/qt5plugins cp -r ${QTDIR}/plugins/${dir} ${DESTDIR}/qt5plugins/ done From 488b4d46cd5e859203d7ebde314a29c6d63eb630 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 02:36:43 -0400 Subject: [PATCH 213/247] fix minor issues --- cmake/packaging/build_linux_zip.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cmake/packaging/build_linux_zip.sh b/cmake/packaging/build_linux_zip.sh index 15a12ab6dd..7496336efd 100755 --- a/cmake/packaging/build_linux_zip.sh +++ b/cmake/packaging/build_linux_zip.sh @@ -4,7 +4,7 @@ APP_NAME=lammps-gui DESTDIR=${PWD}/../LAMMPS_GUI echo "Delete old files, if they exist" -rm -rvf ${DESTDIR} LAMMPS-Linux-amd64.zip +rm -rvf ${DESTDIR} ../LAMMPS-Linux-amd64.zip echo "Create staging area for deployment and populate" DESTDIR=${DESTDIR} cmake --install . --prefix "/" @@ -30,7 +30,7 @@ EOF # platform plugin mkdir -p ${DESTDIR}/qt5plugins/platforms -cp ${QTDIR}/plugins/platform/libqxcb.so ${DESTDIR}/qt5plugins/platforms +cp ${QTDIR}/plugins/platforms/libqxcb.so ${DESTDIR}/qt5plugins/platforms # get platform plugin dependencies QTDEPS=$(LD_LIBRARY_PATH=${DESTDIR}/lib ldd ${QTDIR}/plugins/platforms/libqxcb.so | grep -v ${DESTDIR} | grep libQt5 | sed -e 's/^.*=> *//' -e 's/\(libQt5.*.so.*\) .*$/\1/') @@ -48,4 +48,7 @@ done pushd .. zip -9rv LAMMPS-Linux-amd64.zip LAMMPS_GUI popd + +echo "Cleanup dir" +rm -r ${DESTDIR} exit 0 From 418b2c3df0a301a6c74c706f798966c6c2ca7e1d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 03:00:33 -0400 Subject: [PATCH 214/247] integrate wrapper script for linux --- cmake/packaging/build_linux_zip.sh | 11 +++++++++++ cmake/packaging/linux_wrapper.sh | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100755 cmake/packaging/linux_wrapper.sh diff --git a/cmake/packaging/build_linux_zip.sh b/cmake/packaging/build_linux_zip.sh index 7496336efd..c78fe9c45f 100755 --- a/cmake/packaging/build_linux_zip.sh +++ b/cmake/packaging/build_linux_zip.sh @@ -45,6 +45,17 @@ do \ cp -r ${QTDIR}/plugins/${dir} ${DESTDIR}/qt5plugins/ done +echo "Set up wrapper script" +MYDIR=$(dirname "$0") +cp ${MYDIR}/linux_wrapper.sh ${DESTDIR}/bin +for s in ${DESTDIR}/bin/* +do \ + EXE=$(basename $s) + test ${EXE} = linux_wrapper.sh && continue + test ${EXE} = qt.conf && continue + ln -s bin/linux_wrapper.sh ${DESTDIR}/${EXE} +done + pushd .. zip -9rv LAMMPS-Linux-amd64.zip LAMMPS_GUI popd diff --git a/cmake/packaging/linux_wrapper.sh b/cmake/packaging/linux_wrapper.sh new file mode 100755 index 0000000000..86cd50599c --- /dev/null +++ b/cmake/packaging/linux_wrapper.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# wrapper for bundled executables + +BASEDIR=$(dirname "$0") +EXENAME=$(basename "$0") + +# append to LD_LIBRARY_PATH to prefer local (newer) libs +LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${BASEDIR}/lib +export LD_LIBRARY_PATH + +exec "${BASEDIR}/bin/${EXENAME}" "$@" From 89b205a08e15bd3020e37c27fef3b61db37c03d9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 03:48:57 -0400 Subject: [PATCH 215/247] must use tar to preserve symlinks --- cmake/packaging/build_linux_zip.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/packaging/build_linux_zip.sh b/cmake/packaging/build_linux_zip.sh index c78fe9c45f..a08a2ce1a0 100755 --- a/cmake/packaging/build_linux_zip.sh +++ b/cmake/packaging/build_linux_zip.sh @@ -1,10 +1,10 @@ -#!/bin/bash -vx +#!/bin/bash APP_NAME=lammps-gui DESTDIR=${PWD}/../LAMMPS_GUI echo "Delete old files, if they exist" -rm -rvf ${DESTDIR} ../LAMMPS-Linux-amd64.zip +rm -rf ${DESTDIR} ../LAMMPS-Linux-amd64.tar.gz echo "Create staging area for deployment and populate" DESTDIR=${DESTDIR} cmake --install . --prefix "/" @@ -39,7 +39,7 @@ do \ cp ${dep} ${DESTDIR}/lib done -echo "Add required dependencies for Qt" +echo "Add additional plugins for Qt" for dir in styles imageformats do \ cp -r ${QTDIR}/plugins/${dir} ${DESTDIR}/qt5plugins/ @@ -57,7 +57,7 @@ do \ done pushd .. -zip -9rv LAMMPS-Linux-amd64.zip LAMMPS_GUI +tar -czvvf LAMMPS-Linux-amd64.tar.gz LAMMPS_GUI popd echo "Cleanup dir" From 44cec03729c573d83dab38df235c230530828a20 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 04:11:57 -0400 Subject: [PATCH 216/247] set environment variables to find potentials and frc files --- cmake/packaging/linux_wrapper.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmake/packaging/linux_wrapper.sh b/cmake/packaging/linux_wrapper.sh index 86cd50599c..b3aee1cb4f 100755 --- a/cmake/packaging/linux_wrapper.sh +++ b/cmake/packaging/linux_wrapper.sh @@ -6,6 +6,10 @@ EXENAME=$(basename "$0") # append to LD_LIBRARY_PATH to prefer local (newer) libs LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${BASEDIR}/lib -export LD_LIBRARY_PATH + +# set some environment variables for LAMMPS etc. +LAMMPS_POTENTIALS=${BASEDIR}/share/lammps/potentials +MSI2LMP_LIBRARY=${BASEDIR}/share/lammps/frc_files +export LD_LIBRARY_PATH LAMMPS_POTENTIALS MSI2LMP_LIBRARY exec "${BASEDIR}/bin/${EXENAME}" "$@" From d38ec56f3a62bb20a7147a6a75bcd39cf1608836 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 04:28:54 -0400 Subject: [PATCH 217/247] more tweaks. avoid warnings. get dependencies for imageformats. --- cmake/packaging/build_linux_zip.sh | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/cmake/packaging/build_linux_zip.sh b/cmake/packaging/build_linux_zip.sh index a08a2ce1a0..e0222858ce 100755 --- a/cmake/packaging/build_linux_zip.sh +++ b/cmake/packaging/build_linux_zip.sh @@ -15,11 +15,13 @@ do \ test -f $s && strip --strip-debug $s done -echo "Remove libc, gcc, and X11 related files" -rm -v ${DESTDIR}/lib/ld*.so ${DESTDIR}/lib/ld*.so.[0-9] -rm -v ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}.so.? -rm -v ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}-[0-9].[0-9]*.so -rm -v ${DESTDIR}/lib/libX* ${DESTDIR}/lib/libxcb* +echo "Remove libc, gcc, and X11 related shared libs" +rm -f ${DESTDIR}/lib/ld*.so ${DESTDIR}/lib/ld*.so.[0-9] +rm -f ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}.so.? +rm -f ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}-[0-9].[0-9]*.so +rm -f ${DESTDIR}/lib/libX* ${DESTDIR}/lib/libxcb* +rm -f ${DESTDIR}/lib/libgcc_s* +rm -f ${DESTDIR}/lib/libstdc++* # get qt dir QTDIR=$(ldd ${DESTDIR}/bin/lammps-gui | grep libQt5Core | sed -e 's/^.*=> *//' -e 's/libQt5Core.so.*$/qt5/') @@ -45,6 +47,16 @@ do \ cp -r ${QTDIR}/plugins/${dir} ${DESTDIR}/qt5plugins/ done +# get imageplugin dependencies +for s in ${DESTDIR}/qt5plugins/imageformats/*.so +do \ + QTDEPS=$(LD_LIBRARY_PATH=${DESTDIR}/lib ldd $s | grep -v ${DESTDIR} | grep -E '(libQt5|jpeg)' | sed -e 's/^.*=> *//' -e 's/\(lib.*.so.*\) .*$/\1/') + for dep in ${QTDEPS} + do \ + cp ${dep} ${DESTDIR}/lib + done +done + echo "Set up wrapper script" MYDIR=$(dirname "$0") cp ${MYDIR}/linux_wrapper.sh ${DESTDIR}/bin From b67de91feb1499bcc46d3c394c4eab5fb33a33bf Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 04:29:13 -0400 Subject: [PATCH 218/247] rename script --- cmake/packaging/{build_linux_zip.sh => build_linux_tgz.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename cmake/packaging/{build_linux_zip.sh => build_linux_tgz.sh} (100%) diff --git a/cmake/packaging/build_linux_zip.sh b/cmake/packaging/build_linux_tgz.sh similarity index 100% rename from cmake/packaging/build_linux_zip.sh rename to cmake/packaging/build_linux_tgz.sh From 1f829dd2e9f74d24624e3423bf5922de95f8728c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 08:20:22 -0400 Subject: [PATCH 219/247] ignore install folder created by VS --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ed514d96fa..8b711047de 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ out/x64 src/Makefile.package-e src/Makefile.package.settings-e /cmake/build/x64-Debug-Clang +/install/x64-GUI-MSVC From b9682fc6fd3885fa82e4fe0bd216bb0f46e225c9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 14:38:48 -0400 Subject: [PATCH 220/247] zip file packaging for windows --- .gitignore | 1 + cmake/packaging/build_windows_vs.cmake | 28 ++++++++++++++++++++++++++ tools/lammps-gui/CMakeLists.txt | 7 +++++++ 3 files changed, 36 insertions(+) create mode 100644 cmake/packaging/build_windows_vs.cmake diff --git a/.gitignore b/.gitignore index 8b711047de..4faef4b8db 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ src/Makefile.package-e src/Makefile.package.settings-e /cmake/build/x64-Debug-Clang /install/x64-GUI-MSVC +/install diff --git a/cmake/packaging/build_windows_vs.cmake b/cmake/packaging/build_windows_vs.cmake new file mode 100644 index 0000000000..225de17854 --- /dev/null +++ b/cmake/packaging/build_windows_vs.cmake @@ -0,0 +1,28 @@ +# CMake script to be run post installation to build zipped package + +# clean up old zipfile and deployment tree +file(REMOVE LAMMPS-Win10-amd64.zip) +file(REMOVE_RECURSE LAMMPS_GUI) +file(RENAME ${INSTNAME} LAMMPS_GUI) + +# move all executables and dlls to main folder and delete bin folder +file(GLOB BINFILES LIST_DIRECTORIES FALSE LAMMPS_GUI/bin/*.exe LAMMPS_GUI/bin/*.dll) +foreach(bin ${BINFILES}) + get_filename_component(exe ${bin} NAME) + file(RENAME ${bin} LAMMPS_GUI/${exe}) +endforeach() +file(REMOVE_RECURSE LAMMPS_GUI/bin) + +# create qt.conf so Qt will find its plugins +file(WRITE LAMMPS_GUI/qt.conf "[Paths]\r\nPlugins = qt5plugins\r\n") + +# initialize environment and then run windeployqt to populate folder with missing dependencies and Qt plugins +file(WRITE qtdeploy.bat "@ECHO OFF\r\nset VSCMD_DEBUG=0\r\nCALL ${VC_INIT} x64\r\nset PATH=${QT5_BIN_DIR};%PATH%\r\nwindeployqt --plugindir LAMMPS_GUI/qt5plugins --release LAMMPS_GUI/lammps-gui.exe --no-quick-import --no-webkit2 --no-translations --no-system-d3d-compiler --no-angle --no-opengl-sw\r\n") +execute_process(COMMAND cmd.exe /c qtdeploy.bat COMMAND_ECHO STDERR) +file(REMOVE qtdeploy.bat) + +# create zip archive +file(WRITE makearchive.ps1 "Compress-Archive -Path LAMMPS_GUI -CompressionLevel Optimal -DestinationPath LAMMPS-Win10-amd64.zip") +execute_process(COMMAND powershell -ExecutionPolicy Bypass -File makearchive.ps1) +file(REMOVE makearchive.ps1) +file(REMOVE_RECURSE LAMMPS_GUI) \ No newline at end of file diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 30bc4b127a..c011b7c938 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -158,6 +158,13 @@ elseif(WIN32) install(FILES $ TYPE BIN) install(FILES $ TYPE BIN) install(FILES $ TYPE BIN) + # find path to VC++ init batch file + get_filename_component(VC_COMPILER_DIR "${CMAKE_CXX_COMPILER}" DIRECTORY) + get_filename_component(VC_BASE_DIR "${VC_COMPILER_DIR}/../../../../../.." ABSOLUTE) + set(VC_INIT "${VC_BASE_DIR}/Auxiliary/Build/vcvarsall.bat") + get_filename_component(QT5_BIN_DIR "${Qt5Core_DIR}/../../../bin" ABSOLUTE) + get_filename_component(INSTNAME ${CMAKE_INSTALL_PREFIX} NAME) + install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -D INSTNAME=${INSTNAME} -D VC_INIT=\"${VC_INIT}\" -D QT5_BIN_DIR=\"${QT5_BIN_DIR}\" -P \"${CMAKE_SOURCE_DIR}/packaging/build_windows_vs.cmake\" WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}/..\" COMMAND_ECHO STDOUT)") else() install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) install(CODE [[ From fd9af7d5c913a6ed34e30a42d0afb7d3d7e4c8f1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 15:32:24 -0400 Subject: [PATCH 221/247] this is packaging/install for visual studio only --- tools/lammps-gui/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index c011b7c938..ff7804c8dd 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -153,7 +153,7 @@ if(APPLE) BYPRODUCT LAMMPS-macOS-multiarch.dmg WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) -elseif(WIN32) +elseif(MSVC) install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) install(FILES $ TYPE BIN) install(FILES $ TYPE BIN) From f2bc41a83cb85121cb6b769c701776be12a763a2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 15:38:07 -0400 Subject: [PATCH 222/247] we should be ok with CMake 3.16 as minimum version again. --- tools/lammps-gui/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index ff7804c8dd..6b96fb315e 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.21) +cmake_minimum_required(VERSION 3.16) project(lammps-gui VERSION 0.9.1 LANGUAGES CXX) From 4f1946f307aad8a188608920932a10b7238738cc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 18:12:37 -0400 Subject: [PATCH 223/247] update LAMMPS GUI docs --- doc/src/Tools.rst | 171 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 135 insertions(+), 36 deletions(-) diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index a8ff70c12d..6fe256a3c7 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -640,67 +640,138 @@ you first need to use the :doc:`clear` command. LAMMPS GUI ---------- -.. versionadded:: TBD +.. versionadded:: 2Aug2023 Overview ^^^^^^^^ LAMMPS GUI is essentially a small graphical text editor that is linked to the :ref:`LAMMPS C-library interface ` and thus can run -LAMMPS using the contents of the editor's text buffer as input. This is similar to what people usually -would do using a text editor to edit the input and then a command line -terminal window to run the input commands. The main benefit is that -this integrates very well with graphical desktop environments and that -it is easier to use for beginners in running computations and thus very -suitable for tutorials on LAMMPS. A small difference is that for the -LAMMPS GUI it is not require to commit its buffer to a file first. +LAMMPS directly using the contents of the editor's text buffer as input. +This is similar to what people usually would do using a text editor to +edit the input and then a command line terminal window to run the input +commands. The main benefit is that this integrates very well with +graphical desktop environments and that it is easier to use for +beginners in running computations and thus very suitable for tutorials +on LAMMPS. A small difference is that for the LAMMPS GUI it is not +require to first commit its buffer of the text editor to a file. Features ^^^^^^^^ The main window of the LAMMPS GUI is a generic text editor window with line numbers and syntax highlighting set up for LAMMPS input files. It -can be used to edit any kind of text file. The output of a run is -captured and displayed in a separate dialog window and not sent to the -console. The log window is regularly updated during the run and a -progress bar for the run command shown in the main window. Starting a -new run will open another log windows. The state of LAMMPS will be reset -between two runs. After the simulation is finished, an image of the -simulated system can be created and shown in an image viewer window. -Ongoing runs can be stopped at the next iteration via triggering a -timeout. +can be used to edit any kind of text file, though. The output of a run +is captured and displayed in a separate dialog window and *not* sent to +the console or a log file (unless the :doc:`log command ` is used +in the input. The log window is regularly updated during the run and a +progress bar for the run command shown at the bottom of the main window. +Starting a new run will open another log windows. The state of LAMMPS +will be reset between two runs. After the simulation is finished, an +image of the simulated system can be created and shown in an image +viewer window. Ongoing runs can be stopped at the next iteration via +triggering a timeout. When opening a file, the editor will determine the directory where the -file resides and switch its current working directory to that folder. -Many LAMMPS inputs contain commands that read other files, typically -from the folder with the input file. The GUI will always show the -current working directory. The editor window can also receive (entire) -files via drag-n-drop from a file manager GUI or a desktop environment. -When exiting the GUI with a modified buffer, a dialog asking to either -cancel, ignore the modifications, or save the file with show up. Same -when attempting to load a new file into a modified buffer. +file resides and switch its current working directory to the folder of +that file. Many LAMMPS inputs contain commands that read other files, +typically from the folder of the input file. The GUI will always show +the current working directory in the bottom. The editor window can also +receive (entire) files via drag-n-drop from a file manager GUI or a +desktop environment. When exiting the GUI with a modified buffer, a +dialog asking to either cancel, ignore the modifications, or save the +file with show up. Same when attempting to load a new file into a +modified buffer. + +Hotkeys +^^^^^^^ Almost all functionality is accessible from the menu or via hotkeys. -Which those hotkeys are, is shown next to the entries in the menu. Log -and image viewer windows can be closed with CTRL-W (or Command-W on -macOS). The "About LAMMPS" dialog will show the LAMMPS version and the -features included into the LAMMPS library linked to the LAMMPS GUI. +The following hotkeys are available (On macOS use the Command key +instead of Ctrl (aka Control)). + +.. list-table:: + :header-rows: 1 + :widths: auto + + * - Hotkey + - Function + - Hotkey + - Function + - Hotkey + - Function + - Hotkey + - Function + * - Ctrl+N + - New File + - Ctrl+Z + - Undo edit + - Ctrl+V + - Paste text + - Ctrl+Q + - Quit (Main Window only) + * - Ctrl+O + - Open File + - Ctrl+Shift+Z + - Redo edit + - Ctrl+Enter + - Run LAMMPS + - Ctrl+W + - Close (Log and Image Window only) + * - CTRL+S + - Save File + - Ctrl+C + - Copy text + - Ctrl+/ + - Stop Active Run + - + - + * - Ctrl+Shift+S + - Save File As + - Ctrl+X + - Cut text + - Ctrl+I + - Create Snapshot Image + - + - + +Further editing keybindings `are documented with the Qt documentation +`_. In +case of conflicts the list above takes precedence. + +Parallelization +^^^^^^^^^^^^^^^ Due to its nature as a graphical application, it is not possible to use the LAMMPS GUI in parallel with MPI, but OpenMP multi-threading is -available. +available and enabled by default. Prerequisites and portability ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LAMMPS GUI is programmed in C++ based on the C++11 standard and using -the `Qt GUI framework `_, currently -using Qt version 5.15LTS for better compatibility with older compilers -and operating systems. It has been successfully compiled and tested on: +the `Qt GUI framework `_. +Currently, Qt version 5.12 or later is required; Qt 5.15LTS is +recommended Qt 6.x not (yet) supported. Furthermore, CMake version 3.16 +is required and LAMMPS must be configured with ``-D +LAMMPS_EXCETIONS=on`` and ``-D BUILD_MPI=off``. It has been successfully +compiled and tested on: -- Fedora Linux 38 x86\_64 using GCC 13 and Clang 16 -- Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64 -- Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36 +- Ubuntu Linux 20.04LTS x86_64 using GCC 9, Qt version 5.12 +- Fedora Linux 38 x86\_64 using GCC 13 and Clang 16, Qt version 5.15LTS +- Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64, Qt version 5.15LTS +- Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36, Qt version 5.15LTS + +Pre-compiled executables +^^^^^^^^^^^^^^^^^^^^^^^^ + +Pre-compiled LAMMPS executables including the GUI are currently +available from https://download.lammps.org/static. You can unpack the +archive (or mount the macOS disk image) and run the GUI directly in +place. The folder may also be moved around and added to the ``PATH`` +environment variable so the executables will be found automatically. The +LAMMPS GUI executable is called ``lammps-gui`` and takes no arguments or +will interpret the first argument as filename to load. Compilation ^^^^^^^^^^^ @@ -755,6 +826,34 @@ with different macOS versions, you can also set 11 (Big Sur) and later, even if you are compiling on a more recent macOS version. +On macOS, compiling the LAMMPS GUI will automatically create a +custom application bundle with a drag-n-drop installer in a .dmg file. + +Windows +""""""" + +On Windows currently only compilation from within Visual Studio 2022 is supported +and tested. Compilation via CMake and Ninja is required. Qt needs to be installed, +by preference downloaded from https://www.qt.io, into the ``C:\\Qt`` folder. +There is a custom `x64-GUI-MSVC` build configuration provided that will activate +building the `lammps-gui.exe` executable in addition to LAMMPS. When requesting +an installation from the `Build` menu, it will create a compressed zip file +with the executables and required dependent .dll files. This zip file can be +uncompressed and ``lammps-gui.exe`` run directly from there. The uncompressed +folder can be added to the ``PATH`` environment and LAMMPS and LAMMPS GUI can +be launched from anywhere from the command line. + +Linux +""""" + +Version 5.12 or later of the Qt library and CMake version 3.16 are +required and those are provided by, e.g., Ubuntu 20.04LTS. Thus older +Linux distributions are not likely to be supported, while more recent +ones will work, even for pre-compiled executables (see above). After +compiling with ``cmake --build ``, the script +``cmake/packaging/build-linux-tar.sh`` needs to be run to build a tar.gz +file with the executables and their support libraries. + ---------- .. _arc: From f1cda322feefc8a7a40c887caff81554798c318c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 18:20:44 -0400 Subject: [PATCH 224/247] make it LAMMPS GUI version 1.0.0 since we're including it in the stable version --- tools/lammps-gui/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 6b96fb315e..a716770126 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.16) -project(lammps-gui VERSION 0.9.1 LANGUAGES CXX) +project(lammps-gui VERSION 1.0.0 LANGUAGES CXX) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) From ea5a20afc5abaa60415dcbd300fbffd03faf072a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 18:39:20 -0400 Subject: [PATCH 225/247] add missing versionchanged tags --- src/library.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/library.cpp b/src/library.cpp index d0cad391cb..d61c83be7c 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -6496,6 +6496,8 @@ has thrown a :ref:`C++ exception `. .. note:: + .. versionchanged: 2Aug2023 + The *handle* pointer may be ``NULL`` for this function, as would be the case when a call to create a LAMMPS instance has failed. Then this function will not check the error status inside the LAMMPS @@ -6546,6 +6548,8 @@ the failing MPI ranks to send messages. .. note:: + .. versionchanged: 2Aug2023 + The *handle* pointer may be ``NULL`` for this function, as would be the case when a call to create a LAMMPS instance has failed. Then this function will not check the error buffer inside the LAMMPS From 22a9f869ea33226909e4b2dd3c7d5e78c9ac80d8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 18:39:42 -0400 Subject: [PATCH 226/247] change version date --- doc/lammps.1 | 4 ++-- src/version.h | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/doc/lammps.1 b/doc/lammps.1 index 9bc107624f..79964d1680 100644 --- a/doc/lammps.1 +++ b/doc/lammps.1 @@ -1,7 +1,7 @@ -.TH LAMMPS "1" "15 June 2023" "2023-06-15" +.TH LAMMPS "1" "2 August 2023" "2023-08-2" .SH NAME .B LAMMPS -\- Molecular Dynamics Simulator. Version 15 June 2023 +\- Molecular Dynamics Simulator. Version 2 August 2023 .SH SYNOPSIS .B lmp diff --git a/src/version.h b/src/version.h index 2a1c8a9a37..15d6002fd4 100644 --- a/src/version.h +++ b/src/version.h @@ -1,2 +1 @@ -#define LAMMPS_VERSION "15 Jun 2023" -#define LAMMPS_UPDATE "Development" +#define LAMMPS_VERSION "2 Aug 2023" From f76300c4f872d8bd2ca5484bf30fe871271bc0f4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 20:42:10 -0400 Subject: [PATCH 227/247] do not build packages automatically but use explicit targets --- cmake/packaging/LAMMPS_DMG_Setup.scpt | 58 ------------------- ...cos-dmg-with-gui.sh => build_macos_dmg.sh} | 0 doc/src/Tools.rst | 48 +++++++-------- tools/lammps-gui/CMakeLists.txt | 19 ++++-- 4 files changed, 38 insertions(+), 87 deletions(-) delete mode 100644 cmake/packaging/LAMMPS_DMG_Setup.scpt rename cmake/packaging/{build-macos-dmg-with-gui.sh => build_macos_dmg.sh} (100%) diff --git a/cmake/packaging/LAMMPS_DMG_Setup.scpt b/cmake/packaging/LAMMPS_DMG_Setup.scpt deleted file mode 100644 index b3da5bd094..0000000000 --- a/cmake/packaging/LAMMPS_DMG_Setup.scpt +++ /dev/null @@ -1,58 +0,0 @@ -on run argv - set image_name to item 1 of argv - - tell application "Finder" - tell disk image_name - - -- wait for the image to finish mounting - set open_attempts to 0 - repeat while open_attempts < 4 - try - open - delay 1 - set open_attempts to 5 - close - on error errStr number errorNumber - set open_attempts to open_attempts + 1 - delay 10 - end try - end repeat - delay 5 - - -- open the image the first time and save a DS_Store with just - -- background and icon setup - open - set current view of container window to icon view - set theViewOptions to the icon view options of container window - set background picture of theViewOptions to file ".background:background.png" - set arrangement of theViewOptions to not arranged - set icon size of theViewOptions to 64 - delay 5 - close - - -- next setup the position of the app and Applications symlink - -- plus hide all the window decoration - open - update without registering applications - tell container window - set sidebar width to 0 - set statusbar visible to false - set toolbar visible to false - set the bounds to { 100, 40, 868, 640 } - set position of item "LAMMPS" to { 190, 216 } - set position of item "Applications" to { 576, 216 } - set position of item "README.txt" to { 190, 400 } - end tell - update without registering applications - delay 5 - close - - -- one last open and close so you can see everything looks correct - open - delay 5 - close - - end tell - delay 1 -end tell -end run diff --git a/cmake/packaging/build-macos-dmg-with-gui.sh b/cmake/packaging/build_macos_dmg.sh similarity index 100% rename from cmake/packaging/build-macos-dmg-with-gui.sh rename to cmake/packaging/build_macos_dmg.sh diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index 6fe256a3c7..2e889f52ec 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -817,42 +817,44 @@ macOS """"" When building on macOS, the build procedure will try to manufacture a -drag-n-drop installer, LAMMPS-macOS-multiarch.dmg. To build multi-arch -executables that will run on both, arm64 and x86_64 architectures -natively, it is necessary to set the CMake variable -``-D CMAKE_OSX_ARCHITECTURES=arm64;x86_64``. To achieve wide compatibility -with different macOS versions, you can also set -``-D CMAKE_OSX_DEPLOYMENT_TARGET=11.0`` which will set compatibility to macOS +drag-n-drop installer, LAMMPS-macOS-multiarch.dmg, when using the 'dmg' +target (i.e. `cmake --build --target dmg` or `make dmg`. + +To build multi-arch executables that will run on both, arm64 and x86_64 +architectures natively, it is necessary to set the CMake variable ``-D +CMAKE_OSX_ARCHITECTURES=arm64;x86_64``. To achieve wide compatibility +with different macOS versions, you can also set ``-D +CMAKE_OSX_DEPLOYMENT_TARGET=11.0`` which will set compatibility to macOS 11 (Big Sur) and later, even if you are compiling on a more recent macOS version. -On macOS, compiling the LAMMPS GUI will automatically create a -custom application bundle with a drag-n-drop installer in a .dmg file. - Windows """"""" -On Windows currently only compilation from within Visual Studio 2022 is supported -and tested. Compilation via CMake and Ninja is required. Qt needs to be installed, -by preference downloaded from https://www.qt.io, into the ``C:\\Qt`` folder. -There is a custom `x64-GUI-MSVC` build configuration provided that will activate -building the `lammps-gui.exe` executable in addition to LAMMPS. When requesting -an installation from the `Build` menu, it will create a compressed zip file -with the executables and required dependent .dll files. This zip file can be -uncompressed and ``lammps-gui.exe`` run directly from there. The uncompressed -folder can be added to the ``PATH`` environment and LAMMPS and LAMMPS GUI can -be launched from anywhere from the command line. +On Windows currently only compilation from within Visual Studio 2022 is +supported and tested. Using CMake and Ninja as build system is +required. Qt needs to be installed, tested was a package downloaded from +https://www.qt.io, into the ``C:\\Qt`` folder. There is a custom +`x64-GUI-MSVC` build configuration provided that will activate building +the `lammps-gui.exe` executable in addition to LAMMPS. When requesting +an installation from the `Build` menu, it will create a compressed zip +file with the executables and required dependent .dll files. This zip +file can be uncompressed and ``lammps-gui.exe`` run directly from there. +The uncompressed folder can be added to the ``PATH`` environment and +LAMMPS and LAMMPS GUI can be launched from anywhere from the command +line. Linux """"" Version 5.12 or later of the Qt library and CMake version 3.16 are -required and those are provided by, e.g., Ubuntu 20.04LTS. Thus older +required and those are provided by, e.g., Ubuntu 20.04LTS. Thus older Linux distributions are not likely to be supported, while more recent ones will work, even for pre-compiled executables (see above). After -compiling with ``cmake --build ``, the script -``cmake/packaging/build-linux-tar.sh`` needs to be run to build a tar.gz -file with the executables and their support libraries. +compiling with ``cmake --build ``, use +``cmake --build --target tgz`` or ``make tgz`` to build +a ``LAMMPS-Linux-amd64.tar.gz`` file with the executables and their +support libraries. ---------- diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index a716770126..fb0b9ad0e8 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -122,7 +122,7 @@ if(APPLE) ) # additional steps to populate the bundle tree and create the .dmg image file set(APP_CONTENTS ${CMAKE_BINARY_DIR}/lammps-gui.app/Contents) - add_custom_target(complete-bundle ALL + add_custom_target(complete-bundle ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/bin COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/lmp ${APP_CONTENTS}/bin/ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/msi2lmp ${APP_CONTENTS}/bin/ @@ -146,8 +146,8 @@ if(APPLE) COMMENT "Copying additional files into macOS app bundle tree" WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) - add_custom_target(build-dmg ALL - COMMAND ${LAMMPS_DIR}/cmake/packaging/build-macos-dmg-with-gui.sh + add_custom_target(dmg + COMMAND ${LAMMPS_DIR}/cmake/packaging/build_macos_dmg.sh DEPENDS complete-bundle COMMENT "Create Drag-n-Drop installer disk image from app bundle" BYPRODUCT LAMMPS-macOS-multiarch.dmg @@ -165,7 +165,7 @@ elseif(MSVC) get_filename_component(QT5_BIN_DIR "${Qt5Core_DIR}/../../../bin" ABSOLUTE) get_filename_component(INSTNAME ${CMAKE_INSTALL_PREFIX} NAME) install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -D INSTNAME=${INSTNAME} -D VC_INIT=\"${VC_INIT}\" -D QT5_BIN_DIR=\"${QT5_BIN_DIR}\" -P \"${CMAKE_SOURCE_DIR}/packaging/build_windows_vs.cmake\" WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}/..\" COMMAND_ECHO STDOUT)") -else() +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) install(CODE [[ file(GET_RUNTIME_DEPENDENCIES @@ -185,6 +185,13 @@ else() list(LENGTH _u_deps _u_length) if("${_u_length}" GREATER 0) message(WARNING "Unresolved dependencies detected: ${_u_deps}") - endif() - ]]) + endif() ]] + ) + add_custom_target(tgz + COMMAND ${LAMMPS_DIR}/cmake/packaging/build_linux_tgz.sh + DEPENDS lammps-gui + COMMENT "Create compressed tar file of LAMMPS with dependent libraries and wrapper" + BYPRODUCT LAMMPS-Linux-amd64.tar.gz + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) endif() From 310ede65d9c62bd0d48c5ff4e2858d19dad77fa6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 1 Aug 2023 20:49:38 -0400 Subject: [PATCH 228/247] apply coding standard checks --- cmake/packaging/build_windows_vs.cmake | 2 +- tools/coding_standard/permissions.py | 1 + tools/coding_standard/whitespace.py | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cmake/packaging/build_windows_vs.cmake b/cmake/packaging/build_windows_vs.cmake index 225de17854..f051ff351f 100644 --- a/cmake/packaging/build_windows_vs.cmake +++ b/cmake/packaging/build_windows_vs.cmake @@ -25,4 +25,4 @@ file(REMOVE qtdeploy.bat) file(WRITE makearchive.ps1 "Compress-Archive -Path LAMMPS_GUI -CompressionLevel Optimal -DestinationPath LAMMPS-Win10-amd64.zip") execute_process(COMMAND powershell -ExecutionPolicy Bypass -File makearchive.ps1) file(REMOVE makearchive.ps1) -file(REMOVE_RECURSE LAMMPS_GUI) \ No newline at end of file +file(REMOVE_RECURSE LAMMPS_GUI) diff --git a/tools/coding_standard/permissions.py b/tools/coding_standard/permissions.py index f76cfc1883..377de2015b 100644 --- a/tools/coding_standard/permissions.py +++ b/tools/coding_standard/permissions.py @@ -26,6 +26,7 @@ include: - src/** - examples/** - tools/coding_standard + - tools/lammps-gui patterns: - "*.c" - "*.cmake" diff --git a/tools/coding_standard/whitespace.py b/tools/coding_standard/whitespace.py index 1c980717d6..7f602ca9b0 100644 --- a/tools/coding_standard/whitespace.py +++ b/tools/coding_standard/whitespace.py @@ -30,6 +30,7 @@ include: - lib/** - tools/coding_standard - tools/python + - tools/lammps-gui - unittest/** exclude: - lib/colvars/Install.py From 8a53c66bef09db133c4800615c4e9e7f1901ed44 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 01:10:49 -0400 Subject: [PATCH 229/247] refactor. add LammpsWrapper class to hide plugin defines and interface changes. --- tools/lammps-gui/CMakeLists.txt | 3 +- tools/lammps-gui/lammpsgui.cpp | 211 ++++++++++------------------- tools/lammps-gui/lammpsgui.h | 12 +- tools/lammps-gui/lammpsrunner.cpp | 44 ------ tools/lammps-gui/lammpsrunner.h | 18 ++- tools/lammps-gui/lammpswrapper.cpp | 185 +++++++++++++++++++++++++ tools/lammps-gui/lammpswrapper.h | 49 +++++++ 7 files changed, 327 insertions(+), 195 deletions(-) delete mode 100644 tools/lammps-gui/lammpsrunner.cpp create mode 100644 tools/lammps-gui/lammpswrapper.cpp create mode 100644 tools/lammps-gui/lammpswrapper.h diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index fb0b9ad0e8..ebefd99d03 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -76,8 +76,9 @@ set(PROJECT_SOURCES lammpsgui.cpp lammpsgui.h lammpsgui.ui - lammpsrunner.cpp lammpsrunner.h + lammpswrapper.cpp + lammpswrapper.h preferences.cpp preferences.h stdcapture.cpp diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 4e91971edd..dabc5f60df 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -20,6 +20,7 @@ #include "stdcapture.h" #include "ui_lammpsgui.h" +#include #include #include #include @@ -28,21 +29,17 @@ #include #include #include +#include #include #include #include +#include #include #include #include #include -#if defined(LAMMPS_GUI_USE_PLUGIN) -#include "liblammpsplugin.h" -#else -#include "library.h" -#endif - #if defined(_OPENMP) #include #include @@ -54,6 +51,8 @@ #include #endif +static const QString blank(" "); + // duplicate string static char *mystrdup(const std::string &text) { @@ -65,8 +64,7 @@ static char *mystrdup(const std::string &text) LammpsGui::LammpsGui(QWidget *parent, const char *filename) : QMainWindow(parent), ui(new Ui::LammpsGui), highlighter(nullptr), capturer(nullptr), status(nullptr), logwindow(nullptr), imagewindow(nullptr), logupdater(nullptr), - dirstatus(nullptr), progress(nullptr), prefdialog(nullptr), lammps_handle(nullptr), - plugin_handle(nullptr), plugin_path(nullptr), is_running(false) + dirstatus(nullptr), progress(nullptr), prefdialog(nullptr) { ui->setupUi(this); this->setCentralWidget(ui->textEdit); @@ -77,9 +75,16 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : current_dir = QDir(".").absolutePath(); recent_files.clear(); + QCoreApplication::setOrganizationName("The LAMMPS Developers"); + QCoreApplication::setOrganizationDomain("lammps.org"); + QCoreApplication::setApplicationName("LAMMPS GUI"); + + // restorge and initialize settings + QSettings settings; + #if defined(_OPENMP) // use maximum number of available threads unless OMP_NUM_THREADS was set - nthreads = omp_get_max_threads(); + nthreads = settings.value("nthreads", omp_get_max_threads()).toInt(); #if _WIN32 if (!getenv("OMP_NUM_THREADS")) { _putenv_s("OMP_NUM_THREADS", std::to_string(nthreads).c_str()); @@ -88,7 +93,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : setenv("OMP_NUM_THREADS", std::to_string(nthreads).c_str(), 0); #endif #else - nthreads = 1; + nthreads = settings.value("nthreads", 1).toInt(); #endif const char *tmpdir = getenv("TMPDIR"); @@ -100,14 +105,14 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : #else if (!tmpdir) tmpdir = "/tmp"; #endif - temp_dir = tmpdir; + settings.setValue("tempdir", QString(tmpdir)); lammps_args.clear(); lammps_args.push_back(mystrdup("LAMMPS-GUI")); lammps_args.push_back(mystrdup("-log")); lammps_args.push_back(mystrdup("none")); - lammps_args.push_back(mystrdup("-suffix")); - lammps_args.push_back(mystrdup("omp")); + // lammps_args.push_back(mystrdup("-suffix")); + // lammps_args.push_back(mystrdup("omp")); setWindowIcon(QIcon(":/lammps-icon-128x128.png")); #if (__APPLE__) @@ -158,24 +163,24 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : dirstatus->show(); ui->statusbar->addWidget(progress); -#if defined(LAMMPS_GUI_USE_PLUGIN) - liblammpsplugin_t *lammps = nullptr; - for (const auto libfile : {"liblammps.so", "./liblammps.so", "liblammps.dylib", - "./liblammps.dylib", "liblammps.dll"}) { - if (!lammps) lammps = liblammpsplugin_load(libfile); - if (lammps) { + plugin_path.clear(); + std::string deffile = settings.value("plugin_path", "liblammps.so").toString().toStdString(); + for (const char *libfile : {deffile.c_str(), "./liblammps.so", "liblammps.dylib", + "./liblammps.dylib", "liblammps.dll"}) { + if (lammps.load_lib(libfile)) { plugin_path = libfile; + settings.setValue("plugin_path", QString(libfile)); break; } } - bool do_exit = !lammps || (lammps && lammps->abiversion != LAMMPSPLUGIN_ABI_VERSION); - if (!lammps) QMessageBox::critical(this, "Error", "Cannot open LAMMPS shared library file"); - if (lammps && (lammps->abiversion != LAMMPSPLUGIN_ABI_VERSION)) - QMessageBox::critical(this, "Warning", - "ERROR: LAMMPS lib plugin ABI version does not match"); - plugin_handle = lammps; - if (do_exit) exit(1); -#endif + + if (plugin_path.empty()) { + // none of the plugin paths could load, remove key + settings.remove("plugin_path"); + QMessageBox::critical(this, "Error", "Cannot open LAMMPS shared library file"); + // QCoreApplication::quit(); + exit(1); + } if (filename) { open_file(filename); @@ -200,12 +205,7 @@ void LammpsGui::new_document() current_file.clear(); ui->textEdit->document()->setPlainText(QString()); -#if defined(LAMMPS_GUI_USE_PLUGIN) - if (lammps_handle) ((liblammpsplugin_t *)plugin_handle)->close(lammps_handle); -#else - if (lammps_handle) lammps_close(lammps_handle); -#endif - lammps_handle = nullptr; + lammps.close(); setWindowTitle(QString("LAMMPS-GUI - *unknown*")); } @@ -300,22 +300,9 @@ void LammpsGui::save_as() void LammpsGui::quit() { -#if defined(LAMMPS_GUI_USE_PLUGIN) - if (lammps_handle) { - liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; - lammps->close(lammps_handle); - lammps->mpi_finalize(); - lammps->kokkos_finalize(); - lammps->python_finalize(); - } -#else - if (lammps_handle) { - lammps_close(lammps_handle); - lammps_mpi_finalize(); - lammps_kokkos_finalize(); - lammps_python_finalize(); - } -#endif + lammps.close(); + lammps.finalize(); + if (ui->textEdit->document()->isModified()) { QMessageBox msg; msg.setWindowTitle("Unsaved Changes"); @@ -374,11 +361,7 @@ void LammpsGui::redo() void LammpsGui::stop_run() { -#if defined(LAMMPS_GUI_USE_PLUGIN) - ((liblammpsplugin_t *)plugin_handle)->force_timeout(lammps_handle); -#else - lammps_force_timeout(lammps_handle); -#endif + lammps.force_timeout(); } void LammpsGui::logupdate() @@ -386,22 +369,12 @@ void LammpsGui::logupdate() double t_elapsed, t_remain, t_total; int completed = 1000; -#if defined(LAMMPS_GUI_USE_PLUGIN) - liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; - if (lammps->is_running(lammps_handle)) { - t_elapsed = lammps->get_thermo(lammps_handle, "cpu"); - t_remain = lammps->get_thermo(lammps_handle, "cpuremain"); + if (is_running) { + t_elapsed = lammps.get_thermo("cpu"); + t_remain = lammps.get_thermo("cpuremain"); t_total = t_elapsed + t_remain + 1.0e-10; completed = t_elapsed / t_total * 1000.0; } -#else - if (lammps_is_running(lammps_handle)) { - t_elapsed = lammps_get_thermo(lammps_handle, "cpu"); - t_remain = lammps_get_thermo(lammps_handle, "cpuremain"); - t_total = t_elapsed + t_remain + 1.0e-10; - completed = t_elapsed / t_total * 1000.0; - } -#endif progress->setValue(completed); if (logwindow) { @@ -440,18 +413,10 @@ void LammpsGui::run_done() constexpr int BUFLEN = 1024; char errorbuf[BUFLEN]; -#if defined(LAMMPS_GUI_USE_PLUGIN) - liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; - if (lammps->has_error(lammps_handle)) { - lammps->get_last_error_message(lammps_handle, errorbuf, BUFLEN); + if (lammps.has_error()) { + lammps.get_last_error_message(errorbuf, BUFLEN); success = false; } -#else - if (lammps_has_error(lammps_handle)) { - lammps_get_last_error_message(lammps_handle, errorbuf, BUFLEN); - success = false; - } -#endif if (success) { status->setText("Ready."); @@ -460,7 +425,6 @@ void LammpsGui::run_done() QMessageBox::critical(this, "LAMMPS-GUI Error", QString("Error running LAMMPS:\n\n") + errorbuf); } - is_running = false; progress->hide(); dirstatus->show(); } @@ -473,7 +437,7 @@ void LammpsGui::run_buffer() status->setText(QString("Running LAMMPS with %1 thread(s)...").arg(nthreads)); status->repaint(); start_lammps(); - if (!lammps_handle) return; + if (!lammps.is_open()) return; clear(); capturer->BeginCapture(); @@ -481,7 +445,7 @@ void LammpsGui::run_buffer() is_running = true; LammpsRunner *runner = new LammpsRunner(this); - runner->setup_run(lammps_handle, input, plugin_handle); + runner->setup_run(&lammps, input); connect(runner, &LammpsRunner::resultReady, this, &LammpsGui::run_done); connect(runner, &LammpsRunner::finished, runner, &QObject::deleteLater); runner->start(); @@ -516,43 +480,39 @@ void LammpsGui::run_buffer() void LammpsGui::view_image() { // LAMMPS is not re-entrant, so we can only query LAMMPS when it is not running - if (!is_running) { + if (!lammps.is_running()) { start_lammps(); - int box = 0; -#if defined(LAMMPS_GUI_USE_PLUGIN) - box = ((liblammpsplugin_t *)plugin_handle)->extract_setting(lammps_handle, "box_exists"); -#else - box = lammps_extract_setting(lammps_handle, "box_exist"); -#endif - if (!box) { + if (!lammps.extract_setting("box_exists")) { QMessageBox::warning(this, "ImageViewer Error", "Cannot create snapshot image without a system box"); return; } - std::string dumpcmd = "write_dump all image '"; - QString dumpfile = temp_dir; + QSettings settings; + QString dumpcmd = "write_dump all image "; + QString dumpfile = settings.value("tempdir").toString(); #if defined(_WIN32) dumpfile += '\\'; #else dumpfile += '/'; #endif dumpfile += current_file + ".ppm"; + dumpcmd += dumpfile; - dumpcmd += dumpfile.toStdString() + "' type type size 800 600"; + settings.beginGroup("snapshot"); + dumpcmd += blank + settings.value("color", "type").toString(); + dumpcmd += blank + settings.value("diameter", "type").toString(); + dumpcmd += QString(" size ") + settings.value("xsize", "800").toString(); + dumpcmd += blank + settings.value("ysize", "600").toString(); + dumpcmd += QString(" zoom ") + settings.value("zoom", "1.0").toString(); + settings.endGroup(); -#if defined(LAMMPS_GUI_USE_PLUGIN) - ((liblammpsplugin_t *)plugin_handle)->command(lammps_handle, dumpcmd.c_str()); -#else - lammps_command(lammps_handle, dumpcmd.c_str()); -#endif + lammps.command(dumpcmd.toLocal8Bit()); imagewindow = new ImageViewer(dumpfile); -#if 0 #if defined(_WIN32) _unlink(dumpfile.toLocal8Bit()); #else unlink(dumpfile.toLocal8Bit()); -#endif #endif } else { QMessageBox::warning(this, "ImageViewer Error", @@ -564,39 +524,29 @@ void LammpsGui::view_image() void LammpsGui::clear() { - if (lammps_handle) { -#if defined(LAMMPS_GUI_USE_PLUGIN) - ((liblammpsplugin_t *)plugin_handle)->command(lammps_handle, "clear"); -#else - lammps_command(lammps_handle, "clear"); -#endif - } + if (!lammps.is_open()) lammps.command("clear"); ui->textEdit->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); } void LammpsGui::about() { std::string version = "This is LAMMPS-GUI version " LAMMPS_GUI_VERSION; -#if defined(LAMMPS_GUI_USE_PLUGIN) - version += " - LAMMPS linked dynamically"; - if (plugin_path) { - version += " from file "; - version += plugin_path; + if (lammps.has_plugin()) { + version += " - LAMMPS linked dynamically"; + if (!plugin_path.empty()) { + version += " from file "; + version += plugin_path; + } + } else { + version += " - LAMMPS linked statically"; } -#else - version += " - LAMMPS linked statically"; -#endif std::string info = "LAMMPS is currently running. LAMMPS config info not available."; // LAMMPS is not re-entrant, so we can only query LAMMPS when it is not running - if (!is_running) { + if (!lammps.is_running()) { start_lammps(); capturer->BeginCapture(); -#if defined(LAMMPS_GUI_USE_PLUGIN) - ((liblammpsplugin_t *)plugin_handle)->commands(lammps_handle, "info config"); -#else - lammps_command(lammps_handle, "info config"); -#endif + lammps.command("info config"); capturer->EndCapture(); info = capturer->GetCapture(); auto start = info.find("LAMMPS version:"); @@ -675,33 +625,18 @@ void LammpsGui::preferences() void LammpsGui::start_lammps() { char **args = lammps_args.data(); - int nargs = lammps_args.size(); + int narg = lammps_args.size(); -#if defined(LAMMPS_GUI_USE_PLUGIN) - liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; + lammps.open(narg, args); - // Create LAMMPS instance if not already present - if (!lammps_handle) lammps_handle = lammps->open_no_mpi(nargs, args, nullptr); - if (lammps->has_error(lammps_handle)) { + if (lammps.has_error()) { constexpr int BUFLEN = 1024; char errorbuf[BUFLEN]; - lammps->get_last_error_message(lammps_handle, errorbuf, BUFLEN); + lammps.get_last_error_message(errorbuf, BUFLEN); QMessageBox::critical(this, "LAMMPS-GUI Error", QString("Error launching LAMMPS:\n\n") + errorbuf); } -#else - // Create LAMMPS instance if not already present - if (!lammps_handle) lammps_handle = lammps_open_no_mpi(nargs, args, nullptr); - if (lammps_has_error(lammps_handle)) { - constexpr int BUFLEN = 1024; - char errorbuf[BUFLEN]; - lammps_get_last_error_message(lammps_handle, errorbuf, BUFLEN); - - QMessageBox::critical(this, "LAMMPS-GUI Error", - QString("Error launching LAMMPS:\n\n") + errorbuf); - } -#endif } // Local Variables: diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 2c45cb3212..01ab3d0c33 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -15,9 +15,13 @@ #define LAMMPSGUI_H #include + +#include #include #include +#include "lammpswrapper.h" + // forward declarations QT_BEGIN_NAMESPACE @@ -87,13 +91,11 @@ private: QString current_file; QString current_dir; - QString temp_dir; - void *lammps_handle; - void *plugin_handle; - const char *plugin_path; + LammpsWrapper lammps; + std::string plugin_path; bool is_running; int nthreads; - std::vector recent_files; + QList recent_files; std::vector lammps_args; }; diff --git a/tools/lammps-gui/lammpsrunner.cpp b/tools/lammps-gui/lammpsrunner.cpp deleted file mode 100644 index 1b078d67bf..0000000000 --- a/tools/lammps-gui/lammpsrunner.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* ---------------------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - https://www.lammps.org/, Sandia National Laboratories - LAMMPS development team: developers@lammps.org - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. - ------------------------------------------------------------------------- */ - -#include "lammpsrunner.h" - -#if defined(LAMMPS_GUI_USE_PLUGIN) -#include "liblammpsplugin.h" -#else -#include "library.h" -#endif - -#include - -LammpsRunner::LammpsRunner(QObject *parent) : - QThread(parent), handle(nullptr), plugin(nullptr), input(nullptr) -{ -} - -void LammpsRunner::run() -{ - if (handle) { -#if defined(LAMMPS_GUI_USE_PLUGIN) - liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin; - lammps->commands_string(handle, input); -#else - lammps_commands_string(handle, input); -#endif - } - emit resultReady(); -} - -// Local Variables: -// c-basic-offset: 4 -// End: diff --git a/tools/lammps-gui/lammpsrunner.h b/tools/lammps-gui/lammpsrunner.h index 57c20226e8..ea3eaab9a6 100644 --- a/tools/lammps-gui/lammpsrunner.h +++ b/tools/lammps-gui/lammpsrunner.h @@ -20,17 +20,21 @@ class LammpsRunner : public QThread { Q_OBJECT public: - LammpsRunner(QObject *parent = nullptr); + LammpsRunner(QObject *parent = nullptr) : QThread(parent), lammps(nullptr), input(nullptr) {} ~LammpsRunner() = default; - // execute LAMMPS run in runner thread - void run() override; +public: + // execute LAMMPS in runner thread + void run() override + { + lammps->commands_string(input); + emit resultReady(); + } // transfer info to worker thread - void setup_run(void *_handle, const char *_input, void *_plugin = nullptr) + void setup_run(LammpsWrapper *_lammps, const char *_input) { - handle = _handle; - plugin = _plugin; + lammps = _lammps; input = _input; } @@ -38,7 +42,7 @@ signals: void resultReady(); private: - void *handle, *plugin; + LammpsWrapper *lammps; const char *input; }; diff --git a/tools/lammps-gui/lammpswrapper.cpp b/tools/lammps-gui/lammpswrapper.cpp new file mode 100644 index 0000000000..a03b47de1f --- /dev/null +++ b/tools/lammps-gui/lammpswrapper.cpp @@ -0,0 +1,185 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "lammpswrapper.h" + +#if defined(LAMMPS_GUI_USE_PLUGIN) +#include "liblammpsplugin.h" +#else +#include "library.h" +#endif + +LammpsWrapper::LammpsWrapper() : + lammps_handle(nullptr), plugin_handle(nullptr) +{ +} + +void LammpsWrapper::open(int narg, char **args) +{ + if (!lammps_handle) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + lammps_handle = ((liblammpsplugin_t *)plugin_handle)->open_no_mpi(narg, args, nullptr); +#else + lammps_handle = lammps_open_no_mpi(narg, args, nullptr); +#endif + } +} + +int LammpsWrapper::extract_setting(const char *keyword) +{ + int val = 0; + if (lammps_handle) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + val = ((liblammpsplugin_t *)plugin_handle)->extract_setting(lammps_handle, keyword); +#else + val = lammps_extract_setting(lammps_handle, keyword); +#endif + } + return val; +} + +double LammpsWrapper::get_thermo(const char *keyword) +{ + double val = 0.0; + if (lammps_handle) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + val = ((liblammpsplugin_t *)plugin_handle)->get_thermo(lammps_handle, keyword); +#else + val = lammps_get_thermo(lammps_handle, keyword); +#endif + } + return val; +} + +bool LammpsWrapper::is_running() +{ + int val = 0; + if (lammps_handle) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + val = ((liblammpsplugin_t *)plugin_handle)->is_running(lammps_handle); +#else + val = lammps_is_running(lammps_handle); +#endif + } + return val != 0; +} + +void LammpsWrapper::command(const char *input) +{ + if (lammps_handle) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + ((liblammpsplugin_t *)plugin_handle)->command(lammps_handle, input); +#else + lammps_command(lammps_handle, input); +#endif + } +} + +void LammpsWrapper::commands_string(const char *input) +{ + if (lammps_handle) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + ((liblammpsplugin_t *)plugin_handle)->commands_string(lammps_handle, input); +#else + lammps_commands_string(lammps_handle, input); +#endif + } +} + +// may be called with null handle. returns global error then. +bool LammpsWrapper::has_error() const +{ +#if defined(LAMMPS_GUI_USE_PLUGIN) + return ((liblammpsplugin_t *)plugin_handle)->has_error(lammps_handle) != 0; +#else + return lammps_has_error(lammps_handle) != 0; +#endif +} + +int LammpsWrapper::get_last_error_message(char *buf, int buflen) +{ +#if defined(LAMMPS_GUI_USE_PLUGIN) + return ((liblammpsplugin_t *)plugin_handle)->get_last_error_message(lammps_handle, buf, buflen); +#else + return lammps_get_last_error_message(lammps_handle, buf, buflen); +#endif +} + +void LammpsWrapper::force_timeout() +{ +#if defined(LAMMPS_GUI_USE_PLUGIN) + ((liblammpsplugin_t *)plugin_handle)->force_timeout(lammps_handle); +#else + lammps_force_timeout(lammps_handle); +#endif +} + +void LammpsWrapper::close() +{ +#if defined(LAMMPS_GUI_USE_PLUGIN) + if (lammps_handle) ((liblammpsplugin_t *)plugin_handle)->close(lammps_handle); +#else + if (lammps_handle) lammps_close(lammps_handle); +#endif + lammps_handle = nullptr; +} + +void LammpsWrapper::finalize() +{ +#if defined(LAMMPS_GUI_USE_PLUGIN) + if (lammps_handle) { + liblammpsplugin_t *lammps = (liblammpsplugin_t *)plugin_handle; + lammps->close(lammps_handle); + lammps->mpi_finalize(); + lammps->kokkos_finalize(); + lammps->python_finalize(); + } +#else + if (lammps_handle) { + lammps_close(lammps_handle); + lammps_mpi_finalize(); + lammps_kokkos_finalize(); + lammps_python_finalize(); + } +#endif +} + +#if defined(LAMMPS_GUI_USE_PLUGIN) +bool LammpsWrapper::has_plugin() const +{ + return true; +} + +bool LammpsWrapper::load_lib(const char *libfile) +{ + if (plugin_handle) liblammpsplugin_release((liblammpsplugin_t *)plugin_handle); + plugin_handle = liblammpsplugin_load(libfile); + if (!plugin_handle) return false; + if (((liblammpsplugin_t *)plugin_handle)->abiversion != LAMMPSPLUGIN_ABI_VERSION) return false; + return true; +} +#else +bool LammpsWrapper::has_plugin() const +{ + return false; +} + +bool LammpsWrapper::load_lib(const char *) +{ + return true; +} +#endif + +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/lammpswrapper.h b/tools/lammps-gui/lammpswrapper.h new file mode 100644 index 0000000000..858cc12e34 --- /dev/null +++ b/tools/lammps-gui/lammpswrapper.h @@ -0,0 +1,49 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef LAMMPSWRAPPER_H +#define LAMMPSWRAPPER_H + +class LammpsWrapper { +public: + LammpsWrapper(); + +public: + void open(int nargs, char **args); + void close(); + void finalize(); + + void command(const char *); + void commands_string(const char *); + + void force_timeout(); + + int extract_setting(const char *keyword); + double get_thermo(const char *keyword); + bool is_open() const { return lammps_handle != nullptr; } + bool is_running(); + bool has_error() const; + int get_last_error_message(char *errorbuf, int buflen); + + bool load_lib(const char *lammpslib); + bool has_plugin() const; + +private: + void *lammps_handle; + void *plugin_handle; +}; +#endif + +// Local Variables: +// c-basic-offset: 4 +// End: From c99d0f545268b00809dc7943487e1312a06c8c45 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 04:58:38 -0400 Subject: [PATCH 230/247] cmake cleanups --- cmake/presets/macos-multiarch.cmake | 4 ++-- tools/lammps-gui/CMakeLists.txt | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/cmake/presets/macos-multiarch.cmake b/cmake/presets/macos-multiarch.cmake index 09006e9958..58ef013f68 100644 --- a/cmake/presets/macos-multiarch.cmake +++ b/cmake/presets/macos-multiarch.cmake @@ -1,4 +1,4 @@ -# preset that will build portable multi-arch binaries on macOS without MPI and OpenMP +# preset that will build portable multi-arch binaries on macOS without MPI set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE) set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0 CACHE STRING "" FORCE) @@ -10,5 +10,5 @@ set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE) set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE) set(BUILD_MPI FALSE CACHE BOOL "" FORCE) -set(BUILD_OMP FALSE CACHE BOOL "" FORCE) set(BUILD_SHARED_LIBS FALSE CACHE BOOL "" FORCE) +set(LAMMPS_EXCEPTIONS TRUE CACHE BOOL "" FORCE) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index ebefd99d03..b942b6c8b8 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -9,13 +9,15 @@ set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) -# checks option(LAMMPS_GUI_USE_PLUGIN "Load LAMMPS library dynamically at runtime" OFF) +mark_as_advanced(LAMMPS_GUI_USE_PLUGIN) + +# checks if(NOT LAMMPS_EXCEPTIONS) message(FATAL_ERROR "Must enable LAMMPS_EXCEPTIONS for building the LAMMPS GUI") endif() if(BUILD_MPI) - message(FATAL_ERROR "Must disable BUILD_MPI or building the LAMMPS GUI") + message(FATAL_ERROR "Must disable BUILD_MPI for building the LAMMPS GUI") endif() # when this file is included as subdirectory in the LAMMPS build, many settings are directly imported @@ -62,7 +64,8 @@ if(LAMMPS_GUI_USE_PLUGIN) set(PLUGIN_LOADER_SRC ${LAMMPS_PLUGINLIB_DIR}/liblammpsplugin.c) endif() -find_package(Qt5 REQUIRED COMPONENTS Widgets) +# we require Qt 5 and at least version 5.12 at that. +find_package(Qt5 5.12 REQUIRED COMPONENTS Widgets) set(PROJECT_SOURCES main.cpp @@ -72,13 +75,13 @@ set(PROJECT_SOURCES highlighter.h imageviewer.cpp imageviewer.h - linenumberarea.h lammpsgui.cpp lammpsgui.h lammpsgui.ui lammpsrunner.h lammpswrapper.cpp lammpswrapper.h + linenumberarea.h preferences.cpp preferences.h stdcapture.cpp @@ -97,6 +100,7 @@ add_executable(lammps-gui ${PROJECT_SOURCES} ) +# compilation settings if(LAMMPS_GUI_USE_PLUGIN) target_compile_definitions(lammps-gui PRIVATE LAMMPS_GUI_USE_PLUGIN) target_include_directories(lammps-gui PRIVATE ${LAMMPS_PLUGINLIB_DIR}) @@ -112,6 +116,7 @@ if(BUILD_OMP) target_link_libraries(lammps-gui PRIVATE OpenMP::OpenMP_CXX) endif() +# when compiling on macOS, create an "app bundle" if(APPLE) set_target_properties(lammps-gui PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${LAMMPS_DIR}/cmake/packaging/MacOSXBundleInfo.plist.in @@ -121,7 +126,7 @@ if(APPLE) MACOSX_BUNDLE_COPYRIGHT "(c) 2003 - 2023, The LAMMPS Developers" MACOSX_BUNDLE TRUE ) - # additional steps to populate the bundle tree and create the .dmg image file + # additional targets to populate the bundle tree and create the .dmg image file set(APP_CONTENTS ${CMAKE_BINARY_DIR}/lammps-gui.app/Contents) add_custom_target(complete-bundle ${CMAKE_COMMAND} -E make_directory ${APP_CONTENTS}/bin @@ -154,6 +159,7 @@ if(APPLE) BYPRODUCT LAMMPS-macOS-multiarch.dmg WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) + # settings or building on Windows with Visual Studio elseif(MSVC) install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) install(FILES $ TYPE BIN) @@ -165,7 +171,7 @@ elseif(MSVC) set(VC_INIT "${VC_BASE_DIR}/Auxiliary/Build/vcvarsall.bat") get_filename_component(QT5_BIN_DIR "${Qt5Core_DIR}/../../../bin" ABSOLUTE) get_filename_component(INSTNAME ${CMAKE_INSTALL_PREFIX} NAME) - install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -D INSTNAME=${INSTNAME} -D VC_INIT=\"${VC_INIT}\" -D QT5_BIN_DIR=\"${QT5_BIN_DIR}\" -P \"${CMAKE_SOURCE_DIR}/packaging/build_windows_vs.cmake\" WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}/..\" COMMAND_ECHO STDOUT)") + install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -D INSTNAME=${INSTNAME} -D VC_INIT=\"${VC_INIT}\" -D QT5_BIN_DIR=\"${QT5_BIN_DIR}\" -P \"${CMAKE_SOURCE_DIR}/packaging/build_windows_vs.cmake\" WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}/..\" COMMAND_ECHO STDOUT)") elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") install(TARGETS lammps-gui DESTINATION ${CMAKE_INSTALL_BINDIR}) install(CODE [[ From c918bdeb072935adf856efc3aee1fc5d8890346f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 05:25:24 -0400 Subject: [PATCH 231/247] fix a couple of bugs that would hang the app waiting for log output --- tools/lammps-gui/lammpsgui.cpp | 6 +++--- tools/lammps-gui/lammpsrunner.h | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index dabc5f60df..904cab796f 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -369,7 +369,7 @@ void LammpsGui::logupdate() double t_elapsed, t_remain, t_total; int completed = 1000; - if (is_running) { + if (lammps.is_running()) { t_elapsed = lammps.get_thermo("cpu"); t_remain = lammps.get_thermo("cpuremain"); t_total = t_elapsed + t_remain + 1.0e-10; @@ -441,7 +441,8 @@ void LammpsGui::run_buffer() clear(); capturer->BeginCapture(); - char *input = mystrdup(ui->textEdit->toPlainText().toStdString()); + // always add final newline since the text edit widget does not + char *input = mystrdup(ui->textEdit->toPlainText().toStdString() + "\n"); is_running = true; LammpsRunner *runner = new LammpsRunner(this); @@ -524,7 +525,6 @@ void LammpsGui::view_image() void LammpsGui::clear() { - if (!lammps.is_open()) lammps.command("clear"); ui->textEdit->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); } diff --git a/tools/lammps-gui/lammpsrunner.h b/tools/lammps-gui/lammpsrunner.h index ea3eaab9a6..241e5dcc55 100644 --- a/tools/lammps-gui/lammpsrunner.h +++ b/tools/lammps-gui/lammpsrunner.h @@ -20,13 +20,14 @@ class LammpsRunner : public QThread { Q_OBJECT public: - LammpsRunner(QObject *parent = nullptr) : QThread(parent), lammps(nullptr), input(nullptr) {} + LammpsRunner(QObject *parent = nullptr) : QThread(parent), lammps(nullptr), input(nullptr) {} ~LammpsRunner() = default; public: // execute LAMMPS in runner thread void run() override { + lammps->command("clear"); lammps->commands_string(input); emit resultReady(); } From 56b50d6580e21699b4ff8d24ad53da5fcec20413 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 05:37:56 -0400 Subject: [PATCH 232/247] ensure final newline when saving to file --- tools/lammps-gui/lammpsgui.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 904cab796f..19d4c13dbf 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -278,6 +278,7 @@ void LammpsGui::write_file(const QString &fileName) QTextStream out(&file); QString text = ui->textEdit->toPlainText(); out << text; + if (text.back().toLatin1() != '\n') out << "\n"; // add final newline if missing file.close(); dirstatus->setText(QString(" Directory: ") + current_dir); ui->textEdit->document()->setModified(false); From dfb614bd422af082527139cd41dfb1a387b0fe11 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 05:40:56 -0400 Subject: [PATCH 233/247] fix memory leak --- tools/lammps-gui/lammpsrunner.h | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/lammps-gui/lammpsrunner.h b/tools/lammps-gui/lammpsrunner.h index 241e5dcc55..a8cd6a1502 100644 --- a/tools/lammps-gui/lammpsrunner.h +++ b/tools/lammps-gui/lammpsrunner.h @@ -29,6 +29,7 @@ public: { lammps->command("clear"); lammps->commands_string(input); + delete[] input; emit resultReady(); } From 2711917a6e955c27d1c3e5f1e3abb0f6ebe71045 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 07:01:30 -0400 Subject: [PATCH 234/247] grammar --- src/thermo.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/thermo.cpp b/src/thermo.cpp index 206b0f1ea7..88ceb27f87 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -1228,13 +1228,13 @@ int Thermo::evaluate_keyword(const std::string &word, double *answer) } else if (word == "elapsed") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword elapsed cannot be used between runs"); + error->all(FLERR, "The variable thermo keyword elapsed cannot be used between runs"); compute_elapsed(); dvalue = bivalue; } else if (word == "elaplong") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword elaplong cannot be used between runs"); + error->all(FLERR, "The variable thermo keyword elaplong cannot be used between runs"); compute_elapsed_long(); dvalue = bivalue; @@ -1246,22 +1246,22 @@ int Thermo::evaluate_keyword(const std::string &word, double *answer) } else if (word == "cpu") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword cpu cannot be used between runs"); + error->all(FLERR, "The variable thermo keyword cpu cannot be used between runs"); compute_cpu(); } else if (word == "tpcpu") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword tpcpu cannot be used between runs"); + error->all(FLERR, "The variable thermo keyword tpcpu cannot be used between runs"); compute_tpcpu(); } else if (word == "spcpu") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword spcpu cannot be used between runs"); + error->all(FLERR, "The variable thermo keyword spcpu cannot be used between runs"); compute_spcpu(); } else if (word == "cpuremain") { if (update->whichflag == 0) - error->all(FLERR, "This variable thermo keyword cpuremain cannot be used between runs"); + error->all(FLERR, "The variable thermo keyword cpuremain cannot be used between runs"); compute_cpuremain(); } else if (word == "part") { From dfcd3f945e94627a4c77d4ec3644ebad12b559b0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 07:02:20 -0400 Subject: [PATCH 235/247] first pieces of preferences dialog --- tools/lammps-gui/lammpsgui.cpp | 5 +- tools/lammps-gui/lammpswrapper.cpp | 11 ++--- tools/lammps-gui/preferences.cpp | 78 +++++++++++++++++++++++++++++- tools/lammps-gui/preferences.h | 38 ++++++++++++++- 4 files changed, 119 insertions(+), 13 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 19d4c13dbf..d5f5af16c3 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -69,7 +69,6 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : ui->setupUi(this); this->setCentralWidget(ui->textEdit); highlighter = new Highlighter(ui->textEdit->document()); - prefdialog = new Preferences(this); capturer = new StdCapture; current_file.clear(); current_dir = QDir(".").absolutePath(); @@ -619,8 +618,8 @@ void LammpsGui::manual() void LammpsGui::preferences() { - QString helpmsg = "This is LAMMPS-GUI version " LAMMPS_GUI_VERSION; - QMessageBox::information(this, "LAMMPS-GUI Help", helpmsg); + Preferences prefs(&lammps); + prefs.exec(); } void LammpsGui::start_lammps() diff --git a/tools/lammps-gui/lammpswrapper.cpp b/tools/lammps-gui/lammpswrapper.cpp index a03b47de1f..361a69c784 100644 --- a/tools/lammps-gui/lammpswrapper.cpp +++ b/tools/lammps-gui/lammpswrapper.cpp @@ -19,10 +19,7 @@ #include "library.h" #endif -LammpsWrapper::LammpsWrapper() : - lammps_handle(nullptr), plugin_handle(nullptr) -{ -} +LammpsWrapper::LammpsWrapper() : lammps_handle(nullptr), plugin_handle(nullptr) {} void LammpsWrapper::open(int narg, char **args) { @@ -42,7 +39,7 @@ int LammpsWrapper::extract_setting(const char *keyword) #if defined(LAMMPS_GUI_USE_PLUGIN) val = ((liblammpsplugin_t *)plugin_handle)->extract_setting(lammps_handle, keyword); #else - val = lammps_extract_setting(lammps_handle, keyword); + val = lammps_extract_setting(lammps_handle, keyword); #endif } return val; @@ -55,7 +52,7 @@ double LammpsWrapper::get_thermo(const char *keyword) #if defined(LAMMPS_GUI_USE_PLUGIN) val = ((liblammpsplugin_t *)plugin_handle)->get_thermo(lammps_handle, keyword); #else - val = lammps_get_thermo(lammps_handle, keyword); + val = lammps_get_thermo(lammps_handle, keyword); #endif } return val; @@ -68,7 +65,7 @@ bool LammpsWrapper::is_running() #if defined(LAMMPS_GUI_USE_PLUGIN) val = ((liblammpsplugin_t *)plugin_handle)->is_running(lammps_handle); #else - val = lammps_is_running(lammps_handle); + val = lammps_is_running(lammps_handle); #endif } return val != 0; diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index d29fcd6d1b..9992937052 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -14,6 +14,82 @@ #include "preferences.h" #include +#include +#include +#include +#include +#include #include +#include -Preferences::Preferences(QWidget *parent) : QDialog(parent) {} +#include "lammpswrapper.h" + +Preferences::Preferences(LammpsWrapper *_lammps, QWidget *parent) : + QDialog(parent), tabWidget(new QTabWidget), + buttonBox(new QDialogButtonBox(QDialogButtonBox::Ok)), settings(new QSettings), lammps(_lammps) +{ + tabWidget->addTab(new AcceleratorTab(settings, lammps), "Accelerators"); + tabWidget->addTab(new SnapshotTab(settings), "Snapshot Image"); + + connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + + auto *layout = new QVBoxLayout; + layout->addWidget(tabWidget); + layout->addWidget(buttonBox); + setLayout(layout); + setWindowTitle("LAMMPS-GUI - Preferences"); + resize(400, 320); +} + +Preferences::~Preferences() +{ + delete buttonBox; + delete tabWidget; + delete settings; +} + +AcceleratorTab::AcceleratorTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *parent) : + QWidget(parent), settings(_settings), lammps(_lammps) +{ + QGroupBox *accelerator = new QGroupBox("Choose Accelerator"); + QRadioButton *none = new QRadioButton("&None"); + QRadioButton *kokkos = new QRadioButton("&Kokkos"); + QRadioButton *intel = new QRadioButton("&Intel"); + QRadioButton *openmp = new QRadioButton("&OpenMP"); + QRadioButton *opt = new QRadioButton("O&pt"); + + none->setChecked(true); + QVBoxLayout *layout = new QVBoxLayout; + layout->addWidget(none); + layout->addWidget(kokkos); + layout->addWidget(intel); + layout->addWidget(openmp); + layout->addWidget(opt); + layout->addStretch(1); + setLayout(layout); +} + +SnapshotTab::SnapshotTab(QSettings *_settings, QWidget *parent) : + QWidget(parent), settings(_settings) +{ + QGridLayout *grid = new QGridLayout; + + QLabel *xsize = new QLabel("Image width:"); + QLabel *ysize = new QLabel("Image height:"); + QLabel *zoom = new QLabel("Zoom factor:"); + QLineEdit *xval = new QLineEdit(settings->value("xsize", "800").toString()); + QLineEdit *yval = new QLineEdit(settings->value("ysize", "600").toString()); + QLineEdit *zval = new QLineEdit(settings->value("zoom", "1.0").toString()); + + grid->addWidget(xsize, 0, 0); + grid->addWidget(ysize, 1, 0); + grid->addWidget(zoom, 2, 0); + grid->addWidget(xval, 0, 1); + grid->addWidget(yval, 1, 1); + grid->addWidget(zval, 2, 1); + setLayout(grid); +} + +// Local Variables: +// c-basic-offset: 4 +// End: diff --git a/tools/lammps-gui/preferences.h b/tools/lammps-gui/preferences.h index cc15d62ded..4e9117b791 100644 --- a/tools/lammps-gui/preferences.h +++ b/tools/lammps-gui/preferences.h @@ -16,17 +16,51 @@ #include -class QTabWidget; class QDialogButtonBox; +class QSettings; +class QTabWidget; +class LammpsWrapper; class Preferences : public QDialog { Q_OBJECT public: - explicit Preferences(QWidget *parent = nullptr); + explicit Preferences(LammpsWrapper *lammps, QWidget *parent = nullptr); + ~Preferences() override; private: QTabWidget *tabWidget; QDialogButtonBox *buttonBox; + QSettings *settings; + LammpsWrapper *lammps; }; + +// individual tabs + +class AcceleratorTab : public QWidget { + Q_OBJECT + +public: + explicit AcceleratorTab(QSettings *settings, LammpsWrapper *lammps, QWidget *parent = nullptr); + enum { None, Intel, Kokkos, OpenMP, Opt }; + +private: + QSettings *settings; + LammpsWrapper *lammps; +}; + +class SnapshotTab : public QWidget { + Q_OBJECT + +public: + explicit SnapshotTab(QSettings *settings, QWidget *parent = nullptr); + +private: + QSettings *settings; +}; + #endif + +// Local Variables: +// c-basic-offset: 4 +// End: From e493519c1241a31e0e7f1c1a6560f8b95b073779 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 11:05:35 -0400 Subject: [PATCH 236/247] more hotkeys and have Ok/Cancel on preferences dialog handled properly --- doc/src/Tools.rst | 8 ++++---- tools/lammps-gui/lammpsgui.cpp | 5 ++++- tools/lammps-gui/lammpsgui.ui | 14 +++++++++++--- tools/lammps-gui/preferences.cpp | 32 ++++++++++++++++++++++++-------- tools/lammps-gui/preferences.h | 3 +++ 5 files changed, 46 insertions(+), 16 deletions(-) diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index 2e889f52ec..b20b722bfd 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -724,16 +724,16 @@ instead of Ctrl (aka Control)). - Copy text - Ctrl+/ - Stop Active Run - - - - + - Ctrl+P + - Preferences * - Ctrl+Shift+S - Save File As - Ctrl+X - Cut text - Ctrl+I - Create Snapshot Image - - - - + - Ctrl+Shift+/ + - Quick Help Further editing keybindings `are documented with the Qt documentation `_. In diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index d5f5af16c3..066d7ca373 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -619,7 +619,10 @@ void LammpsGui::manual() void LammpsGui::preferences() { Preferences prefs(&lammps); - prefs.exec(); + if (prefs.exec() == QDialog::Accepted) { + + // extract and apply settings as needed + } } void LammpsGui::start_lammps() diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index a307fe2525..92001c2c57 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -281,7 +281,8 @@ - + + .. &View Snapshot @@ -316,6 +317,9 @@ Quick Help + + Ctrl+Shift+/ + @@ -323,12 +327,16 @@ .. - Edit &Preferences... + &Preferences... + + + Ctrl+P - + + .. LAMMPS &Manual diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index 9992937052..7b14b01718 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -14,7 +14,9 @@ #include "preferences.h" #include +#include #include +#include #include #include #include @@ -26,12 +28,14 @@ Preferences::Preferences(LammpsWrapper *_lammps, QWidget *parent) : QDialog(parent), tabWidget(new QTabWidget), - buttonBox(new QDialogButtonBox(QDialogButtonBox::Ok)), settings(new QSettings), lammps(_lammps) + buttonBox(new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel)), + settings(new QSettings), lammps(_lammps) { tabWidget->addTab(new AcceleratorTab(settings, lammps), "Accelerators"); tabWidget->addTab(new SnapshotTab(settings), "Snapshot Image"); - connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(buttonBox, &QDialogButtonBox::accepted, this, &Preferences::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); auto *layout = new QVBoxLayout; layout->addWidget(tabWidget); @@ -48,6 +52,13 @@ Preferences::~Preferences() delete settings; } +void Preferences::accept() +{ + // store all data in settings class + // and then confirm accepting + QDialog::accept(); +} + AcceleratorTab::AcceleratorTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *parent) : QWidget(parent), settings(_settings), lammps(_lammps) { @@ -74,12 +85,17 @@ SnapshotTab::SnapshotTab(QSettings *_settings, QWidget *parent) : { QGridLayout *grid = new QGridLayout; - QLabel *xsize = new QLabel("Image width:"); - QLabel *ysize = new QLabel("Image height:"); - QLabel *zoom = new QLabel("Zoom factor:"); - QLineEdit *xval = new QLineEdit(settings->value("xsize", "800").toString()); - QLineEdit *yval = new QLineEdit(settings->value("ysize", "600").toString()); - QLineEdit *zval = new QLineEdit(settings->value("zoom", "1.0").toString()); + auto *xsize = new QLabel("Image width:"); + auto *ysize = new QLabel("Image height:"); + auto *zoom = new QLabel("Zoom factor:"); + auto *xval = new QLineEdit(settings->value("xsize", "800").toString()); + auto *yval = new QLineEdit(settings->value("ysize", "600").toString()); + auto *zval = new QLineEdit(settings->value("zoom", "1.0").toString()); + + auto *intval = new QIntValidator(100, 100000, this); + xval->setValidator(intval); + yval->setValidator(intval); + zval->setValidator(new QDoubleValidator(0.01, 100.0, 100, this)); grid->addWidget(xsize, 0, 0); grid->addWidget(ysize, 1, 0); diff --git a/tools/lammps-gui/preferences.h b/tools/lammps-gui/preferences.h index 4e9117b791..1cefb79d43 100644 --- a/tools/lammps-gui/preferences.h +++ b/tools/lammps-gui/preferences.h @@ -28,6 +28,9 @@ public: explicit Preferences(LammpsWrapper *lammps, QWidget *parent = nullptr); ~Preferences() override; +protected slots: + void accept() override; + private: QTabWidget *tabWidget; QDialogButtonBox *buttonBox; From 97d406f2ff264f5f26dcd25bfca39e7f172dfb92 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 13:53:31 -0400 Subject: [PATCH 237/247] update TODO list with some new ideas --- tools/lammps-gui/TODO.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index 9db35a3fe6..15479066a9 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -13,6 +13,9 @@ LAMMPS-GUI TODO list: - add list of 5(?) most recently opened/saved files to file dialog (and also write to settings state on exit) (note: must store full path!) # Long term ideas +- write a "wizard" dialog that can be used for beginners to create an input file template for a few typical use scenarios +- use the "lammps_get_last_thermo" function to get access to thermodynamic data during a run and add plot/graph dialog that can plot one or more of those graphs while the simulation is still running +- possibly also implement a callback interface, so that external programs can be called after thermo data is updated. - support single stepping, i.e. process input line by line (need to detect continuation chars!) with highlighting active line(s) - have command text input file in/above status bar where individual commands can be tested. have insert button to copy line into file at the current point - support text completion as done with lammps-shell From 498ca44310249ed147c4d0e0867b9a9eb76c1933 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 2 Aug 2023 18:43:54 +0000 Subject: [PATCH 238/247] Add missing path to Kokkos Perlmutter Makefile --- src/MAKE/MACHINES/Makefile.perlmutter_kokkos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MAKE/MACHINES/Makefile.perlmutter_kokkos b/src/MAKE/MACHINES/Makefile.perlmutter_kokkos index 2882fb6260..43162b88dd 100644 --- a/src/MAKE/MACHINES/Makefile.perlmutter_kokkos +++ b/src/MAKE/MACHINES/Makefile.perlmutter_kokkos @@ -56,7 +56,7 @@ MPI_LIB = -L${MPICH_DIR}/lib -lmpi -L${CRAY_MPICH_ROOTDIR}/gtl/lib -lmpi_gtl_cud FFT_INC = -DFFT_CUFFT FFT_PATH = -FFT_LIB = -lcufft +FFT_LIB = ${CRAY_CUDATOOLKIT_POST_LINK_OPTS} -lcufft # JPEG and/or PNG library # see discussion in Section 3.5.4 of manual From 2808a78822711bb28f2402ba4e2376d6ce65db90 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 17:28:34 -0400 Subject: [PATCH 239/247] more updates to preferences dialog and supporting code. almost done. --- tools/lammps-gui/lammpsgui.cpp | 60 ++++++++-- tools/lammps-gui/lammpsgui.h | 1 - tools/lammps-gui/lammpswrapper.cpp | 18 +++ tools/lammps-gui/lammpswrapper.h | 2 + tools/lammps-gui/preferences.cpp | 173 +++++++++++++++++++++++++---- tools/lammps-gui/preferences.h | 14 ++- 6 files changed, 238 insertions(+), 30 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 066d7ca373..0d483ac2d4 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -81,9 +81,11 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : // restorge and initialize settings QSettings settings; + // check and initialize nthreads setting. Default is to use max, + // but not override OMP_NUM_THREADS and preferences setting. #if defined(_OPENMP) // use maximum number of available threads unless OMP_NUM_THREADS was set - nthreads = settings.value("nthreads", omp_get_max_threads()).toInt(); + int nthreads = settings.value("nthreads", omp_get_max_threads()).toInt(); #if _WIN32 if (!getenv("OMP_NUM_THREADS")) { _putenv_s("OMP_NUM_THREADS", std::to_string(nthreads).c_str()); @@ -92,8 +94,9 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : setenv("OMP_NUM_THREADS", std::to_string(nthreads).c_str(), 0); #endif #else - nthreads = settings.value("nthreads", 1).toInt(); + int nthreads = settings.value("nthreads", 1).toInt(); #endif + settings.setValue("nthreads", QString::number(nthreads)); const char *tmpdir = getenv("TMPDIR"); if (!tmpdir) tmpdir = getenv("TMP"); @@ -110,8 +113,6 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : lammps_args.push_back(mystrdup("LAMMPS-GUI")); lammps_args.push_back(mystrdup("-log")); lammps_args.push_back(mystrdup("none")); - // lammps_args.push_back(mystrdup("-suffix")); - // lammps_args.push_back(mystrdup("omp")); setWindowIcon(QIcon(":/lammps-icon-128x128.png")); #if (__APPLE__) @@ -431,9 +432,11 @@ void LammpsGui::run_done() void LammpsGui::run_buffer() { + QSettings settings; progress->setValue(0); dirstatus->hide(); progress->show(); + int nthreads = settings.value("nthreads", 1).toInt(); status->setText(QString("Running LAMMPS with %1 thread(s)...").arg(nthreads)); status->repaint(); start_lammps(); @@ -620,18 +623,61 @@ void LammpsGui::preferences() { Preferences prefs(&lammps); if (prefs.exec() == QDialog::Accepted) { - - // extract and apply settings as needed + // must delete LAMMPS instance after setting may be changed so we can apply different + // suffixes + lammps.close(); } } void LammpsGui::start_lammps() { + // temporary extend lammps_args with additional arguments + int initial_narg = lammps_args.size(); + QSettings settings; + int nthreads = settings.value("nthreads", 1).toInt(); + int accel = settings.value("accelerator", AcceleratorTab::None).toInt(); + if (accel == AcceleratorTab::Opt) { + lammps_args.push_back(mystrdup("-suffix")); + lammps_args.push_back(mystrdup("opt")); + } else if (accel == AcceleratorTab::OpenMP) { + lammps_args.push_back(mystrdup("-suffix")); + lammps_args.push_back(mystrdup("omp")); + lammps_args.push_back(mystrdup("-pk")); + lammps_args.push_back(mystrdup("omp")); + lammps_args.push_back(mystrdup(std::to_string(nthreads))); + } else if (accel == AcceleratorTab::Intel) { + lammps_args.push_back(mystrdup("-suffix")); + lammps_args.push_back(mystrdup("intel")); + lammps_args.push_back(mystrdup("-pk")); + lammps_args.push_back(mystrdup("intel")); + lammps_args.push_back(mystrdup(std::to_string(nthreads))); + } else if (accel == AcceleratorTab::Gpu) { + lammps_args.push_back(mystrdup("-suffix")); + lammps_args.push_back(mystrdup("gpu")); + lammps_args.push_back(mystrdup("-pk")); + lammps_args.push_back(mystrdup("gpu")); + lammps_args.push_back(mystrdup("0")); + } + + if (settings.value("echo", "0").toInt()) { + lammps_args.push_back(mystrdup("-echo")); + lammps_args.push_back(mystrdup("screen")); + } + if (settings.value("cite", "0").toInt()) { + lammps_args.push_back(mystrdup("-cite")); + lammps_args.push_back(mystrdup("screen")); + } + char **args = lammps_args.data(); int narg = lammps_args.size(); - lammps.open(narg, args); + // delete additional arguments again (3 were there initially + while (lammps_args.size() > initial_narg) { + delete lammps_args.back(); + lammps_args.pop_back(); + } + if (lammps.has_error()) { constexpr int BUFLEN = 1024; char errorbuf[BUFLEN]; diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 01ab3d0c33..372d327448 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -94,7 +94,6 @@ private: LammpsWrapper lammps; std::string plugin_path; bool is_running; - int nthreads; QList recent_files; std::vector lammps_args; }; diff --git a/tools/lammps-gui/lammpswrapper.cpp b/tools/lammps-gui/lammpswrapper.cpp index 361a69c784..d8a8b78568 100644 --- a/tools/lammps-gui/lammpswrapper.cpp +++ b/tools/lammps-gui/lammpswrapper.cpp @@ -151,6 +151,24 @@ void LammpsWrapper::finalize() #endif } +bool LammpsWrapper::config_has_package(const char *package) const +{ +#if defined(LAMMPS_GUI_USE_PLUGIN) + return ((liblammpsplugin_t *)plugin_handle)->config_has_package(package) != 0; +#else + return lammps_config_has_package(package) != 0; +#endif +} + +bool LammpsWrapper::has_gpu_device() const +{ +#if defined(LAMMPS_GUI_USE_PLUGIN) + return ((liblammpsplugin_t *)plugin_handle)->has_gpu_device() != 0; +#else + return lammps_has_gpu_device() != 0; +#endif +} + #if defined(LAMMPS_GUI_USE_PLUGIN) bool LammpsWrapper::has_plugin() const { diff --git a/tools/lammps-gui/lammpswrapper.h b/tools/lammps-gui/lammpswrapper.h index 858cc12e34..5f33c1f6b6 100644 --- a/tools/lammps-gui/lammpswrapper.h +++ b/tools/lammps-gui/lammpswrapper.h @@ -34,6 +34,8 @@ public: bool is_running(); bool has_error() const; int get_last_error_message(char *errorbuf, int buflen); + bool config_has_package(const char *pkg) const; + bool has_gpu_device() const; bool load_lib(const char *lammpslib); bool has_plugin() const; diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index 7b14b01718..2784c57a80 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -13,9 +13,11 @@ #include "preferences.h" +#include #include #include #include +#include #include #include #include @@ -26,11 +28,16 @@ #include "lammpswrapper.h" +#if defined(_OPENMP) +#include +#endif + Preferences::Preferences(LammpsWrapper *_lammps, QWidget *parent) : QDialog(parent), tabWidget(new QTabWidget), buttonBox(new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel)), settings(new QSettings), lammps(_lammps) { + tabWidget->addTab(new GeneralTab(settings), "General Settings"); tabWidget->addTab(new AcceleratorTab(settings, lammps), "Accelerators"); tabWidget->addTab(new SnapshotTab(settings), "Snapshot Image"); @@ -42,7 +49,7 @@ Preferences::Preferences(LammpsWrapper *_lammps, QWidget *parent) : layout->addWidget(buttonBox); setLayout(layout); setWindowTitle("LAMMPS-GUI - Preferences"); - resize(400, 320); + resize(500, 400); } Preferences::~Preferences() @@ -56,46 +63,172 @@ void Preferences::accept() { // store all data in settings class // and then confirm accepting + + // store selected accelerator + QList allButtons = tabWidget->findChildren(); + for (int i = 0; i < allButtons.size(); ++i) { + if (allButtons[i]->isChecked()) { + if (allButtons[i]->objectName() == "none") + settings->setValue("accelerator", QString::number(AcceleratorTab::None)); + if (allButtons[i]->objectName() == "opt") + settings->setValue("accelerator", QString::number(AcceleratorTab::Opt)); + if (allButtons[i]->objectName() == "openmp") + settings->setValue("accelerator", QString::number(AcceleratorTab::OpenMP)); + if (allButtons[i]->objectName() == "intel") + settings->setValue("accelerator", QString::number(AcceleratorTab::Intel)); + if (allButtons[i]->objectName() == "kokkos") + settings->setValue("accelerator", QString::number(AcceleratorTab::Kokkos)); + if (allButtons[i]->objectName() == "gpu") + settings->setValue("accelerator", QString::number(AcceleratorTab::Gpu)); + } + } + + // store number of threads + QLineEdit *field = tabWidget->findChild("nthreads"); + if (field) + if (field->hasAcceptableInput()) settings->setValue("nthreads", field->text()); + + // store image width, height, and zoom + + settings->beginGroup("snapshot"); + field = tabWidget->findChild("xsize"); + if (field) + if (field->hasAcceptableInput()) settings->setValue("xsize", field->text()); + field = tabWidget->findChild("ysize"); + if (field) + if (field->hasAcceptableInput()) settings->setValue("ysize", field->text()); + field = tabWidget->findChild("zoom"); + if (field) + if (field->hasAcceptableInput()) settings->setValue("zoom", field->text()); + settings->endGroup(); + + // general settings + QCheckBox *box = tabWidget->findChild("echo"); + if (box) settings->setValue("echo", box->isChecked() ? "1" : "0"); + box = tabWidget->findChild("cite"); + if (box) settings->setValue("cite", box->isChecked() ? "1" : "0"); + QDialog::accept(); } +GeneralTab::GeneralTab(QSettings *_settings, QWidget *parent) : QWidget(parent), settings(_settings) +{ + auto *layout = new QVBoxLayout; + + auto *echo = new QCheckBox("Echo input to log"); + echo->setCheckState(settings->value("echo", "0").toInt() ? Qt::Checked : Qt::Unchecked); + echo->setObjectName("echo"); + auto *cite = new QCheckBox("Include Citations"); + cite->setCheckState(settings->value("cite", "0").toInt() ? Qt::Checked : Qt::Unchecked); + cite->setObjectName("cite"); + + layout->addWidget(echo); + layout->addWidget(cite); + layout->addStretch(1); + setLayout(layout); +} + AcceleratorTab::AcceleratorTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *parent) : QWidget(parent), settings(_settings), lammps(_lammps) { - QGroupBox *accelerator = new QGroupBox("Choose Accelerator"); - QRadioButton *none = new QRadioButton("&None"); - QRadioButton *kokkos = new QRadioButton("&Kokkos"); - QRadioButton *intel = new QRadioButton("&Intel"); - QRadioButton *openmp = new QRadioButton("&OpenMP"); - QRadioButton *opt = new QRadioButton("O&pt"); + auto *mainLayout = new QHBoxLayout; + auto *accelerator = new QGroupBox("Choose Accelerator:"); + auto *none = new QRadioButton("&None"); + auto *opt = new QRadioButton("O&pt"); + auto *openmp = new QRadioButton("&OpenMP"); + auto *intel = new QRadioButton("&Intel"); + auto *kokkos = new QRadioButton("&Kokkos"); + auto *gpu = new QRadioButton("&GPU"); - none->setChecked(true); - QVBoxLayout *layout = new QVBoxLayout; - layout->addWidget(none); - layout->addWidget(kokkos); - layout->addWidget(intel); - layout->addWidget(openmp); - layout->addWidget(opt); - layout->addStretch(1); - setLayout(layout); + auto *buttonLayout = new QVBoxLayout; + buttonLayout->addWidget(none); + buttonLayout->addWidget(opt); + buttonLayout->addWidget(openmp); + buttonLayout->addWidget(intel); + buttonLayout->addWidget(kokkos); + buttonLayout->addWidget(gpu); + buttonLayout->addStretch(1); + accelerator->setLayout(buttonLayout); + mainLayout->addWidget(accelerator); + + none->setEnabled(true); + none->setObjectName("none"); + opt->setEnabled(lammps->config_has_package("OPT")); + opt->setObjectName("opt"); + openmp->setEnabled(lammps->config_has_package("OPENMP")); + openmp->setObjectName("openmp"); + intel->setEnabled(lammps->config_has_package("INTEL")); + intel->setObjectName("intel"); + kokkos->setEnabled(lammps->config_has_package("KOKKOS")); + kokkos->setObjectName("kokkos"); + gpu->setEnabled(lammps->config_has_package("GPU") && lammps->has_gpu_device()); + gpu->setObjectName("gpu"); + + int choice = settings->value("accelerator", AcceleratorTab::None).toInt(); + switch (choice) { + case AcceleratorTab::Opt: + if (opt->isEnabled()) opt->setChecked(true); + break; + case AcceleratorTab::OpenMP: + if (openmp->isEnabled()) openmp->setChecked(true); + break; + case AcceleratorTab::Intel: + if (intel->isEnabled()) intel->setChecked(true); + break; + case AcceleratorTab::Kokkos: + if (kokkos->isEnabled()) kokkos->setChecked(true); + break; + case AcceleratorTab::Gpu: + if (gpu->isEnabled()) gpu->setChecked(true); + break; + case AcceleratorTab::None: // fallthrough + default: + none->setChecked(true); + break; + } + + int maxthreads = 1; +#if defined(_OPENMP) + maxthreads = omp_get_max_threads(); +#endif + auto *choices = new QFrame; + auto *choiceLayout = new QVBoxLayout; + auto *ntlabel = new QLabel("Number of threads:"); + auto *ntchoice = new QLineEdit(settings->value("nthreads", maxthreads).toString()); + auto *intval = new QIntValidator(1, maxthreads, this); + ntchoice->setValidator(intval); + ntchoice->setObjectName("nthreads"); + + choiceLayout->addWidget(ntlabel); + choiceLayout->addWidget(ntchoice); + choices->setLayout(choiceLayout); + choiceLayout->addStretch(1); + + mainLayout->addWidget(choices); + setLayout(mainLayout); } SnapshotTab::SnapshotTab(QSettings *_settings, QWidget *parent) : QWidget(parent), settings(_settings) { - QGridLayout *grid = new QGridLayout; + auto *grid = new QGridLayout; auto *xsize = new QLabel("Image width:"); auto *ysize = new QLabel("Image height:"); auto *zoom = new QLabel("Zoom factor:"); - auto *xval = new QLineEdit(settings->value("xsize", "800").toString()); - auto *yval = new QLineEdit(settings->value("ysize", "600").toString()); - auto *zval = new QLineEdit(settings->value("zoom", "1.0").toString()); + settings->beginGroup("snapshot"); + auto *xval = new QLineEdit(settings->value("xsize", "800").toString()); + auto *yval = new QLineEdit(settings->value("ysize", "600").toString()); + auto *zval = new QLineEdit(settings->value("zoom", "1.0").toString()); + settings->endGroup(); auto *intval = new QIntValidator(100, 100000, this); xval->setValidator(intval); + xval->setObjectName("xsize"); yval->setValidator(intval); + yval->setObjectName("ysize"); zval->setValidator(new QDoubleValidator(0.01, 100.0, 100, this)); + zval->setObjectName("zoom"); grid->addWidget(xsize, 0, 0); grid->addWidget(ysize, 1, 0); diff --git a/tools/lammps-gui/preferences.h b/tools/lammps-gui/preferences.h index 1cefb79d43..f3c6b5f8a4 100644 --- a/tools/lammps-gui/preferences.h +++ b/tools/lammps-gui/preferences.h @@ -30,7 +30,7 @@ public: protected slots: void accept() override; - + private: QTabWidget *tabWidget; QDialogButtonBox *buttonBox; @@ -40,12 +40,22 @@ private: // individual tabs +class GeneralTab : public QWidget { + Q_OBJECT + +public: + explicit GeneralTab(QSettings *settings, QWidget *parent = nullptr); + +private: + QSettings *settings; +}; + class AcceleratorTab : public QWidget { Q_OBJECT public: explicit AcceleratorTab(QSettings *settings, LammpsWrapper *lammps, QWidget *parent = nullptr); - enum { None, Intel, Kokkos, OpenMP, Opt }; + enum { None, Opt, OpenMP, Intel, Kokkos, Gpu }; private: QSettings *settings; From c800a2c676596c7c794d7fb394c39059aa6e69ed Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 17:52:56 -0400 Subject: [PATCH 240/247] add menu entry to reset to default settings --- tools/lammps-gui/lammpsgui.cpp | 10 +++++++++- tools/lammps-gui/lammpsgui.h | 3 ++- tools/lammps-gui/lammpsgui.ui | 19 ++++++++++++++----- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 0d483ac2d4..75affdff78 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -140,7 +140,8 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : connect(ui->actionAbout_LAMMPS_GUI, &QAction::triggered, this, &LammpsGui::about); connect(ui->action_Help, &QAction::triggered, this, &LammpsGui::help); connect(ui->actionLAMMPS_Manual, &QAction::triggered, this, &LammpsGui::manual); - connect(ui->actionEdit_Preferences, &QAction::triggered, this, &LammpsGui::preferences); + connect(ui->actionPreferences, &QAction::triggered, this, &LammpsGui::preferences); + connect(ui->actionDefaults, &QAction::triggered, this, &LammpsGui::defaults); connect(ui->textEdit->document(), &QTextDocument::modificationChanged, this, &LammpsGui::modified); @@ -619,6 +620,13 @@ void LammpsGui::manual() QDesktopServices::openUrl(QUrl("https://docs.lammps.org/")); } +void LammpsGui::defaults() +{ + QSettings settings; + settings.clear(); + settings.sync(); +} + void LammpsGui::preferences() { Preferences prefs(&lammps); diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index 372d327448..78e518609e 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -76,6 +76,7 @@ private slots: void logupdate(); void modified(); void preferences(); + void defaults(); private: Ui::LammpsGui *ui; @@ -97,8 +98,8 @@ private: QList recent_files; std::vector lammps_args; }; - #endif // LAMMPSGUI_H + // Local Variables: // c-basic-offset: 4 // End: diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index 92001c2c57..cc8f6fad50 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -33,7 +33,7 @@ 0 0 600 - 24 + 23 @@ -59,7 +59,8 @@ - + + @@ -180,7 +181,7 @@ .. - C&ut + Cu&t Cut Selected Text to Clipboard @@ -321,13 +322,13 @@ Ctrl+Shift+/ - + .. - &Preferences... + Pre&ferences... Ctrl+P @@ -342,6 +343,14 @@ LAMMPS &Manual + + + + + + Reset to &Defaults + + From 6f6eb1dbb163028d5d4e72e3480e0a4de70f7d9c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 17:54:40 -0400 Subject: [PATCH 241/247] update TODO list --- tools/lammps-gui/TODO.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index 15479066a9..af53fb3cf9 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -5,11 +5,7 @@ LAMMPS-GUI TODO list: - add CTRL-q hotkey to log windows so you can exit the entire application (add do you really want to? dialog to this) - add "syntax check" with enabled "-skiprun" flag - add multi-tab settings dialog where certain properties can be set through customizing the LAMMPS command line - + enable/disable OpenMP (via suffix), OPT package, select number of OpenMP threads - + toggle whether captured screen output should include input file echo + select Font - + snapshot image options -- store settings/preferences when changed and read at startup - add list of 5(?) most recently opened/saved files to file dialog (and also write to settings state on exit) (note: must store full path!) # Long term ideas From 07b36025e20ad76adc1a6f17381ea7feac2f4e0b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 17:56:02 -0400 Subject: [PATCH 242/247] small doc fix from @sjplimp --- doc/src/Developer_grid.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Developer_grid.rst b/doc/src/Developer_grid.rst index cd6d8d12ab..22eadd5da8 100644 --- a/doc/src/Developer_grid.rst +++ b/doc/src/Developer_grid.rst @@ -92,8 +92,8 @@ Arguments for these methods can be values returned by the *setup_grid()* method (described below), which define the extent of the grid cells (owned+ghost) the processor owns. These 4 methods allocate memory for 2d (first two) and 3d (second two) grid data. The -two methods that end in "_one" allocate an array which stores a single -value per grid cell. The two that end in "_multi" allocate an array +two methods that end in "_offset" allocate an array which stores a single +value per grid cell. The two that end in "_last" allocate an array which stores *Nvalues* per grid cell. .. code-block:: c++ From f6732f028c126ed1cf98e68f4aff69705f73f924 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 21:06:30 -0400 Subject: [PATCH 243/247] support running with Kokkos + OpenMP --- tools/lammps-gui/lammpsgui.cpp | 8 +++++++- tools/lammps-gui/lammpswrapper.cpp | 11 +++++++++++ tools/lammps-gui/lammpswrapper.h | 1 + tools/lammps-gui/preferences.cpp | 11 ++++++++++- 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 75affdff78..42790122f4 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -665,8 +665,14 @@ void LammpsGui::start_lammps() lammps_args.push_back(mystrdup("-pk")); lammps_args.push_back(mystrdup("gpu")); lammps_args.push_back(mystrdup("0")); + } else if (accel == AcceleratorTab::Kokkos) { + lammps_args.push_back(mystrdup("-kokkos")); + lammps_args.push_back(mystrdup("on")); + lammps_args.push_back(mystrdup("t")); + lammps_args.push_back(mystrdup(std::to_string(nthreads))); + lammps_args.push_back(mystrdup("-suffix")); + lammps_args.push_back(mystrdup("kk")); } - if (settings.value("echo", "0").toInt()) { lammps_args.push_back(mystrdup("-echo")); lammps_args.push_back(mystrdup("screen")); diff --git a/tools/lammps-gui/lammpswrapper.cpp b/tools/lammps-gui/lammpswrapper.cpp index d8a8b78568..af6d532e0d 100644 --- a/tools/lammps-gui/lammpswrapper.cpp +++ b/tools/lammps-gui/lammpswrapper.cpp @@ -160,6 +160,17 @@ bool LammpsWrapper::config_has_package(const char *package) const #endif } +bool LammpsWrapper::config_accelerator(const char *package, const char *category, + const char *setting) const +{ +#if defined(LAMMPS_GUI_USE_PLUGIN) + return ((liblammpsplugin_t *)plugin_handle)->config_accelerator(package, category, setting) != + 0; +#else + return lammps_config_accelerator(package, category, setting) != 0; +#endif +} + bool LammpsWrapper::has_gpu_device() const { #if defined(LAMMPS_GUI_USE_PLUGIN) diff --git a/tools/lammps-gui/lammpswrapper.h b/tools/lammps-gui/lammpswrapper.h index 5f33c1f6b6..db8a0ba3d6 100644 --- a/tools/lammps-gui/lammpswrapper.h +++ b/tools/lammps-gui/lammpswrapper.h @@ -34,6 +34,7 @@ public: bool is_running(); bool has_error() const; int get_last_error_message(char *errorbuf, int buflen); + bool config_accelerator(const char *package, const char *category, const char *setting) const; bool config_has_package(const char *pkg) const; bool has_gpu_device() const; diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index 2784c57a80..bb1756c76d 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -159,7 +159,16 @@ AcceleratorTab::AcceleratorTab(QSettings *_settings, LammpsWrapper *_lammps, QWi openmp->setObjectName("openmp"); intel->setEnabled(lammps->config_has_package("INTEL")); intel->setObjectName("intel"); - kokkos->setEnabled(lammps->config_has_package("KOKKOS")); + // Kokkos support only works with OpenMP for now. + if (lammps->config_has_package("KOKKOS")) { + if (lammps->config_accelerator("KOKKOS", "api", "openmp") && + !(lammps->config_accelerator("KOKKOS", "api", "cuda") || + lammps->config_accelerator("KOKKOS", "api", "hip") || + lammps->config_accelerator("KOKKOS", "api", "sycl"))) + kokkos->setEnabled(true); + else + kokkos->setEnabled(false); + } kokkos->setObjectName("kokkos"); gpu->setEnabled(lammps->config_has_package("GPU") && lammps->has_gpu_device()); gpu->setObjectName("gpu"); From 2a82ed9494de33049091f746d93af1724d040aa9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 21:35:28 -0400 Subject: [PATCH 244/247] add accelerators for tabs and layout tweaks --- tools/lammps-gui/preferences.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index bb1756c76d..8488d35450 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -37,9 +38,9 @@ Preferences::Preferences(LammpsWrapper *_lammps, QWidget *parent) : buttonBox(new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel)), settings(new QSettings), lammps(_lammps) { - tabWidget->addTab(new GeneralTab(settings), "General Settings"); - tabWidget->addTab(new AcceleratorTab(settings, lammps), "Accelerators"); - tabWidget->addTab(new SnapshotTab(settings), "Snapshot Image"); + tabWidget->addTab(new GeneralTab(settings), "&General Settings"); + tabWidget->addTab(new AcceleratorTab(settings, lammps), "&Accelerators"); + tabWidget->addTab(new SnapshotTab(settings), "&Snapshot Image"); connect(buttonBox, &QDialogButtonBox::accepted, this, &Preferences::accept); connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); @@ -239,12 +240,15 @@ SnapshotTab::SnapshotTab(QSettings *_settings, QWidget *parent) : zval->setValidator(new QDoubleValidator(0.01, 100.0, 100, this)); zval->setObjectName("zoom"); - grid->addWidget(xsize, 0, 0); - grid->addWidget(ysize, 1, 0); - grid->addWidget(zoom, 2, 0); - grid->addWidget(xval, 0, 1); - grid->addWidget(yval, 1, 1); - grid->addWidget(zval, 2, 1); + grid->addWidget(xsize, 0, 0, Qt::AlignTop); + grid->addWidget(ysize, 1, 0, Qt::AlignTop); + grid->addWidget(zoom, 2, 0, Qt::AlignTop); + grid->addWidget(xval, 0, 1, Qt::AlignTop); + grid->addWidget(yval, 1, 1, Qt::AlignTop); + grid->addWidget(zval, 2, 1, Qt::AlignTop); + grid->addItem(new QSpacerItem(100, 100, QSizePolicy::Minimum, QSizePolicy::Expanding), 3, 0); + grid->addItem(new QSpacerItem(100, 100, QSizePolicy::Minimum, QSizePolicy::Expanding), 3, 1); + grid->addItem(new QSpacerItem(100, 100, QSizePolicy::Expanding, QSizePolicy::Expanding), 3, 2); setLayout(grid); } From 3f1f08d4c0e134caf603005f6703326cbadcaa85 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 23:33:51 -0400 Subject: [PATCH 245/247] add setting support for selecting the LAMMPS plugin shared object --- tools/lammps-gui/lammpsgui.cpp | 7 +++- tools/lammps-gui/lammpswrapper.cpp | 6 ++- tools/lammps-gui/preferences.cpp | 67 ++++++++++++++++++++++++++++-- tools/lammps-gui/preferences.h | 9 +++- 4 files changed, 80 insertions(+), 9 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 42790122f4..3902e89abb 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -164,13 +164,15 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : dirstatus->show(); ui->statusbar->addWidget(progress); +#if defined(LAMMPS_GUI_USE_PLUGIN) plugin_path.clear(); std::string deffile = settings.value("plugin_path", "liblammps.so").toString().toStdString(); for (const char *libfile : {deffile.c_str(), "./liblammps.so", "liblammps.dylib", "./liblammps.dylib", "liblammps.dll"}) { if (lammps.load_lib(libfile)) { - plugin_path = libfile; - settings.setValue("plugin_path", QString(libfile)); + auto canonical = QFileInfo(libfile).canonicalFilePath(); + plugin_path = canonical.toStdString(); + settings.setValue("plugin_path", canonical); break; } } @@ -182,6 +184,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : // QCoreApplication::quit(); exit(1); } +#endif if (filename) { open_file(filename); diff --git a/tools/lammps-gui/lammpswrapper.cpp b/tools/lammps-gui/lammpswrapper.cpp index af6d532e0d..3292217d77 100644 --- a/tools/lammps-gui/lammpswrapper.cpp +++ b/tools/lammps-gui/lammpswrapper.cpp @@ -191,7 +191,11 @@ bool LammpsWrapper::load_lib(const char *libfile) if (plugin_handle) liblammpsplugin_release((liblammpsplugin_t *)plugin_handle); plugin_handle = liblammpsplugin_load(libfile); if (!plugin_handle) return false; - if (((liblammpsplugin_t *)plugin_handle)->abiversion != LAMMPSPLUGIN_ABI_VERSION) return false; + if (((liblammpsplugin_t *)plugin_handle)->abiversion != LAMMPSPLUGIN_ABI_VERSION) { + liblammpsplugin_release((liblammpsplugin_t *)plugin_handle); + plugin_handle = nullptr; + return false; + } return true; } #else diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index 8488d35450..177f1b6742 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -13,22 +13,27 @@ #include "preferences.h" +#include "lammpswrapper.h" + #include +#include #include +#include #include +#include #include #include #include #include #include +#include +#include #include #include #include #include #include -#include "lammpswrapper.h" - #if defined(_OPENMP) #include #endif @@ -38,7 +43,7 @@ Preferences::Preferences(LammpsWrapper *_lammps, QWidget *parent) : buttonBox(new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel)), settings(new QSettings), lammps(_lammps) { - tabWidget->addTab(new GeneralTab(settings), "&General Settings"); + tabWidget->addTab(new GeneralTab(settings, lammps), "&General Settings"); tabWidget->addTab(new AcceleratorTab(settings, lammps), "&Accelerators"); tabWidget->addTab(new SnapshotTab(settings), "&Snapshot Image"); @@ -112,7 +117,8 @@ void Preferences::accept() QDialog::accept(); } -GeneralTab::GeneralTab(QSettings *_settings, QWidget *parent) : QWidget(parent), settings(_settings) +GeneralTab::GeneralTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *parent) : + QWidget(parent), settings(_settings), lammps(_lammps) { auto *layout = new QVBoxLayout; @@ -122,13 +128,66 @@ GeneralTab::GeneralTab(QSettings *_settings, QWidget *parent) : QWidget(parent), auto *cite = new QCheckBox("Include Citations"); cite->setCheckState(settings->value("cite", "0").toInt() ? Qt::Checked : Qt::Unchecked); cite->setObjectName("cite"); + auto *tmplabel = new QLabel("Scratch Folder:"); + auto *tmpedit = new QLineEdit(settings->value("tempdir", ".").toString()); + auto *tmpbrowse = new QPushButton("Browse..."); + auto *tmplayout = new QHBoxLayout; + tmpedit->setObjectName("tmpedit"); + tmplayout->addWidget(tmplabel); + tmplayout->addWidget(tmpedit); + tmplayout->addWidget(tmpbrowse); +#if defined(LAMMPS_GUI_USE_PLUGIN) + auto *pluginlabel = new QLabel("Path to LAMMPS Shared Library File:"); + auto *pluginedit = + new QLineEdit(settings->value("plugin_path", "liblammpsplugin.so").toString()); + auto *pluginbrowse = new QPushButton("Browse..."); + auto *pluginlayout = new QHBoxLayout; + pluginedit->setObjectName("pluginedit"); + pluginlayout->addWidget(pluginedit); + pluginlayout->addWidget(pluginbrowse); + + connect(pluginbrowse, &QPushButton::released, this, &GeneralTab::pluginpath); +#endif layout->addWidget(echo); layout->addWidget(cite); + layout->addLayout(tmplayout); +#if defined(LAMMPS_GUI_USE_PLUGIN) + layout->addWidget(pluginlabel); + layout->addLayout(pluginlayout); +#endif layout->addStretch(1); setLayout(layout); } +void GeneralTab::newtmpfolder() +{ + QLineEdit *field = findChild("tmpedit"); + QString tmpdir = + QFileDialog::getExistingDirectory(this, "Find Folder for Temporary Files", field->text()); + if (!tmpdir.isEmpty()) field->setText(tmpdir); +} + +void GeneralTab::pluginpath() +{ + QLineEdit *field = findChild("pluginedit"); + QString pluginfile = + QFileDialog::getOpenFileName(this, "Select Shared LAMMPS Library to Load", field->text(), + "Shared Objects (*.so *.dll *.dylib)"); + if (!pluginfile.isEmpty() && pluginfile.contains("liblammps", Qt::CaseSensitive)) { + if (lammps->load_lib(pluginfile.toStdString().c_str())) { + auto canonical = QFileInfo(pluginfile).canonicalFilePath(); + field->setText(pluginfile); + settings->setValue("plugin_path", canonical); + } else { + // plugin did not load cannot continue + settings->remove("plugin_path"); + QMessageBox::critical(this, "Error", "Cannot open LAMMPS shared library file"); + QCoreApplication::quit(); + } + } +} + AcceleratorTab::AcceleratorTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *parent) : QWidget(parent), settings(_settings), lammps(_lammps) { diff --git a/tools/lammps-gui/preferences.h b/tools/lammps-gui/preferences.h index f3c6b5f8a4..46a512772a 100644 --- a/tools/lammps-gui/preferences.h +++ b/tools/lammps-gui/preferences.h @@ -28,7 +28,7 @@ public: explicit Preferences(LammpsWrapper *lammps, QWidget *parent = nullptr); ~Preferences() override; -protected slots: +private slots: void accept() override; private: @@ -44,10 +44,15 @@ class GeneralTab : public QWidget { Q_OBJECT public: - explicit GeneralTab(QSettings *settings, QWidget *parent = nullptr); + explicit GeneralTab(QSettings *settings, LammpsWrapper *lammps, QWidget *parent = nullptr); + +private slots: + void pluginpath(); + void newtmpfolder(); private: QSettings *settings; + LammpsWrapper *lammps; }; class AcceleratorTab : public QWidget { From 8d5343ea23e715158b6f9f50af1d915bb06ffe47 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 23:46:44 -0400 Subject: [PATCH 246/247] temporary skip showing broken temp file setting on macOS --- tools/lammps-gui/preferences.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index 177f1b6742..03910b3cfd 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -128,6 +128,7 @@ GeneralTab::GeneralTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *pa auto *cite = new QCheckBox("Include Citations"); cite->setCheckState(settings->value("cite", "0").toInt() ? Qt::Checked : Qt::Unchecked); cite->setObjectName("cite"); +#if !defined(__APPLE__) auto *tmplabel = new QLabel("Scratch Folder:"); auto *tmpedit = new QLineEdit(settings->value("tempdir", ".").toString()); auto *tmpbrowse = new QPushButton("Browse..."); @@ -136,6 +137,7 @@ GeneralTab::GeneralTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *pa tmplayout->addWidget(tmplabel); tmplayout->addWidget(tmpedit); tmplayout->addWidget(tmpbrowse); +#endif #if defined(LAMMPS_GUI_USE_PLUGIN) auto *pluginlabel = new QLabel("Path to LAMMPS Shared Library File:"); @@ -151,7 +153,9 @@ GeneralTab::GeneralTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *pa #endif layout->addWidget(echo); layout->addWidget(cite); +#if !defined(__APPLE__) layout->addLayout(tmplayout); +#endif #if defined(LAMMPS_GUI_USE_PLUGIN) layout->addWidget(pluginlabel); layout->addLayout(pluginlayout); From 3c24e4fbf39ecce9202da1a7ac77bab7124ca407 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 2 Aug 2023 23:53:32 -0400 Subject: [PATCH 247/247] fix typo --- tools/lammps-gui/preferences.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index 03910b3cfd..628a50a11a 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -224,14 +224,13 @@ AcceleratorTab::AcceleratorTab(QSettings *_settings, LammpsWrapper *_lammps, QWi intel->setEnabled(lammps->config_has_package("INTEL")); intel->setObjectName("intel"); // Kokkos support only works with OpenMP for now. + kokkos->setEnabled(false); if (lammps->config_has_package("KOKKOS")) { if (lammps->config_accelerator("KOKKOS", "api", "openmp") && !(lammps->config_accelerator("KOKKOS", "api", "cuda") || lammps->config_accelerator("KOKKOS", "api", "hip") || lammps->config_accelerator("KOKKOS", "api", "sycl"))) kokkos->setEnabled(true); - else - kokkos->setEnabled(false); } kokkos->setObjectName("kokkos"); gpu->setEnabled(lammps->config_has_package("GPU") && lammps->has_gpu_device());
  2. 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:v6t(x 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%0A?Ug25_f5WeWd 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�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

    7v>%WW{t7@e;$(rxpX*ezx; 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