From 1792679bb849c3a9eb0b4b8351289b36135b75a3 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Mon, 3 Jun 2024 14:28:31 -0400 Subject: [PATCH 001/169] first draft of pair style lj/spica/coul/long/kk --- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 590 ++++++++++++++++++ src/KOKKOS/pair_lj_spica_coul_long_kokkos.h | 138 ++++ 2 files changed, 728 insertions(+) create mode 100644 src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp create mode 100644 src/KOKKOS/pair_lj_spica_coul_long_kokkos.h diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp new file mode 100644 index 0000000000..e0d6542418 --- /dev/null +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -0,0 +1,590 @@ +// clang-format off +/* ---------------------------------------------------------------------- + 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 "pair_lj_spica_coul_long_kokkos.h" + +#include "atom_kokkos.h" +#include "atom_masks.h" +//#include "comm.h" +#include "error.h" +#include "ewald_const.h" +#include "force.h" +#include "kokkos.h" +#include "memory_kokkos.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "neighbor.h" +#include "respa.h" +#include "update.h" + +#include "lj_spica_common.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace LJSPICAParms; + +// FIXME: +using namespace EwaldConst; + +/* ---------------------------------------------------------------------- */ + +template +PairLJSPICACoulLongKokkos::PairLJSPICACoulLongKokkos(LAMMPS *lmp) : PairLJSPICACoulLong(lmp) +{ + respa_enable = 0; + + kokkosable = 1; + atomKK = (AtomKokkos *) atom; + execution_space = ExecutionSpaceFromDevice::space; + datamask_read = X_MASK | F_MASK | TYPE_MASK | ENERGY_MASK | VIRIAL_MASK; + datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; +} + +/* ---------------------------------------------------------------------- */ + +template +PairLJSPICACoulLongKokkos::~PairLJSPICACoulLongKokkos() +{ + if (copymode) return; + + if (allocated) { + memoryKK->destroy_kokkos(k_eatom,eatom); + memoryKK->destroy_kokkos(k_vatom,vatom); + memoryKK->destroy_kokkos(k_cutsq,cutsq); + memoryKK->destroy_kokkos(k_cut_lj,cut_lj); + memoryKK->destroy_kokkos(k_cut_ljsq,cut_ljsq); + } +} + +/* ---------------------------------------------------------------------- */ + +template +void PairLJSPICACoulLongKokkos::compute(int eflag_in, int vflag_in) +{ + eflag = eflag_in; + vflag = vflag_in; + + + if (neighflag == FULL) no_virial_fdotr_compute = 1; + + ev_init(eflag,vflag,0); + + // reallocate per-atom arrays if necessary + + if (eflag_atom) { + memoryKK->destroy_kokkos(k_eatom,eatom); + memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"pair:eatom"); + d_eatom = k_eatom.view(); + } + if (vflag_atom) { + memoryKK->destroy_kokkos(k_vatom,vatom); + memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"pair:vatom"); + d_vatom = k_vatom.view(); + } + + atomKK->sync(execution_space,datamask_read); + k_cutsq.template sync(); + k_params.template sync(); + if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); + else atomKK->modified(execution_space,F_MASK); + + x = atomKK->k_x.view(); + c_x = atomKK->k_x.view(); + f = atomKK->k_f.view(); + q = atomKK->k_q.view(); + type = atomKK->k_type.view(); + nlocal = atom->nlocal; + nall = atom->nlocal + atom->nghost; + special_lj[0] = force->special_lj[0]; + special_lj[1] = force->special_lj[1]; + special_lj[2] = force->special_lj[2]; + special_lj[3] = force->special_lj[3]; + special_coul[0] = force->special_coul[0]; + special_coul[1] = force->special_coul[1]; + special_coul[2] = force->special_coul[2]; + special_coul[3] = force->special_coul[3]; + qqrd2e = force->qqrd2e; + newton_pair = force->newton_pair; + + // loop over neighbors of my atoms + + // FIXME: taken from pair_lj_charmmfsw_coul_long, is it needed ??? + copymode = 1; + + //EV_FLOAT ev = pair_compute,void >(this,(NeighListKokkos*)list); + + EV_FLOAT ev; + if (ncoultablebits) + ev = pair_compute,CoulLongTable<1> > + (this,(NeighListKokkos*)list); + else + ev = pair_compute,CoulLongTable<0> > + (this,(NeighListKokkos*)list); + + if (eflag) { + eng_vdwl += ev.evdwl; + eng_coul += ev.ecoul; + } + + if (vflag_global) { + virial[0] += ev.v[0]; + virial[1] += ev.v[1]; + virial[2] += ev.v[2]; + virial[3] += ev.v[3]; + virial[4] += ev.v[4]; + virial[5] += ev.v[5]; + } + + if (eflag_atom) { + k_eatom.template modify(); + k_eatom.template sync(); + } + + if (vflag_atom) { + k_vatom.template modify(); + k_vatom.template sync(); + } + + if (vflag_fdotr) pair_virial_fdotr_compute(this); + +} + +/* ---------------------------------------------------------------------- + compute pair force between atoms i and j + ---------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION +F_FLOAT PairLJSPICACoulLongKokkos:: +compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { + (void) i; + (void) j; + const F_FLOAT r2inv = 1.0/rsq; + const int ljt = (STACKPARAMS?m_params[itype][jtype].lj_type:params(itype,jtype).lj_type); + + const F_FLOAT lj_1 = (STACKPARAMS?m_params[itype][jtype].lj1:params(itype,jtype).lj1); + const F_FLOAT lj_2 = (STACKPARAMS?m_params[itype][jtype].lj2:params(itype,jtype).lj2); + + /*if (ljt == LJ12_4) { + + const F_FLOAT r4inv=r2inv*r2inv; + return r4inv*(lj_1*r4inv*r4inv - lj_2) * r2inv; + + } else if (ljt == LJ9_6) { + + const F_FLOAT r3inv = r2inv*sqrt(r2inv); + const F_FLOAT r6inv = r3inv*r3inv; + return r6inv*(lj_1*r3inv - lj_2) * r2inv; + + } else if (ljt == LJ12_6) { + + const double r6inv = r2inv*r2inv*r2inv; + return r6inv*(lj_1*r6inv - lj_2) * r2inv; + + } else if (ljt == LJ12_5) { + + const F_FLOAT r5inv = r2inv*r2inv*sqrt(r2inv); + const F_FLOAT r7inv = r5inv*r2inv; + return r5inv*(lj_1*r7inv - lj_2) * r2inv; + + } + if (ljt!=LJ12_4 && ljt!=LJ9_6 && ljt!=LJ12_6 && ljt!=LJ12_5) return 0.0;*/ + const F_FLOAT r4inv=r2inv*r2inv; + const F_FLOAT r6inv=r2inv*r4inv; + const F_FLOAT a = ljt==LJ12_4?r4inv:(ljt==LJ12_5?r4inv*sqrt(r2inv):r6inv); + const F_FLOAT b = ljt==LJ12_4?r4inv:(ljt==LJ9_6?1.0/sqrt(r2inv):(ljt==LJ12_5?r2inv*sqrt(r2inv):r2inv)); + return a* ( lj_1*r6inv*b - lj_2 * r2inv); +} + + +/* ---------------------------------------------------------------------- + compute pair potential energy between atoms i and j + ---------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION +F_FLOAT PairLJSPICACoulLongKokkos:: +compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { + (void) i; + (void) j; + const F_FLOAT r2inv = 1.0/rsq; + const int ljt = (STACKPARAMS?m_params[itype][jtype].lj_type:params(itype,jtype).lj_type); + + const F_FLOAT lj_3 = (STACKPARAMS?m_params[itype][jtype].lj3:params(itype,jtype).lj3); + const F_FLOAT lj_4 = (STACKPARAMS?m_params[itype][jtype].lj4:params(itype,jtype).lj4); + const F_FLOAT offset = (STACKPARAMS?m_params[itype][jtype].offset:params(itype,jtype).offset); + + if (ljt == LJ12_4) { + const F_FLOAT r4inv=r2inv*r2inv; + + return r4inv*(lj_3*r4inv*r4inv - lj_4) - offset; + + } else if (ljt == LJ9_6) { + const F_FLOAT r3inv = r2inv*sqrt(r2inv); + const F_FLOAT r6inv = r3inv*r3inv; + return r6inv*(lj_3*r3inv - lj_4) - offset; + + } else if (ljt == LJ12_6) { + const double r6inv = r2inv*r2inv*r2inv; + return r6inv*(lj_3*r6inv - lj_4) - offset; + + } else if (ljt == LJ12_5) { + const F_FLOAT r5inv = r2inv*r2inv*sqrt(r2inv); + const F_FLOAT r7inv = r5inv*r2inv; + return r5inv*(lj_3*r7inv - lj_4) - offset; + } else + return 0.0; +} + +/* ---------------------------------------------------------------------- + compute coulomb pair force between atoms i and j +------------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION +F_FLOAT PairLJSPICACoulLongKokkos:: +compute_fcoul(const F_FLOAT& rsq, const int& /*i*/, const int&j, + const int& /*itype*/, const int& /*jtype*/, + const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const { + +/* + + r2inv = 1.0 / rsq; + const int ljt = lj_type[itype][jtype]; + + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) { + r = sqrt(rsq); + grij = g_ewald * r; + expm2 = exp(-grij * grij); + t = 1.0 / (1.0 + EWALD_P * grij); + erfc = t * (A1 + t * (A2 + t * (A3 + t * (A4 + t * A5)))) * expm2; + prefactor = qqrd2e * qtmp * q[j] / r; + forcecoul = prefactor * (erfc + EWALD_F * grij * expm2); + if (EFLAG) ecoul = prefactor * erfc; + if (factor_coul < 1.0) { + forcecoul -= (1.0 - factor_coul) * prefactor; + if (EFLAG) ecoul -= (1.0 - factor_coul) * prefactor; + } + } else { + union_int_float_t rsq_lookup; + rsq_lookup.f = rsq; + itable = rsq_lookup.i & ncoulmask; + itable >>= ncoulshiftbits; + fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable]; + table = ftable[itable] + fraction * dftable[itable]; + forcecoul = qtmp * q[j] * table; + if (EFLAG) ecoul = qtmp * q[j] * (etable[itable] + fraction * detable[itable]); + if (factor_coul < 1.0) { + table = ctable[itable] + fraction * dctable[itable]; + prefactor = qtmp * q[j] * table; + forcecoul -= (1.0 - factor_coul) * prefactor; + if (EFLAG) ecoul -= (1.0 - factor_coul) * prefactor; + } + } + } + +*/ + + + + if (Specialisation::DoTable && rsq > tabinnersq) { + union_int_float_t rsq_lookup; + rsq_lookup.f = rsq; + const int itable = (rsq_lookup.i & ncoulmask) >> ncoulshiftbits; + const F_FLOAT fraction = (rsq_lookup.f - d_rtable[itable]) * d_drtable[itable]; + const F_FLOAT table = d_ftable[itable] + fraction*d_dftable[itable]; + F_FLOAT forcecoul = qtmp*q[j] * table; + if (factor_coul < 1.0) { + const F_FLOAT table = d_ctable[itable] + fraction*d_dctable[itable]; + const F_FLOAT prefactor = qtmp*q[j] * table; + forcecoul -= (1.0-factor_coul)*prefactor; + } + return forcecoul/rsq; + } else { + const F_FLOAT r = sqrt(rsq); + const F_FLOAT grij = g_ewald * r; + const F_FLOAT expm2 = exp(-grij*grij); + const F_FLOAT t = 1.0 / (1.0 + EWALD_P*grij); + const F_FLOAT rinv = 1.0/r; + const F_FLOAT erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + const F_FLOAT prefactor = qqrd2e * qtmp*q[j]*rinv; + F_FLOAT forcecoul = prefactor * (erfc + EWALD_F*grij*expm2); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor; + + return forcecoul*rinv*rinv; + } +} + + +/* ---------------------------------------------------------------------- + compute coulomb pair potential energy between atoms i and j +------------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION +F_FLOAT PairLJSPICACoulLongKokkos:: +compute_ecoul(const F_FLOAT& rsq, const int& /*i*/, const int&j, + const int& /*itype*/, const int& /*jtype*/, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const { + if (Specialisation::DoTable && rsq > tabinnersq) { + union_int_float_t rsq_lookup; + rsq_lookup.f = rsq; + const int itable = (rsq_lookup.i & ncoulmask) >> ncoulshiftbits; + const F_FLOAT fraction = (rsq_lookup.f - d_rtable[itable]) * d_drtable[itable]; + const F_FLOAT table = d_etable[itable] + fraction*d_detable[itable]; + F_FLOAT ecoul = qtmp*q[j] * table; + if (factor_coul < 1.0) { + const F_FLOAT table = d_ctable[itable] + fraction*d_dctable[itable]; + const F_FLOAT prefactor = qtmp*q[j] * table; + ecoul -= (1.0-factor_coul)*prefactor; + } + return ecoul; + } else { + const F_FLOAT r = sqrt(rsq); + const F_FLOAT grij = g_ewald * r; + const F_FLOAT expm2 = exp(-grij*grij); + const F_FLOAT t = 1.0 / (1.0 + EWALD_P*grij); + const F_FLOAT erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + const F_FLOAT prefactor = qqrd2e * qtmp*q[j]/r; + F_FLOAT ecoul = prefactor * erfc; + if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor; + return ecoul; + } +} + + + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +template +void PairLJSPICACoulLongKokkos::allocate() +{ + PairLJSPICACoulLong::allocate(); + + int n = atom->ntypes; + //memory->destroy(cutsq); + //memory->destroy(cut_lj); + //memory->destroy(cut_ljsq); + memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); + memoryKK->create_kokkos(k_cut_lj,cut_lj,n+1,n+1,"pair:cut_lj"); + memoryKK->create_kokkos(k_cut_ljsq,cut_ljsq,n+1,n+1,"pair:cut_ljsq"); + d_cutsq = k_cutsq.template view(); + d_cut_lj = k_cut_lj.template view(); + d_cut_ljsq = k_cut_ljsq.template view(); + k_params = Kokkos::DualView("PairLJSPICACoulLong::params",n+1,n+1); + params = k_params.template view(); +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +template +void PairLJSPICACoulLongKokkos::settings(int narg, char **arg) +{ + if (narg > 2) error->all(FLERR,"Illegal pair_style command"); + + PairLJSPICACoulLong::settings(1,arg); +} + + +/* ---------------------------------------------------------------------- + init tables +------------------------------------------------------------------------- */ + +/* +template +void PairLJSPICACoulLongKokkos::init_tables(double cut_coul, double *cut_respa) +{ + Pair::init_tables(cut_coul,cut_respa); + + typedef typename ArrayTypes::t_ffloat_1d table_type; + typedef typename ArrayTypes::t_ffloat_1d host_table_type; + + int ntable = 1; + for (int i = 0; i < ncoultablebits; i++) ntable *= 2; + + + // Copy rtable and drtable + { + host_table_type h_table("HostTable",ntable); + table_type d_table("DeviceTable",ntable); + for (int i = 0; i < ntable; i++) { + h_table(i) = rtable[i]; + } + Kokkos::deep_copy(d_table,h_table); + d_rtable = d_table; + } + + { + host_table_type h_table("HostTable",ntable); + table_type d_table("DeviceTable",ntable); + for (int i = 0; i < ntable; i++) { + h_table(i) = drtable[i]; + } + Kokkos::deep_copy(d_table,h_table); + d_drtable = d_table; + } + + { + host_table_type h_table("HostTable",ntable); + table_type d_table("DeviceTable",ntable); + + // Copy ftable and dftable + for (int i = 0; i < ntable; i++) { + h_table(i) = ftable[i]; + } + Kokkos::deep_copy(d_table,h_table); + d_ftable = d_table; + } + + { + host_table_type h_table("HostTable",ntable); + table_type d_table("DeviceTable",ntable); + + for (int i = 0; i < ntable; i++) { + h_table(i) = dftable[i]; + } + Kokkos::deep_copy(d_table,h_table); + d_dftable = d_table; + } + + { + host_table_type h_table("HostTable",ntable); + table_type d_table("DeviceTable",ntable); + + // Copy ctable and dctable + for (int i = 0; i < ntable; i++) { + h_table(i) = ctable[i]; + } + Kokkos::deep_copy(d_table,h_table); + d_ctable = d_table; + } + + { + host_table_type h_table("HostTable",ntable); + table_type d_table("DeviceTable",ntable); + + for (int i = 0; i < ntable; i++) { + h_table(i) = dctable[i]; + } + Kokkos::deep_copy(d_table,h_table); + d_dctable = d_table; + } + + { + host_table_type h_table("HostTable",ntable); + table_type d_table("DeviceTable",ntable); + + // Copy etable and detable + for (int i = 0; i < ntable; i++) { + h_table(i) = etable[i]; + } + Kokkos::deep_copy(d_table,h_table); + d_etable = d_table; + } + + { + host_table_type h_table("HostTable",ntable); + table_type d_table("DeviceTable",ntable); + + for (int i = 0; i < ntable; i++) { + h_table(i) = detable[i]; + } + Kokkos::deep_copy(d_table,h_table); + d_detable = d_table; + } +} +*/ + + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +template +void PairLJSPICACoulLongKokkos::init_style() +{ + PairLJSPICACoulLong::init_style(); + + // error if rRESPA with inner levels + + if (update->whichflag == 1 && utils::strmatch(update->integrate_style,"^respa")) { + int respa = 0; + if (((Respa *) update->integrate)->level_inner >= 0) respa = 1; + if (((Respa *) update->integrate)->level_middle >= 0) respa = 2; + if (respa) + error->all(FLERR,"Cannot use Kokkos pair style with rRESPA inner/middle"); + } + + // adjust neighbor list request for KOKKOS + + neighflag = lmp->kokkos->neighflag; + auto request = neighbor->find_request(this); + request->set_kokkos_host(std::is_same_v && + !std::is_same_v); + request->set_kokkos_device(std::is_same_v); + if (neighflag == FULL) request->enable_full(); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +template +double PairLJSPICACoulLongKokkos::init_one(int i, int j) +{ + double cutone = PairLJSPICACoulLong::init_one(i,j); + + k_params.h_view(i,j).lj1 = lj1[i][j]; + k_params.h_view(i,j).lj2 = lj2[i][j]; + k_params.h_view(i,j).lj3 = lj3[i][j]; + k_params.h_view(i,j).lj4 = lj4[i][j]; + k_params.h_view(i,j).offset = offset[i][j]; + k_params.h_view(i,j).cutsq = cutone*cutone; + k_params.h_view(i,j).cut_ljsq = cut_ljsq[i][j]; + k_params.h_view(i,j).cut_coulsq = cut_coulsq[i][j]; + k_params.h_view(i,j).lj_type = lj_type[i][j]; + k_params.h_view(j,i) = k_params.h_view(i,j); + if (i(); + k_params.template modify(); + + return cutone; +} + + + +namespace LAMMPS_NS { +template class PairLJSPICACoulLongKokkos; +#ifdef LMP_KOKKOS_GPU +template class PairLJSPICACoulLongKokkos; +#endif +} + diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h new file mode 100644 index 0000000000..8a57753bae --- /dev/null +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h @@ -0,0 +1,138 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS +// clang-format off +PairStyle(lj/spica/coul/long/kk,PairLJSPICACoulLongKokkos); +PairStyle(lj/spica/coul/long/kk/device,PairLJSPICACoulLongKokkos); +PairStyle(lj/spica/coul/long/kk/host,PairLJSPICACoulLongKokkos); +PairStyle(lj/sdk/coul/long/kk,PairLJSPICACoulLongKokkos); +PairStyle(lj/sdk/coul/long/kk/device,PairLJSPICACoulLongKokkos); +PairStyle(lj/sdk/coul/long/kk/host,PairLJSPICACoulLongKokkos); +// clang-format on +#else + +// clang-format off +#ifndef LMP_PAIR_LJ_SPICA_COUL_LONG_KOKKOS_H +#define LMP_PAIR_LJ_SPICA_COUL_LONG_KOKKOS_H + +#include "pair_kokkos.h" +#include "pair_lj_spica_coul_long.h" +#include "neigh_list_kokkos.h" + +namespace LAMMPS_NS { + +template +class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { + public: + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; + enum {COUL_FLAG=1}; + typedef DeviceType device_type; + typedef ArrayTypes AT; + PairLJSPICACoulLongKokkos(class LAMMPS *); + ~PairLJSPICACoulLongKokkos() override; + + void compute(int, int) override; + + void settings(int, char **) override; + void init_tables(double cut_coul, double *cut_respa) override; + void init_style() override; + double init_one(int, int) override; + + struct params_lj{ + KOKKOS_INLINE_FUNCTION + params_lj() {cutsq=0;cut_lj=0;cut_ljsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;lj_type=0;}; + KOKKOS_INLINE_FUNCTION + params_lj(int /*i*/) {cutsq=0;cut_lj=0;cut_ljsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;lj_type=0;}; + F_FLOAT cutsq,cut_lj,cut_ljsq,lj1,lj2,lj3,lj4,offset; + int lj_type; + }; + + protected: + template + KOKKOS_INLINE_FUNCTION + F_FLOAT compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const; + + template + KOKKOS_INLINE_FUNCTION + F_FLOAT compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const; + + //template + //KOKKOS_INLINE_FUNCTION + //F_FLOAT compute_ecoul(const F_FLOAT& /*rsq*/, const int& /*i*/, const int& /*j*/, + // const int& /*itype*/, const int& /*jtype*/) const { return 0; } + + template + KOKKOS_INLINE_FUNCTION + F_FLOAT compute_fcoul(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, + const int& jtype, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const; + + template + KOKKOS_INLINE_FUNCTION + F_FLOAT compute_ecoul(const F_FLOAT& rsq, const int& i, const int&j, + const int& itype, const int& jtype, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const; + + Kokkos::DualView k_params; + typename Kokkos::DualView::t_dev_const_um params; + params_lj m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; // hardwired to space for 12 atom types + F_FLOAT m_cutsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; + F_FLOAT m_cut_lj[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; + F_FLOAT m_cut_ljsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; + typename AT::t_x_array_randomread x; + typename AT::t_x_array c_x; + typename AT::t_f_array f; + typename AT::t_int_1d_randomread type; + typename AT::t_float_1d_randomread q; + + DAT::tdual_efloat_1d k_eatom; + DAT::tdual_virial_array k_vatom; + typename AT::t_efloat_1d d_eatom; + typename AT::t_virial_array d_vatom; + + int newton_pair; + double special_lj[4]; + double special_coul[4]; + double qqrd2e; + + typename AT::tdual_ffloat_2d k_cutsq, k_cut_lj, k_cut_ljsq; + typename AT::t_ffloat_2d d_cutsq, d_cut_lj, d_cut_ljsq; + + typename AT::t_ffloat_1d_randomread + d_rtable, d_drtable, d_ftable, d_dftable, + d_ctable, d_dctable, d_etable, d_detable; + + int neighflag; + int nlocal,nall,eflag,vflag; + + void allocate() override; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend EV_FLOAT pair_compute_neighlist(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend void pair_virial_fdotr_compute(PairLJSPICACoulLongKokkos*); +}; + +} + +#endif +#endif + From b1570fc855beba285a06e53999c7bd41da970944 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Mon, 3 Jun 2024 18:56:39 -0400 Subject: [PATCH 002/169] first draft angle_spica_kokkos based on angle_harmonic_kokkos --- src/KOKKOS/angle_spica_kokkos.cpp | 413 ++++++++++++++++++++++++++++++ src/KOKKOS/angle_spica_kokkos.h | 91 +++++++ 2 files changed, 504 insertions(+) create mode 100644 src/KOKKOS/angle_spica_kokkos.cpp create mode 100644 src/KOKKOS/angle_spica_kokkos.h diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp new file mode 100644 index 0000000000..d7be418326 --- /dev/null +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -0,0 +1,413 @@ +// clang-format off +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Stan Moore (SNL) +------------------------------------------------------------------------- */ + +#include "angle_harmonic_kokkos.h" + +#include "atom_kokkos.h" +#include "atom_masks.h" +#include "comm.h" +#include "force.h" +#include "math_const.h" +#include "memory_kokkos.h" +#include "neighbor_kokkos.h" + +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +static constexpr double SMALL = 0.001; + +/* ---------------------------------------------------------------------- */ + +template +AngleHarmonicKokkos::AngleHarmonicKokkos(LAMMPS *lmp) : AngleHarmonic(lmp) +{ + atomKK = (AtomKokkos *) atom; + neighborKK = (NeighborKokkos *) neighbor; + execution_space = ExecutionSpaceFromDevice::space; + datamask_read = X_MASK | F_MASK | ENERGY_MASK | VIRIAL_MASK; + datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; + + centroidstressflag = CENTROID_NOTAVAIL; +} + +/* ---------------------------------------------------------------------- */ + +template +AngleHarmonicKokkos::~AngleHarmonicKokkos() +{ + if (!copymode) { + memoryKK->destroy_kokkos(k_eatom,eatom); + memoryKK->destroy_kokkos(k_vatom,vatom); + } +} + +/* ---------------------------------------------------------------------- */ + +template +void AngleHarmonicKokkos::compute(int eflag_in, int vflag_in) +{ + eflag = eflag_in; + vflag = vflag_in; + + ev_init(eflag,vflag,0); + + // reallocate per-atom arrays if necessary + + if (eflag_atom) { + memoryKK->destroy_kokkos(k_eatom,eatom); + memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"angle:eatom"); + d_eatom = k_eatom.template view(); + } + if (vflag_atom) { + memoryKK->destroy_kokkos(k_vatom,vatom); + memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"angle:vatom"); + d_vatom = k_vatom.template view(); + } + + //atomKK->sync(execution_space,datamask_read); + k_k.template sync(); + k_theta0.template sync(); + // if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); + // else atomKK->modified(execution_space,F_MASK); + + x = atomKK->k_x.template view(); + f = atomKK->k_f.template view(); + neighborKK->k_anglelist.template sync(); + anglelist = neighborKK->k_anglelist.template view(); + int nanglelist = neighborKK->nanglelist; + nlocal = atom->nlocal; + newton_bond = force->newton_bond; + + copymode = 1; + + // loop over neighbors of my atoms + + EV_FLOAT ev; + + if (evflag) { + if (newton_bond) { + Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,nanglelist),*this,ev); + } else { + Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,nanglelist),*this,ev); + } + } else { + if (newton_bond) { + Kokkos::parallel_for(Kokkos::RangePolicy >(0,nanglelist),*this); + } else { + Kokkos::parallel_for(Kokkos::RangePolicy >(0,nanglelist),*this); + } + } + + if (eflag_global) energy += ev.evdwl; + if (vflag_global) { + virial[0] += ev.v[0]; + virial[1] += ev.v[1]; + virial[2] += ev.v[2]; + virial[3] += ev.v[3]; + virial[4] += ev.v[4]; + virial[5] += ev.v[5]; + } + + if (eflag_atom) { + k_eatom.template modify(); + k_eatom.template sync(); + } + + if (vflag_atom) { + k_vatom.template modify(); + k_vatom.template sync(); + } + + copymode = 0; +} + +template +template +KOKKOS_INLINE_FUNCTION +void AngleHarmonicKokkos::operator()(TagAngleHarmonicCompute, const int &n, EV_FLOAT& ev) const { + + // The f array is atomic + Kokkos::View::value,Kokkos::MemoryTraits > a_f = f; + + const int i1 = anglelist(n,0); + const int i2 = anglelist(n,1); + const int i3 = anglelist(n,2); + const int type = anglelist(n,3); + + // 1st bond + + const F_FLOAT delx1 = x(i1,0) - x(i2,0); + const F_FLOAT dely1 = x(i1,1) - x(i2,1); + const F_FLOAT delz1 = x(i1,2) - x(i2,2); + + const F_FLOAT rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1; + const F_FLOAT r1 = sqrt(rsq1); + + // 2nd bond + + const F_FLOAT delx2 = x(i3,0) - x(i2,0); + const F_FLOAT dely2 = x(i3,1) - x(i2,1); + const F_FLOAT delz2 = x(i3,2) - x(i2,2); + + const F_FLOAT rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2; + const F_FLOAT r2 = sqrt(rsq2); + + // angle (cos and sin) + + F_FLOAT c = delx1*delx2 + dely1*dely2 + delz1*delz2; + c /= r1*r2; + + if (c > 1.0) c = 1.0; + if (c < -1.0) c = -1.0; + + F_FLOAT s = sqrt(1.0 - c*c); + if (s < SMALL) s = SMALL; + s = 1.0/s; + + // force & energy + + const F_FLOAT dtheta = acos(c) - d_theta0[type]; + const F_FLOAT tk = d_k[type] * dtheta; + + F_FLOAT eangle = 0.0; + if (eflag) eangle = tk*dtheta; + + const F_FLOAT a = -2.0 * tk * s; + const F_FLOAT a11 = a*c / rsq1; + const F_FLOAT a12 = -a / (r1*r2); + const F_FLOAT a22 = a*c / rsq2; + + F_FLOAT f1[3],f3[3]; + f1[0] = a11*delx1 + a12*delx2; + f1[1] = a11*dely1 + a12*dely2; + f1[2] = a11*delz1 + a12*delz2; + f3[0] = a22*delx2 + a12*delx1; + f3[1] = a22*dely2 + a12*dely1; + f3[2] = a22*delz2 + a12*delz1; + + // apply force to each of 3 atoms + + if (NEWTON_BOND || i1 < nlocal) { + a_f(i1,0) += f1[0]; + a_f(i1,1) += f1[1]; + a_f(i1,2) += f1[2]; + } + + if (NEWTON_BOND || i2 < nlocal) { + a_f(i2,0) -= f1[0] + f3[0]; + a_f(i2,1) -= f1[1] + f3[1]; + a_f(i2,2) -= f1[2] + f3[2]; + } + + if (NEWTON_BOND || i3 < nlocal) { + a_f(i3,0) += f3[0]; + a_f(i3,1) += f3[1]; + a_f(i3,2) += f3[2]; + } + + if (EVFLAG) ev_tally(ev,i1,i2,i3,eangle,f1,f3, + delx1,dely1,delz1,delx2,dely2,delz2); +} + +template +template +KOKKOS_INLINE_FUNCTION +void AngleHarmonicKokkos::operator()(TagAngleHarmonicCompute, const int &n) const { + EV_FLOAT ev; + this->template operator()(TagAngleHarmonicCompute(), n, ev); +} + +/* ---------------------------------------------------------------------- */ + +template +void AngleHarmonicKokkos::allocate() +{ + AngleHarmonic::allocate(); + + int n = atom->nangletypes; + k_k = typename ArrayTypes::tdual_ffloat_1d("AngleHarmonic::k",n+1); + k_theta0 = typename ArrayTypes::tdual_ffloat_1d("AngleHarmonic::theta0",n+1); + + d_k = k_k.template view(); + d_theta0 = k_theta0.template view(); +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more types +------------------------------------------------------------------------- */ + +template +void AngleHarmonicKokkos::coeff(int narg, char **arg) +{ + AngleHarmonic::coeff(narg, arg); + + int n = atom->nangletypes; + for (int i = 1; i <= n; i++) { + k_k.h_view[i] = k[i]; + k_theta0.h_view[i] = theta0[i]; + } + + k_k.template modify(); + k_theta0.template modify(); +} + +/* ---------------------------------------------------------------------- + proc 0 reads coeffs from restart file, bcasts them +------------------------------------------------------------------------- */ + +template +void AngleHarmonicKokkos::read_restart(FILE *fp) +{ + AngleHarmonic::read_restart(fp); + + int n = atom->nangletypes; + for (int i = 1; i <= n; i++) { + k_k.h_view[i] = k[i]; + k_theta0.h_view[i] = theta0[i]; + } + + k_k.template modify(); + k_theta0.template modify(); +} + +/* ---------------------------------------------------------------------- + tally energy and virial into global and per-atom accumulators + virial = r1F1 + r2F2 + r3F3 = (r1-r2) F1 + (r3-r2) F3 = del1*f1 + del2*f3 +------------------------------------------------------------------------- */ + +template +//template +KOKKOS_INLINE_FUNCTION +void AngleHarmonicKokkos::ev_tally(EV_FLOAT &ev, const int i, const int j, const int k, + F_FLOAT &eangle, F_FLOAT *f1, F_FLOAT *f3, + const F_FLOAT &delx1, const F_FLOAT &dely1, const F_FLOAT &delz1, + const F_FLOAT &delx2, const F_FLOAT &dely2, const F_FLOAT &delz2) const +{ + E_FLOAT eanglethird; + F_FLOAT v[6]; + + // The eatom and vatom arrays are atomic + Kokkos::View::value,Kokkos::MemoryTraits > v_eatom = k_eatom.template view(); + Kokkos::View::value,Kokkos::MemoryTraits > v_vatom = k_vatom.template view(); + + if (eflag_either) { + if (eflag_global) { + if (newton_bond) ev.evdwl += eangle; + else { + eanglethird = THIRD*eangle; + + if (i < nlocal) ev.evdwl += eanglethird; + if (j < nlocal) ev.evdwl += eanglethird; + if (k < nlocal) ev.evdwl += eanglethird; + } + } + if (eflag_atom) { + eanglethird = THIRD*eangle; + + if (newton_bond || i < nlocal) v_eatom[i] += eanglethird; + if (newton_bond || j < nlocal) v_eatom[j] += eanglethird; + if (newton_bond || k < nlocal) v_eatom[k] += eanglethird; + } + } + + if (vflag_either) { + v[0] = delx1*f1[0] + delx2*f3[0]; + v[1] = dely1*f1[1] + dely2*f3[1]; + v[2] = delz1*f1[2] + delz2*f3[2]; + v[3] = delx1*f1[1] + delx2*f3[1]; + v[4] = delx1*f1[2] + delx2*f3[2]; + v[5] = dely1*f1[2] + dely2*f3[2]; + + if (vflag_global) { + if (newton_bond) { + ev.v[0] += v[0]; + ev.v[1] += v[1]; + ev.v[2] += v[2]; + ev.v[3] += v[3]; + ev.v[4] += v[4]; + ev.v[5] += v[5]; + } else { + if (i < nlocal) { + ev.v[0] += THIRD*v[0]; + ev.v[1] += THIRD*v[1]; + ev.v[2] += THIRD*v[2]; + ev.v[3] += THIRD*v[3]; + ev.v[4] += THIRD*v[4]; + ev.v[5] += THIRD*v[5]; + } + if (j < nlocal) { + ev.v[0] += THIRD*v[0]; + ev.v[1] += THIRD*v[1]; + ev.v[2] += THIRD*v[2]; + ev.v[3] += THIRD*v[3]; + ev.v[4] += THIRD*v[4]; + ev.v[5] += THIRD*v[5]; + } + if (k < nlocal) { + ev.v[0] += THIRD*v[0]; + + ev.v[1] += THIRD*v[1]; + ev.v[2] += THIRD*v[2]; + ev.v[3] += THIRD*v[3]; + ev.v[4] += THIRD*v[4]; + ev.v[5] += THIRD*v[5]; + } + } + } + + if (vflag_atom) { + if (newton_bond || i < nlocal) { + v_vatom(i,0) += THIRD*v[0]; + v_vatom(i,1) += THIRD*v[1]; + v_vatom(i,2) += THIRD*v[2]; + v_vatom(i,3) += THIRD*v[3]; + v_vatom(i,4) += THIRD*v[4]; + v_vatom(i,5) += THIRD*v[5]; + } + if (newton_bond || j < nlocal) { + v_vatom(j,0) += THIRD*v[0]; + v_vatom(j,1) += THIRD*v[1]; + v_vatom(j,2) += THIRD*v[2]; + v_vatom(j,3) += THIRD*v[3]; + v_vatom(j,4) += THIRD*v[4]; + v_vatom(j,5) += THIRD*v[5]; + } + if (newton_bond || k < nlocal) { + v_vatom(k,0) += THIRD*v[0]; + v_vatom(k,1) += THIRD*v[1]; + v_vatom(k,2) += THIRD*v[2]; + v_vatom(k,3) += THIRD*v[3]; + v_vatom(k,4) += THIRD*v[4]; + v_vatom(k,5) += THIRD*v[5]; + + } + } + } +} + +/* ---------------------------------------------------------------------- */ + +namespace LAMMPS_NS { +template class AngleHarmonicKokkos; +#ifdef LMP_KOKKOS_GPU +template class AngleHarmonicKokkos; +#endif +} + diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h new file mode 100644 index 0000000000..c12bba78e0 --- /dev/null +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -0,0 +1,91 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +#ifdef ANGLE_CLASS +// clang-format off +AngleStyle(spica/kk,AngleHarmonicKokkos); +AngleStyle(spica/kk/device,AngleHarmonicKokkos); +AngleStyle(spica/kk/host,AngleHarmonicKokkos); +// clang-format on +#else + +// clang-format off +#ifndef LMP_ANGLE_SPICA_KOKKOS_H +#define LMP_ANGLE_SPICA_KOKKOS_H + +#include "angle_spica.h" +#include "kokkos_type.h" + +namespace LAMMPS_NS { + +template +struct TagAngleSPICACompute{}; + +template +class AngleSPICAKokkos : public AngleSPICA { + + public: + typedef DeviceType device_type; + typedef EV_FLOAT value_type; + + AngleSPICAKokkos(class LAMMPS *); + ~AngleSPICAKokkos() override; + void compute(int, int) override; + void coeff(int, char **) override; + void read_restart(FILE *) override; + + template + KOKKOS_INLINE_FUNCTION + void operator()(TagAngleSPICACompute, const int&, EV_FLOAT&) const; + + template + KOKKOS_INLINE_FUNCTION + void operator()(TagAngleSPICACompute, const int&) const; + + //template + KOKKOS_INLINE_FUNCTION + void ev_tally(EV_FLOAT &ev, const int i, const int j, const int k, + F_FLOAT &eangle, F_FLOAT *f1, F_FLOAT *f3, + const F_FLOAT &delx1, const F_FLOAT &dely1, const F_FLOAT &delz1, + const F_FLOAT &delx2, const F_FLOAT &dely2, const F_FLOAT &delz2) const; + + protected: + + class NeighborKokkos *neighborKK; + + typename ArrayTypes::t_x_array_randomread x; + typename ArrayTypes::t_f_array f; + typename ArrayTypes::t_int_2d anglelist; + + typename ArrayTypes::tdual_efloat_1d k_eatom; + typename ArrayTypes::tdual_virial_array k_vatom; + typename ArrayTypes::t_efloat_1d d_eatom; + typename ArrayTypes::t_virial_array d_vatom; + + int nlocal,newton_bond; + int eflag,vflag; + + typename ArrayTypes::tdual_ffloat_1d k_k; + typename ArrayTypes::tdual_ffloat_1d k_theta0; + + typename ArrayTypes::t_ffloat_1d d_k; + typename ArrayTypes::t_ffloat_1d d_theta0; + + void allocate(); +}; + +} + +#endif +#endif + From cd04de58dc93779ac0fca64c003286d59e9c2945 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Mon, 3 Jun 2024 19:07:58 -0400 Subject: [PATCH 003/169] pair_lj_spica_coul_long fixes, now passes unit test --- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 38 ++++++----- src/KOKKOS/pair_lj_spica_coul_long_kokkos.h | 66 ++++++++++++------- 2 files changed, 62 insertions(+), 42 deletions(-) diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp index e0d6542418..37cbe7d17f 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -16,7 +16,7 @@ #include "atom_kokkos.h" #include "atom_masks.h" -//#include "comm.h" +#include "comm.h" #include "error.h" #include "ewald_const.h" #include "force.h" @@ -35,8 +35,6 @@ using namespace LAMMPS_NS; using namespace LJSPICAParms; - -// FIXME: using namespace EwaldConst; /* ---------------------------------------------------------------------- */ @@ -299,11 +297,8 @@ compute_fcoul(const F_FLOAT& rsq, const int& /*i*/, const int&j, } } } - */ - - if (Specialisation::DoTable && rsq > tabinnersq) { union_int_float_t rsq_lookup; rsq_lookup.f = rsq; @@ -330,6 +325,8 @@ compute_fcoul(const F_FLOAT& rsq, const int& /*i*/, const int&j, return forcecoul*rinv*rinv; } + + } @@ -381,16 +378,16 @@ void PairLJSPICACoulLongKokkos::allocate() PairLJSPICACoulLong::allocate(); int n = atom->ntypes; - //memory->destroy(cutsq); - //memory->destroy(cut_lj); - //memory->destroy(cut_ljsq); + + memory->destroy(cutsq); memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); - memoryKK->create_kokkos(k_cut_lj,cut_lj,n+1,n+1,"pair:cut_lj"); - memoryKK->create_kokkos(k_cut_ljsq,cut_ljsq,n+1,n+1,"pair:cut_ljsq"); d_cutsq = k_cutsq.template view(); - d_cut_lj = k_cut_lj.template view(); - d_cut_ljsq = k_cut_ljsq.template view(); - k_params = Kokkos::DualView("PairLJSPICACoulLong::params",n+1,n+1); + + d_cut_lj = typename AT::t_ffloat_2d("pair:cut_lj",n+1,n+1); + d_cut_ljsq = typename AT::t_ffloat_2d("pair:cut_ljsq",n+1,n+1); + d_cut_coulsq = typename AT::t_ffloat_2d("pair:cut_coulsq",n+1,n+1); + + k_params = Kokkos::DualView("PairLJSPICACoulLong::params",n+1,n+1); params = k_params.template view(); } @@ -411,7 +408,7 @@ void PairLJSPICACoulLongKokkos::settings(int narg, char **arg) init tables ------------------------------------------------------------------------- */ -/* + template void PairLJSPICACoulLongKokkos::init_tables(double cut_coul, double *cut_respa) { @@ -514,7 +511,7 @@ void PairLJSPICACoulLongKokkos::init_tables(double cut_coul, double d_detable = d_table; } } -*/ + /* ---------------------------------------------------------------------- @@ -526,6 +523,9 @@ void PairLJSPICACoulLongKokkos::init_style() { PairLJSPICACoulLong::init_style(); + //Kokkos::deep_copy(d_cut_ljsq,cut_ljsq); + //Kokkos::deep_copy(d_cut_coulsq,cut_coulsq); + // error if rRESPA with inner levels if (update->whichflag == 1 && utils::strmatch(update->integrate_style,"^respa")) { @@ -561,15 +561,17 @@ double PairLJSPICACoulLongKokkos::init_one(int i, int j) k_params.h_view(i,j).lj4 = lj4[i][j]; k_params.h_view(i,j).offset = offset[i][j]; k_params.h_view(i,j).cutsq = cutone*cutone; + k_params.h_view(i,j).cut_lj = cut_lj[i][j]; k_params.h_view(i,j).cut_ljsq = cut_ljsq[i][j]; - k_params.h_view(i,j).cut_coulsq = cut_coulsq[i][j]; + k_params.h_view(i,j).cut_coulsq = cut_coulsq; k_params.h_view(i,j).lj_type = lj_type[i][j]; k_params.h_view(j,i) = k_params.h_view(i,j); if (i k_params; - typename Kokkos::DualView::t_dev_const_um params; - params_lj m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; // hardwired to space for 12 atom types + Kokkos::DualView k_params; + typename Kokkos::DualView::t_dev_const_um params; + params_lj_coul m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; // hardwired to space for 12 atom types F_FLOAT m_cutsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; F_FLOAT m_cut_lj[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; F_FLOAT m_cut_ljsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; + F_FLOAT m_cut_coulsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; typename AT::t_x_array_randomread x; typename AT::t_x_array c_x; typename AT::t_f_array f; @@ -100,12 +101,9 @@ class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { typename AT::t_virial_array d_vatom; int newton_pair; - double special_lj[4]; - double special_coul[4]; - double qqrd2e; typename AT::tdual_ffloat_2d k_cutsq, k_cut_lj, k_cut_ljsq; - typename AT::t_ffloat_2d d_cutsq, d_cut_lj, d_cut_ljsq; + typename AT::t_ffloat_2d d_cutsq, d_cut_lj, d_cut_ljsq, d_cut_coulsq; typename AT::t_ffloat_1d_randomread d_rtable, d_drtable, d_ftable, d_dftable, @@ -114,20 +112,40 @@ class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { int neighflag; int nlocal,nall,eflag,vflag; + double special_lj[4]; + double special_coul[4]; + double qqrd2e; + void allocate() override; - friend struct PairComputeFunctor; - friend struct PairComputeFunctor; - friend struct PairComputeFunctor; - friend struct PairComputeFunctor; - friend struct PairComputeFunctor; - friend struct PairComputeFunctor; - friend struct PairComputeFunctor; - friend struct PairComputeFunctor; - friend EV_FLOAT pair_compute_neighlist(PairLJSPICACoulLongKokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute_neighlist(PairLJSPICACoulLongKokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute_neighlist(PairLJSPICACoulLongKokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute_neighlist(PairLJSPICACoulLongKokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend EV_FLOAT pair_compute_neighlist>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend struct PairComputeFunctor>; + friend EV_FLOAT pair_compute_neighlist>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); + + friend void pair_virial_fdotr_compute(PairLJSPICACoulLongKokkos*); }; From e42c2b7bb51daf449b5e741ab775d72a49f4ced8 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Mon, 3 Jun 2024 19:21:15 -0400 Subject: [PATCH 004/169] more fixes --- src/CG-SPICA/pair_lj_spica_coul_long.cpp | 5 ++++- src/CG-SPICA/pair_lj_spica_coul_long.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/CG-SPICA/pair_lj_spica_coul_long.cpp b/src/CG-SPICA/pair_lj_spica_coul_long.cpp index 9e0d4dc276..ed6cb17e7c 100644 --- a/src/CG-SPICA/pair_lj_spica_coul_long.cpp +++ b/src/CG-SPICA/pair_lj_spica_coul_long.cpp @@ -55,6 +55,8 @@ PairLJSPICACoulLong::PairLJSPICACoulLong(LAMMPS *lmp) : PairLJSPICACoulLong::~PairLJSPICACoulLong() { + if (copymode) return; + if (allocated) { memory->destroy(setflag); memory->destroy(lj_type); @@ -385,7 +387,8 @@ double PairLJSPICACoulLong::init_one(int i, int j) const int ljt = lj_type[i][j]; - if (ljt == LJ_NOT_SET) error->all(FLERR, "unrecognized LJ parameter flag"); + if (ljt == LJ_NOT_SET) + error->all(FLERR,"unrecognized LJ parameter flag"); double cut = MAX(cut_lj[i][j], cut_coul); cut_ljsq[i][j] = cut_lj[i][j] * cut_lj[i][j]; diff --git a/src/CG-SPICA/pair_lj_spica_coul_long.h b/src/CG-SPICA/pair_lj_spica_coul_long.h index e6ef5ea539..48b2aaa37f 100644 --- a/src/CG-SPICA/pair_lj_spica_coul_long.h +++ b/src/CG-SPICA/pair_lj_spica_coul_long.h @@ -64,7 +64,7 @@ class PairLJSPICACoulLong : public Pair { double cut_lj_global; double g_ewald; - void allocate(); + virtual void allocate(); private: template void eval(); From 657befa9599e6fb521205d268d154cfb1e8f6923 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Tue, 4 Jun 2024 20:24:33 -0400 Subject: [PATCH 005/169] second version angle_spica_kokkos and added kokkos_omp test to test_angle_style --- src/KOKKOS/angle_spica_kokkos.cpp | 107 ++++++++++++++---- src/KOKKOS/angle_spica_kokkos.h | 6 +- unittest/force-styles/test_angle_style.cpp | 120 +++++++++++++++++++++ 3 files changed, 209 insertions(+), 24 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index d7be418326..28e909eb82 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -13,10 +13,10 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing author: Stan Moore (SNL) + Contributing author: Mitch Murphy (alphataubio@gmail.com) ------------------------------------------------------------------------- */ -#include "angle_harmonic_kokkos.h" +#include "angle_spica_kokkos.h" #include "atom_kokkos.h" #include "atom_masks.h" @@ -36,7 +36,7 @@ static constexpr double SMALL = 0.001; /* ---------------------------------------------------------------------- */ template -AngleHarmonicKokkos::AngleHarmonicKokkos(LAMMPS *lmp) : AngleHarmonic(lmp) +AngleSPICAKokkos::AngleSPICAKokkos(LAMMPS *lmp) : AngleHarmonic(lmp) { atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; @@ -50,7 +50,7 @@ AngleHarmonicKokkos::AngleHarmonicKokkos(LAMMPS *lmp) : AngleHarmoni /* ---------------------------------------------------------------------- */ template -AngleHarmonicKokkos::~AngleHarmonicKokkos() +AngleSPICAKokkos::~AngleSPICAKokkos() { if (!copymode) { memoryKK->destroy_kokkos(k_eatom,eatom); @@ -61,7 +61,7 @@ AngleHarmonicKokkos::~AngleHarmonicKokkos() /* ---------------------------------------------------------------------- */ template -void AngleHarmonicKokkos::compute(int eflag_in, int vflag_in) +void AngleSPICAKokkos::compute(int eflag_in, int vflag_in) { eflag = eflag_in; vflag = vflag_in; @@ -141,7 +141,7 @@ void AngleHarmonicKokkos::compute(int eflag_in, int vflag_in) template template KOKKOS_INLINE_FUNCTION -void AngleHarmonicKokkos::operator()(TagAngleHarmonicCompute, const int &n, EV_FLOAT& ev) const { +void AngleSPICAKokkos::operator()(TagAngleHarmonicCompute, const int &n, EV_FLOAT& ev) const { // The f array is atomic Kokkos::View::value,Kokkos::MemoryTraits > a_f = f; @@ -180,6 +180,67 @@ void AngleHarmonicKokkos::operator()(TagAngleHarmonicComputetype[i1]; + const int type3 = atom->type[i3]; + + f13=0.0; + e13=0.0; + + if (rsq3 < rminsq[type1][type3]) { + const int ljt = lj_type[type1][type3]; + const double r2inv = 1.0/rsq3; + + if (ljt == LJ12_4) { + const double r4inv=r2inv*r2inv; + + f13 = r4inv*(lj1[type1][type3]*r4inv*r4inv - lj2[type1][type3]); + if (eflag) e13 = r4inv*(lj3[type1][type3]*r4inv*r4inv - lj4[type1][type3]); + + } else if (ljt == LJ9_6) { + const double r3inv = r2inv*sqrt(r2inv); + const double r6inv = r3inv*r3inv; + + f13 = r6inv*(lj1[type1][type3]*r3inv - lj2[type1][type3]); + if (eflag) e13 = r6inv*(lj3[type1][type3]*r3inv - lj4[type1][type3]); + + } else if (ljt == LJ12_6) { + const double r6inv = r2inv*r2inv*r2inv; + + f13 = r6inv*(lj1[type1][type3]*r6inv - lj2[type1][type3]); + if (eflag) e13 = r6inv*(lj3[type1][type3]*r6inv - lj4[type1][type3]); + + } else if (ljt == LJ12_5) { + const double r5inv = r2inv*r2inv*sqrt(r2inv); + const double r7inv = r5inv*r2inv; + + f13 = r5inv*(lj1[type1][type3]*r7inv - lj2[type1][type3]); + if (eflag) e13 = r5inv*(lj3[type1][type3]*r7inv - lj4[type1][type3]); + } + + // make sure energy is 0.0 at the cutoff. + if (eflag) e13 -= emin[type1][type3]; + + f13 *= r2inv; + } + } + // force & energy @@ -205,9 +266,9 @@ void AngleHarmonicKokkos::operator()(TagAngleHarmonicCompute::operator()(TagAngleHarmonicCompute template KOKKOS_INLINE_FUNCTION -void AngleHarmonicKokkos::operator()(TagAngleHarmonicCompute, const int &n) const { +void AngleSPICAKokkos::operator()(TagAngleHarmonicCompute, const int &n) const { EV_FLOAT ev; this->template operator()(TagAngleHarmonicCompute(), n, ev); } @@ -237,7 +302,7 @@ void AngleHarmonicKokkos::operator()(TagAngleHarmonicCompute -void AngleHarmonicKokkos::allocate() +void AngleSPICAKokkos::allocate() { AngleHarmonic::allocate(); @@ -254,7 +319,7 @@ void AngleHarmonicKokkos::allocate() ------------------------------------------------------------------------- */ template -void AngleHarmonicKokkos::coeff(int narg, char **arg) +void AngleSPICAKokkos::coeff(int narg, char **arg) { AngleHarmonic::coeff(narg, arg); @@ -273,7 +338,7 @@ void AngleHarmonicKokkos::coeff(int narg, char **arg) ------------------------------------------------------------------------- */ template -void AngleHarmonicKokkos::read_restart(FILE *fp) +void AngleSPICAKokkos::read_restart(FILE *fp) { AngleHarmonic::read_restart(fp); @@ -295,7 +360,7 @@ void AngleHarmonicKokkos::read_restart(FILE *fp) template //template KOKKOS_INLINE_FUNCTION -void AngleHarmonicKokkos::ev_tally(EV_FLOAT &ev, const int i, const int j, const int k, +void AngleSPICAKokkos::ev_tally(EV_FLOAT &ev, const int i, const int j, const int k, F_FLOAT &eangle, F_FLOAT *f1, F_FLOAT *f3, const F_FLOAT &delx1, const F_FLOAT &dely1, const F_FLOAT &delz1, const F_FLOAT &delx2, const F_FLOAT &dely2, const F_FLOAT &delz2) const @@ -405,9 +470,9 @@ void AngleHarmonicKokkos::ev_tally(EV_FLOAT &ev, const int i, const /* ---------------------------------------------------------------------- */ namespace LAMMPS_NS { -template class AngleHarmonicKokkos; +template class AngleSPICAKokkos; #ifdef LMP_KOKKOS_GPU -template class AngleHarmonicKokkos; +template class AngleSPICAKokkos; #endif } diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h index c12bba78e0..925777b014 100644 --- a/src/KOKKOS/angle_spica_kokkos.h +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -13,9 +13,9 @@ #ifdef ANGLE_CLASS // clang-format off -AngleStyle(spica/kk,AngleHarmonicKokkos); -AngleStyle(spica/kk/device,AngleHarmonicKokkos); -AngleStyle(spica/kk/host,AngleHarmonicKokkos); +AngleStyle(spica/kk,AngleSPICAKokkos); +AngleStyle(spica/kk/device,AngleSPICAKokkos); +AngleStyle(spica/kk/host,AngleSPICAKokkos); // clang-format on #else diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index 010fabd6e2..ec4e6541c2 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -529,6 +529,126 @@ TEST(AngleStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); }; +TEST(AngleStyle, kokkos_omp) +{ + if (!LAMMPS::is_installed_pkg("KOKKOS")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + if (!Info::has_accelerator_feature("KOKKOS", "api", "openmp")) GTEST_SKIP(); + + LAMMPS::argv args = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite", + "-k", "on", "t", "4", "-sf", "kk"}; + + ::testing::internal::CaptureStdout(); + LAMMPS *lmp = init_lammps(args, test_config, true); + + std::string output = ::testing::internal::GetCapturedStdout(); + if (verbose) std::cout << output; + + if (!lmp) { + std::cerr << "One or more prerequisite styles with /kk suffix\n" + "are not available in this LAMMPS configuration:\n"; + for (auto &prerequisite : test_config.prerequisites) { + std::cerr << prerequisite.first << "_style " << prerequisite.second << "\n"; + } + GTEST_SKIP(); + } + + EXPECT_THAT(output, StartsWith("LAMMPS (")); + EXPECT_THAT(output, HasSubstr("Loop time")); + + // abort if running in parallel and not all atoms are local + const int nlocal = lmp->atom->nlocal; + ASSERT_EQ(lmp->atom->natoms, nlocal); + + // relax error a bit for KOKKOS package + double epsilon = 5.0 * test_config.epsilon; + + ErrorStats stats; + auto angle = lmp->force->angle; + + EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("init_stress (newton on)", angle->virial, test_config.init_stress, epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton on: " << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon); + EXPECT_STRESS("run_stress (newton on)", angle->virial, test_config.run_stress, epsilon); + + stats.reset(); + int id = lmp->modify->find_compute("sum"); + double energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon); + EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon); + if (print_stats) std::cerr << "run_energy stats, newton on: " << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + lmp = init_lammps(args, test_config, false); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + // skip over these tests if newton bond is forced to be on + if (lmp->force->newton_bond == 0) { + angle = lmp->force->angle; + + EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("init_stress (newton off)", angle->virial, test_config.init_stress, + 2 * epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton off:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); + EXPECT_STRESS("run_stress (newton off)", angle->virial, test_config.run_stress, epsilon); + + stats.reset(); + id = lmp->modify->find_compute("sum"); + energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon); + EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon); + if (print_stats) std::cerr << "run_energy stats, newton off:" << stats << std::endl; + } + + if (!verbose) ::testing::internal::CaptureStdout(); + restart_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + angle = lmp->force->angle; + EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("restart_stress", angle->virial, test_config.init_stress, epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "restart_energy stats:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + data_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + angle = lmp->force->angle; + EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("data_stress", angle->virial, test_config.init_stress, epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "data_energy stats:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); +}; + + TEST(AngleStyle, numdiff) { if (!LAMMPS::is_installed_pkg("EXTRA-FIX")) GTEST_SKIP(); From 6bbd3be1a90eeca969a905a85630d9dc02ccffa2 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Tue, 4 Jun 2024 20:45:47 -0400 Subject: [PATCH 006/169] fixes --- src/KOKKOS/angle_spica_kokkos.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 28e909eb82..fbe5f75385 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -36,7 +36,7 @@ static constexpr double SMALL = 0.001; /* ---------------------------------------------------------------------- */ template -AngleSPICAKokkos::AngleSPICAKokkos(LAMMPS *lmp) : AngleHarmonic(lmp) +AngleSPICAKokkos::AngleSPICAKokkos(LAMMPS *lmp) : AngleSPICA(lmp) { atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; @@ -103,15 +103,15 @@ void AngleSPICAKokkos::compute(int eflag_in, int vflag_in) if (evflag) { if (newton_bond) { - Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,nanglelist),*this,ev); + Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,nanglelist),*this,ev); } else { - Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,nanglelist),*this,ev); + Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,nanglelist),*this,ev); } } else { if (newton_bond) { - Kokkos::parallel_for(Kokkos::RangePolicy >(0,nanglelist),*this); + Kokkos::parallel_for(Kokkos::RangePolicy >(0,nanglelist),*this); } else { - Kokkos::parallel_for(Kokkos::RangePolicy >(0,nanglelist),*this); + Kokkos::parallel_for(Kokkos::RangePolicy >(0,nanglelist),*this); } } @@ -141,7 +141,7 @@ void AngleSPICAKokkos::compute(int eflag_in, int vflag_in) template template KOKKOS_INLINE_FUNCTION -void AngleSPICAKokkos::operator()(TagAngleHarmonicCompute, const int &n, EV_FLOAT& ev) const { +void AngleSPICAKokkos::operator()(TagAngleSPICACompute, const int &n, EV_FLOAT& ev) const { // The f array is atomic Kokkos::View::value,Kokkos::MemoryTraits > a_f = f; @@ -294,9 +294,9 @@ void AngleSPICAKokkos::operator()(TagAngleHarmonicCompute template KOKKOS_INLINE_FUNCTION -void AngleSPICAKokkos::operator()(TagAngleHarmonicCompute, const int &n) const { +void AngleSPICAKokkos::operator()(TagAngleSPICACompute, const int &n) const { EV_FLOAT ev; - this->template operator()(TagAngleHarmonicCompute(), n, ev); + this->template operator()(TagAngleSPICACompute(), n, ev); } /* ---------------------------------------------------------------------- */ @@ -304,11 +304,11 @@ void AngleSPICAKokkos::operator()(TagAngleHarmonicCompute void AngleSPICAKokkos::allocate() { - AngleHarmonic::allocate(); + AngleSPICA::allocate(); int n = atom->nangletypes; - k_k = typename ArrayTypes::tdual_ffloat_1d("AngleHarmonic::k",n+1); - k_theta0 = typename ArrayTypes::tdual_ffloat_1d("AngleHarmonic::theta0",n+1); + k_k = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::k",n+1); + k_theta0 = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::theta0",n+1); d_k = k_k.template view(); d_theta0 = k_theta0.template view(); @@ -321,7 +321,7 @@ void AngleSPICAKokkos::allocate() template void AngleSPICAKokkos::coeff(int narg, char **arg) { - AngleHarmonic::coeff(narg, arg); + AngleSPICA::coeff(narg, arg); int n = atom->nangletypes; for (int i = 1; i <= n; i++) { @@ -340,7 +340,7 @@ void AngleSPICAKokkos::coeff(int narg, char **arg) template void AngleSPICAKokkos::read_restart(FILE *fp) { - AngleHarmonic::read_restart(fp); + AngleSPICA::read_restart(fp); int n = atom->nangletypes; for (int i = 1; i <= n; i++) { From e2a819e399fa655fee693a9d652553bef35b87f3 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Tue, 4 Jun 2024 20:53:41 -0400 Subject: [PATCH 007/169] fixes --- src/KOKKOS/angle_spica_kokkos.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index fbe5f75385..9116dafe1d 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -192,9 +192,9 @@ void AngleSPICAKokkos::operator()(TagAngleSPICAComputetype[i1]; @@ -286,8 +286,8 @@ void AngleSPICAKokkos::operator()(TagAngleSPICACompute Date: Tue, 4 Jun 2024 20:58:42 -0400 Subject: [PATCH 008/169] fixes --- src/KOKKOS/angle_spica_kokkos.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 9116dafe1d..67c1c7b628 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -26,10 +26,13 @@ #include "memory_kokkos.h" #include "neighbor_kokkos.h" +#include "lj_spica_common.h" + #include using namespace LAMMPS_NS; using namespace MathConst; +using namespace LJSPICAParms; static constexpr double SMALL = 0.001; From 42a3c754ec90182c25961bdd1431b7ccfd568cfe Mon Sep 17 00:00:00 2001 From: alphataubio Date: Tue, 4 Jun 2024 21:26:58 -0400 Subject: [PATCH 009/169] fixes --- unittest/force-styles/test_angle_style.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index ec4e6541c2..422253defe 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -138,8 +138,10 @@ LAMMPS *init_lammps(LAMMPS::argv &args, const TestConfig &cfg, const bool newton } command("run 0 post no"); + command("variable write_data_pair index ii"); command("write_restart " + cfg.basename + ".restart"); command("write_data " + cfg.basename + ".data"); + command("write_data " + cfg.basename + ".data pair ${write_data_pair}"); command("write_coeff " + cfg.basename + "-coeffs.in"); return lmp; From 261f0e0bb4ebc0d6ed68df813a627181df0eab43 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Tue, 4 Jun 2024 21:29:44 -0400 Subject: [PATCH 010/169] Update test_angle_style.cpp --- unittest/force-styles/test_angle_style.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index 422253defe..dbf175c801 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -140,7 +140,6 @@ LAMMPS *init_lammps(LAMMPS::argv &args, const TestConfig &cfg, const bool newton command("run 0 post no"); command("variable write_data_pair index ii"); command("write_restart " + cfg.basename + ".restart"); - command("write_data " + cfg.basename + ".data"); command("write_data " + cfg.basename + ".data pair ${write_data_pair}"); command("write_coeff " + cfg.basename + "-coeffs.in"); From a093ddf3fdde4a117cbdf260966ce28765263253 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Tue, 4 Jun 2024 22:20:27 -0400 Subject: [PATCH 011/169] fixes --- src/KOKKOS/angle_spica_kokkos.cpp | 8 +++++++- src/KOKKOS/angle_spica_kokkos.h | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 67c1c7b628..5d2813545b 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -312,9 +312,11 @@ void AngleSPICAKokkos::allocate() int n = atom->nangletypes; k_k = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::k",n+1); k_theta0 = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::theta0",n+1); - + k_repscale = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::repscale",n+1); + d_k = k_k.template view(); d_theta0 = k_theta0.template view(); + d_repscale = k_repscale.template view(); } /* ---------------------------------------------------------------------- @@ -330,10 +332,12 @@ void AngleSPICAKokkos::coeff(int narg, char **arg) for (int i = 1; i <= n; i++) { k_k.h_view[i] = k[i]; k_theta0.h_view[i] = theta0[i]; + k_repscale.h_view[i] = repscale[i]; } k_k.template modify(); k_theta0.template modify(); + k_repscale.template modify(); } /* ---------------------------------------------------------------------- @@ -349,10 +353,12 @@ void AngleSPICAKokkos::read_restart(FILE *fp) for (int i = 1; i <= n; i++) { k_k.h_view[i] = k[i]; k_theta0.h_view[i] = theta0[i]; + k_repscale.h_view[i] = repscale[i]; } k_k.template modify(); k_theta0.template modify(); + k_repscale.template modify(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h index 925777b014..da1264551e 100644 --- a/src/KOKKOS/angle_spica_kokkos.h +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -77,10 +77,12 @@ class AngleSPICAKokkos : public AngleSPICA { typename ArrayTypes::tdual_ffloat_1d k_k; typename ArrayTypes::tdual_ffloat_1d k_theta0; - + typename ArrayTypes::tdual_ffloat_1d k_repscale; + typename ArrayTypes::t_ffloat_1d d_k; typename ArrayTypes::t_ffloat_1d d_theta0; - + typename ArrayTypes::t_ffloat_1d d_repscale; + void allocate(); }; From e7581af0f531191eedd0658ee56344f877b5abd3 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Tue, 4 Jun 2024 22:43:53 -0400 Subject: [PATCH 012/169] fixes --- src/KOKKOS/angle_spica_kokkos.cpp | 6 ++++++ src/KOKKOS/angle_spica_kokkos.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 5d2813545b..06a3b6de2e 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -313,10 +313,12 @@ void AngleSPICAKokkos::allocate() k_k = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::k",n+1); k_theta0 = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::theta0",n+1); k_repscale = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::repscale",n+1); + k_setflag = typename ArrayTypes::tdual_int_1d("AngleSPICA::setflag",n+1); d_k = k_k.template view(); d_theta0 = k_theta0.template view(); d_repscale = k_repscale.template view(); + d_setflag = k_setflag.template view(); } /* ---------------------------------------------------------------------- @@ -333,11 +335,13 @@ void AngleSPICAKokkos::coeff(int narg, char **arg) k_k.h_view[i] = k[i]; k_theta0.h_view[i] = theta0[i]; k_repscale.h_view[i] = repscale[i]; + k_setflag.h_view[i] = setflag[i]; } k_k.template modify(); k_theta0.template modify(); k_repscale.template modify(); + k_setflag.template modify(); } /* ---------------------------------------------------------------------- @@ -354,11 +358,13 @@ void AngleSPICAKokkos::read_restart(FILE *fp) k_k.h_view[i] = k[i]; k_theta0.h_view[i] = theta0[i]; k_repscale.h_view[i] = repscale[i]; + k_setflag.h_view[i] = setflag[i]; } k_k.template modify(); k_theta0.template modify(); k_repscale.template modify(); + k_setflag.template modify(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h index da1264551e..b3d6f7b9e2 100644 --- a/src/KOKKOS/angle_spica_kokkos.h +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -78,10 +78,12 @@ class AngleSPICAKokkos : public AngleSPICA { typename ArrayTypes::tdual_ffloat_1d k_k; typename ArrayTypes::tdual_ffloat_1d k_theta0; typename ArrayTypes::tdual_ffloat_1d k_repscale; + typename ArrayTypes::tdual_int_1d k_setflag; typename ArrayTypes::t_ffloat_1d d_k; typename ArrayTypes::t_ffloat_1d d_theta0; typename ArrayTypes::t_ffloat_1d d_repscale; + typename ArrayTypes::t_int_1d d_setflag; void allocate(); }; From 860c190712f298f335108bd3878e719286dc7da6 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Tue, 4 Jun 2024 22:56:09 -0400 Subject: [PATCH 013/169] fixes --- src/CG-SPICA/angle_spica.h | 2 +- src/KOKKOS/angle_spica_kokkos.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CG-SPICA/angle_spica.h b/src/CG-SPICA/angle_spica.h index f0085fe2fd..539512c0e9 100644 --- a/src/CG-SPICA/angle_spica.h +++ b/src/CG-SPICA/angle_spica.h @@ -52,7 +52,7 @@ class AngleSPICA : public Angle { void ev_tally13(int, int, int, int, double, double, double, double, double); - void allocate(); + virtual void allocate(); }; } // namespace LAMMPS_NS diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h index b3d6f7b9e2..d35a877122 100644 --- a/src/KOKKOS/angle_spica_kokkos.h +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -85,7 +85,7 @@ class AngleSPICAKokkos : public AngleSPICA { typename ArrayTypes::t_ffloat_1d d_repscale; typename ArrayTypes::t_int_1d d_setflag; - void allocate(); + void allocate() override; }; } From 7990da4ee8f1e712f82499bfd63f92a09f25eccb Mon Sep 17 00:00:00 2001 From: alphataubio Date: Tue, 4 Jun 2024 23:00:17 -0400 Subject: [PATCH 014/169] Update angle_spica.cpp --- src/CG-SPICA/angle_spica.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CG-SPICA/angle_spica.cpp b/src/CG-SPICA/angle_spica.cpp index 45b28d812a..bf86a6ec45 100644 --- a/src/CG-SPICA/angle_spica.cpp +++ b/src/CG-SPICA/angle_spica.cpp @@ -54,7 +54,7 @@ AngleSPICA::AngleSPICA(LAMMPS *lmp) : AngleSPICA::~AngleSPICA() { - if (allocated) { + if (allocated && !copymode) { memory->destroy(setflag); memory->destroy(k); memory->destroy(theta0); From 43d94985fa8eac88089f3ab1cf735e5cb748aef4 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Wed, 5 Jun 2024 19:13:16 -0400 Subject: [PATCH 015/169] angle-spica.yaml using in.spica and data.spica in.spica and data.spica based on in.fourmol and data.fourmol with pair style lj_spica instead of pair style zero --- unittest/force-styles/test_angle_style.cpp | 3 + unittest/force-styles/tests/angle-spica.yaml | 87 +++++++ unittest/force-styles/tests/data.spica | 233 +++++++++++++++++++ unittest/force-styles/tests/in.spica | 32 +++ 4 files changed, 355 insertions(+) create mode 100644 unittest/force-styles/tests/angle-spica.yaml create mode 100644 unittest/force-styles/tests/data.spica create mode 100644 unittest/force-styles/tests/in.spica diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index dbf175c801..47c475e884 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -706,6 +706,9 @@ TEST(AngleStyle, numdiff) TEST(AngleStyle, single) { if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + + // angle-spica test not compatible with pair zero + if (utils::strmatch(test_config.angle_style, "^spica")) GTEST_SKIP(); LAMMPS::argv args = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite"}; diff --git a/unittest/force-styles/tests/angle-spica.yaml b/unittest/force-styles/tests/angle-spica.yaml new file mode 100644 index 0000000000..7654be0345 --- /dev/null +++ b/unittest/force-styles/tests/angle-spica.yaml @@ -0,0 +1,87 @@ +--- +lammps_version: 7 Feb 2024 +tags: generated +date_generated: Wed Jun 5 18:31:11 2024 +epsilon: 1e-12 +skip_tests: +prerequisites: ! | + atom full + angle spica + pair lj/spica +pre_commands: ! | + variable write_data_pair index ij +post_commands: ! | + pair_style lj/spica 8.0 +input_file: in.spica +angle_style: spica +angle_coeff: ! "1 33.5 110.1 \n2 46.1 111.3 \n3 40.0 120.0 \n4 33.0 108.5 \n" +equilibrium: 4 1.9216075064457565 1.9425514574696887 2.0943951023931953 1.8936822384138474 +extract: ! "" +natoms: 29 +init_energy: 38.36438529349082 +init_stress: ! |2- + 6.2288484633192937e+01 -2.4958587357033732e+01 1.5261156310077459e+02 2.7527094178009044e+01 4.2708401447133369e+01 -2.5265950282815652e+01 +init_forces: ! |2 + 1 1.7230431704651284e+01 4.0071311825737794e+01 2.5153895595391262e+01 + 2 1.4681450443715043e+01 9.4049099264163125e+00 -2.0102364558934152e+01 + 3 -1.9308548347980725e+01 -2.8460741684874360e+01 6.4339170989100403e+00 + 4 -5.2290857572683347e+00 -9.4927850504411957e+00 1.8003472602849664e+00 + 5 -1.6382493884699279e+01 -1.4784175400797803e+01 -6.1931262199840624e+00 + 6 -5.4493064751680564e+01 7.5613258287794565e+01 6.9941734306087866e+01 + 7 -4.7395486031142198e+01 3.7640428970968820e+00 -2.4566126298992822e+02 + 8 4.8960191044380039e+01 -4.5712855041323763e+01 1.9415466008820243e+02 + 9 -8.3924213860655783e+00 2.4590103192063562e+01 3.2878160380265854e+01 + 10 6.8038129570966305e+01 -4.6569300903873433e+01 -7.6671701712056688e+01 + 11 -2.1258622382772373e+01 -7.4008599257925383e+00 8.3610564111488799e+00 + 12 5.9901920466154710e+00 -3.0542621446562030e+00 -7.5713636171526382e+00 + 13 1.4189850824692691e+00 1.0835451791895949e+00 4.9993493214959894e-01 + 14 1.1355220599075533e+01 2.4997321466757656e+00 -5.2256561116849181e+00 + 15 1.3933035015335755e+00 -2.0786326583247088e+00 8.7283364302611144e+00 + 16 4.5875574605935235e+01 -2.7754880718666161e+01 -1.0582764215323260e+02 + 17 -4.2451226361036497e+01 2.8306085448648393e+01 1.1928362036932688e+02 + 18 5.2926497658556788e-02 7.0441277800577096e-01 -2.9584690206819020e+00 + 19 -8.6276212064612834e-01 -1.0756990560638664e+00 1.2826229074637665e+00 + 20 7.9148971075772434e-01 3.3735689913016514e-01 1.7102043999486722e+00 + 21 -5.9956840446092086e+00 -6.6440354071373493e+00 1.8013592125677949e+01 + 22 -1.4065918957775763e+01 -4.6031498182035513e+00 -1.5782854315475038e+01 + 23 2.0049558879496164e+01 1.1260925334020174e+01 -2.2177902350101499e+00 + 24 3.2508269160599186e+00 -1.9979416528015960e+01 1.0409971951734974e+01 + 25 -1.6060493526274090e+01 9.4218054960789366e-01 -1.2854339891002313e+01 + 26 1.2797730884335980e+01 1.9024610945429981e+01 2.4201678955447798e+00 + 27 5.3169168679178105e+00 -2.2776165356368182e+01 9.1726846500285717e+00 + 28 -1.9217628865768805e+01 7.5096140408582208e+00 -1.2798872429928149e+01 + 29 1.3910508062151619e+01 1.5274870243863951e+01 3.6205364526432242e+00 +run_energy: 38.176417113761396 +run_stress: ! |2- + 6.1357382915550481e+01 -2.4715660959892247e+01 1.5186466302604836e+02 2.7218614858138846e+01 4.2112515489269541e+01 -2.5607593286714120e+01 +run_forces: ! |2 + 1 1.7145760907927180e+01 4.0174672565571342e+01 2.5205552180237635e+01 + 2 1.4615170171901832e+01 9.2708448155131897e+00 -2.0078351161345097e+01 + 3 -1.9027637897644411e+01 -2.8642960432918144e+01 6.2314807077302952e+00 + 4 -5.2736618463889080e+00 -9.3424901289763778e+00 1.9422015848783882e+00 + 5 -1.6468832074580213e+01 -1.4729606520686309e+01 -6.2023333708615995e+00 + 6 -5.3718294227422540e+01 7.4801671388546964e+01 6.8368190594240389e+01 + 7 -4.7118098933035071e+01 3.8739803262288781e+00 -2.4290995583077535e+02 + 8 4.7876325968669121e+01 -4.4923173742504034e+01 1.9297993934786507e+02 + 9 -8.3824572561250399e+00 2.4542635562122975e+01 3.2839238074098198e+01 + 10 6.8198580866574645e+01 -4.6830380612887495e+01 -7.6629764788623447e+01 + 11 -2.1232237676690062e+01 -7.3683045541850962e+00 8.3643364257797792e+00 + 12 5.6908584692226185e+00 -2.9956405260312478e+00 -7.3282063658600993e+00 + 13 1.3684378256951288e+00 9.7105537426706034e-01 5.7801503997630133e-01 + 14 1.1379285236061559e+01 2.6704814459393837e+00 -5.2142720262734468e+00 + 15 1.5246096380310767e+00 -1.9886210527177606e+00 8.4529064022347313e+00 + 16 4.5766629638536287e+01 -2.7729192853260034e+01 -1.0555847936417963e+02 + 17 -4.2311907917867423e+01 2.8269504758036135e+01 1.1894203420097222e+02 + 18 4.5978604531469895e-02 6.0605282956542328e-01 -2.5489959663795330e+00 + 19 -7.4282409641952973e-01 -9.2821937232343465e-01 1.1099668747784261e+00 + 20 6.7850316938866917e-01 2.8824602749664086e-01 1.4733945401265087e+00 + 21 -6.1707359561298754e+00 -6.7761831890615607e+00 1.8428059527969836e+01 + 22 -1.3998960882672469e+01 -4.5334962854737153e+00 -1.5964259983712697e+01 + 23 2.0157648747423554e+01 1.1323428247127397e+01 -2.4508469770619676e+00 + 24 3.5283602170234043e+00 -2.0588385440875950e+01 1.0846305899711011e+01 + 25 -1.6431076320543696e+01 1.1358029038847810e+00 -1.3239288833419160e+01 + 26 1.2890779580326928e+01 1.9439960296533382e+01 2.3687830191265684e+00 + 27 5.4188347979018312e+00 -2.2961492507008920e+01 9.2221110477962096e+00 + 28 -1.9337322641186159e+01 7.5984768842531718e+00 -1.2868573316667142e+01 + 29 1.3928283887490117e+01 1.5371333793823325e+01 3.6408125176375652e+00 +... diff --git a/unittest/force-styles/tests/data.spica b/unittest/force-styles/tests/data.spica new file mode 100644 index 0000000000..33b8c21ae7 --- /dev/null +++ b/unittest/force-styles/tests/data.spica @@ -0,0 +1,233 @@ +LAMMPS data file via write_data, version 5 May 2020, timestep = 0 + +29 atoms +5 atom types +24 bonds +5 bond types +30 angles +4 angle types +31 dihedrals +5 dihedral types +2 impropers +2 improper types + + -6.024572 8.975428 xlo xhi + -7.692866 7.307134 ylo yhi + -8.086924 6.913076 zlo zhi + +Masses + +1 12.0107 +2 4.00794 +3 14.0067 +4 15.9994 +5 15.9994 + +PairIJ Coeffs # lj/spica + +1 1 lj9_6 0.02 2.5 +1 2 lj9_6 0.01 1.58114 +1 3 lj9_6 0.02 2.82843 +1 4 lj9_6 0.0173205 2.78388 +1 5 lj9_6 0.0173205 2.78388 +2 2 lj12_4 0.005 1.0 +2 3 lj12_4 0.01 1.78885 +2 4 lj12_4 0.005 0.5 +2 5 lj12_4 0.00866025 1.76068 8 +3 3 lj12_6 0.02 3.2 8 +3 4 lj12_6 0.0173205 3.1496 8 +3 5 lj12_6 0.0173205 3.1496 8 +4 4 lj9_6 0.015 3.1 8 +4 5 lj9_6 0.015 3.1 8 +5 5 lj9_6 0.015 3.1 8 + +Bond Coeffs # zero + +1 1.5 +2 1.1 +3 1.3 +4 1.2 +5 1 + +Angle Coeffs # spica + +1 33.5 110.1 +2 46.1 111.3 +3 40 120 +4 33 108.5 + +Dihedral Coeffs # zero + +1 +2 +3 +4 +5 + +Improper Coeffs # zero + +1 +2 + +Atoms # full + +10 2 1 7.0000000000000007e-02 2.0185283555536988e+00 -1.4283966846517357e+00 -9.6733527271133024e-01 0 0 0 +11 2 2 8.9999999999999997e-02 1.7929780509347666e+00 -1.9871047540768743e+00 -1.8840626643185674e+00 0 0 0 +12 2 1 -2.7000000000000002e-01 3.0030247876861225e+00 -4.8923319967572748e-01 -1.6188658531537248e+00 0 0 0 +13 2 2 8.9999999999999997e-02 4.0447273787895934e+00 -9.0131998547446246e-01 -1.6384447268320836e+00 0 0 0 +14 2 2 8.9999999999999997e-02 2.6033152817257075e+00 -4.0789761505963579e-01 -2.6554413538823063e+00 0 0 0 + 2 1 2 3.1000000000000000e-01 3.0197083955402204e-01 2.9515239068888608e+00 -8.5689735572907566e-01 0 0 0 + 3 1 1 -2.0000000000000000e-02 -6.9435377880558602e-01 1.2440473127136711e+00 -6.2233801468892025e-01 0 0 0 + 4 1 2 8.9999999999999997e-02 -1.5771614164685133e+00 1.4915333140468066e+00 -1.2487126845040522e+00 0 0 0 + 6 1 1 5.1000000000000001e-01 2.9412607937706009e-01 2.2719282656652909e-01 -1.2843094067857870e+00 0 0 0 + 7 1 4 -5.1000000000000001e-01 3.4019871062879609e-01 -9.1277350075786561e-03 -2.4633113224304561e+00 0 0 0 +19 3 2 4.2359999999999998e-01 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00 0 0 0 +15 2 2 8.9999999999999997e-02 2.9756315249791303e+00 5.6334269722969288e-01 -1.2437650754599008e+00 0 0 0 +18 3 4 -8.4719999999999995e-01 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00 0 0 0 +20 3 2 4.2359999999999998e-01 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00 0 0 0 + 8 2 3 -4.6999999999999997e-01 1.1641187171852805e+00 -4.8375305955385234e-01 -6.7659823767368688e-01 0 0 0 + 9 2 2 3.1000000000000000e-01 1.3777459838125838e+00 -2.5366338669522998e-01 2.6877644730326306e-01 0 0 0 +16 2 1 5.1000000000000001e-01 2.6517554244980306e+00 -2.3957110424978438e+00 3.2908335999178327e-02 0 0 0 +17 2 4 -5.1000000000000001e-01 2.2309964792710639e+00 -2.1022918943319384e+00 1.1491948328949437e+00 0 0 0 + 1 1 3 -4.6999999999999997e-01 -2.7993683669226832e-01 2.4726588069312840e+00 -1.7200860244148433e-01 0 0 0 + 5 1 2 8.9999999999999997e-02 -8.9501761359359255e-01 9.3568128743071344e-01 4.0227731871484346e-01 0 0 0 +21 4 5 -8.4719999999999995e-01 4.9064454390208301e+00 -4.0751205255383196e+00 -3.6215576073601046e+00 0 0 0 +22 4 2 4.2359999999999998e-01 4.3687453488627543e+00 -4.2054270536772504e+00 -4.4651491269372565e+00 0 0 0 +23 4 2 4.2359999999999998e-01 5.7374928154769504e+00 -3.5763355905184966e+00 -3.8820297194230728e+00 0 0 0 +24 5 5 -8.4719999999999995e-01 2.0684115301174013e+00 3.1518221747664397e+00 3.1554242678474576e+00 0 0 0 +25 5 2 4.2359999999999998e-01 1.2998381073113014e+00 3.2755513587518097e+00 2.5092990173114837e+00 0 0 0 +26 5 2 4.2359999999999998e-01 2.5807438597688113e+00 4.0120175892854135e+00 3.2133398379059099e+00 0 0 0 +27 6 5 -8.4719999999999995e-01 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 0 0 0 +28 6 2 4.2359999999999998e-01 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 0 0 0 +29 6 2 4.2359999999999998e-01 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 0 0 0 + +Velocities + +1 7.7867804888392077e-04 5.8970331623292821e-04 -2.2179517633030531e-04 +2 2.7129529964126462e-03 4.6286427111164284e-03 3.5805549693846352e-03 +3 -1.2736791029204805e-03 1.6108674226414498e-03 -3.3618185901550799e-04 +4 -9.2828595122009308e-04 -1.2537885319521818e-03 -4.1204974953432108e-03 +5 -1.1800848061603740e-03 7.5424401975844038e-04 6.9023177964912290e-05 +6 -3.0914004879905335e-04 1.2755385764678133e-03 7.9574303350202582e-04 +7 -1.1037894966874103e-04 -7.6764845099077425e-04 -7.7217630460203659e-04 +8 3.9060281273221989e-04 -8.1444231918053418e-04 1.5134641148324972e-04 +9 1.2475530960659720e-03 -2.6608454451432528e-03 1.1117602907112732e-03 +10 4.5008983776042893e-04 4.9530197647538077e-04 -2.3336234361093645e-04 +11 -3.6977669078869707e-04 -1.5289071951960539e-03 -2.9176389881837113e-03 +12 1.0850834530183159e-03 -6.4965897903201833e-04 -1.2971152622619948e-03 +13 4.0754559196230639e-03 3.5043502394946119e-03 -7.8324487687854666e-04 +14 -1.3837220448746613e-04 -4.0656048637594394e-03 -3.9333461173944500e-03 +15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 +16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 +17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 +18 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04 +19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03 +20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03 +21 -9.5568188553430398e-04 1.6594630943762931e-04 -1.8199788009966615e-04 +22 -3.3137518957653462e-03 -2.8683968287936054e-03 3.6384389958326871e-03 +23 2.4209481134686401e-04 -4.5457709985051130e-03 2.7663581642115042e-03 +24 2.5447450568861086e-04 4.8412447786110117e-04 -4.8021914527341357e-04 +25 4.3722771097312743e-03 -4.5184411669545515e-03 2.5200952006556795e-03 +26 -1.9250110555001179e-03 -3.0342169883610837e-03 3.5062814567984532e-03 +27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 +28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 +29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 + +Bonds + +1 5 1 2 +2 3 1 3 +3 2 3 4 +4 2 3 5 +5 1 3 6 +6 3 6 8 +7 4 6 7 +8 5 8 9 +9 3 8 10 +10 2 10 11 +11 1 10 12 +12 1 10 16 +13 2 12 13 +14 2 12 14 +15 2 12 15 +16 4 16 17 +17 5 18 19 +18 5 18 20 +19 5 21 22 +20 5 21 23 +21 5 24 25 +22 5 24 26 +23 5 27 28 +24 5 27 29 + +Angles + +1 4 2 1 3 +2 4 1 3 5 +3 4 1 3 4 +4 4 1 3 6 +5 4 4 3 5 +6 2 5 3 6 +7 2 4 3 6 +8 3 3 6 7 +9 3 3 6 8 +10 3 7 6 8 +11 2 6 8 9 +12 2 9 8 10 +13 3 6 8 10 +14 2 8 10 11 +15 3 8 10 16 +16 2 11 10 12 +17 1 12 10 16 +18 1 8 10 12 +19 2 11 10 16 +20 2 10 12 15 +21 2 10 12 14 +22 2 10 12 13 +23 4 13 12 15 +24 4 13 12 14 +25 4 14 12 15 +26 4 10 16 17 +27 1 19 18 20 +28 1 22 21 23 +29 1 25 24 26 +30 1 28 27 29 + +Dihedrals + +1 2 2 1 3 6 +2 2 2 1 3 4 +3 3 2 1 3 5 +4 1 1 3 6 8 +5 1 1 3 6 7 +6 5 4 3 6 8 +7 5 4 3 6 7 +8 5 5 3 6 8 +9 5 5 3 6 7 +10 4 3 6 8 9 +11 3 3 6 8 10 +12 3 7 6 8 9 +13 4 7 6 8 10 +14 2 6 8 10 12 +15 2 6 8 10 16 +16 2 6 8 10 11 +17 2 9 8 10 12 +18 4 9 8 10 16 +19 5 9 8 10 11 +20 5 8 10 12 13 +21 1 8 10 12 14 +22 5 8 10 12 15 +23 4 8 10 16 17 +24 5 11 10 12 13 +25 5 11 10 12 14 +26 5 11 10 12 15 +27 2 11 10 16 17 +28 2 12 10 16 17 +29 5 16 10 12 13 +30 5 16 10 12 14 +31 5 16 10 12 15 + +Impropers + +1 1 6 3 8 7 +2 2 8 6 10 9 diff --git a/unittest/force-styles/tests/in.spica b/unittest/force-styles/tests/in.spica new file mode 100644 index 0000000000..1a80b2aac9 --- /dev/null +++ b/unittest/force-styles/tests/in.spica @@ -0,0 +1,32 @@ +variable newton_pair index on +variable newton_bond index on +variable bond_factor index 0.10 +variable angle_factor index 0.25 +variable dihedral_factor index 0.50 +variable units index real +variable input_dir index . +variable data_file index ${input_dir}/data.spica +variable pair_style index 'lj/spica 8.0' +variable bond_style index zero +variable angle_style index spica +variable dihedral_style index zero +variable improper_style index zero +variable t_target index 100.0 + +echo both + +atom_style full +atom_modify map array +neigh_modify delay 2 every 2 check no +units ${units} +timestep 0.1 +newton ${newton_pair} ${newton_bond} +special_bonds lj/coul ${bond_factor} ${angle_factor} ${dihedral_factor} + +pair_style ${pair_style} +bond_style ${bond_style} +angle_style ${angle_style} +dihedral_style ${dihedral_style} +improper_style ${improper_style} + +read_data ${data_file} From 235c1179b1ab393fb77929a5550bffd70fc803d8 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Wed, 5 Jun 2024 19:13:57 -0400 Subject: [PATCH 016/169] implemented evtally13 --- src/KOKKOS/angle_spica_kokkos.cpp | 94 ++++++++++++++++++++++++++++++- src/KOKKOS/angle_spica_kokkos.h | 5 ++ 2 files changed, 97 insertions(+), 2 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 06a3b6de2e..15c80e5cd5 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -289,8 +289,8 @@ void AngleSPICAKokkos::operator()(TagAngleSPICACompute::ev_tally(EV_FLOAT &ev, const int i, const int /* ---------------------------------------------------------------------- */ +//void AngleSPICA::ev_tally13(int i, int j, int nlocal, int newton_bond, +// double evdwl, double fpair, +// double delx, double dely, double delz) +template +KOKKOS_INLINE_FUNCTION +void AngleSPICAKokkos::ev_tally13(EV_FLOAT &ev, const int i, const int j, + const F_FLOAT &evdwl, const F_FLOAT &fpair, + const F_FLOAT &delx, const F_FLOAT &dely, const F_FLOAT &delz) const +{ + double v[6]; + + // The eatom and vatom arrays are atomic + Kokkos::View::value,Kokkos::MemoryTraits > v_eatom = k_eatom.template view(); + Kokkos::View::value,Kokkos::MemoryTraits > v_vatom = k_vatom.template view(); + + if (eflag_either) { + if (eflag_global) { + if (newton_bond) { + ev.evdwl += evdwl; + } else { + if (i < nlocal) + ev.evdwl += 0.5*evdwl; + if (j < nlocal) + ev.evdwl += 0.5*evdwl; + } + } + if (eflag_atom) { + if (newton_bond || i < nlocal) v_eatom[i] += 0.5*evdwl; + if (newton_bond || j < nlocal) v_eatom[j] += 0.5*evdwl; + } + } + + if (vflag_either) { + v[0] = delx*delx*fpair; + v[1] = dely*dely*fpair; + v[2] = delz*delz*fpair; + v[3] = delx*dely*fpair; + v[4] = delx*delz*fpair; + v[5] = dely*delz*fpair; + + if (vflag_global) { + if (newton_bond) { + ev.v[0] += v[0]; + ev.v[1] += v[1]; + ev.v[2] += v[2]; + ev.v[3] += v[3]; + ev.v[4] += v[4]; + ev.v[5] += v[5]; + } else { + if (i < nlocal) { + ev.v[0] += 0.5*v[0]; + ev.v[1] += 0.5*v[1]; + ev.v[2] += 0.5*v[2]; + ev.v[3] += 0.5*v[3]; + ev.v[4] += 0.5*v[4]; + ev.v[5] += 0.5*v[5]; + } + if (j < nlocal) { + ev.v[0] += 0.5*v[0]; + ev.v[1] += 0.5*v[1]; + ev.v[2] += 0.5*v[2]; + ev.v[3] += 0.5*v[3]; + ev.v[4] += 0.5*v[4]; + ev.v[5] += 0.5*v[5]; + } + } + } + + if (vflag_atom) { + if (newton_bond || i < nlocal) { + v_vatom(i,0) += 0.5*v[0]; + v_vatom(i,1) += 0.5*v[1]; + v_vatom(i,2) += 0.5*v[2]; + v_vatom(i,3) += 0.5*v[3]; + v_vatom(i,4) += 0.5*v[4]; + v_vatom(i,5) += 0.5*v[5]; + } + if (newton_bond || j < nlocal) { + v_vatom(j,0) += 0.5*v[0]; + v_vatom(j,1) += 0.5*v[1]; + v_vatom(j,2) += 0.5*v[2]; + v_vatom(j,3) += 0.5*v[3]; + v_vatom(j,4) += 0.5*v[4]; + v_vatom(j,5) += 0.5*v[5]; + } + } + } +} +/* ---------------------------------------------------------------------- */ + namespace LAMMPS_NS { template class AngleSPICAKokkos; #ifdef LMP_KOKKOS_GPU diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h index d35a877122..193e60eab3 100644 --- a/src/KOKKOS/angle_spica_kokkos.h +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -59,6 +59,11 @@ class AngleSPICAKokkos : public AngleSPICA { const F_FLOAT &delx1, const F_FLOAT &dely1, const F_FLOAT &delz1, const F_FLOAT &delx2, const F_FLOAT &dely2, const F_FLOAT &delz2) const; + KOKKOS_INLINE_FUNCTION + void ev_tally13(EV_FLOAT &ev, const int i, const int j, + const F_FLOAT &evdwl, const F_FLOAT &fpair, + const F_FLOAT &delx, const F_FLOAT &dely, const F_FLOAT &delz) const; + protected: class NeighborKokkos *neighborKK; From f2db99193e01090b20284f7b66ca1f2588114657 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Wed, 5 Jun 2024 19:31:12 -0400 Subject: [PATCH 017/169] removed whitespaces --- src/KOKKOS/angle_spica_kokkos.cpp | 37 +++++++------- src/KOKKOS/angle_spica_kokkos.h | 6 +-- src/KOKKOS/pair_lj_spica_coul_long_kokkos.h | 3 +- unittest/force-styles/test_angle_style.cpp | 54 ++++++++++----------- 4 files changed, 48 insertions(+), 52 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 15c80e5cd5..a5b15d7a46 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -183,63 +183,63 @@ void AngleSPICAKokkos::operator()(TagAngleSPICAComputetype[i1]; const int type3 = atom->type[i3]; - + f13=0.0; e13=0.0; - + if (rsq3 < rminsq[type1][type3]) { const int ljt = lj_type[type1][type3]; const double r2inv = 1.0/rsq3; - + if (ljt == LJ12_4) { const double r4inv=r2inv*r2inv; - + f13 = r4inv*(lj1[type1][type3]*r4inv*r4inv - lj2[type1][type3]); if (eflag) e13 = r4inv*(lj3[type1][type3]*r4inv*r4inv - lj4[type1][type3]); - + } else if (ljt == LJ9_6) { const double r3inv = r2inv*sqrt(r2inv); const double r6inv = r3inv*r3inv; - + f13 = r6inv*(lj1[type1][type3]*r3inv - lj2[type1][type3]); if (eflag) e13 = r6inv*(lj3[type1][type3]*r3inv - lj4[type1][type3]); - + } else if (ljt == LJ12_6) { const double r6inv = r2inv*r2inv*r2inv; - + f13 = r6inv*(lj1[type1][type3]*r6inv - lj2[type1][type3]); if (eflag) e13 = r6inv*(lj3[type1][type3]*r6inv - lj4[type1][type3]); - + } else if (ljt == LJ12_5) { const double r5inv = r2inv*r2inv*sqrt(r2inv); const double r7inv = r5inv*r2inv; - + f13 = r5inv*(lj1[type1][type3]*r7inv - lj2[type1][type3]); if (eflag) e13 = r5inv*(lj3[type1][type3]*r7inv - lj4[type1][type3]); } - + // make sure energy is 0.0 at the cutoff. if (eflag) e13 -= emin[type1][type3]; - + f13 *= r2inv; } } @@ -484,9 +484,6 @@ void AngleSPICAKokkos::ev_tally(EV_FLOAT &ev, const int i, const int /* ---------------------------------------------------------------------- */ -//void AngleSPICA::ev_tally13(int i, int j, int nlocal, int newton_bond, -// double evdwl, double fpair, -// double delx, double dely, double delz) template KOKKOS_INLINE_FUNCTION void AngleSPICAKokkos::ev_tally13(EV_FLOAT &ev, const int i, const int j, diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h index 193e60eab3..2a35d62e83 100644 --- a/src/KOKKOS/angle_spica_kokkos.h +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -63,7 +63,7 @@ class AngleSPICAKokkos : public AngleSPICA { void ev_tally13(EV_FLOAT &ev, const int i, const int j, const F_FLOAT &evdwl, const F_FLOAT &fpair, const F_FLOAT &delx, const F_FLOAT &dely, const F_FLOAT &delz) const; - + protected: class NeighborKokkos *neighborKK; @@ -84,12 +84,12 @@ class AngleSPICAKokkos : public AngleSPICA { typename ArrayTypes::tdual_ffloat_1d k_theta0; typename ArrayTypes::tdual_ffloat_1d k_repscale; typename ArrayTypes::tdual_int_1d k_setflag; - + typename ArrayTypes::t_ffloat_1d d_k; typename ArrayTypes::t_ffloat_1d d_theta0; typename ArrayTypes::t_ffloat_1d d_repscale; typename ArrayTypes::t_int_1d d_setflag; - + void allocate() override; }; diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h index 2f8fc68949..73ebf82b23 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h @@ -94,7 +94,7 @@ class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { typename AT::t_f_array f; typename AT::t_int_1d_randomread type; typename AT::t_float_1d_randomread q; - + DAT::tdual_efloat_1d k_eatom; DAT::tdual_virial_array k_vatom; typename AT::t_efloat_1d d_eatom; @@ -145,7 +145,6 @@ class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { friend EV_FLOAT pair_compute_neighlist>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute>(PairLJSPICACoulLongKokkos*,NeighListKokkos*); - friend void pair_virial_fdotr_compute(PairLJSPICACoulLongKokkos*); }; diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index 47c475e884..016cdbcf7b 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -535,16 +535,16 @@ TEST(AngleStyle, kokkos_omp) if (!LAMMPS::is_installed_pkg("KOKKOS")) GTEST_SKIP(); if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); if (!Info::has_accelerator_feature("KOKKOS", "api", "openmp")) GTEST_SKIP(); - + LAMMPS::argv args = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite", "-k", "on", "t", "4", "-sf", "kk"}; - + ::testing::internal::CaptureStdout(); LAMMPS *lmp = init_lammps(args, test_config, true); - + std::string output = ::testing::internal::GetCapturedStdout(); if (verbose) std::cout << output; - + if (!lmp) { std::cerr << "One or more prerequisite styles with /kk suffix\n" "are not available in this LAMMPS configuration:\n"; @@ -553,65 +553,65 @@ TEST(AngleStyle, kokkos_omp) } GTEST_SKIP(); } - + EXPECT_THAT(output, StartsWith("LAMMPS (")); EXPECT_THAT(output, HasSubstr("Loop time")); - + // abort if running in parallel and not all atoms are local const int nlocal = lmp->atom->nlocal; ASSERT_EQ(lmp->atom->natoms, nlocal); - + // relax error a bit for KOKKOS package double epsilon = 5.0 * test_config.epsilon; - + ErrorStats stats; auto angle = lmp->force->angle; - + EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("init_stress (newton on)", angle->virial, test_config.init_stress, epsilon); - + stats.reset(); EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); if (print_stats) std::cerr << "init_energy stats, newton on: " << stats << std::endl; - + if (!verbose) ::testing::internal::CaptureStdout(); run_lammps(lmp); if (!verbose) ::testing::internal::GetCapturedStdout(); - + EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon); EXPECT_STRESS("run_stress (newton on)", angle->virial, test_config.run_stress, epsilon); - + stats.reset(); int id = lmp->modify->find_compute("sum"); double energy = lmp->modify->compute[id]->compute_scalar(); EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon); EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon); if (print_stats) std::cerr << "run_energy stats, newton on: " << stats << std::endl; - + if (!verbose) ::testing::internal::CaptureStdout(); cleanup_lammps(lmp, test_config); lmp = init_lammps(args, test_config, false); if (!verbose) ::testing::internal::GetCapturedStdout(); - + // skip over these tests if newton bond is forced to be on if (lmp->force->newton_bond == 0) { angle = lmp->force->angle; - + EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("init_stress (newton off)", angle->virial, test_config.init_stress, 2 * epsilon); - + stats.reset(); EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); if (print_stats) std::cerr << "init_energy stats, newton off:" << stats << std::endl; - + if (!verbose) ::testing::internal::CaptureStdout(); run_lammps(lmp); if (!verbose) ::testing::internal::GetCapturedStdout(); - + EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); EXPECT_STRESS("run_stress (newton off)", angle->virial, test_config.run_stress, epsilon); - + stats.reset(); id = lmp->modify->find_compute("sum"); energy = lmp->modify->compute[id]->compute_scalar(); @@ -619,31 +619,31 @@ TEST(AngleStyle, kokkos_omp) EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon); if (print_stats) std::cerr << "run_energy stats, newton off:" << stats << std::endl; } - + if (!verbose) ::testing::internal::CaptureStdout(); restart_lammps(lmp, test_config); if (!verbose) ::testing::internal::GetCapturedStdout(); - + angle = lmp->force->angle; EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("restart_stress", angle->virial, test_config.init_stress, epsilon); - + stats.reset(); EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); if (print_stats) std::cerr << "restart_energy stats:" << stats << std::endl; - + if (!verbose) ::testing::internal::CaptureStdout(); data_lammps(lmp, test_config); if (!verbose) ::testing::internal::GetCapturedStdout(); - + angle = lmp->force->angle; EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("data_stress", angle->virial, test_config.init_stress, epsilon); - + stats.reset(); EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); if (print_stats) std::cerr << "data_energy stats:" << stats << std::endl; - + if (!verbose) ::testing::internal::CaptureStdout(); cleanup_lammps(lmp, test_config); if (!verbose) ::testing::internal::GetCapturedStdout(); From 44e13d97c6574f5ee011d99ff50774fe4cc9951f Mon Sep 17 00:00:00 2001 From: alphataubio Date: Wed, 5 Jun 2024 19:55:38 -0400 Subject: [PATCH 018/169] removed more whitespace --- src/KOKKOS/angle_spica_kokkos.cpp | 4 ++-- unittest/force-styles/test_angle_style.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index a5b15d7a46..25cbc1dced 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -243,7 +243,7 @@ void AngleSPICAKokkos::operator()(TagAngleSPICACompute::allocate() k_theta0 = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::theta0",n+1); k_repscale = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::repscale",n+1); k_setflag = typename ArrayTypes::tdual_int_1d("AngleSPICA::setflag",n+1); - + d_k = k_k.template view(); d_theta0 = k_theta0.template view(); d_repscale = k_repscale.template view(); diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index 016cdbcf7b..683ce48877 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -706,7 +706,7 @@ TEST(AngleStyle, numdiff) TEST(AngleStyle, single) { if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); - + // angle-spica test not compatible with pair zero if (utils::strmatch(test_config.angle_style, "^spica")) GTEST_SKIP(); From a2560215888e41cf7772530528fc966de0faaae4 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Wed, 5 Jun 2024 19:56:09 -0400 Subject: [PATCH 019/169] added 2 kokkos styles to legacy make system --- src/KOKKOS/Install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index 462c0cbe57..a068537d80 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -53,6 +53,7 @@ action angle_cosine_kokkos.cpp angle_cosine.cpp action angle_cosine_kokkos.h angle_cosine.h action angle_harmonic_kokkos.cpp angle_harmonic.cpp action angle_harmonic_kokkos.h angle_harmonic.h +action angle_spica_kokkos.h angle_spica.h action atom_kokkos.cpp action atom_kokkos.h action atom_map_kokkos.cpp @@ -340,6 +341,8 @@ action pair_lj_gromacs_coul_gromacs_kokkos.cpp pair_lj_gromacs_coul_gromacs.cpp action pair_lj_gromacs_coul_gromacs_kokkos.h pair_lj_gromacs_coul_gromacs.h action pair_lj_gromacs_kokkos.cpp pair_lj_gromacs.cpp action pair_lj_gromacs_kokkos.h pair_lj_gromacs.h +action pair_lj_spica_coul_long_kokkos.cpp pair_lj_coul_long_spica.cpp +action pair_lj_spica_coul_long_kokkos.h pair_lj_coul_long_spica.h action pair_lj_spica_kokkos.cpp pair_lj_spica.cpp action pair_lj_spica_kokkos.h pair_lj_spica.h action pair_meam_kokkos.cpp pair_meam.cpp From 1fa67290c3c4395939ede55b8c03b730fb2e2936 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Wed, 5 Jun 2024 19:56:29 -0400 Subject: [PATCH 020/169] updated pair style and angle style /kk in docs --- doc/src/angle_spica.rst | 3 ++- doc/src/pair_spica.rst | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/src/angle_spica.rst b/doc/src/angle_spica.rst index 4162ce5608..2659dd4fc0 100644 --- a/doc/src/angle_spica.rst +++ b/doc/src/angle_spica.rst @@ -1,10 +1,11 @@ .. index:: angle_style spica .. index:: angle_style spica/omp +.. index:: angle_style spica/kk angle_style spica command ========================= -Accelerator Variants: *spica/omp* +Accelerator Variants: *spica/omp*, *spica/kk* Syntax """""" diff --git a/doc/src/pair_spica.rst b/doc/src/pair_spica.rst index 859506593f..b86639e806 100644 --- a/doc/src/pair_spica.rst +++ b/doc/src/pair_spica.rst @@ -5,6 +5,7 @@ .. index:: pair_style lj/spica/coul/long .. index:: pair_style lj/spica/coul/long/gpu .. index:: pair_style lj/spica/coul/long/omp +.. index:: pair_style lj/spica/coul/long/kk .. index:: pair_style lj/spica/coul/msm .. index:: pair_style lj/spica/coul/msm/omp @@ -16,7 +17,7 @@ Accelerator Variants: *lj/spica/gpu*, *lj/spica/kk*, *lj/spica/omp* pair_style lj/spica/coul/long command ===================================== -Accelerator Variants: *lj/spica/coul/long/gpu*, *lj/spica/coul/long/omp* +Accelerator Variants: *lj/spica/coul/long/gpu*, *lj/spica/coul/long/omp*, *lj/spica/coul/long/kk* pair_style lj/spica/coul/msm command ==================================== From 91c718c46774386a29f166e2fe3b4dac741df506 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Thu, 6 Jun 2024 12:47:11 -0400 Subject: [PATCH 021/169] Update Install.sh --- src/KOKKOS/Install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index a068537d80..cc9671b759 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -53,6 +53,7 @@ action angle_cosine_kokkos.cpp angle_cosine.cpp action angle_cosine_kokkos.h angle_cosine.h action angle_harmonic_kokkos.cpp angle_harmonic.cpp action angle_harmonic_kokkos.h angle_harmonic.h +action angle_spica_kokkos.cpp angle_spica.cpp action angle_spica_kokkos.h angle_spica.h action atom_kokkos.cpp action atom_kokkos.h From 42b4ff4cc5570d6bdd5afaddbcca214d27bbbb91 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sat, 8 Jun 2024 21:31:31 -0400 Subject: [PATCH 022/169] revert to develop test_angle_style, kokkos_omp test is in kokkos-unit-testing branch --- unittest/force-styles/test_angle_style.cpp | 126 +-------------------- 1 file changed, 1 insertion(+), 125 deletions(-) diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index 683ce48877..010fabd6e2 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -138,9 +138,8 @@ LAMMPS *init_lammps(LAMMPS::argv &args, const TestConfig &cfg, const bool newton } command("run 0 post no"); - command("variable write_data_pair index ii"); command("write_restart " + cfg.basename + ".restart"); - command("write_data " + cfg.basename + ".data pair ${write_data_pair}"); + command("write_data " + cfg.basename + ".data"); command("write_coeff " + cfg.basename + "-coeffs.in"); return lmp; @@ -530,126 +529,6 @@ TEST(AngleStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); }; -TEST(AngleStyle, kokkos_omp) -{ - if (!LAMMPS::is_installed_pkg("KOKKOS")) GTEST_SKIP(); - if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); - if (!Info::has_accelerator_feature("KOKKOS", "api", "openmp")) GTEST_SKIP(); - - LAMMPS::argv args = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite", - "-k", "on", "t", "4", "-sf", "kk"}; - - ::testing::internal::CaptureStdout(); - LAMMPS *lmp = init_lammps(args, test_config, true); - - std::string output = ::testing::internal::GetCapturedStdout(); - if (verbose) std::cout << output; - - if (!lmp) { - std::cerr << "One or more prerequisite styles with /kk suffix\n" - "are not available in this LAMMPS configuration:\n"; - for (auto &prerequisite : test_config.prerequisites) { - std::cerr << prerequisite.first << "_style " << prerequisite.second << "\n"; - } - GTEST_SKIP(); - } - - EXPECT_THAT(output, StartsWith("LAMMPS (")); - EXPECT_THAT(output, HasSubstr("Loop time")); - - // abort if running in parallel and not all atoms are local - const int nlocal = lmp->atom->nlocal; - ASSERT_EQ(lmp->atom->natoms, nlocal); - - // relax error a bit for KOKKOS package - double epsilon = 5.0 * test_config.epsilon; - - ErrorStats stats; - auto angle = lmp->force->angle; - - EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton on)", angle->virial, test_config.init_stress, epsilon); - - stats.reset(); - EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); - if (print_stats) std::cerr << "init_energy stats, newton on: " << stats << std::endl; - - if (!verbose) ::testing::internal::CaptureStdout(); - run_lammps(lmp); - if (!verbose) ::testing::internal::GetCapturedStdout(); - - EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon); - EXPECT_STRESS("run_stress (newton on)", angle->virial, test_config.run_stress, epsilon); - - stats.reset(); - int id = lmp->modify->find_compute("sum"); - double energy = lmp->modify->compute[id]->compute_scalar(); - EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon); - EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon); - if (print_stats) std::cerr << "run_energy stats, newton on: " << stats << std::endl; - - if (!verbose) ::testing::internal::CaptureStdout(); - cleanup_lammps(lmp, test_config); - lmp = init_lammps(args, test_config, false); - if (!verbose) ::testing::internal::GetCapturedStdout(); - - // skip over these tests if newton bond is forced to be on - if (lmp->force->newton_bond == 0) { - angle = lmp->force->angle; - - EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton off)", angle->virial, test_config.init_stress, - 2 * epsilon); - - stats.reset(); - EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); - if (print_stats) std::cerr << "init_energy stats, newton off:" << stats << std::endl; - - if (!verbose) ::testing::internal::CaptureStdout(); - run_lammps(lmp); - if (!verbose) ::testing::internal::GetCapturedStdout(); - - EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); - EXPECT_STRESS("run_stress (newton off)", angle->virial, test_config.run_stress, epsilon); - - stats.reset(); - id = lmp->modify->find_compute("sum"); - energy = lmp->modify->compute[id]->compute_scalar(); - EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon); - EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon); - if (print_stats) std::cerr << "run_energy stats, newton off:" << stats << std::endl; - } - - if (!verbose) ::testing::internal::CaptureStdout(); - restart_lammps(lmp, test_config); - if (!verbose) ::testing::internal::GetCapturedStdout(); - - angle = lmp->force->angle; - EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("restart_stress", angle->virial, test_config.init_stress, epsilon); - - stats.reset(); - EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); - if (print_stats) std::cerr << "restart_energy stats:" << stats << std::endl; - - if (!verbose) ::testing::internal::CaptureStdout(); - data_lammps(lmp, test_config); - if (!verbose) ::testing::internal::GetCapturedStdout(); - - angle = lmp->force->angle; - EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("data_stress", angle->virial, test_config.init_stress, epsilon); - - stats.reset(); - EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); - if (print_stats) std::cerr << "data_energy stats:" << stats << std::endl; - - if (!verbose) ::testing::internal::CaptureStdout(); - cleanup_lammps(lmp, test_config); - if (!verbose) ::testing::internal::GetCapturedStdout(); -}; - - TEST(AngleStyle, numdiff) { if (!LAMMPS::is_installed_pkg("EXTRA-FIX")) GTEST_SKIP(); @@ -707,9 +586,6 @@ TEST(AngleStyle, single) { if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); - // angle-spica test not compatible with pair zero - if (utils::strmatch(test_config.angle_style, "^spica")) GTEST_SKIP(); - LAMMPS::argv args = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite"}; // create a LAMMPS instance with standard settings to detect the number of atom types From ca8eb4fb68299f6007f11a4a6902a6699191bcce Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sat, 8 Jun 2024 21:57:24 -0400 Subject: [PATCH 023/169] update angle spica test --- unittest/force-styles/test_angle_style.cpp | 12 +++++++++--- unittest/force-styles/tests/in.spica | 2 -- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index 010fabd6e2..afee85d263 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -138,8 +138,9 @@ LAMMPS *init_lammps(LAMMPS::argv &args, const TestConfig &cfg, const bool newton } command("run 0 post no"); + command("variable write_data_pair index ii"); command("write_restart " + cfg.basename + ".restart"); - command("write_data " + cfg.basename + ".data"); + command("write_data " + cfg.basename + ".data pair ${write_data_pair}"); command("write_coeff " + cfg.basename + "-coeffs.in"); return lmp; @@ -644,8 +645,13 @@ TEST(AngleStyle, single) "extra/angle/per/atom 2 extra/special/per/atom 2", nangletypes)); - command("pair_style zero 8.0"); - command("pair_coeff * *"); + if (utils::strmatch(test_config.angle_style, "spica")) { + command("pair_style lj/spica 8.0"); + command("pair_coeff * * lj9_6 0.02 2.5"); + } else { + command("pair_style zero 8.0"); + command("pair_coeff * *"); + } command("angle_style " + test_config.angle_style); Angle *angle = lmp->force->angle; diff --git a/unittest/force-styles/tests/in.spica b/unittest/force-styles/tests/in.spica index 1a80b2aac9..6739409759 100644 --- a/unittest/force-styles/tests/in.spica +++ b/unittest/force-styles/tests/in.spica @@ -13,8 +13,6 @@ variable dihedral_style index zero variable improper_style index zero variable t_target index 100.0 -echo both - atom_style full atom_modify map array neigh_modify delay 2 every 2 check no From 1349d7632e7a7cb0f483bde4e41bd5b935c913cd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Jun 2024 20:26:45 -0400 Subject: [PATCH 024/169] flag KOKKOS support for added styles in commands lists --- doc/src/Commands_bond.rst | 2 +- doc/src/Commands_pair.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Commands_bond.rst b/doc/src/Commands_bond.rst index fcd725d787..9558735858 100644 --- a/doc/src/Commands_bond.rst +++ b/doc/src/Commands_bond.rst @@ -100,7 +100,7 @@ OPT. * :doc:`mesocnt ` * :doc:`mm3 ` * :doc:`quartic (o) ` - * :doc:`spica (o) ` + * :doc:`spica (ko) ` * :doc:`table (o) ` .. _dihedral: diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 514785c15c..cd0ada6a4a 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -190,7 +190,7 @@ OPT. * :doc:`lj/mdf ` * :doc:`lj/relres (o) ` * :doc:`lj/spica (gko) ` - * :doc:`lj/spica/coul/long (go) ` + * :doc:`lj/spica/coul/long (gko) ` * :doc:`lj/spica/coul/msm (o) ` * :doc:`lj/sf/dipole/sf (go) ` * :doc:`lj/smooth (go) ` From 7e7f3c08f4ffaf1944d900eb4f18a64ffb54fef5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Jun 2024 20:29:26 -0400 Subject: [PATCH 025/169] make check more specific but accelerator compatible --- unittest/force-styles/test_angle_style.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index afee85d263..ecb6c44c71 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -645,7 +645,7 @@ TEST(AngleStyle, single) "extra/angle/per/atom 2 extra/special/per/atom 2", nangletypes)); - if (utils::strmatch(test_config.angle_style, "spica")) { + if (utils::strmatch(test_config.angle_style, "^spica")) { command("pair_style lj/spica 8.0"); command("pair_coeff * * lj9_6 0.02 2.5"); } else { From 5207b93fd8a1d0d54f9100d4a43b0ebbf35cd36e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 22 Jun 2024 20:33:44 -0400 Subject: [PATCH 026/169] small update for consistency --- unittest/force-styles/tests/angle-spica.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/unittest/force-styles/tests/angle-spica.yaml b/unittest/force-styles/tests/angle-spica.yaml index 7654be0345..7f88553c70 100644 --- a/unittest/force-styles/tests/angle-spica.yaml +++ b/unittest/force-styles/tests/angle-spica.yaml @@ -1,6 +1,6 @@ --- lammps_version: 7 Feb 2024 -tags: generated +tags: date_generated: Wed Jun 5 18:31:11 2024 epsilon: 1e-12 skip_tests: @@ -14,7 +14,11 @@ post_commands: ! | pair_style lj/spica 8.0 input_file: in.spica angle_style: spica -angle_coeff: ! "1 33.5 110.1 \n2 46.1 111.3 \n3 40.0 120.0 \n4 33.0 108.5 \n" +angle_coeff: ! | + 1 33.5 110.1 + 2 46.1 111.3 + 3 40.0 120.0 + 4 33.0 108.5 equilibrium: 4 1.9216075064457565 1.9425514574696887 2.0943951023931953 1.8936822384138474 extract: ! "" natoms: 29 From 21a42c1304ee9534bfd18b09cee8f4b51622d8a4 Mon Sep 17 00:00:00 2001 From: Stan Gerald Moore Date: Mon, 24 Jun 2024 14:08:47 -0600 Subject: [PATCH 027/169] Small cleanup --- src/KOKKOS/angle_spica_kokkos.cpp | 5 +---- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 22 ++----------------- 2 files changed, 3 insertions(+), 24 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 25cbc1dced..b36923e8b1 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -84,11 +84,8 @@ void AngleSPICAKokkos::compute(int eflag_in, int vflag_in) d_vatom = k_vatom.template view(); } - //atomKK->sync(execution_space,datamask_read); k_k.template sync(); k_theta0.template sync(); - // if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); - // else atomKK->modified(execution_space,F_MASK); x = atomKK->k_x.template view(); f = atomKK->k_f.template view(); @@ -244,7 +241,6 @@ void AngleSPICAKokkos::operator()(TagAngleSPICACompute::ev_tally13(EV_FLOAT &ev, const int i, const i } } } + /* ---------------------------------------------------------------------- */ namespace LAMMPS_NS { diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp index 37cbe7d17f..860055b62b 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -75,7 +75,6 @@ void PairLJSPICACoulLongKokkos::compute(int eflag_in, int vflag_in) eflag = eflag_in; vflag = vflag_in; - if (neighflag == FULL) no_virial_fdotr_compute = 1; ev_init(eflag,vflag,0); @@ -119,11 +118,8 @@ void PairLJSPICACoulLongKokkos::compute(int eflag_in, int vflag_in) // loop over neighbors of my atoms - // FIXME: taken from pair_lj_charmmfsw_coul_long, is it needed ??? copymode = 1; - //EV_FLOAT ev = pair_compute,void >(this,(NeighListKokkos*)list); - EV_FLOAT ev; if (ncoultablebits) ev = pair_compute,CoulLongTable<1> > @@ -132,7 +128,7 @@ void PairLJSPICACoulLongKokkos::compute(int eflag_in, int vflag_in) ev = pair_compute,CoulLongTable<0> > (this,(NeighListKokkos*)list); - if (eflag) { + if (eflag_global) { eng_vdwl += ev.evdwl; eng_coul += ev.ecoul; } @@ -158,6 +154,7 @@ void PairLJSPICACoulLongKokkos::compute(int eflag_in, int vflag_in) if (vflag_fdotr) pair_virial_fdotr_compute(this); + copymode = 0; } /* ---------------------------------------------------------------------- @@ -208,7 +205,6 @@ compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, c return a* ( lj_1*r6inv*b - lj_2 * r2inv); } - /* ---------------------------------------------------------------------- compute pair potential energy between atoms i and j ---------------------------------------------------------------------- */ @@ -325,11 +321,8 @@ compute_fcoul(const F_FLOAT& rsq, const int& /*i*/, const int&j, return forcecoul*rinv*rinv; } - - } - /* ---------------------------------------------------------------------- compute coulomb pair potential energy between atoms i and j ------------------------------------------------------------------------- */ @@ -366,8 +359,6 @@ compute_ecoul(const F_FLOAT& rsq, const int& /*i*/, const int&j, } } - - /* ---------------------------------------------------------------------- allocate all arrays ------------------------------------------------------------------------- */ @@ -403,12 +394,10 @@ void PairLJSPICACoulLongKokkos::settings(int narg, char **arg) PairLJSPICACoulLong::settings(1,arg); } - /* ---------------------------------------------------------------------- init tables ------------------------------------------------------------------------- */ - template void PairLJSPICACoulLongKokkos::init_tables(double cut_coul, double *cut_respa) { @@ -512,8 +501,6 @@ void PairLJSPICACoulLongKokkos::init_tables(double cut_coul, double } } - - /* ---------------------------------------------------------------------- init specific to this pair style ------------------------------------------------------------------------- */ @@ -523,9 +510,6 @@ void PairLJSPICACoulLongKokkos::init_style() { PairLJSPICACoulLong::init_style(); - //Kokkos::deep_copy(d_cut_ljsq,cut_ljsq); - //Kokkos::deep_copy(d_cut_coulsq,cut_coulsq); - // error if rRESPA with inner levels if (update->whichflag == 1 && utils::strmatch(update->integrate_style,"^respa")) { @@ -581,8 +565,6 @@ double PairLJSPICACoulLongKokkos::init_one(int i, int j) return cutone; } - - namespace LAMMPS_NS { template class PairLJSPICACoulLongKokkos; #ifdef LMP_KOKKOS_GPU From 43bace67481b259978929e94ea709fc06898ced7 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 24 Jun 2024 15:16:37 -0600 Subject: [PATCH 028/169] Fix typo --- src/KOKKOS/Install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index 62fa0d1cec..ed1e093642 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -346,8 +346,8 @@ action pair_lj_gromacs_coul_gromacs_kokkos.cpp pair_lj_gromacs_coul_gromacs.cpp action pair_lj_gromacs_coul_gromacs_kokkos.h pair_lj_gromacs_coul_gromacs.h action pair_lj_gromacs_kokkos.cpp pair_lj_gromacs.cpp action pair_lj_gromacs_kokkos.h pair_lj_gromacs.h -action pair_lj_spica_coul_long_kokkos.cpp pair_lj_coul_long_spica.cpp -action pair_lj_spica_coul_long_kokkos.h pair_lj_coul_long_spica.h +action pair_lj_spica_coul_long_kokkos.cpp pair_lj_spica_coul_long.cpp +action pair_lj_spica_coul_long_kokkos.h pair_lj_spica_coul_long.h action pair_lj_spica_kokkos.cpp pair_lj_spica.cpp action pair_lj_spica_kokkos.h pair_lj_spica.h action pair_meam_kokkos.cpp pair_meam.cpp From 5442446460131bfed3b19bf86501f112ddf60db1 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Mon, 24 Jun 2024 17:44:07 -0400 Subject: [PATCH 029/169] remove commented out code --- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 66 ------------------- src/KOKKOS/pair_lj_spica_kokkos.cpp | 28 -------- 2 files changed, 94 deletions(-) diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp index 860055b62b..1f7573836a 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -174,30 +174,6 @@ compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, c const F_FLOAT lj_1 = (STACKPARAMS?m_params[itype][jtype].lj1:params(itype,jtype).lj1); const F_FLOAT lj_2 = (STACKPARAMS?m_params[itype][jtype].lj2:params(itype,jtype).lj2); - /*if (ljt == LJ12_4) { - - const F_FLOAT r4inv=r2inv*r2inv; - return r4inv*(lj_1*r4inv*r4inv - lj_2) * r2inv; - - } else if (ljt == LJ9_6) { - - const F_FLOAT r3inv = r2inv*sqrt(r2inv); - const F_FLOAT r6inv = r3inv*r3inv; - return r6inv*(lj_1*r3inv - lj_2) * r2inv; - - } else if (ljt == LJ12_6) { - - const double r6inv = r2inv*r2inv*r2inv; - return r6inv*(lj_1*r6inv - lj_2) * r2inv; - - } else if (ljt == LJ12_5) { - - const F_FLOAT r5inv = r2inv*r2inv*sqrt(r2inv); - const F_FLOAT r7inv = r5inv*r2inv; - return r5inv*(lj_1*r7inv - lj_2) * r2inv; - - } - if (ljt!=LJ12_4 && ljt!=LJ9_6 && ljt!=LJ12_6 && ljt!=LJ12_5) return 0.0;*/ const F_FLOAT r4inv=r2inv*r2inv; const F_FLOAT r6inv=r2inv*r4inv; const F_FLOAT a = ljt==LJ12_4?r4inv:(ljt==LJ12_5?r4inv*sqrt(r2inv):r6inv); @@ -225,18 +201,14 @@ compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, c if (ljt == LJ12_4) { const F_FLOAT r4inv=r2inv*r2inv; - return r4inv*(lj_3*r4inv*r4inv - lj_4) - offset; - } else if (ljt == LJ9_6) { const F_FLOAT r3inv = r2inv*sqrt(r2inv); const F_FLOAT r6inv = r3inv*r3inv; return r6inv*(lj_3*r3inv - lj_4) - offset; - } else if (ljt == LJ12_6) { const double r6inv = r2inv*r2inv*r2inv; return r6inv*(lj_3*r6inv - lj_4) - offset; - } else if (ljt == LJ12_5) { const F_FLOAT r5inv = r2inv*r2inv*sqrt(r2inv); const F_FLOAT r7inv = r5inv*r2inv; @@ -257,44 +229,6 @@ compute_fcoul(const F_FLOAT& rsq, const int& /*i*/, const int&j, const int& /*itype*/, const int& /*jtype*/, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const { -/* - - r2inv = 1.0 / rsq; - const int ljt = lj_type[itype][jtype]; - - if (rsq < cut_coulsq) { - if (!ncoultablebits || rsq <= tabinnersq) { - r = sqrt(rsq); - grij = g_ewald * r; - expm2 = exp(-grij * grij); - t = 1.0 / (1.0 + EWALD_P * grij); - erfc = t * (A1 + t * (A2 + t * (A3 + t * (A4 + t * A5)))) * expm2; - prefactor = qqrd2e * qtmp * q[j] / r; - forcecoul = prefactor * (erfc + EWALD_F * grij * expm2); - if (EFLAG) ecoul = prefactor * erfc; - if (factor_coul < 1.0) { - forcecoul -= (1.0 - factor_coul) * prefactor; - if (EFLAG) ecoul -= (1.0 - factor_coul) * prefactor; - } - } else { - union_int_float_t rsq_lookup; - rsq_lookup.f = rsq; - itable = rsq_lookup.i & ncoulmask; - itable >>= ncoulshiftbits; - fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable]; - table = ftable[itable] + fraction * dftable[itable]; - forcecoul = qtmp * q[j] * table; - if (EFLAG) ecoul = qtmp * q[j] * (etable[itable] + fraction * detable[itable]); - if (factor_coul < 1.0) { - table = ctable[itable] + fraction * dctable[itable]; - prefactor = qtmp * q[j] * table; - forcecoul -= (1.0 - factor_coul) * prefactor; - if (EFLAG) ecoul -= (1.0 - factor_coul) * prefactor; - } - } - } -*/ - if (Specialisation::DoTable && rsq > tabinnersq) { union_int_float_t rsq_lookup; rsq_lookup.f = rsq; diff --git a/src/KOKKOS/pair_lj_spica_kokkos.cpp b/src/KOKKOS/pair_lj_spica_kokkos.cpp index a6a31b31a2..70376d1f63 100644 --- a/src/KOKKOS/pair_lj_spica_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_kokkos.cpp @@ -147,30 +147,6 @@ compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, c const F_FLOAT lj_1 = (STACKPARAMS?m_params[itype][jtype].lj1:params(itype,jtype).lj1); const F_FLOAT lj_2 = (STACKPARAMS?m_params[itype][jtype].lj2:params(itype,jtype).lj2); - /*if (ljt == LJ12_4) { - - const F_FLOAT r4inv=r2inv*r2inv; - return r4inv*(lj_1*r4inv*r4inv - lj_2) * r2inv; - - } else if (ljt == LJ9_6) { - - const F_FLOAT r3inv = r2inv*sqrt(r2inv); - const F_FLOAT r6inv = r3inv*r3inv; - return r6inv*(lj_1*r3inv - lj_2) * r2inv; - - } else if (ljt == LJ12_6) { - - const double r6inv = r2inv*r2inv*r2inv; - return r6inv*(lj_1*r6inv - lj_2) * r2inv; - - } else if (ljt == LJ12_5) { - - const F_FLOAT r5inv = r2inv*r2inv*sqrt(r2inv); - const F_FLOAT r7inv = r5inv*r2inv; - return r5inv*(lj_1*r7inv - lj_2) * r2inv; - - } - if (ljt!=LJ12_4 && ljt!=LJ9_6 && ljt!=LJ12_6 && ljt!=LJ12_5) return 0.0;*/ const F_FLOAT r4inv=r2inv*r2inv; const F_FLOAT r6inv=r2inv*r4inv; const F_FLOAT a = ljt==LJ12_4?r4inv:(ljt==LJ12_5?r4inv*sqrt(r2inv):r6inv); @@ -194,18 +170,14 @@ compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, c if (ljt == LJ12_4) { const F_FLOAT r4inv=r2inv*r2inv; - return r4inv*(lj_3*r4inv*r4inv - lj_4) - offset; - } else if (ljt == LJ9_6) { const F_FLOAT r3inv = r2inv*sqrt(r2inv); const F_FLOAT r6inv = r3inv*r3inv; return r6inv*(lj_3*r3inv - lj_4) - offset; - } else if (ljt == LJ12_6) { const double r6inv = r2inv*r2inv*r2inv; return r6inv*(lj_3*r6inv - lj_4) - offset; - } else if (ljt == LJ12_5) { const F_FLOAT r5inv = r2inv*r2inv*sqrt(r2inv); const F_FLOAT r7inv = r5inv*r2inv; From bf4aab68d353cd7bd54c0baa8f900aa87b584ad6 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Mon, 24 Jun 2024 17:45:53 -0400 Subject: [PATCH 030/169] update sdk -> spica --- examples/PACKAGES/cgspica/sds-monolayer/in.sds-regular | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/PACKAGES/cgspica/sds-monolayer/in.sds-regular b/examples/PACKAGES/cgspica/sds-monolayer/in.sds-regular index e64882aaa0..2f80847fe0 100644 --- a/examples/PACKAGES/cgspica/sds-monolayer/in.sds-regular +++ b/examples/PACKAGES/cgspica/sds-monolayer/in.sds-regular @@ -5,9 +5,9 @@ dimension 3 atom_style full processors * * 1 -pair_style lj/sdk/coul/long 15.0 # compatible with "lj/spica/coul/long" +pair_style lj/spica/coul/long 15.0 bond_style harmonic -angle_style sdk # compatible with "spica" +angle_style spica special_bonds lj/coul 0.0 0.0 1.0 read_data data.sds.gz From 0de8192a9b92c52908d6022db07b42a8b2946cab Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Thu, 27 Jun 2024 22:31:59 -0600 Subject: [PATCH 031/169] add kokkosable variable --- src/angle.cpp | 2 +- src/angle.h | 2 +- src/dihedral.cpp | 2 +- src/dihedral.h | 2 +- src/improper.cpp | 2 +- src/improper.h | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/angle.cpp b/src/angle.cpp index 79893cc52f..ccb53dc84f 100644 --- a/src/angle.cpp +++ b/src/angle.cpp @@ -50,7 +50,7 @@ Angle::Angle(LAMMPS *_lmp) : Pointers(_lmp) datamask_read = ALL_MASK; datamask_modify = ALL_MASK; - copymode = 0; + copymode = kokkosable = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/angle.h b/src/angle.h index 542bad4911..759f1a1aa9 100644 --- a/src/angle.h +++ b/src/angle.h @@ -44,7 +44,7 @@ class Angle : protected Pointers { ExecutionSpace execution_space; unsigned int datamask_read, datamask_modify; - int copymode; + int copymode, kokkosable; Angle(class LAMMPS *); ~Angle() override; diff --git a/src/dihedral.cpp b/src/dihedral.cpp index 3e995fc405..2f591b1fc1 100644 --- a/src/dihedral.cpp +++ b/src/dihedral.cpp @@ -48,7 +48,7 @@ Dihedral::Dihedral(LAMMPS *_lmp) : Pointers(_lmp) datamask_read = ALL_MASK; datamask_modify = ALL_MASK; - copymode = 0; + copymode = kokkosable = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/dihedral.h b/src/dihedral.h index cf3d3f7d9a..34210929cd 100644 --- a/src/dihedral.h +++ b/src/dihedral.h @@ -41,7 +41,7 @@ class Dihedral : protected Pointers { ExecutionSpace execution_space; unsigned int datamask_read, datamask_modify; - int copymode; + int copymode, kokkosable; Dihedral(class LAMMPS *); ~Dihedral() override; diff --git a/src/improper.cpp b/src/improper.cpp index dd4b1b2b25..3476bcdb50 100644 --- a/src/improper.cpp +++ b/src/improper.cpp @@ -47,7 +47,7 @@ Improper::Improper(LAMMPS *_lmp) : Pointers(_lmp) datamask_read = ALL_MASK; datamask_modify = ALL_MASK; - copymode = 0; + copymode = kokkosable = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/improper.h b/src/improper.h index 22a5d09926..400e950967 100644 --- a/src/improper.h +++ b/src/improper.h @@ -46,7 +46,7 @@ class Improper : protected Pointers { ExecutionSpace execution_space; unsigned int datamask_read, datamask_modify; - int copymode; + int copymode, kokkosable; Improper(class LAMMPS *); ~Improper() override; From 9fef3b68e02c86ecf6a489d9fef19155e2be05ae Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Thu, 27 Jun 2024 22:36:15 -0600 Subject: [PATCH 032/169] update deallocate, suffix flags --- src/angle_hybrid.cpp | 37 +++++++++++++++++++------------------ src/angle_hybrid.h | 6 +++--- src/dihedral_hybrid.cpp | 35 +++++++++++++++++------------------ src/dihedral_hybrid.h | 5 +++-- src/improper_hybrid.cpp | 37 +++++++++++++++++++------------------ src/improper_hybrid.h | 5 +++-- 6 files changed, 64 insertions(+), 61 deletions(-) diff --git a/src/angle_hybrid.cpp b/src/angle_hybrid.cpp index 0c61970a1f..a015882a15 100644 --- a/src/angle_hybrid.cpp +++ b/src/angle_hybrid.cpp @@ -48,14 +48,7 @@ AngleHybrid::~AngleHybrid() delete[] keywords; } - if (allocated) { - memory->destroy(setflag); - memory->destroy(map); - delete[] nanglelist; - delete[] maxangle; - for (int i = 0; i < nstyles; i++) memory->destroy(anglelist[i]); - delete[] anglelist; - } + deallocate(); } /* ---------------------------------------------------------------------- */ @@ -171,6 +164,22 @@ void AngleHybrid::allocate() for (int m = 0; m < nstyles; m++) anglelist[m] = nullptr; } +/* ---------------------------------------------------------------------- */ + +void AngleHybrid::deallocate() +{ + if (!allocated) return; + + allocated = 0; + + memory->destroy(setflag); + memory->destroy(map); + delete[] nanglelist; + delete[] maxangle; + for (int i = 0; i < nstyles; i++) memory->destroy(anglelist[i]); + delete[] anglelist; +} + /* ---------------------------------------------------------------------- create one angle style for each arg in list ------------------------------------------------------------------------- */ @@ -190,15 +199,7 @@ void AngleHybrid::settings(int narg, char **arg) delete[] keywords; } - if (allocated) { - memory->destroy(setflag); - memory->destroy(map); - delete[] nanglelist; - delete[] maxangle; - for (i = 0; i < nstyles; i++) memory->destroy(anglelist[i]); - delete[] anglelist; - } - allocated = 0; + deallocate(); // allocate list of sub-styles @@ -367,7 +368,7 @@ void AngleHybrid::read_restart(FILE *fp) keywords[m] = new char[n]; if (me == 0) utils::sfread(FLERR, keywords[m], sizeof(char), n, fp, nullptr, error); MPI_Bcast(keywords[m], n, MPI_CHAR, 0, world); - styles[m] = force->new_angle(keywords[m], 0, dummy); + styles[m] = force->new_angle(keywords[m], 1, dummy); styles[m]->read_restart_settings(fp); } } diff --git a/src/angle_hybrid.h b/src/angle_hybrid.h index 474ce89673..a6da29245e 100644 --- a/src/angle_hybrid.h +++ b/src/angle_hybrid.h @@ -42,14 +42,14 @@ class AngleHybrid : public Angle { double single(int, int, int, int) override; double memory_usage() override; - private: + protected: int *map; // which style each angle type points to - int *nanglelist; // # of angles in sub-style anglelists int *maxangle; // max # of angles sub-style lists can store int ***anglelist; // anglelist for each sub-style - void allocate(); + virtual void allocate(); + virtual void deallocate(); }; } // namespace LAMMPS_NS diff --git a/src/dihedral_hybrid.cpp b/src/dihedral_hybrid.cpp index 4ee0ffdad9..3671391f5d 100644 --- a/src/dihedral_hybrid.cpp +++ b/src/dihedral_hybrid.cpp @@ -48,14 +48,7 @@ DihedralHybrid::~DihedralHybrid() delete[] keywords; } - if (allocated) { - memory->destroy(setflag); - memory->destroy(map); - delete[] ndihedrallist; - delete[] maxdihedral; - for (int i = 0; i < nstyles; i++) memory->destroy(dihedrallist[i]); - delete[] dihedrallist; - } + deallocate(); } /* ---------------------------------------------------------------------- */ @@ -172,6 +165,20 @@ void DihedralHybrid::allocate() for (int m = 0; m < nstyles; m++) dihedrallist[m] = nullptr; } +void DihedralHybrid::deallocate() +{ + if (!allocated) return; + + allocated = 0; + + memory->destroy(setflag); + memory->destroy(map); + delete[] ndihedrallist; + delete[] maxdihedral; + for (int i = 0; i < nstyles; i++) memory->destroy(dihedrallist[i]); + delete[] dihedrallist; +} + /* ---------------------------------------------------------------------- create one dihedral style for each arg in list ------------------------------------------------------------------------- */ @@ -191,15 +198,7 @@ void DihedralHybrid::settings(int narg, char **arg) delete[] keywords; } - if (allocated) { - memory->destroy(setflag); - memory->destroy(map); - delete[] ndihedrallist; - delete[] maxdihedral; - for (i = 0; i < nstyles; i++) memory->destroy(dihedrallist[i]); - delete[] dihedrallist; - } - allocated = 0; + deallocate(); // allocate list of sub-styles @@ -365,7 +364,7 @@ void DihedralHybrid::read_restart(FILE *fp) keywords[m] = new char[n]; if (me == 0) utils::sfread(FLERR, keywords[m], sizeof(char), n, fp, nullptr, error); MPI_Bcast(keywords[m], n, MPI_CHAR, 0, world); - styles[m] = force->new_dihedral(keywords[m], 0, dummy); + styles[m] = force->new_dihedral(keywords[m], 1, dummy); styles[m]->read_restart_settings(fp); } } diff --git a/src/dihedral_hybrid.h b/src/dihedral_hybrid.h index b7d4013afe..debc8a9d8d 100644 --- a/src/dihedral_hybrid.h +++ b/src/dihedral_hybrid.h @@ -40,14 +40,15 @@ class DihedralHybrid : public Dihedral { void read_restart(FILE *) override; double memory_usage() override; - private: + protected: int *map; // which style each dihedral type points to int *ndihedrallist; // # of dihedrals in sub-style dihedrallists int *maxdihedral; // max # of dihedrals sub-style lists can store int ***dihedrallist; // dihedrallist for each sub-style - void allocate(); + virtual void allocate(); + virtual void deallocate(); }; } // namespace LAMMPS_NS diff --git a/src/improper_hybrid.cpp b/src/improper_hybrid.cpp index a847b7bc95..5337f062b4 100644 --- a/src/improper_hybrid.cpp +++ b/src/improper_hybrid.cpp @@ -48,14 +48,7 @@ ImproperHybrid::~ImproperHybrid() delete[] keywords; } - if (allocated) { - memory->destroy(setflag); - memory->destroy(map); - delete[] nimproperlist; - delete[] maximproper; - for (int i = 0; i < nstyles; i++) memory->destroy(improperlist[i]); - delete[] improperlist; - } + deallocate(); } /* ---------------------------------------------------------------------- */ @@ -172,6 +165,22 @@ void ImproperHybrid::allocate() for (int m = 0; m < nstyles; m++) improperlist[m] = nullptr; } +/* ---------------------------------------------------------------------- */ + +void ImproperHybrid::deallocate() +{ + if (!allocated) return; + + allocated = 0; + + memory->destroy(setflag); + memory->destroy(map); + delete[] nimproperlist; + delete[] maximproper; + for (int i = 0; i < nstyles; i++) memory->destroy(improperlist[i]); + delete[] improperlist; +} + /* ---------------------------------------------------------------------- create one improper style for each arg in list ------------------------------------------------------------------------- */ @@ -191,15 +200,7 @@ void ImproperHybrid::settings(int narg, char **arg) delete[] keywords; } - if (allocated) { - memory->destroy(setflag); - memory->destroy(map); - delete[] nimproperlist; - delete[] maximproper; - for (i = 0; i < nstyles; i++) memory->destroy(improperlist[i]); - delete[] improperlist; - } - allocated = 0; + deallocate(); // allocate list of sub-styles @@ -357,7 +358,7 @@ void ImproperHybrid::read_restart(FILE *fp) keywords[m] = new char[n]; if (me == 0) utils::sfread(FLERR, keywords[m], sizeof(char), n, fp, nullptr, error); MPI_Bcast(keywords[m], n, MPI_CHAR, 0, world); - styles[m] = force->new_improper(keywords[m], 0, dummy); + styles[m] = force->new_improper(keywords[m], 1, dummy); styles[m]->read_restart_settings(fp); } } diff --git a/src/improper_hybrid.h b/src/improper_hybrid.h index e7cb8383d4..89a4664da2 100644 --- a/src/improper_hybrid.h +++ b/src/improper_hybrid.h @@ -40,14 +40,15 @@ class ImproperHybrid : public Improper { void read_restart(FILE *) override; double memory_usage() override; - private: + protected: int *map; // which style each improper type points to int *nimproperlist; // # of impropers in sub-style improperlists int *maximproper; // max # of impropers sub-style lists can store int ***improperlist; // improperlist for each sub-style - void allocate(); + virtual void allocate(); + virtual void deallocate(); }; } // namespace LAMMPS_NS From 4fd14f4e1c151687993de7fa6976363c88d931d3 Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Thu, 27 Jun 2024 22:44:25 -0600 Subject: [PATCH 033/169] update install actions --- src/KOKKOS/Install.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index aa920981e2..35a578867b 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -53,6 +53,8 @@ action angle_cosine_kokkos.cpp angle_cosine.cpp action angle_cosine_kokkos.h angle_cosine.h action angle_harmonic_kokkos.cpp angle_harmonic.cpp action angle_harmonic_kokkos.h angle_harmonic.h +action angle_hybrid_kokkos.cpp angle_hybrid.cpp +action angle_hybrid_kokkos.h angle_hybrid.h action atom_kokkos.cpp action atom_kokkos.h action atom_map_kokkos.cpp @@ -116,6 +118,8 @@ action dihedral_harmonic_kokkos.cpp dihedral_harmonic.cpp action dihedral_harmonic_kokkos.h dihedral_harmonic.h action dihedral_opls_kokkos.cpp dihedral_opls.cpp action dihedral_opls_kokkos.h dihedral_opls.h +action dihedral_hybrid_kokkos.cpp dihedral_hybrid.cpp +action dihedral_hybrid_kokkos.h dihedral_hybrid.h action domain_kokkos.cpp action domain_kokkos.h action dynamical_matrix_kokkos.cpp dynamical_matrix.cpp @@ -205,6 +209,8 @@ action improper_class2_kokkos.cpp improper_class2.cpp action improper_class2_kokkos.h improper_class2.h action improper_harmonic_kokkos.cpp improper_harmonic.cpp action improper_harmonic_kokkos.h improper_harmonic.h +action improper_hybrid_kokkos.cpp improper_hybrid.cpp +action improper_hybrid_kokkos.h improper_hybrid.h action kissfft_kokkos.h kissfft.h action kokkos_base_fft.h fft3d.h action kokkos_base.h From 62d564f81a3afdf9ac144f9d8069fbd95c5d06d7 Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Thu, 27 Jun 2024 22:49:03 -0600 Subject: [PATCH 034/169] add hybrid kk for angle, dihedral, improper styles --- src/KOKKOS/angle_hybrid_kokkos.cpp | 215 ++++++++++++++++++++++++++ src/KOKKOS/angle_hybrid_kokkos.h | 58 +++++++ src/KOKKOS/dihedral_hybrid_kokkos.cpp | 215 ++++++++++++++++++++++++++ src/KOKKOS/dihedral_hybrid_kokkos.h | 58 +++++++ src/KOKKOS/improper_hybrid_kokkos.cpp | 215 ++++++++++++++++++++++++++ src/KOKKOS/improper_hybrid_kokkos.h | 58 +++++++ 6 files changed, 819 insertions(+) create mode 100644 src/KOKKOS/angle_hybrid_kokkos.cpp create mode 100644 src/KOKKOS/angle_hybrid_kokkos.h create mode 100644 src/KOKKOS/dihedral_hybrid_kokkos.cpp create mode 100644 src/KOKKOS/dihedral_hybrid_kokkos.h create mode 100644 src/KOKKOS/improper_hybrid_kokkos.cpp create mode 100644 src/KOKKOS/improper_hybrid_kokkos.h diff --git a/src/KOKKOS/angle_hybrid_kokkos.cpp b/src/KOKKOS/angle_hybrid_kokkos.cpp new file mode 100644 index 0000000000..a3ec21a5c5 --- /dev/null +++ b/src/KOKKOS/angle_hybrid_kokkos.cpp @@ -0,0 +1,215 @@ +/* ---------------------------------------------------------------------- + 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 "angle_hybrid_kokkos.h" + +#include "atom_kokkos.h" +#include "atom_masks.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "kokkos.h" +#include "memory_kokkos.h" +#include "neighbor_kokkos.h" + +#include + +using namespace LAMMPS_NS; + +#define EXTRA 1000 + +/* ---------------------------------------------------------------------- */ + +AngleHybridKokkos::AngleHybridKokkos(LAMMPS *lmp) : AngleHybrid(lmp) +{ + kokkosable = 1; + + atomKK = (AtomKokkos *) atom; + neighborKK = (NeighborKokkos *) neighbor; + + execution_space = Device; + + datamask_read = EMPTY_MASK; + datamask_modify = EMPTY_MASK; +} + +/* ---------------------------------------------------------------------- */ + +AngleHybridKokkos::~AngleHybridKokkos() +{ + deallocate(); +} + +/* ---------------------------------------------------------------------- */ + +void AngleHybridKokkos::compute(int eflag, int vflag) +{ + // save ptrs to original anglelist + + int nanglelist_orig = neighbor->nanglelist; + neighborKK->k_anglelist.sync_device(); + auto k_anglelist_orig = neighborKK->k_anglelist; + auto d_anglelist_orig = k_anglelist_orig.d_view; + auto d_nanglelist = k_nanglelist.d_view; + auto h_nanglelist = k_nanglelist.h_view; + + // if this is re-neighbor step, create sub-style anglelists + // nanglelist[] = length of each sub-style list + // realloc sub-style anglelist if necessary + // load sub-style anglelist with 3 values from original anglelist + + if (neighbor->ago == 0) { + Kokkos::deep_copy(d_nanglelist,0); + + k_map.sync_device(); + auto d_map = k_map.d_view; + + Kokkos::parallel_for(nanglelist_orig,LAMMPS_LAMBDA(int i) { + const int m = d_map[d_anglelist_orig(i,2)]; + if (m >= 0) Kokkos::atomic_increment(&d_nanglelist[m]); + }); + + k_nanglelist.modify_device(); + k_nanglelist.sync_host(); + + maxangle_all = 0; + for (int m = 0; m < nstyles; m++) + if (h_nanglelist[m] > maxangle_all) + maxangle_all = h_nanglelist[m] + EXTRA; + + if (k_anglelist.d_view.extent(1) < maxangle_all) + MemKK::realloc_kokkos(k_anglelist, "angle_hybrid:anglelist", nstyles, maxangle_all, 3); + auto d_anglelist = k_anglelist.d_view; + + Kokkos::deep_copy(d_nanglelist,0); + + Kokkos::parallel_for(nanglelist_orig,LAMMPS_LAMBDA(int i) { + const int m = d_map[d_anglelist_orig(i,2)]; + if (m < 0) return; + const int n = Kokkos::atomic_fetch_add(&d_nanglelist[m],1); + d_anglelist(m,n,0) = d_anglelist_orig(i,0); + d_anglelist(m,n,1) = d_anglelist_orig(i,1); + d_anglelist(m,n,2) = d_anglelist_orig(i,2); + }); + } + + // call each sub-style's compute function + // set neighbor->anglelist to sub-style anglelist before call + // accumulate sub-style global/peratom energy/virial in hybrid + + ev_init(eflag, vflag); + + k_nanglelist.modify_device(); + k_nanglelist.sync_host(); + + for (int m = 0; m < nstyles; m++) { + neighbor->nanglelist = h_nanglelist[m]; + auto k_anglelist_m = Kokkos::subview(k_anglelist,m,Kokkos::ALL,Kokkos::ALL); + k_anglelist_m.modify_device(); + neighborKK->k_anglelist = k_anglelist_m; + + auto style = styles[m]; + atomKK->sync(style->execution_space,style->datamask_read); + style->compute(eflag, vflag); + atomKK->modified(style->execution_space,style->datamask_modify); + + if (eflag_global) energy += style->energy; + if (vflag_global) + for (int n = 0; n < 6; n++) virial[n] += style->virial[n]; + + if (eflag_atom) { + int n = atom->nlocal; + if (force->newton_bond) n += atom->nghost; + double *eatom_substyle = styles[m]->eatom; + for (int i = 0; i < n; i++) eatom[i] += eatom_substyle[i]; + } + if (vflag_atom) { + int n = atom->nlocal; + if (force->newton_bond) n += atom->nghost; + double **vatom_substyle = styles[m]->vatom; + for (int i = 0; i < n; i++) + for (int j = 0; j < 6; j++) vatom[i][j] += vatom_substyle[i][j]; + } + } + + // restore ptrs to original anglelist + + neighbor->nanglelist = nanglelist_orig; + neighborKK->k_anglelist = k_anglelist_orig; +} + +/* ---------------------------------------------------------------------- */ + +void AngleHybridKokkos::allocate() +{ + allocated = 1; + int n = atom->nangletypes; + + memoryKK->create_kokkos(k_map, map, n + 1, "angle:map"); + memory->create(setflag, n + 1, "angle:setflag"); + for (int i = 1; i <= n; i++) setflag[i] = 0; + + k_nanglelist = DAT::tdual_int_1d("angle:nanglelist", nstyles); +} + +/* ---------------------------------------------------------------------- */ + +void AngleHybridKokkos::deallocate() +{ + if (!allocated) return; + + allocated = 0; + + memory->destroy(setflag); + memoryKK->destroy_kokkos(k_map,map); +} + +/* ---------------------------------------------------------------------- + set coeffs for one type +---------------------------------------------------------------------- */ + +void AngleHybridKokkos::coeff(int narg, char **arg) +{ + AngleHybrid::coeff(narg,arg); + + k_map.modify_host(); +} + +/* ---------------------------------------------------------------------- */ + +void AngleHybridKokkos::init_style() +{ + AngleHybrid::init_style(); + + for (int m = 0; m < nstyles; m++) { + if (!styles[m]->kokkosable) + error->all(FLERR,"Must use only Kokkos-enabled angle styles with angle_style hybrid/kk"); + + if (styles[m]->execution_space == Host) + lmp->kokkos->allow_overlap = 0; + } +} + +/* ---------------------------------------------------------------------- + memory usage +------------------------------------------------------------------------- */ + +double AngleHybridKokkos::memory_usage() +{ + double bytes = (double) maxeatom * sizeof(double); + bytes += (double) maxvatom * 6 * sizeof(double); + for (int m = 0; m < nstyles; m++) bytes += (double) maxangle_all * 3 * sizeof(int); + for (int m = 0; m < nstyles; m++) + if (styles[m]) bytes += styles[m]->memory_usage(); + return bytes; +} diff --git a/src/KOKKOS/angle_hybrid_kokkos.h b/src/KOKKOS/angle_hybrid_kokkos.h new file mode 100644 index 0000000000..09b51958eb --- /dev/null +++ b/src/KOKKOS/angle_hybrid_kokkos.h @@ -0,0 +1,58 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +#ifdef ANGLE_CLASS +// clang-format off +AngleStyle(hybrid/kk,AngleHybridKokkos); +AngleStyle(hybrid/kk/device,AngleHybridKokkos); +AngleStyle(hybrid/kk/host,AngleHybridKokkos); +// clang-format on +#else + +// clang-format off +#ifndef LMP_ANGLE_HYBRID_KOKKOS_H +#define LMP_ANGLE_HYBRID_KOKKOS_H + +#include "angle_hybrid.h" +#include "kokkos_type.h" + +namespace LAMMPS_NS { + +class AngleHybridKokkos : public AngleHybrid { + friend class Force; + + public: + AngleHybridKokkos(class LAMMPS *); + ~AngleHybridKokkos() override; + void compute(int, int) override; + void coeff(int, char **) override; + void init_style() override; + double memory_usage() override; + + private: + int maxangle_all; + + class NeighborKokkos *neighborKK; + + DAT::tdual_int_1d k_map; // which style each angle type points to + DAT::tdual_int_1d k_nanglelist; // # of angles in sub-style anglelists + DAT::tdual_int_3d k_anglelist; // anglelist for each sub-style + + void allocate() override; + void deallocate() override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.cpp b/src/KOKKOS/dihedral_hybrid_kokkos.cpp new file mode 100644 index 0000000000..4adbb7f18b --- /dev/null +++ b/src/KOKKOS/dihedral_hybrid_kokkos.cpp @@ -0,0 +1,215 @@ +/* ---------------------------------------------------------------------- + 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 "bond_hybrid_kokkos.h" + +#include "atom_kokkos.h" +#include "atom_masks.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "kokkos.h" +#include "memory_kokkos.h" +#include "neighbor_kokkos.h" + +#include + +using namespace LAMMPS_NS; + +#define EXTRA 1000 + +/* ---------------------------------------------------------------------- */ + +DihedralHybridKokkos::DihedralHybridKokkos(LAMMPS *lmp) : DihedralHybrid(lmp) +{ + kokkosable = 1; + + atomKK = (AtomKokkos *) atom; + neighborKK = (NeighborKokkos *) neighbor; + + execution_space = Device; + + datamask_read = EMPTY_MASK; + datamask_modify = EMPTY_MASK; +} + +/* ---------------------------------------------------------------------- */ + +DihedralHybridKokkos::~DihedralHybridKokkos() +{ + deallocate(); +} + +/* ---------------------------------------------------------------------- */ + +void DihedralHybridKokkos::compute(int eflag, int vflag) +{ + // save ptrs to original bondlist + + int nbondlist_orig = neighbor->nbondlist; + neighborKK->k_bondlist.sync_device(); + auto k_bondlist_orig = neighborKK->k_bondlist; + auto d_bondlist_orig = k_bondlist_orig.d_view; + auto d_nbondlist = k_nbondlist.d_view; + auto h_nbondlist = k_nbondlist.h_view; + + // if this is re-neighbor step, create sub-style bondlists + // nbondlist[] = length of each sub-style list + // realloc sub-style bondlist if necessary + // load sub-style bondlist with 3 values from original bondlist + + if (neighbor->ago == 0) { + Kokkos::deep_copy(d_nbondlist,0); + + k_map.sync_device(); + auto d_map = k_map.d_view; + + Kokkos::parallel_for(nbondlist_orig,LAMMPS_LAMBDA(int i) { + const int m = d_map[d_bondlist_orig(i,2)]; + if (m >= 0) Kokkos::atomic_increment(&d_nbondlist[m]); + }); + + k_nbondlist.modify_device(); + k_nbondlist.sync_host(); + + maxbond_all = 0; + for (int m = 0; m < nstyles; m++) + if (h_nbondlist[m] > maxbond_all) + maxbond_all = h_nbondlist[m] + EXTRA; + + if (k_bondlist.d_view.extent(1) < maxbond_all) + MemKK::realloc_kokkos(k_bondlist, "bond_hybrid:bondlist", nstyles, maxbond_all, 3); + auto d_bondlist = k_bondlist.d_view; + + Kokkos::deep_copy(d_nbondlist,0); + + Kokkos::parallel_for(nbondlist_orig,LAMMPS_LAMBDA(int i) { + const int m = d_map[d_bondlist_orig(i,2)]; + if (m < 0) return; + const int n = Kokkos::atomic_fetch_add(&d_nbondlist[m],1); + d_bondlist(m,n,0) = d_bondlist_orig(i,0); + d_bondlist(m,n,1) = d_bondlist_orig(i,1); + d_bondlist(m,n,2) = d_bondlist_orig(i,2); + }); + } + + // call each sub-style's compute function + // set neighbor->bondlist to sub-style bondlist before call + // accumulate sub-style global/peratom energy/virial in hybrid + + ev_init(eflag, vflag); + + k_nbondlist.modify_device(); + k_nbondlist.sync_host(); + + for (int m = 0; m < nstyles; m++) { + neighbor->nbondlist = h_nbondlist[m]; + auto k_bondlist_m = Kokkos::subview(k_bondlist,m,Kokkos::ALL,Kokkos::ALL); + k_bondlist_m.modify_device(); + neighborKK->k_bondlist = k_bondlist_m; + + auto style = styles[m]; + atomKK->sync(style->execution_space,style->datamask_read); + style->compute(eflag, vflag); + atomKK->modified(style->execution_space,style->datamask_modify); + + if (eflag_global) energy += style->energy; + if (vflag_global) + for (int n = 0; n < 6; n++) virial[n] += style->virial[n]; + + if (eflag_atom) { + int n = atom->nlocal; + if (force->newton_bond) n += atom->nghost; + double *eatom_substyle = styles[m]->eatom; + for (int i = 0; i < n; i++) eatom[i] += eatom_substyle[i]; + } + if (vflag_atom) { + int n = atom->nlocal; + if (force->newton_bond) n += atom->nghost; + double **vatom_substyle = styles[m]->vatom; + for (int i = 0; i < n; i++) + for (int j = 0; j < 6; j++) vatom[i][j] += vatom_substyle[i][j]; + } + } + + // restore ptrs to original bondlist + + neighbor->nbondlist = nbondlist_orig; + neighborKK->k_bondlist = k_bondlist_orig; +} + +/* ---------------------------------------------------------------------- */ + +void DihedralHybridKokkos::allocate() +{ + allocated = 1; + int n = atom->nbondtypes; + + memoryKK->create_kokkos(k_map, map, n + 1, "bond:map"); + memory->create(setflag, n + 1, "bond:setflag"); + for (int i = 1; i <= n; i++) setflag[i] = 0; + + k_nbondlist = DAT::tdual_int_1d("bond:nbondlist", nstyles); +} + +/* ---------------------------------------------------------------------- */ + +void DihedralHybridKokkos::deallocate() +{ + if (!allocated) return; + + allocated = 0; + + memory->destroy(setflag); + memoryKK->destroy_kokkos(k_map,map); +} + +/* ---------------------------------------------------------------------- + set coeffs for one type +---------------------------------------------------------------------- */ + +void DihedralHybridKokkos::coeff(int narg, char **arg) +{ + DihedralHybrid::coeff(narg,arg); + + k_map.modify_host(); +} + +/* ---------------------------------------------------------------------- */ + +void DihedralHybridKokkos::init_style() +{ + DihedralHybrid::init_style(); + + for (int m = 0; m < nstyles; m++) { + if (!styles[m]->kokkosable) + error->all(FLERR,"Must use only Kokkos-enabled bond styles with bond_style hybrid/kk"); + + if (styles[m]->execution_space == Host) + lmp->kokkos->allow_overlap = 0; + } +} + +/* ---------------------------------------------------------------------- + memory usage +------------------------------------------------------------------------- */ + +double DihedralHybridKokkos::memory_usage() +{ + double bytes = (double) maxeatom * sizeof(double); + bytes += (double) maxvatom * 6 * sizeof(double); + for (int m = 0; m < nstyles; m++) bytes += (double) maxbond_all * 3 * sizeof(int); + for (int m = 0; m < nstyles; m++) + if (styles[m]) bytes += styles[m]->memory_usage(); + return bytes; +} diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.h b/src/KOKKOS/dihedral_hybrid_kokkos.h new file mode 100644 index 0000000000..8b090d46c2 --- /dev/null +++ b/src/KOKKOS/dihedral_hybrid_kokkos.h @@ -0,0 +1,58 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +#ifdef BOND_CLASS +// clang-format off +DihedralStyle(hybrid/kk,DihedralHybridKokkos); +DihedralStyle(hybrid/kk/device,DihedralHybridKokkos); +DihedralStyle(hybrid/kk/host,DihedralHybridKokkos); +// clang-format on +#else + +// clang-format off +#ifndef LMP_BOND_HYBRID_KOKKOS_H +#define LMP_BOND_HYBRID_KOKKOS_H + +#include "bond_hybrid.h" +#include "kokkos_type.h" + +namespace LAMMPS_NS { + +class DihedralHybridKokkos : public DihedralHybrid { + friend class Force; + + public: + DihedralHybridKokkos(class LAMMPS *); + ~DihedralHybridKokkos() override; + void compute(int, int) override; + void coeff(int, char **) override; + void init_style() override; + double memory_usage() override; + + private: + int maxbond_all; + + class NeighborKokkos *neighborKK; + + DAT::tdual_int_1d k_map; // which style each bond type points to + DAT::tdual_int_1d k_nbondlist; // # of bonds in sub-style bondlists + DAT::tdual_int_3d k_bondlist; // bondlist for each sub-style + + void allocate() override; + void deallocate() override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/KOKKOS/improper_hybrid_kokkos.cpp b/src/KOKKOS/improper_hybrid_kokkos.cpp new file mode 100644 index 0000000000..d63ebccac6 --- /dev/null +++ b/src/KOKKOS/improper_hybrid_kokkos.cpp @@ -0,0 +1,215 @@ +/* ---------------------------------------------------------------------- + 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 "bond_hybrid_kokkos.h" + +#include "atom_kokkos.h" +#include "atom_masks.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "kokkos.h" +#include "memory_kokkos.h" +#include "neighbor_kokkos.h" + +#include + +using namespace LAMMPS_NS; + +#define EXTRA 1000 + +/* ---------------------------------------------------------------------- */ + +BondHybridKokkos::BondHybridKokkos(LAMMPS *lmp) : BondHybrid(lmp) +{ + kokkosable = 1; + + atomKK = (AtomKokkos *) atom; + neighborKK = (NeighborKokkos *) neighbor; + + execution_space = Device; + + datamask_read = EMPTY_MASK; + datamask_modify = EMPTY_MASK; +} + +/* ---------------------------------------------------------------------- */ + +BondHybridKokkos::~BondHybridKokkos() +{ + deallocate(); +} + +/* ---------------------------------------------------------------------- */ + +void BondHybridKokkos::compute(int eflag, int vflag) +{ + // save ptrs to original bondlist + + int nbondlist_orig = neighbor->nbondlist; + neighborKK->k_bondlist.sync_device(); + auto k_bondlist_orig = neighborKK->k_bondlist; + auto d_bondlist_orig = k_bondlist_orig.d_view; + auto d_nbondlist = k_nbondlist.d_view; + auto h_nbondlist = k_nbondlist.h_view; + + // if this is re-neighbor step, create sub-style bondlists + // nbondlist[] = length of each sub-style list + // realloc sub-style bondlist if necessary + // load sub-style bondlist with 3 values from original bondlist + + if (neighbor->ago == 0) { + Kokkos::deep_copy(d_nbondlist,0); + + k_map.sync_device(); + auto d_map = k_map.d_view; + + Kokkos::parallel_for(nbondlist_orig,LAMMPS_LAMBDA(int i) { + const int m = d_map[d_bondlist_orig(i,2)]; + if (m >= 0) Kokkos::atomic_increment(&d_nbondlist[m]); + }); + + k_nbondlist.modify_device(); + k_nbondlist.sync_host(); + + maxbond_all = 0; + for (int m = 0; m < nstyles; m++) + if (h_nbondlist[m] > maxbond_all) + maxbond_all = h_nbondlist[m] + EXTRA; + + if (k_bondlist.d_view.extent(1) < maxbond_all) + MemKK::realloc_kokkos(k_bondlist, "bond_hybrid:bondlist", nstyles, maxbond_all, 3); + auto d_bondlist = k_bondlist.d_view; + + Kokkos::deep_copy(d_nbondlist,0); + + Kokkos::parallel_for(nbondlist_orig,LAMMPS_LAMBDA(int i) { + const int m = d_map[d_bondlist_orig(i,2)]; + if (m < 0) return; + const int n = Kokkos::atomic_fetch_add(&d_nbondlist[m],1); + d_bondlist(m,n,0) = d_bondlist_orig(i,0); + d_bondlist(m,n,1) = d_bondlist_orig(i,1); + d_bondlist(m,n,2) = d_bondlist_orig(i,2); + }); + } + + // call each sub-style's compute function + // set neighbor->bondlist to sub-style bondlist before call + // accumulate sub-style global/peratom energy/virial in hybrid + + ev_init(eflag, vflag); + + k_nbondlist.modify_device(); + k_nbondlist.sync_host(); + + for (int m = 0; m < nstyles; m++) { + neighbor->nbondlist = h_nbondlist[m]; + auto k_bondlist_m = Kokkos::subview(k_bondlist,m,Kokkos::ALL,Kokkos::ALL); + k_bondlist_m.modify_device(); + neighborKK->k_bondlist = k_bondlist_m; + + auto style = styles[m]; + atomKK->sync(style->execution_space,style->datamask_read); + style->compute(eflag, vflag); + atomKK->modified(style->execution_space,style->datamask_modify); + + if (eflag_global) energy += style->energy; + if (vflag_global) + for (int n = 0; n < 6; n++) virial[n] += style->virial[n]; + + if (eflag_atom) { + int n = atom->nlocal; + if (force->newton_bond) n += atom->nghost; + double *eatom_substyle = styles[m]->eatom; + for (int i = 0; i < n; i++) eatom[i] += eatom_substyle[i]; + } + if (vflag_atom) { + int n = atom->nlocal; + if (force->newton_bond) n += atom->nghost; + double **vatom_substyle = styles[m]->vatom; + for (int i = 0; i < n; i++) + for (int j = 0; j < 6; j++) vatom[i][j] += vatom_substyle[i][j]; + } + } + + // restore ptrs to original bondlist + + neighbor->nbondlist = nbondlist_orig; + neighborKK->k_bondlist = k_bondlist_orig; +} + +/* ---------------------------------------------------------------------- */ + +void BondHybridKokkos::allocate() +{ + allocated = 1; + int n = atom->nbondtypes; + + memoryKK->create_kokkos(k_map, map, n + 1, "bond:map"); + memory->create(setflag, n + 1, "bond:setflag"); + for (int i = 1; i <= n; i++) setflag[i] = 0; + + k_nbondlist = DAT::tdual_int_1d("bond:nbondlist", nstyles); +} + +/* ---------------------------------------------------------------------- */ + +void BondHybridKokkos::deallocate() +{ + if (!allocated) return; + + allocated = 0; + + memory->destroy(setflag); + memoryKK->destroy_kokkos(k_map,map); +} + +/* ---------------------------------------------------------------------- + set coeffs for one type +---------------------------------------------------------------------- */ + +void BondHybridKokkos::coeff(int narg, char **arg) +{ + BondHybrid::coeff(narg,arg); + + k_map.modify_host(); +} + +/* ---------------------------------------------------------------------- */ + +void BondHybridKokkos::init_style() +{ + BondHybrid::init_style(); + + for (int m = 0; m < nstyles; m++) { + if (!styles[m]->kokkosable) + error->all(FLERR,"Must use only Kokkos-enabled bond styles with bond_style hybrid/kk"); + + if (styles[m]->execution_space == Host) + lmp->kokkos->allow_overlap = 0; + } +} + +/* ---------------------------------------------------------------------- + memory usage +------------------------------------------------------------------------- */ + +double BondHybridKokkos::memory_usage() +{ + double bytes = (double) maxeatom * sizeof(double); + bytes += (double) maxvatom * 6 * sizeof(double); + for (int m = 0; m < nstyles; m++) bytes += (double) maxbond_all * 3 * sizeof(int); + for (int m = 0; m < nstyles; m++) + if (styles[m]) bytes += styles[m]->memory_usage(); + return bytes; +} diff --git a/src/KOKKOS/improper_hybrid_kokkos.h b/src/KOKKOS/improper_hybrid_kokkos.h new file mode 100644 index 0000000000..217beaca5f --- /dev/null +++ b/src/KOKKOS/improper_hybrid_kokkos.h @@ -0,0 +1,58 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +#ifdef BOND_CLASS +// clang-format off +BondStyle(hybrid/kk,BondHybridKokkos); +BondStyle(hybrid/kk/device,BondHybridKokkos); +BondStyle(hybrid/kk/host,BondHybridKokkos); +// clang-format on +#else + +// clang-format off +#ifndef LMP_BOND_HYBRID_KOKKOS_H +#define LMP_BOND_HYBRID_KOKKOS_H + +#include "bond_hybrid.h" +#include "kokkos_type.h" + +namespace LAMMPS_NS { + +class BondHybridKokkos : public BondHybrid { + friend class Force; + + public: + BondHybridKokkos(class LAMMPS *); + ~BondHybridKokkos() override; + void compute(int, int) override; + void coeff(int, char **) override; + void init_style() override; + double memory_usage() override; + + private: + int maxbond_all; + + class NeighborKokkos *neighborKK; + + DAT::tdual_int_1d k_map; // which style each bond type points to + DAT::tdual_int_1d k_nbondlist; // # of bonds in sub-style bondlists + DAT::tdual_int_3d k_bondlist; // bondlist for each sub-style + + void allocate() override; + void deallocate() override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif From d7da58752bb6c77f65ecdf021042b3b38207914e Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Thu, 27 Jun 2024 22:54:00 -0600 Subject: [PATCH 035/169] update commands, zero functors --- src/KOKKOS/angle_harmonic_kokkos.cpp | 17 ++++++++----- src/KOKKOS/angle_harmonic_kokkos.h | 7 +++--- src/KOKKOS/dihedral_harmonic_kokkos.cpp | 33 ++++++++++++++----------- src/KOKKOS/dihedral_harmonic_kokkos.h | 6 ++--- src/KOKKOS/improper_harmonic_kokkos.cpp | 25 ++++++++++--------- src/KOKKOS/improper_harmonic_kokkos.h | 8 +++--- 6 files changed, 54 insertions(+), 42 deletions(-) diff --git a/src/KOKKOS/angle_harmonic_kokkos.cpp b/src/KOKKOS/angle_harmonic_kokkos.cpp index d7be418326..4e6aae9c1b 100644 --- a/src/KOKKOS/angle_harmonic_kokkos.cpp +++ b/src/KOKKOS/angle_harmonic_kokkos.cpp @@ -38,6 +38,7 @@ static constexpr double SMALL = 0.001; template AngleHarmonicKokkos::AngleHarmonicKokkos(LAMMPS *lmp) : AngleHarmonic(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -71,14 +72,18 @@ void AngleHarmonicKokkos::compute(int eflag_in, int vflag_in) // reallocate per-atom arrays if necessary if (eflag_atom) { + if(k_eatom.extent(0) < maxeatom) { memoryKK->destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"angle:eatom"); d_eatom = k_eatom.template view(); + } else Kokkos::deep_copy(d_eatom,0.0); } if (vflag_atom) { + if(k_vatom.extent(0) < maxvatom) { memoryKK->destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"angle:vatom"); d_vatom = k_vatom.template view(); + } else Kokkos::deep_copy(d_vatom,0.0); } //atomKK->sync(execution_space,datamask_read); @@ -127,12 +132,12 @@ void AngleHarmonicKokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -264,8 +269,8 @@ void AngleHarmonicKokkos::coeff(int narg, char **arg) k_theta0.h_view[i] = theta0[i]; } - k_k.template modify(); - k_theta0.template modify(); + k_k.modify_host(); + k_theta0.modify_host(); } /* ---------------------------------------------------------------------- @@ -283,8 +288,8 @@ void AngleHarmonicKokkos::read_restart(FILE *fp) k_theta0.h_view[i] = theta0[i]; } - k_k.template modify(); - k_theta0.template modify(); + k_k.modify_host(); + k_theta0.modify_host(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/angle_harmonic_kokkos.h b/src/KOKKOS/angle_harmonic_kokkos.h index ce4b9d9976..4e427d2417 100644 --- a/src/KOKKOS/angle_harmonic_kokkos.h +++ b/src/KOKKOS/angle_harmonic_kokkos.h @@ -37,6 +37,7 @@ class AngleHarmonicKokkos : public AngleHarmonic { public: typedef DeviceType device_type; typedef EV_FLOAT value_type; + typedef ArrayTypes AT; AngleHarmonicKokkos(class LAMMPS *); ~AngleHarmonicKokkos() override; @@ -59,6 +60,9 @@ class AngleHarmonicKokkos : public AngleHarmonic { const F_FLOAT &delx1, const F_FLOAT &dely1, const F_FLOAT &delz1, const F_FLOAT &delx2, const F_FLOAT &dely2, const F_FLOAT &delz2) const; + typename AT::tdual_efloat_1d k_eatom; + typename AT::tdual_virial_array k_vatom; + protected: class NeighborKokkos *neighborKK; @@ -66,9 +70,6 @@ class AngleHarmonicKokkos : public AngleHarmonic { typename ArrayTypes::t_x_array_randomread x; typename ArrayTypes::t_f_array f; typename ArrayTypes::t_int_2d anglelist; - - typename ArrayTypes::tdual_efloat_1d k_eatom; - typename ArrayTypes::tdual_virial_array k_vatom; typename ArrayTypes::t_efloat_1d d_eatom; typename ArrayTypes::t_virial_array d_vatom; diff --git a/src/KOKKOS/dihedral_harmonic_kokkos.cpp b/src/KOKKOS/dihedral_harmonic_kokkos.cpp index 78860800be..c451c880ca 100644 --- a/src/KOKKOS/dihedral_harmonic_kokkos.cpp +++ b/src/KOKKOS/dihedral_harmonic_kokkos.cpp @@ -37,6 +37,7 @@ static constexpr double TOLERANCE = 0.05; template DihedralHarmonicKokkos::DihedralHarmonicKokkos(LAMMPS *lmp) : DihedralHarmonic(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -74,14 +75,18 @@ void DihedralHarmonicKokkos::compute(int eflag_in, int vflag_in) // reallocate per-atom arrays if necessary if (eflag_atom) { + if(k_eatom.extent(0) < maxeatom) { memoryKK->destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"dihedral:eatom"); d_eatom = k_eatom.view(); + } else Kokkos::deep_copy(d_eatom,0.0); } if (vflag_atom) { + if(k_vatom.extent(0) < maxvatom) { memoryKK->destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"dihedral:vatom"); d_vatom = k_vatom.view(); + } else Kokkos::deep_copy(d_vatom,0.0); } k_k.template sync(); @@ -99,7 +104,7 @@ void DihedralHarmonicKokkos::compute(int eflag_in, int vflag_in) newton_bond = force->newton_bond; h_warning_flag() = 0; - k_warning_flag.template modify(); + k_warning_flag.modify_host(); k_warning_flag.template sync(); copymode = 1; @@ -125,7 +130,7 @@ void DihedralHarmonicKokkos::compute(int eflag_in, int vflag_in) // error check k_warning_flag.template modify(); - k_warning_flag.template sync(); + k_warning_flag.sync_host(); if (h_warning_flag()) error->warning(FLERR,"Dihedral problem"); @@ -141,12 +146,12 @@ void DihedralHarmonicKokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -362,11 +367,11 @@ void DihedralHarmonicKokkos::coeff(int narg, char **arg) k_multiplicity.h_view[i] = multiplicity[i]; } - k_k.template modify(); - k_cos_shift.template modify(); - k_sin_shift.template modify(); - k_sign.template modify(); - k_multiplicity.template modify(); + k_k.modify_host(); + k_cos_shift.modify_host(); + k_sin_shift.modify_host(); + k_sign.modify_host(); + k_multiplicity.modify_host(); } /* ---------------------------------------------------------------------- @@ -387,11 +392,11 @@ void DihedralHarmonicKokkos::read_restart(FILE *fp) k_multiplicity.h_view[i] = multiplicity[i]; } - k_k.template modify(); - k_cos_shift.template modify(); - k_sin_shift.template modify(); - k_sign.template modify(); - k_multiplicity.template modify(); + k_k.modify_host(); + k_cos_shift.modify_host(); + k_sin_shift.modify_host(); + k_sign.modify_host(); + k_multiplicity.modify_host(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/dihedral_harmonic_kokkos.h b/src/KOKKOS/dihedral_harmonic_kokkos.h index e73f19afd1..1ad62398f7 100644 --- a/src/KOKKOS/dihedral_harmonic_kokkos.h +++ b/src/KOKKOS/dihedral_harmonic_kokkos.h @@ -60,6 +60,9 @@ class DihedralHarmonicKokkos : public DihedralHarmonic { const F_FLOAT &vb2x, const F_FLOAT &vb2y, const F_FLOAT &vb2z, const F_FLOAT &vb3x, const F_FLOAT &vb3y, const F_FLOAT &vb3z) const; + DAT::tdual_efloat_1d k_eatom; + DAT::tdual_virial_array k_vatom; + protected: class NeighborKokkos *neighborKK; @@ -67,9 +70,6 @@ class DihedralHarmonicKokkos : public DihedralHarmonic { typename AT::t_x_array_randomread x; typename AT::t_f_array f; typename AT::t_int_2d dihedrallist; - - DAT::tdual_efloat_1d k_eatom; - DAT::tdual_virial_array k_vatom; typename ArrayTypes::t_efloat_1d d_eatom; typename ArrayTypes::t_virial_array d_vatom; diff --git a/src/KOKKOS/improper_harmonic_kokkos.cpp b/src/KOKKOS/improper_harmonic_kokkos.cpp index a075238f22..31eac00828 100644 --- a/src/KOKKOS/improper_harmonic_kokkos.cpp +++ b/src/KOKKOS/improper_harmonic_kokkos.cpp @@ -36,6 +36,7 @@ static constexpr double SMALL = 0.001; template ImproperHarmonicKokkos::ImproperHarmonicKokkos(LAMMPS *lmp) : ImproperHarmonic(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -73,18 +74,18 @@ void ImproperHarmonicKokkos::compute(int eflag_in, int vflag_in) // reallocate per-atom arrays if necessary if (eflag_atom) { - //if(k_eatom.extent(0)destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom"); d_eatom = k_eatom.template view(); - //} + } else Kokkos::deep_copy(d_eatom,0.0); } if (vflag_atom) { - //if(k_vatom.extent(0)destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom"); d_vatom = k_vatom.template view(); - //} + } else Kokkos::deep_copy(d_vatom,0.0); } //atomKK->sync(execution_space,datamask_read); @@ -102,7 +103,7 @@ void ImproperHarmonicKokkos::compute(int eflag_in, int vflag_in) newton_bond = force->newton_bond; h_warning_flag() = 0; - k_warning_flag.template modify(); + k_warning_flag.modify_host(); k_warning_flag.template sync(); copymode = 1; @@ -128,7 +129,7 @@ void ImproperHarmonicKokkos::compute(int eflag_in, int vflag_in) // error check k_warning_flag.template modify(); - k_warning_flag.template sync(); + k_warning_flag.sync_host(); if (h_warning_flag()) error->warning(FLERR,"Dihedral problem"); @@ -144,12 +145,12 @@ void ImproperHarmonicKokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -324,8 +325,8 @@ void ImproperHarmonicKokkos::coeff(int narg, char **arg) k_chi.h_view[i] = chi[i]; } - k_k.template modify(); - k_chi.template modify(); + k_k.modify_host(); + k_chi.modify_host(); } /* ---------------------------------------------------------------------- @@ -343,8 +344,8 @@ void ImproperHarmonicKokkos::read_restart(FILE *fp) k_chi.h_view[i] = chi[i]; } - k_k.template modify(); - k_chi.template modify(); + k_k.modify_host(); + k_chi.modify_host(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/improper_harmonic_kokkos.h b/src/KOKKOS/improper_harmonic_kokkos.h index 8bd206aaf0..ad31447383 100644 --- a/src/KOKKOS/improper_harmonic_kokkos.h +++ b/src/KOKKOS/improper_harmonic_kokkos.h @@ -60,17 +60,17 @@ class ImproperHarmonicKokkos : public ImproperHarmonic { const F_FLOAT &vb2x, const F_FLOAT &vb2y, const F_FLOAT &vb2z, const F_FLOAT &vb3x, const F_FLOAT &vb3y, const F_FLOAT &vb3z) const; + typedef typename KKDevice::value KKDeviceType; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + protected: class NeighborKokkos *neighborKK; - typedef typename KKDevice::value KKDeviceType; typename AT::t_x_array_randomread x; typename Kokkos::View > f; typename AT::t_int_2d improperlist; - - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; Kokkos::View > d_eatom; Kokkos::View > d_vatom; From 6a8e7b4d707d9e0c7b82c6e027e2a5d59543161e Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Thu, 27 Jun 2024 22:56:12 -0600 Subject: [PATCH 036/169] update variables, templates, kk types --- src/KOKKOS/angle_charmm_kokkos.cpp | 21 +-- src/KOKKOS/angle_charmm_kokkos.h | 9 +- src/KOKKOS/angle_class2_kokkos.cpp | 65 ++++----- src/KOKKOS/angle_class2_kokkos.h | 8 +- src/KOKKOS/angle_cosine_kokkos.cpp | 9 +- src/KOKKOS/angle_cosine_kokkos.h | 7 +- src/KOKKOS/dihedral_charmm_kokkos.cpp | 45 +++---- src/KOKKOS/dihedral_charmm_kokkos.h | 7 +- src/KOKKOS/dihedral_charmmfsw_kokkos.cpp | 45 +++---- src/KOKKOS/dihedral_charmmfsw_kokkos.h | 8 +- src/KOKKOS/dihedral_class2_kokkos.cpp | 161 ++++++++++++----------- src/KOKKOS/dihedral_class2_kokkos.h | 6 +- src/KOKKOS/dihedral_opls_kokkos.cpp | 25 ++-- src/KOKKOS/dihedral_opls_kokkos.h | 7 +- src/KOKKOS/improper_class2_kokkos.cpp | 53 ++++---- src/KOKKOS/improper_class2_kokkos.h | 6 +- 16 files changed, 245 insertions(+), 237 deletions(-) diff --git a/src/KOKKOS/angle_charmm_kokkos.cpp b/src/KOKKOS/angle_charmm_kokkos.cpp index 666002686c..22d2b924dd 100644 --- a/src/KOKKOS/angle_charmm_kokkos.cpp +++ b/src/KOKKOS/angle_charmm_kokkos.cpp @@ -38,6 +38,7 @@ static constexpr double SMALL = 0.001; template AngleCharmmKokkos::AngleCharmmKokkos(LAMMPS *lmp) : AngleCharmm(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -125,12 +126,12 @@ void AngleCharmmKokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -284,10 +285,10 @@ void AngleCharmmKokkos::coeff(int narg, char **arg) k_r_ub.h_view[i] = r_ub[i]; } - k_k.template modify(); - k_theta0.template modify(); - k_k_ub.template modify(); - k_r_ub.template modify(); + k_k.modify_host(); + k_theta0.modify_host(); + k_k_ub.modify_host(); + k_r_ub.modify_host(); k_k.template sync(); k_theta0.template sync(); @@ -322,10 +323,10 @@ void AngleCharmmKokkos::read_restart(FILE *fp) k_r_ub.h_view[i] = r_ub[i]; } - k_k.template modify(); - k_theta0.template modify(); - k_k_ub.template modify(); - k_r_ub.template modify(); + k_k.modify_host(); + k_theta0.modify_host(); + k_k_ub.modify_host(); + k_r_ub.modify_host(); k_k.template sync(); k_theta0.template sync(); diff --git a/src/KOKKOS/angle_charmm_kokkos.h b/src/KOKKOS/angle_charmm_kokkos.h index 197f9160a0..2bb06725f9 100644 --- a/src/KOKKOS/angle_charmm_kokkos.h +++ b/src/KOKKOS/angle_charmm_kokkos.h @@ -58,19 +58,18 @@ class AngleCharmmKokkos : public AngleCharmm { const F_FLOAT &delx1, const F_FLOAT &dely1, const F_FLOAT &delz1, const F_FLOAT &delx2, const F_FLOAT &dely2, const F_FLOAT &delz2) const; + using KKDeviceType = typename KKDevice::value; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + protected: class NeighborKokkos *neighborKK; typedef ArrayTypes AT; typename AT::t_x_array_randomread x; - - using KKDeviceType = typename KKDevice::value; typename Kokkos::View > f; typename AT::t_int_2d anglelist; - - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; Kokkos::View> d_eatom; Kokkos::View> d_vatom; diff --git a/src/KOKKOS/angle_class2_kokkos.cpp b/src/KOKKOS/angle_class2_kokkos.cpp index e831ae2283..e9d4797e71 100644 --- a/src/KOKKOS/angle_class2_kokkos.cpp +++ b/src/KOKKOS/angle_class2_kokkos.cpp @@ -38,6 +38,7 @@ static constexpr double SMALL = 0.001; template AngleClass2Kokkos::AngleClass2Kokkos(LAMMPS *lmp) : AngleClass2(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -141,12 +142,12 @@ void AngleClass2Kokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -386,21 +387,21 @@ void AngleClass2Kokkos::coeff(int narg, char **arg) k_theta0.h_view[i] = theta0[i]; } - k_k2.template modify(); - k_k3.template modify(); - k_k4.template modify(); - k_bb_k.template modify(); - k_bb_r1.template modify(); - k_bb_r2.template modify(); - k_ba_k1.template modify(); - k_ba_k2.template modify(); - k_ba_r1.template modify(); - k_ba_r2.template modify(); - k_setflag.template modify(); - k_setflag_a.template modify(); - k_setflag_bb.template modify(); - k_setflag_ba.template modify(); - k_theta0.template modify(); + k_k2.modify_host(); + k_k3.modify_host(); + k_k4.modify_host(); + k_bb_k.modify_host(); + k_bb_r1.modify_host(); + k_bb_r2.modify_host(); + k_ba_k1.modify_host(); + k_ba_k2.modify_host(); + k_ba_r1.modify_host(); + k_ba_r2.modify_host(); + k_setflag.modify_host(); + k_setflag_a.modify_host(); + k_setflag_bb.modify_host(); + k_setflag_ba.modify_host(); + k_theta0.modify_host(); } /* ---------------------------------------------------------------------- @@ -465,21 +466,21 @@ void AngleClass2Kokkos::read_restart(FILE *fp) k_theta0.h_view[i] = theta0[i]; } - k_k2.template modify(); - k_k3.template modify(); - k_k4.template modify(); - k_bb_k.template modify(); - k_bb_r1.template modify(); - k_bb_r2.template modify(); - k_ba_k1.template modify(); - k_ba_k2.template modify(); - k_ba_r1.template modify(); - k_ba_r2.template modify(); - k_setflag.template modify(); - k_setflag_a.template modify(); - k_setflag_bb.template modify(); - k_setflag_ba.template modify(); - k_theta0.template modify(); + k_k2.modify_host(); + k_k3.modify_host(); + k_k4.modify_host(); + k_bb_k.modify_host(); + k_bb_r1.modify_host(); + k_bb_r2.modify_host(); + k_ba_k1.modify_host(); + k_ba_k2.modify_host(); + k_ba_r1.modify_host(); + k_ba_r2.modify_host(); + k_setflag.modify_host(); + k_setflag_a.modify_host(); + k_setflag_bb.modify_host(); + k_setflag_ba.modify_host(); + k_theta0.modify_host(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/angle_class2_kokkos.h b/src/KOKKOS/angle_class2_kokkos.h index 81bed169bc..7ef9e9b652 100644 --- a/src/KOKKOS/angle_class2_kokkos.h +++ b/src/KOKKOS/angle_class2_kokkos.h @@ -36,8 +36,8 @@ class AngleClass2Kokkos : public AngleClass2 { public: typedef DeviceType device_type; - typedef ArrayTypes AT; typedef EV_FLOAT value_type; + typedef ArrayTypes AT; AngleClass2Kokkos(class LAMMPS *); ~AngleClass2Kokkos() override; @@ -60,6 +60,9 @@ class AngleClass2Kokkos : public AngleClass2 { const F_FLOAT &delx1, const F_FLOAT &dely1, const F_FLOAT &delz1, const F_FLOAT &delx2, const F_FLOAT &dely2, const F_FLOAT &delz2) const; + typename AT::tdual_efloat_1d k_eatom; + typename AT::tdual_virial_array k_vatom; + protected: class NeighborKokkos *neighborKK; @@ -67,9 +70,6 @@ class AngleClass2Kokkos : public AngleClass2 { typename AT::t_x_array_randomread x; typename AT::t_f_array f; typename AT::t_int_2d anglelist; - - typename AT::tdual_efloat_1d k_eatom; - typename AT::tdual_virial_array k_vatom; typename AT::t_efloat_1d d_eatom; typename AT::t_virial_array d_vatom; diff --git a/src/KOKKOS/angle_cosine_kokkos.cpp b/src/KOKKOS/angle_cosine_kokkos.cpp index 768dfd43ca..5d61213df8 100644 --- a/src/KOKKOS/angle_cosine_kokkos.cpp +++ b/src/KOKKOS/angle_cosine_kokkos.cpp @@ -36,6 +36,7 @@ using namespace MathConst; template AngleCosineKokkos::AngleCosineKokkos(LAMMPS *lmp) : AngleCosine(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -124,12 +125,12 @@ void AngleCosineKokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -254,7 +255,7 @@ void AngleCosineKokkos::coeff(int narg, char **arg) for (int i = 1; i <= n; i++) k_k.h_view[i] = k[i]; - k_k.template modify(); + k_k.modify_host(); } /* ---------------------------------------------------------------------- @@ -270,7 +271,7 @@ void AngleCosineKokkos::read_restart(FILE *fp) for (int i = 1; i <= n; i++) k_k.h_view[i] = k[i]; - k_k.template modify(); + k_k.modify_host(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/angle_cosine_kokkos.h b/src/KOKKOS/angle_cosine_kokkos.h index 33b80f5a5f..3cfa5a73df 100644 --- a/src/KOKKOS/angle_cosine_kokkos.h +++ b/src/KOKKOS/angle_cosine_kokkos.h @@ -37,6 +37,7 @@ class AngleCosineKokkos : public AngleCosine { public: typedef DeviceType device_type; typedef EV_FLOAT value_type; + typedef ArrayTypes AT; AngleCosineKokkos(class LAMMPS *); ~AngleCosineKokkos() override; @@ -59,6 +60,9 @@ class AngleCosineKokkos : public AngleCosine { const F_FLOAT &delx1, const F_FLOAT &dely1, const F_FLOAT &delz1, const F_FLOAT &delx2, const F_FLOAT &dely2, const F_FLOAT &delz2) const; + typename AT::tdual_efloat_1d k_eatom; + typename AT::tdual_virial_array k_vatom; + protected: class NeighborKokkos *neighborKK; @@ -66,9 +70,6 @@ class AngleCosineKokkos : public AngleCosine { typename ArrayTypes::t_x_array_randomread x; typename ArrayTypes::t_f_array f; typename ArrayTypes::t_int_2d anglelist; - - typename ArrayTypes::tdual_efloat_1d k_eatom; - typename ArrayTypes::tdual_virial_array k_vatom; typename ArrayTypes::t_efloat_1d d_eatom; typename ArrayTypes::t_virial_array d_vatom; diff --git a/src/KOKKOS/dihedral_charmm_kokkos.cpp b/src/KOKKOS/dihedral_charmm_kokkos.cpp index b385ec7f01..a8939770df 100644 --- a/src/KOKKOS/dihedral_charmm_kokkos.cpp +++ b/src/KOKKOS/dihedral_charmm_kokkos.cpp @@ -40,6 +40,7 @@ static constexpr double TOLERANCE = 0.05; template DihedralCharmmKokkos::DihedralCharmmKokkos(LAMMPS *lmp) : DihedralCharmm(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -115,7 +116,7 @@ void DihedralCharmmKokkos::compute(int eflag_in, int vflag_in) qqrd2e = force->qqrd2e; h_warning_flag() = 0; - k_warning_flag.template modify(); + k_warning_flag.modify_host(); k_warning_flag.template sync(); copymode = 1; @@ -141,7 +142,7 @@ void DihedralCharmmKokkos::compute(int eflag_in, int vflag_in) // error check k_warning_flag.template modify(); - k_warning_flag.template sync(); + k_warning_flag.sync_host(); if (h_warning_flag()) error->warning(FLERR,"Dihedral problem"); @@ -174,20 +175,20 @@ void DihedralCharmmKokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); k_eatom_pair.template modify(); - k_eatom_pair.template sync(); + k_eatom_pair.sync_host(); for (int i = 0; i < n; i++) force->pair->eatom[i] += k_eatom_pair.h_view(i); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); k_vatom_pair.template modify(); - k_vatom_pair.template sync(); + k_vatom_pair.sync_host(); for (int i = 0; i < n; i++) { force->pair->vatom[i][0] += k_vatom_pair.h_view(i,0); force->pair->vatom[i][1] += k_vatom_pair.h_view(i,1); @@ -454,12 +455,12 @@ void DihedralCharmmKokkos::coeff(int narg, char **arg) k_weight.h_view[i] = weight[i]; } - k_k.template modify(); - k_multiplicity.template modify(); - k_shift.template modify(); - k_cos_shift.template modify(); - k_sin_shift.template modify(); - k_weight.template modify(); + k_k.modify_host(); + k_multiplicity.modify_host(); + k_shift.modify_host(); + k_cos_shift.modify_host(); + k_sin_shift.modify_host(); + k_weight.modify_host(); k_k.template sync(); k_multiplicity.template sync(); @@ -502,10 +503,10 @@ void DihedralCharmmKokkos::init_style() } } - k_lj14_1.template modify(); - k_lj14_2.template modify(); - k_lj14_3.template modify(); - k_lj14_4.template modify(); + k_lj14_1.modify_host(); + k_lj14_2.modify_host(); + k_lj14_3.modify_host(); + k_lj14_4.modify_host(); k_lj14_1.template sync(); k_lj14_2.template sync(); @@ -547,12 +548,12 @@ void DihedralCharmmKokkos::read_restart(FILE *fp) k_weight.h_view[i] = weight[i]; } - k_k.template modify(); - k_multiplicity.template modify(); - k_shift.template modify(); - k_cos_shift.template modify(); - k_sin_shift.template modify(); - k_weight.template modify(); + k_k.modify_host(); + k_multiplicity.modify_host(); + k_shift.modify_host(); + k_cos_shift.modify_host(); + k_sin_shift.modify_host(); + k_weight.modify_host(); k_k.template sync(); k_multiplicity.template sync(); diff --git a/src/KOKKOS/dihedral_charmm_kokkos.h b/src/KOKKOS/dihedral_charmm_kokkos.h index dea251473b..74510ed515 100644 --- a/src/KOKKOS/dihedral_charmm_kokkos.h +++ b/src/KOKKOS/dihedral_charmm_kokkos.h @@ -104,6 +104,10 @@ class DihedralCharmmKokkos : public DihedralCharmm { const F_FLOAT &evdwl, const F_FLOAT &ecoul, const F_FLOAT &fpair, const F_FLOAT &delx, const F_FLOAT &dely, const F_FLOAT &delz) const; + typedef typename KKDevice::value KKDeviceType; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + protected: class NeighborKokkos *neighborKK; @@ -114,9 +118,6 @@ class DihedralCharmmKokkos : public DihedralCharmm { typename AT::t_f_array f; typename AT::t_int_2d dihedrallist; - typedef typename KKDevice::value KKDeviceType; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; Kokkos::View > d_eatom; Kokkos::View > d_vatom; diff --git a/src/KOKKOS/dihedral_charmmfsw_kokkos.cpp b/src/KOKKOS/dihedral_charmmfsw_kokkos.cpp index aeb9b022a7..3414a02ec4 100644 --- a/src/KOKKOS/dihedral_charmmfsw_kokkos.cpp +++ b/src/KOKKOS/dihedral_charmmfsw_kokkos.cpp @@ -47,6 +47,7 @@ static constexpr double TOLERANCE = 0.05; template DihedralCharmmfswKokkos::DihedralCharmmfswKokkos(LAMMPS *lmp) : DihedralCharmmfsw(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -122,7 +123,7 @@ void DihedralCharmmfswKokkos::compute(int eflag_in, int vflag_in) qqrd2e = force->qqrd2e; h_warning_flag() = 0; - k_warning_flag.template modify(); + k_warning_flag.modify_host(); k_warning_flag.template sync(); copymode = 1; @@ -148,7 +149,7 @@ void DihedralCharmmfswKokkos::compute(int eflag_in, int vflag_in) // error check k_warning_flag.template modify(); - k_warning_flag.template sync(); + k_warning_flag.sync_host(); if (h_warning_flag()) error->warning(FLERR,"Dihedral problem"); @@ -181,20 +182,20 @@ void DihedralCharmmfswKokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); k_eatom_pair.template modify(); - k_eatom_pair.template sync(); + k_eatom_pair.sync_host(); for (int i = 0; i < n; i++) force->pair->eatom[i] += k_eatom_pair.h_view(i); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); k_vatom_pair.template modify(); - k_vatom_pair.template sync(); + k_vatom_pair.sync_host(); for (int i = 0; i < n; i++) { force->pair->vatom[i][0] += k_vatom_pair.h_view(i,0); force->pair->vatom[i][1] += k_vatom_pair.h_view(i,1); @@ -471,12 +472,12 @@ void DihedralCharmmfswKokkos::coeff(int narg, char **arg) k_weight.h_view[i] = weight[i]; } - k_k.template modify(); - k_multiplicity.template modify(); - k_shift.template modify(); - k_cos_shift.template modify(); - k_sin_shift.template modify(); - k_weight.template modify(); + k_k.modify_host(); + k_multiplicity.modify_host(); + k_shift.modify_host(); + k_cos_shift.modify_host(); + k_sin_shift.modify_host(); + k_weight.modify_host(); k_k.template sync(); k_multiplicity.template sync(); @@ -519,10 +520,10 @@ void DihedralCharmmfswKokkos::init_style() } } - k_lj14_1.template modify(); - k_lj14_2.template modify(); - k_lj14_3.template modify(); - k_lj14_4.template modify(); + k_lj14_1.modify_host(); + k_lj14_2.modify_host(); + k_lj14_3.modify_host(); + k_lj14_4.modify_host(); k_lj14_1.template sync(); k_lj14_2.template sync(); @@ -564,12 +565,12 @@ void DihedralCharmmfswKokkos::read_restart(FILE *fp) k_weight.h_view[i] = weight[i]; } - k_k.template modify(); - k_multiplicity.template modify(); - k_shift.template modify(); - k_cos_shift.template modify(); - k_sin_shift.template modify(); - k_weight.template modify(); + k_k.modify_host(); + k_multiplicity.modify_host(); + k_shift.modify_host(); + k_cos_shift.modify_host(); + k_sin_shift.modify_host(); + k_weight.modify_host(); k_k.template sync(); k_multiplicity.template sync(); diff --git a/src/KOKKOS/dihedral_charmmfsw_kokkos.h b/src/KOKKOS/dihedral_charmmfsw_kokkos.h index b1c65ae477..845d2192d7 100644 --- a/src/KOKKOS/dihedral_charmmfsw_kokkos.h +++ b/src/KOKKOS/dihedral_charmmfsw_kokkos.h @@ -67,6 +67,10 @@ class DihedralCharmmfswKokkos : public DihedralCharmmfsw { const F_FLOAT &evdwl, const F_FLOAT &ecoul, const F_FLOAT &fpair, const F_FLOAT &delx, const F_FLOAT &dely, const F_FLOAT &delz) const; + typedef typename KKDevice::value KKDeviceType; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + protected: class NeighborKokkos *neighborKK; @@ -76,10 +80,6 @@ class DihedralCharmmfswKokkos : public DihedralCharmmfsw { typename AT::t_ffloat_1d_randomread q; typename AT::t_f_array f; typename AT::t_int_2d dihedrallist; - - typedef typename KKDevice::value KKDeviceType; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; Kokkos::View > d_eatom; Kokkos::View > d_vatom; diff --git a/src/KOKKOS/dihedral_class2_kokkos.cpp b/src/KOKKOS/dihedral_class2_kokkos.cpp index 204a6d0d1a..83c03d856a 100644 --- a/src/KOKKOS/dihedral_class2_kokkos.cpp +++ b/src/KOKKOS/dihedral_class2_kokkos.cpp @@ -38,6 +38,7 @@ static constexpr double SMALL = 0.001; template DihedralClass2Kokkos::DihedralClass2Kokkos(LAMMPS *lmp) : DihedralClass2(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -137,7 +138,7 @@ void DihedralClass2Kokkos::compute(int eflag_in, int vflag_in) newton_bond = force->newton_bond; h_warning_flag() = 0; - k_warning_flag.template modify(); + k_warning_flag.modify_host(); k_warning_flag.template sync(); copymode = 1; @@ -163,7 +164,7 @@ void DihedralClass2Kokkos::compute(int eflag_in, int vflag_in) // error check k_warning_flag.template modify(); - k_warning_flag.template sync(); + k_warning_flag.sync_host(); if (h_warning_flag()) error->warning(FLERR,"Dihedral problem"); @@ -179,12 +180,12 @@ void DihedralClass2Kokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -786,44 +787,44 @@ void DihedralClass2Kokkos::coeff(int narg, char **arg) k_setflag_bb13t.h_view[i] = setflag_bb13t[i]; } - k_k1.template modify(); - k_k2.template modify(); - k_k3.template modify(); - k_phi1.template modify(); - k_phi2.template modify(); - k_phi3.template modify(); - k_mbt_f1.template modify(); - k_mbt_f2.template modify(); - k_mbt_f3.template modify(); - k_mbt_r0.template modify(); - k_ebt_f1_1.template modify(); - k_ebt_f2_1.template modify(); - k_ebt_f3_1.template modify(); - k_ebt_r0_1.template modify(); - k_ebt_f1_2.template modify(); - k_ebt_f2_2.template modify(); - k_ebt_f3_2.template modify(); - k_ebt_r0_2.template modify(); - k_at_f1_1.template modify(); - k_at_f2_1.template modify(); - k_at_f3_1.template modify(); - k_at_f1_2.template modify(); - k_at_f2_2.template modify(); - k_at_f3_2.template modify(); - k_at_theta0_1.template modify(); - k_at_theta0_2.template modify(); - k_aat_k.template modify(); - k_aat_theta0_1.template modify(); - k_aat_theta0_2.template modify(); - k_bb13t_k.template modify(); - k_bb13t_r10.template modify(); - k_bb13t_r30.template modify(); - k_setflag_d.template modify(); - k_setflag_mbt.template modify(); - k_setflag_ebt.template modify(); - k_setflag_at.template modify(); - k_setflag_aat.template modify(); - k_setflag_bb13t.template modify(); + k_k1.modify_host(); + k_k2.modify_host(); + k_k3.modify_host(); + k_phi1.modify_host(); + k_phi2.modify_host(); + k_phi3.modify_host(); + k_mbt_f1.modify_host(); + k_mbt_f2.modify_host(); + k_mbt_f3.modify_host(); + k_mbt_r0.modify_host(); + k_ebt_f1_1.modify_host(); + k_ebt_f2_1.modify_host(); + k_ebt_f3_1.modify_host(); + k_ebt_r0_1.modify_host(); + k_ebt_f1_2.modify_host(); + k_ebt_f2_2.modify_host(); + k_ebt_f3_2.modify_host(); + k_ebt_r0_2.modify_host(); + k_at_f1_1.modify_host(); + k_at_f2_1.modify_host(); + k_at_f3_1.modify_host(); + k_at_f1_2.modify_host(); + k_at_f2_2.modify_host(); + k_at_f3_2.modify_host(); + k_at_theta0_1.modify_host(); + k_at_theta0_2.modify_host(); + k_aat_k.modify_host(); + k_aat_theta0_1.modify_host(); + k_aat_theta0_2.modify_host(); + k_bb13t_k.modify_host(); + k_bb13t_r10.modify_host(); + k_bb13t_r30.modify_host(); + k_setflag_d.modify_host(); + k_setflag_mbt.modify_host(); + k_setflag_ebt.modify_host(); + k_setflag_at.modify_host(); + k_setflag_aat.modify_host(); + k_setflag_bb13t.modify_host(); } @@ -956,44 +957,44 @@ void DihedralClass2Kokkos::read_restart(FILE *fp) k_setflag_bb13t.h_view[i] = setflag_bb13t[i]; } - k_k1.template modify(); - k_k2.template modify(); - k_k3.template modify(); - k_phi1.template modify(); - k_phi2.template modify(); - k_phi3.template modify(); - k_mbt_f1.template modify(); - k_mbt_f2.template modify(); - k_mbt_f3.template modify(); - k_mbt_r0.template modify(); - k_ebt_f1_1.template modify(); - k_ebt_f2_1.template modify(); - k_ebt_f3_1.template modify(); - k_ebt_r0_1.template modify(); - k_ebt_f1_2.template modify(); - k_ebt_f2_2.template modify(); - k_ebt_f3_2.template modify(); - k_ebt_r0_2.template modify(); - k_at_f1_1.template modify(); - k_at_f2_1.template modify(); - k_at_f3_1.template modify(); - k_at_f1_2.template modify(); - k_at_f2_2.template modify(); - k_at_f3_2.template modify(); - k_at_theta0_1.template modify(); - k_at_theta0_2.template modify(); - k_aat_k.template modify(); - k_aat_theta0_1.template modify(); - k_aat_theta0_2.template modify(); - k_bb13t_k.template modify(); - k_bb13t_r10.template modify(); - k_bb13t_r30.template modify(); - k_setflag_d.template modify(); - k_setflag_mbt.template modify(); - k_setflag_ebt.template modify(); - k_setflag_at.template modify(); - k_setflag_aat.template modify(); - k_setflag_bb13t.template modify(); + k_k1.modify_host(); + k_k2.modify_host(); + k_k3.modify_host(); + k_phi1.modify_host(); + k_phi2.modify_host(); + k_phi3.modify_host(); + k_mbt_f1.modify_host(); + k_mbt_f2.modify_host(); + k_mbt_f3.modify_host(); + k_mbt_r0.modify_host(); + k_ebt_f1_1.modify_host(); + k_ebt_f2_1.modify_host(); + k_ebt_f3_1.modify_host(); + k_ebt_r0_1.modify_host(); + k_ebt_f1_2.modify_host(); + k_ebt_f2_2.modify_host(); + k_ebt_f3_2.modify_host(); + k_ebt_r0_2.modify_host(); + k_at_f1_1.modify_host(); + k_at_f2_1.modify_host(); + k_at_f3_1.modify_host(); + k_at_f1_2.modify_host(); + k_at_f2_2.modify_host(); + k_at_f3_2.modify_host(); + k_at_theta0_1.modify_host(); + k_at_theta0_2.modify_host(); + k_aat_k.modify_host(); + k_aat_theta0_1.modify_host(); + k_aat_theta0_2.modify_host(); + k_bb13t_k.modify_host(); + k_bb13t_r10.modify_host(); + k_bb13t_r30.modify_host(); + k_setflag_d.modify_host(); + k_setflag_mbt.modify_host(); + k_setflag_ebt.modify_host(); + k_setflag_at.modify_host(); + k_setflag_aat.modify_host(); + k_setflag_bb13t.modify_host(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/dihedral_class2_kokkos.h b/src/KOKKOS/dihedral_class2_kokkos.h index 6e1dceb0cf..ddc79d21d9 100644 --- a/src/KOKKOS/dihedral_class2_kokkos.h +++ b/src/KOKKOS/dihedral_class2_kokkos.h @@ -60,6 +60,9 @@ class DihedralClass2Kokkos : public DihedralClass2 { const F_FLOAT &vb2x, const F_FLOAT &vb2y, const F_FLOAT &vb2z, const F_FLOAT &vb3x, const F_FLOAT &vb3y, const F_FLOAT &vb3z) const; + DAT::tdual_efloat_1d k_eatom; + DAT::tdual_virial_array k_vatom; + protected: class NeighborKokkos *neighborKK; @@ -67,9 +70,6 @@ class DihedralClass2Kokkos : public DihedralClass2 { typename AT::t_x_array_randomread x; typename AT::t_f_array f; typename AT::t_int_2d dihedrallist; - - DAT::tdual_efloat_1d k_eatom; - DAT::tdual_virial_array k_vatom; typename AT::t_efloat_1d d_eatom; typename AT::t_virial_array d_vatom; diff --git a/src/KOKKOS/dihedral_opls_kokkos.cpp b/src/KOKKOS/dihedral_opls_kokkos.cpp index ce7502b25a..b45437b781 100644 --- a/src/KOKKOS/dihedral_opls_kokkos.cpp +++ b/src/KOKKOS/dihedral_opls_kokkos.cpp @@ -39,6 +39,7 @@ static constexpr double SMALLER = 0.00001; template DihedralOPLSKokkos::DihedralOPLSKokkos(LAMMPS *lmp) : DihedralOPLS(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -100,7 +101,7 @@ void DihedralOPLSKokkos::compute(int eflag_in, int vflag_in) newton_bond = force->newton_bond; h_warning_flag() = 0; - k_warning_flag.template modify(); + k_warning_flag.modify_host(); k_warning_flag.template sync(); copymode = 1; @@ -126,7 +127,7 @@ void DihedralOPLSKokkos::compute(int eflag_in, int vflag_in) // error check k_warning_flag.template modify(); - k_warning_flag.template sync(); + k_warning_flag.sync_host(); if (h_warning_flag()) error->warning(FLERR,"Dihedral problem"); @@ -142,12 +143,12 @@ void DihedralOPLSKokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -372,10 +373,10 @@ void DihedralOPLSKokkos::coeff(int narg, char **arg) k_k4.h_view[i] = k4[i]; } - k_k1.template modify(); - k_k2.template modify(); - k_k3.template modify(); - k_k4.template modify(); + k_k1.modify_host(); + k_k2.modify_host(); + k_k3.modify_host(); + k_k4.modify_host(); } /* ---------------------------------------------------------------------- @@ -395,10 +396,10 @@ void DihedralOPLSKokkos::read_restart(FILE *fp) k_k4.h_view[i] = k4[i]; } - k_k1.template modify(); - k_k2.template modify(); - k_k3.template modify(); - k_k4.template modify(); + k_k1.modify_host(); + k_k2.modify_host(); + k_k3.modify_host(); + k_k4.modify_host(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/dihedral_opls_kokkos.h b/src/KOKKOS/dihedral_opls_kokkos.h index 886f4abcae..20c5083ad9 100644 --- a/src/KOKKOS/dihedral_opls_kokkos.h +++ b/src/KOKKOS/dihedral_opls_kokkos.h @@ -60,16 +60,15 @@ class DihedralOPLSKokkos : public DihedralOPLS { const F_FLOAT &vb2x, const F_FLOAT &vb2y, const F_FLOAT &vb2z, const F_FLOAT &vb3x, const F_FLOAT &vb3y, const F_FLOAT &vb3z) const; + DAT::tdual_efloat_1d k_eatom; + DAT::tdual_virial_array k_vatom; + protected: class NeighborKokkos *neighborKK; - typename AT::t_x_array_randomread x; typename AT::t_f_array f; typename AT::t_int_2d dihedrallist; - - DAT::tdual_efloat_1d k_eatom; - DAT::tdual_virial_array k_vatom; typename ArrayTypes::t_efloat_1d d_eatom; typename ArrayTypes::t_virial_array d_vatom; diff --git a/src/KOKKOS/improper_class2_kokkos.cpp b/src/KOKKOS/improper_class2_kokkos.cpp index 862ba2a52f..1aee9d2144 100644 --- a/src/KOKKOS/improper_class2_kokkos.cpp +++ b/src/KOKKOS/improper_class2_kokkos.cpp @@ -34,6 +34,7 @@ static constexpr double SMALL = 0.001; template ImproperClass2Kokkos::ImproperClass2Kokkos(LAMMPS *lmp) : ImproperClass2(lmp) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -110,7 +111,7 @@ void ImproperClass2Kokkos::compute(int eflag_in, int vflag_in) newton_bond = force->newton_bond; h_warning_flag() = 0; - k_warning_flag.template modify(); + k_warning_flag.modify_host(); k_warning_flag.template sync(); copymode = 1; @@ -139,7 +140,7 @@ void ImproperClass2Kokkos::compute(int eflag_in, int vflag_in) // error check k_warning_flag.template modify(); - k_warning_flag.template sync(); + k_warning_flag.sync_host(); if (h_warning_flag()) error->warning(FLERR,"Improper problem"); @@ -171,12 +172,12 @@ void ImproperClass2Kokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -918,17 +919,17 @@ void ImproperClass2Kokkos::coeff(int narg, char **arg) k_setflag_aa.h_view[i] = setflag_aa[i]; } - k_k0.template modify(); - k_chi0.template modify(); - k_aa_k1.template modify(); - k_aa_k2.template modify(); - k_aa_k3.template modify(); - k_aa_theta0_1.template modify(); - k_aa_theta0_2.template modify(); - k_aa_theta0_3 .template modify(); - k_setflag.template modify(); - k_setflag_i.template modify(); - k_setflag_aa.template modify(); + k_k0.modify_host(); + k_chi0.modify_host(); + k_aa_k1.modify_host(); + k_aa_k2.modify_host(); + k_aa_k3.modify_host(); + k_aa_theta0_1.modify_host(); + k_aa_theta0_2.modify_host(); + k_aa_theta0_3 .modify_host(); + k_setflag.modify_host(); + k_setflag_i.modify_host(); + k_setflag_aa.modify_host(); } /* ---------------------------------------------------------------------- @@ -979,17 +980,17 @@ void ImproperClass2Kokkos::read_restart(FILE *fp) k_setflag_aa.h_view[i] = setflag_aa[i]; } - k_k0.template modify(); - k_chi0.template modify(); - k_aa_k1.template modify(); - k_aa_k2.template modify(); - k_aa_k3.template modify(); - k_aa_theta0_1.template modify(); - k_aa_theta0_2.template modify(); - k_aa_theta0_3 .template modify(); - k_setflag.template modify(); - k_setflag_i.template modify(); - k_setflag_aa.template modify(); + k_k0.modify_host(); + k_chi0.modify_host(); + k_aa_k1.modify_host(); + k_aa_k2.modify_host(); + k_aa_k3.modify_host(); + k_aa_theta0_1.modify_host(); + k_aa_theta0_2.modify_host(); + k_aa_theta0_3 .modify_host(); + k_setflag.modify_host(); + k_setflag_i.modify_host(); + k_setflag_aa.modify_host(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/improper_class2_kokkos.h b/src/KOKKOS/improper_class2_kokkos.h index da939b69b0..7a55c8a5f8 100644 --- a/src/KOKKOS/improper_class2_kokkos.h +++ b/src/KOKKOS/improper_class2_kokkos.h @@ -71,6 +71,9 @@ class ImproperClass2Kokkos : public ImproperClass2 { const F_FLOAT &vb2x, const F_FLOAT &vb2y, const F_FLOAT &vb2z, const F_FLOAT &vb3x, const F_FLOAT &vb3y, const F_FLOAT &vb3z) const; + DAT::tdual_efloat_1d k_eatom; + DAT::tdual_virial_array k_vatom; + protected: class NeighborKokkos *neighborKK; @@ -78,9 +81,6 @@ class ImproperClass2Kokkos : public ImproperClass2 { typename AT::t_x_array_randomread x; typename Kokkos::View::value,Kokkos::MemoryTraits > f; typename AT::t_int_2d improperlist; - - DAT::tdual_efloat_1d k_eatom; - DAT::tdual_virial_array k_vatom; typename AT::t_efloat_1d d_eatom; typename AT::t_virial_array d_vatom; From ad4573e4f629a5950eb184c6bef820bf1a8e280d Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Tue, 2 Jul 2024 11:08:05 -0600 Subject: [PATCH 037/169] add fourth term --- src/KOKKOS/angle_hybrid_kokkos.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/KOKKOS/angle_hybrid_kokkos.cpp b/src/KOKKOS/angle_hybrid_kokkos.cpp index a3ec21a5c5..8293e31b91 100644 --- a/src/KOKKOS/angle_hybrid_kokkos.cpp +++ b/src/KOKKOS/angle_hybrid_kokkos.cpp @@ -100,6 +100,7 @@ void AngleHybridKokkos::compute(int eflag, int vflag) d_anglelist(m,n,0) = d_anglelist_orig(i,0); d_anglelist(m,n,1) = d_anglelist_orig(i,1); d_anglelist(m,n,2) = d_anglelist_orig(i,2); + d_anglelist(m,n,3) = d_anglelist_orig(i,3); }); } From 0d54f99fc0d7516011a503846a54ae56c9ebcbed Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Thu, 4 Jul 2024 17:34:18 +0200 Subject: [PATCH 038/169] Fixed a nasty bug when running the ipi interface with many MPI workers Looks like the migrate() call should happen before trajectory folding --- src/MISC/fix_ipi.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index 87668b9192..e08727a4ed 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -373,6 +373,9 @@ void FixIPI::initial_integrate(int /*vflag*/) if (domain->triclinic) domain->x2lamda(atom->nlocal); domain->pbc(); domain->reset_box(); + // move atoms to new processors via irregular() + // only needed if migrate_check() says an atom moves to far + if (irregular->migrate_check()) irregular->migrate_atoms(); if (domain->triclinic) domain->lamda2x(atom->nlocal); // ensures continuity of trajectories relative to the @@ -394,11 +397,6 @@ void FixIPI::initial_integrate(int /*vflag*/) } } } - // move atoms to new processors via irregular() - // only needed if migrate_check() says an atom moves to far - if (domain->triclinic) domain->x2lamda(atom->nlocal); - if (irregular->migrate_check()) irregular->migrate_atoms(); - if (domain->triclinic) domain->lamda2x(atom->nlocal); // check if kspace solver is used if (reset_flag && kspace_flag) { From 810698dc07ca91b7df46f352b7b90d07b72c00d3 Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Fri, 5 Jul 2024 09:07:30 +0200 Subject: [PATCH 039/169] Skip neighbor folding at first call There may be issues due to the fact that the NL is initialized with the LAMMPS data file, that does not have to be the same as the starting config in i-PI --- src/MISC/fix_ipi.cpp | 9 ++++++++- src/MISC/fix_ipi.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index e08727a4ed..80666790e2 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -188,6 +188,7 @@ FixIPI::FixIPI(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), irregul master = (comm->me == 0) ? 1 : 0; inet = 1; reset_flag = 0; + firsttime = 1; int iarg = 5; while (iarg < narg) { @@ -253,6 +254,7 @@ void FixIPI::init() ipisock = 0; // TODO: should check for success in socket opening, // but the current open_socket routine dies brutally if unsuccessful + // tell lammps we have assigned a socket socketflag = 1; @@ -382,7 +384,11 @@ void FixIPI::initial_integrate(int /*vflag*/) // snapshot at neighbor list creation, minimizing the // number of neighbor list updates auto xhold = neighbor->get_xhold(); - if (xhold != NULL) { // don't wrap if xhold is not used in the NL + if (xhold != NULL && !firsttime) { + // don't wrap if xhold is not used in the NL, or the + // first call (because the NL is initialized from the + // data file that might have nothing to do with the + // current structure for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { auto delx = x[i][0] - xhold[i][0]; @@ -397,6 +403,7 @@ void FixIPI::initial_integrate(int /*vflag*/) } } } + firsttime = 0; // check if kspace solver is used if (reset_flag && kspace_flag) { diff --git a/src/MISC/fix_ipi.h b/src/MISC/fix_ipi.h index de954c8578..31bd59b2fa 100644 --- a/src/MISC/fix_ipi.h +++ b/src/MISC/fix_ipi.h @@ -42,6 +42,7 @@ class FixIPI : public Fix { long bsize; int kspace_flag; int reset_flag; + int firsttime; private: class Irregular *irregular; From 2fc664d5da934f05b13a8a2e4117980f74dac964 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Fri, 5 Jul 2024 16:21:43 -0400 Subject: [PATCH 040/169] added kokkos views --- src/KOKKOS/angle_spica_kokkos.cpp | 107 +++++++++++++++++++++++++----- src/KOKKOS/angle_spica_kokkos.h | 19 ++++-- 2 files changed, 101 insertions(+), 25 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index b36923e8b1..b630d808e1 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -21,10 +21,13 @@ #include "atom_kokkos.h" #include "atom_masks.h" #include "comm.h" +#include "error.h" #include "force.h" #include "math_const.h" #include "memory_kokkos.h" #include "neighbor_kokkos.h" +#include "respa.h" +#include "update.h" #include "lj_spica_common.h" @@ -197,45 +200,45 @@ void AngleSPICAKokkos::operator()(TagAngleSPICAComputetype[i1]; - const int type3 = atom->type[i3]; + const int type1 = d_type[i1]; + const int type3 = d_type[i3]; f13=0.0; e13=0.0; - if (rsq3 < rminsq[type1][type3]) { - const int ljt = lj_type[type1][type3]; + if (rsq3 < d_rminsq(type1,type3)) { + const int ljt = d_lj_type(type1,type3); const double r2inv = 1.0/rsq3; if (ljt == LJ12_4) { const double r4inv=r2inv*r2inv; - f13 = r4inv*(lj1[type1][type3]*r4inv*r4inv - lj2[type1][type3]); - if (eflag) e13 = r4inv*(lj3[type1][type3]*r4inv*r4inv - lj4[type1][type3]); + f13 = r4inv*(d_lj1(type1,type3)*r4inv*r4inv - d_lj2(type1,type3)); + if (eflag) e13 = r4inv*(d_lj3(type1,type3)*r4inv*r4inv - d_lj4(type1,type3)); } else if (ljt == LJ9_6) { const double r3inv = r2inv*sqrt(r2inv); const double r6inv = r3inv*r3inv; - f13 = r6inv*(lj1[type1][type3]*r3inv - lj2[type1][type3]); - if (eflag) e13 = r6inv*(lj3[type1][type3]*r3inv - lj4[type1][type3]); + f13 = r6inv*(d_lj1(type1,type3)*r3inv - d_lj2(type1,type3)); + if (eflag) e13 = r6inv*(d_lj3(type1,type3)*r3inv - d_lj4(type1,type3)); } else if (ljt == LJ12_6) { const double r6inv = r2inv*r2inv*r2inv; - f13 = r6inv*(lj1[type1][type3]*r6inv - lj2[type1][type3]); - if (eflag) e13 = r6inv*(lj3[type1][type3]*r6inv - lj4[type1][type3]); + f13 = r6inv*(d_lj1(type1,type3)*r6inv - d_lj2(type1,type3)); + if (eflag) e13 = r6inv*(d_lj3(type1,type3)*r6inv - d_lj4(type1,type3)); } else if (ljt == LJ12_5) { const double r5inv = r2inv*r2inv*sqrt(r2inv); const double r7inv = r5inv*r2inv; - f13 = r5inv*(lj1[type1][type3]*r7inv - lj2[type1][type3]); - if (eflag) e13 = r5inv*(lj3[type1][type3]*r7inv - lj4[type1][type3]); + f13 = r5inv*(d_lj1(type1,type3)*r7inv - d_lj2(type1,type3)); + if (eflag) e13 = r5inv*(d_lj3(type1,type3)*r7inv - d_lj4(type1,type3)); } // make sure energy is 0.0 at the cutoff. - if (eflag) e13 -= emin[type1][type3]; + if (eflag) e13 -= d_emin(type1,type3); f13 *= r2inv; } @@ -305,16 +308,84 @@ void AngleSPICAKokkos::allocate() { AngleSPICA::allocate(); - int n = atom->nangletypes; - k_k = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::k",n+1); - k_theta0 = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::theta0",n+1); - k_repscale = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::repscale",n+1); - k_setflag = typename ArrayTypes::tdual_int_1d("AngleSPICA::setflag",n+1); + int nangletypes = atomKK->nangletypes; + k_k = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::k",nangletypes+1); + k_theta0 = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::theta0",nangletypes+1); + k_repscale = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::repscale",nangletypes+1); + k_setflag = typename ArrayTypes::tdual_int_1d("AngleSPICA::setflag",nangletypes+1); d_k = k_k.template view(); d_theta0 = k_theta0.template view(); d_repscale = k_repscale.template view(); d_setflag = k_setflag.template view(); + + int ntypes = atomKK->ntypes; + k_lj_type = typename ArrayTypes::tdual_int_2d("AngleSPICA::lj_type",ntypes+1,ntypes+1); + k_lj1 = typename ArrayTypes::tdual_ffloat_2d("AngleSPICA::lj1",ntypes+1,ntypes+1); + k_lj2 = typename ArrayTypes::tdual_ffloat_2d("AngleSPICA::lj2",ntypes+1,ntypes+1); + k_lj3 = typename ArrayTypes::tdual_ffloat_2d("AngleSPICA::lj3",ntypes+1,ntypes+1); + k_lj4 = typename ArrayTypes::tdual_ffloat_2d("AngleSPICA::lj4",ntypes+1,ntypes+1); + k_rminsq = typename ArrayTypes::tdual_ffloat_2d("AngleSPICA::rminsq",ntypes+1,ntypes+1); + k_emin = typename ArrayTypes::tdual_ffloat_2d("AngleSPICA::emin",ntypes+1,ntypes+1); + + d_lj_type = k_lj_type.template view(); + d_lj1 = k_lj1.template view(); + d_lj2 = k_lj2.template view(); + d_lj3 = k_lj3.template view(); + d_lj4 = k_lj4.template view(); + d_rminsq = k_rminsq.template view(); + d_emin = k_emin.template view(); + +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +template +void AngleSPICAKokkos::init_style() +{ + AngleSPICA::init_style(); + + // error if rRESPA with inner levels + + if (update->whichflag == 1 && utils::strmatch(update->integrate_style,"^respa")) { + int respa = 0; + if (((Respa *) update->integrate)->level_inner >= 0) respa = 1; + if (((Respa *) update->integrate)->level_middle >= 0) respa = 2; + if (respa) + error->all(FLERR,"Cannot use Kokkos pair style with rRESPA inner/middle"); + } + + d_type = atomKK->k_type.view(); + + int ntypes = atomKK->ntypes; + for (int i = 1; i <= ntypes; i++) + for (int j = 1; j <= ntypes; j++) { + k_lj_type.h_view(i,j) = lj_type[i][j]; + k_lj1.h_view(i,j) = lj1[i][j]; + k_lj2.h_view(i,j) = lj2[i][j]; + k_lj3.h_view(i,j) = lj3[i][j]; + k_lj4.h_view(i,j) = lj4[i][j]; + k_rminsq.h_view(i,j) = rminsq[i][j]; + k_emin.h_view(i,j) = emin[i][j]; + } + + k_lj_type.template modify(); + k_lj1.template modify(); + k_lj2.template modify(); + k_lj3.template modify(); + k_lj4.template modify(); + k_rminsq.template modify(); + k_emin.template modify(); + + k_lj_type.template sync(); + k_lj1.template sync(); + k_lj2.template sync(); + k_lj3.template sync(); + k_lj4.template sync(); + k_rminsq.template sync(); + k_emin.template sync(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h index 2a35d62e83..75c1010f08 100644 --- a/src/KOKKOS/angle_spica_kokkos.h +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -42,6 +42,7 @@ class AngleSPICAKokkos : public AngleSPICA { ~AngleSPICAKokkos() override; void compute(int, int) override; void coeff(int, char **) override; + void init_style() override; void read_restart(FILE *) override; template @@ -80,16 +81,20 @@ class AngleSPICAKokkos : public AngleSPICA { int nlocal,newton_bond; int eflag,vflag; - typename ArrayTypes::tdual_ffloat_1d k_k; - typename ArrayTypes::tdual_ffloat_1d k_theta0; - typename ArrayTypes::tdual_ffloat_1d k_repscale; - typename ArrayTypes::tdual_int_1d k_setflag; + typename ArrayTypes::tdual_ffloat_1d k_k, k_theta0, k_repscale; + typename ArrayTypes::t_ffloat_1d d_k, d_theta0, d_repscale; - typename ArrayTypes::t_ffloat_1d d_k; - typename ArrayTypes::t_ffloat_1d d_theta0; - typename ArrayTypes::t_ffloat_1d d_repscale; + typename ArrayTypes::tdual_int_1d k_setflag; typename ArrayTypes::t_int_1d d_setflag; + typename ArrayTypes::t_int_1d d_type; + + typename ArrayTypes::tdual_int_2d k_lj_type; + typename ArrayTypes::t_int_2d d_lj_type; + + typename ArrayTypes::tdual_ffloat_2d k_lj1, k_lj2, k_lj3, k_lj4, k_rminsq, k_emin; + typename ArrayTypes::t_ffloat_2d d_lj1, d_lj2, d_lj3, d_lj4, d_rminsq, d_emin; + void allocate() override; }; From fecf38e11677d8e1f80625ba88b6646abbdf7d97 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sat, 6 Jul 2024 00:20:45 -0400 Subject: [PATCH 041/169] move d_type = atomKK->k_type.view() to compute() --- src/KOKKOS/angle_spica_kokkos.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index b630d808e1..c1b76ae14d 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -95,6 +95,7 @@ void AngleSPICAKokkos::compute(int eflag_in, int vflag_in) neighborKK->k_anglelist.template sync(); anglelist = neighborKK->k_anglelist.template view(); int nanglelist = neighborKK->nanglelist; + d_type = atomKK->k_type.view(); nlocal = atom->nlocal; newton_bond = force->newton_bond; @@ -357,8 +358,6 @@ void AngleSPICAKokkos::init_style() error->all(FLERR,"Cannot use Kokkos pair style with rRESPA inner/middle"); } - d_type = atomKK->k_type.view(); - int ntypes = atomKK->ntypes; for (int i = 1; i <= ntypes; i++) for (int j = 1; j <= ntypes; j++) { From c3f76dcc8103baba23b414b192648e5563364514 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sat, 6 Jul 2024 01:12:23 -0400 Subject: [PATCH 042/169] cleanup --- src/KOKKOS/angle_spica_kokkos.cpp | 22 +++++----------------- src/KOKKOS/angle_spica_kokkos.h | 9 +++------ 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index c1b76ae14d..e423d1d0b5 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -47,7 +47,7 @@ AngleSPICAKokkos::AngleSPICAKokkos(LAMMPS *lmp) : AngleSPICA(lmp) atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; - datamask_read = X_MASK | F_MASK | ENERGY_MASK | VIRIAL_MASK; + datamask_read = X_MASK | F_MASK | TYPE_MASK | ENERGY_MASK | VIRIAL_MASK; datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; centroidstressflag = CENTROID_NOTAVAIL; @@ -95,7 +95,7 @@ void AngleSPICAKokkos::compute(int eflag_in, int vflag_in) neighborKK->k_anglelist.template sync(); anglelist = neighborKK->k_anglelist.template view(); int nanglelist = neighborKK->nanglelist; - d_type = atomKK->k_type.view(); + d_type = atomKK->k_type.template view(); nlocal = atom->nlocal; newton_bond = force->newton_bond; @@ -309,18 +309,14 @@ void AngleSPICAKokkos::allocate() { AngleSPICA::allocate(); - int nangletypes = atomKK->nangletypes; + int nangletypes = atom->nangletypes; k_k = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::k",nangletypes+1); k_theta0 = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::theta0",nangletypes+1); - k_repscale = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::repscale",nangletypes+1); - k_setflag = typename ArrayTypes::tdual_int_1d("AngleSPICA::setflag",nangletypes+1); d_k = k_k.template view(); d_theta0 = k_theta0.template view(); - d_repscale = k_repscale.template view(); - d_setflag = k_setflag.template view(); - int ntypes = atomKK->ntypes; + int ntypes = atom->ntypes; k_lj_type = typename ArrayTypes::tdual_int_2d("AngleSPICA::lj_type",ntypes+1,ntypes+1); k_lj1 = typename ArrayTypes::tdual_ffloat_2d("AngleSPICA::lj1",ntypes+1,ntypes+1); k_lj2 = typename ArrayTypes::tdual_ffloat_2d("AngleSPICA::lj2",ntypes+1,ntypes+1); @@ -358,7 +354,7 @@ void AngleSPICAKokkos::init_style() error->all(FLERR,"Cannot use Kokkos pair style with rRESPA inner/middle"); } - int ntypes = atomKK->ntypes; + int ntypes = atom->ntypes; for (int i = 1; i <= ntypes; i++) for (int j = 1; j <= ntypes; j++) { k_lj_type.h_view(i,j) = lj_type[i][j]; @@ -400,14 +396,10 @@ void AngleSPICAKokkos::coeff(int narg, char **arg) for (int i = 1; i <= n; i++) { k_k.h_view[i] = k[i]; k_theta0.h_view[i] = theta0[i]; - k_repscale.h_view[i] = repscale[i]; - k_setflag.h_view[i] = setflag[i]; } k_k.template modify(); k_theta0.template modify(); - k_repscale.template modify(); - k_setflag.template modify(); } /* ---------------------------------------------------------------------- @@ -423,14 +415,10 @@ void AngleSPICAKokkos::read_restart(FILE *fp) for (int i = 1; i <= n; i++) { k_k.h_view[i] = k[i]; k_theta0.h_view[i] = theta0[i]; - k_repscale.h_view[i] = repscale[i]; - k_setflag.h_view[i] = setflag[i]; } k_k.template modify(); k_theta0.template modify(); - k_repscale.template modify(); - k_setflag.template modify(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h index 75c1010f08..4670bdabf0 100644 --- a/src/KOKKOS/angle_spica_kokkos.h +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -81,13 +81,10 @@ class AngleSPICAKokkos : public AngleSPICA { int nlocal,newton_bond; int eflag,vflag; - typename ArrayTypes::tdual_ffloat_1d k_k, k_theta0, k_repscale; - typename ArrayTypes::t_ffloat_1d d_k, d_theta0, d_repscale; - - typename ArrayTypes::tdual_int_1d k_setflag; - typename ArrayTypes::t_int_1d d_setflag; - typename ArrayTypes::t_int_1d d_type; + + typename ArrayTypes::tdual_ffloat_1d k_k, k_theta0; + typename ArrayTypes::t_ffloat_1d d_k, d_theta0; typename ArrayTypes::tdual_int_2d k_lj_type; typename ArrayTypes::t_int_2d d_lj_type; From 62ac8d0ab38da52e95105f7c55bb6c89022f177e Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sun, 7 Jul 2024 02:59:43 -0400 Subject: [PATCH 043/169] fixes --- .../cgspica/sds-monolayer/in.sds-regular | 2 +- src/KOKKOS/angle_spica_kokkos.cpp | 37 ++++++++++++++----- src/KOKKOS/angle_spica_kokkos.h | 9 +++-- 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/examples/PACKAGES/cgspica/sds-monolayer/in.sds-regular b/examples/PACKAGES/cgspica/sds-monolayer/in.sds-regular index 2f80847fe0..fef6b80eca 100644 --- a/examples/PACKAGES/cgspica/sds-monolayer/in.sds-regular +++ b/examples/PACKAGES/cgspica/sds-monolayer/in.sds-regular @@ -5,7 +5,7 @@ dimension 3 atom_style full processors * * 1 -pair_style lj/spica/coul/long 15.0 +pair_style lj/spica/coul/long 15.0 bond_style harmonic angle_style spica special_bonds lj/coul 0.0 0.0 1.0 diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index e423d1d0b5..782517e58a 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -87,14 +87,27 @@ void AngleSPICAKokkos::compute(int eflag_in, int vflag_in) d_vatom = k_vatom.template view(); } + atomKK->sync(execution_space,datamask_read); k_k.template sync(); k_theta0.template sync(); + k_repscale.template sync(); + k_lj_type.template sync(); + k_lj1.template sync(); + k_lj2.template sync(); + k_lj3.template sync(); + k_lj4.template sync(); + k_rminsq.template sync(); + k_emin.template sync(); + + if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); + else atomKK->modified(execution_space,F_MASK); x = atomKK->k_x.template view(); f = atomKK->k_f.template view(); neighborKK->k_anglelist.template sync(); anglelist = neighborKK->k_anglelist.template view(); int nanglelist = neighborKK->nanglelist; + atomKK->k_type.template sync(); d_type = atomKK->k_type.template view(); nlocal = atom->nlocal; newton_bond = force->newton_bond; @@ -312,9 +325,13 @@ void AngleSPICAKokkos::allocate() int nangletypes = atom->nangletypes; k_k = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::k",nangletypes+1); k_theta0 = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::theta0",nangletypes+1); + k_repscale = typename ArrayTypes::tdual_ffloat_1d("AngleSPICA::repscale",nangletypes+1); + k_setflag = typename ArrayTypes::tdual_int_1d("AngleSPICA::setflag",nangletypes+1); d_k = k_k.template view(); d_theta0 = k_theta0.template view(); + d_repscale = k_repscale.template view(); + d_setflag = k_setflag.template view(); int ntypes = atom->ntypes; k_lj_type = typename ArrayTypes::tdual_int_2d("AngleSPICA::lj_type",ntypes+1,ntypes+1); @@ -332,7 +349,6 @@ void AngleSPICAKokkos::allocate() d_lj4 = k_lj4.template view(); d_rminsq = k_rminsq.template view(); d_emin = k_emin.template view(); - } /* ---------------------------------------------------------------------- @@ -373,14 +389,6 @@ void AngleSPICAKokkos::init_style() k_lj4.template modify(); k_rminsq.template modify(); k_emin.template modify(); - - k_lj_type.template sync(); - k_lj1.template sync(); - k_lj2.template sync(); - k_lj3.template sync(); - k_lj4.template sync(); - k_rminsq.template sync(); - k_emin.template sync(); } /* ---------------------------------------------------------------------- @@ -396,10 +404,17 @@ void AngleSPICAKokkos::coeff(int narg, char **arg) for (int i = 1; i <= n; i++) { k_k.h_view[i] = k[i]; k_theta0.h_view[i] = theta0[i]; + k_repscale.h_view[i] = repscale[i]; + k_setflag.h_view[i] = setflag[i]; } k_k.template modify(); k_theta0.template modify(); + k_repscale.template modify(); + k_setflag.template modify(); + + Kokkos::printf("*** AngleSPICAKokkos::coeff\n"); + } /* ---------------------------------------------------------------------- @@ -415,10 +430,14 @@ void AngleSPICAKokkos::read_restart(FILE *fp) for (int i = 1; i <= n; i++) { k_k.h_view[i] = k[i]; k_theta0.h_view[i] = theta0[i]; + k_repscale.h_view[i] = repscale[i]; + k_setflag.h_view[i] = setflag[i]; } k_k.template modify(); k_theta0.template modify(); + k_repscale.template modify(); + k_setflag.template modify(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h index 4670bdabf0..4865c684a2 100644 --- a/src/KOKKOS/angle_spica_kokkos.h +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -81,10 +81,11 @@ class AngleSPICAKokkos : public AngleSPICA { int nlocal,newton_bond; int eflag,vflag; - typename ArrayTypes::t_int_1d d_type; - - typename ArrayTypes::tdual_ffloat_1d k_k, k_theta0; - typename ArrayTypes::t_ffloat_1d d_k, d_theta0; + typename ArrayTypes::tdual_int_1d k_setflag; + typename ArrayTypes::t_int_1d d_setflag, d_type; + + typename ArrayTypes::tdual_ffloat_1d k_k, k_theta0, k_repscale; + typename ArrayTypes::t_ffloat_1d d_k, d_theta0, d_repscale; typename ArrayTypes::tdual_int_2d k_lj_type; typename ArrayTypes::t_int_2d d_lj_type; From 68231e9ba4cd0a1c05c89307c55e7f7d6be51f9f Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sun, 7 Jul 2024 05:49:03 -0400 Subject: [PATCH 044/169] minor formatting changes --- src/KOKKOS/angle_spica_kokkos.cpp | 2 +- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 10 +++++++--- src/KOKKOS/pair_lj_spica_kokkos.cpp | 3 --- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 782517e58a..227307c26f 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -371,7 +371,7 @@ void AngleSPICAKokkos::init_style() } int ntypes = atom->ntypes; - for (int i = 1; i <= ntypes; i++) + for (int i = 1; i <= ntypes; i++) { for (int j = 1; j <= ntypes; j++) { k_lj_type.h_view(i,j) = lj_type[i][j]; k_lj1.h_view(i,j) = lj1[i][j]; diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp index 1f7573836a..3a2271516e 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -12,6 +12,10 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + Contributing author: Mitch Murphy (alphataubio@gmail.com) +------------------------------------------------------------------------- */ + #include "pair_lj_spica_coul_long_kokkos.h" #include "atom_kokkos.h" @@ -101,20 +105,21 @@ void PairLJSPICACoulLongKokkos::compute(int eflag_in, int vflag_in) x = atomKK->k_x.view(); c_x = atomKK->k_x.view(); f = atomKK->k_f.view(); - q = atomKK->k_q.view(); type = atomKK->k_type.view(); nlocal = atom->nlocal; nall = atom->nlocal + atom->nghost; + newton_pair = force->newton_pair; special_lj[0] = force->special_lj[0]; special_lj[1] = force->special_lj[1]; special_lj[2] = force->special_lj[2]; special_lj[3] = force->special_lj[3]; + + q = atomKK->k_q.view(); special_coul[0] = force->special_coul[0]; special_coul[1] = force->special_coul[1]; special_coul[2] = force->special_coul[2]; special_coul[3] = force->special_coul[3]; qqrd2e = force->qqrd2e; - newton_pair = force->newton_pair; // loop over neighbors of my atoms @@ -303,7 +308,6 @@ void PairLJSPICACoulLongKokkos::allocate() PairLJSPICACoulLong::allocate(); int n = atom->ntypes; - memory->destroy(cutsq); memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); d_cutsq = k_cutsq.template view(); diff --git a/src/KOKKOS/pair_lj_spica_kokkos.cpp b/src/KOKKOS/pair_lj_spica_kokkos.cpp index 70376d1f63..872aed86ac 100644 --- a/src/KOKKOS/pair_lj_spica_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_kokkos.cpp @@ -70,7 +70,6 @@ void PairLJSPICAKokkos::compute(int eflag_in, int vflag_in) eflag = eflag_in; vflag = vflag_in; - if (neighflag == FULL) no_virial_fdotr_compute = 1; ev_init(eflag,vflag,0); @@ -273,8 +272,6 @@ double PairLJSPICAKokkos::init_one(int i, int j) return cutone; } - - namespace LAMMPS_NS { template class PairLJSPICAKokkos; #ifdef LMP_KOKKOS_GPU From 2459b7e9750ac39095ce6accc86150cb71708af0 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sun, 7 Jul 2024 05:58:27 -0400 Subject: [PATCH 045/169] oops --- src/KOKKOS/angle_spica_kokkos.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 227307c26f..0e89c13967 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -380,6 +380,7 @@ void AngleSPICAKokkos::init_style() k_lj4.h_view(i,j) = lj4[i][j]; k_rminsq.h_view(i,j) = rminsq[i][j]; k_emin.h_view(i,j) = emin[i][j]; + } } k_lj_type.template modify(); From bac8885739a0cd9431c3417704973d96e0208874 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sun, 7 Jul 2024 06:19:42 -0400 Subject: [PATCH 046/169] minor changes --- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 1 - src/KOKKOS/pair_lj_spica_kokkos.cpp | 11 +++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp index 3a2271516e..039f4eba0c 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -26,7 +26,6 @@ #include "force.h" #include "kokkos.h" #include "memory_kokkos.h" -#include "neigh_list.h" #include "neigh_request.h" #include "neighbor.h" #include "respa.h" diff --git a/src/KOKKOS/pair_lj_spica_kokkos.cpp b/src/KOKKOS/pair_lj_spica_kokkos.cpp index 872aed86ac..aa81911e9b 100644 --- a/src/KOKKOS/pair_lj_spica_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_kokkos.cpp @@ -107,6 +107,8 @@ void PairLJSPICAKokkos::compute(int eflag_in, int vflag_in) // loop over neighbors of my atoms + copymode = 1; + EV_FLOAT ev = pair_compute,void >(this,(NeighListKokkos*)list); if (eflag) eng_vdwl += ev.evdwl; @@ -131,8 +133,13 @@ void PairLJSPICAKokkos::compute(int eflag_in, int vflag_in) if (vflag_fdotr) pair_virial_fdotr_compute(this); + copymode = 0; } +/* ---------------------------------------------------------------------- + compute pair force between atoms i and j + ---------------------------------------------------------------------- */ + template template KOKKOS_INLINE_FUNCTION @@ -153,6 +160,10 @@ compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, c return a* ( lj_1*r6inv*b - lj_2 * r2inv); } +/* ---------------------------------------------------------------------- + compute pair potential energy between atoms i and j + ---------------------------------------------------------------------- */ + template template KOKKOS_INLINE_FUNCTION From 2cb3cb3323e4b99a9f202c3bce5984bed2208755 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sun, 7 Jul 2024 11:04:11 -0400 Subject: [PATCH 047/169] merging charmmfsw properly into spica (1st try) --- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 17 ++++++++++------- src/KOKKOS/pair_lj_spica_coul_long_kokkos.h | 14 ++++++++------ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp index 039f4eba0c..d833914e4e 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -65,8 +65,8 @@ PairLJSPICACoulLongKokkos::~PairLJSPICACoulLongKokkos() memoryKK->destroy_kokkos(k_eatom,eatom); memoryKK->destroy_kokkos(k_vatom,vatom); memoryKK->destroy_kokkos(k_cutsq,cutsq); - memoryKK->destroy_kokkos(k_cut_lj,cut_lj); - memoryKK->destroy_kokkos(k_cut_ljsq,cut_ljsq); + //memoryKK->destroy_kokkos(k_cut_lj,cut_lj); + //memoryKK->destroy_kokkos(k_cut_ljsq,cut_ljsq); } } @@ -311,9 +311,9 @@ void PairLJSPICACoulLongKokkos::allocate() memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); d_cutsq = k_cutsq.template view(); - d_cut_lj = typename AT::t_ffloat_2d("pair:cut_lj",n+1,n+1); - d_cut_ljsq = typename AT::t_ffloat_2d("pair:cut_ljsq",n+1,n+1); - d_cut_coulsq = typename AT::t_ffloat_2d("pair:cut_coulsq",n+1,n+1); + //d_cut_lj = typename AT::t_ffloat_2d("pair:cut_lj",n+1,n+1); + //d_cut_ljsq = typename AT::t_ffloat_2d("pair:cut_ljsq",n+1,n+1); + //d_cut_coulsq = typename AT::t_ffloat_2d("pair:cut_coulsq",n+1,n+1); k_params = Kokkos::DualView("PairLJSPICACoulLong::params",n+1,n+1); params = k_params.template view(); @@ -447,6 +447,9 @@ void PairLJSPICACoulLongKokkos::init_style() { PairLJSPICACoulLong::init_style(); + //Kokkos::deep_copy(d_cut_ljsq,cut_ljsq); + Kokkos::deep_copy(d_cut_coulsq,cut_coulsq); + // error if rRESPA with inner levels if (update->whichflag == 1 && utils::strmatch(update->integrate_style,"^respa")) { @@ -481,8 +484,8 @@ double PairLJSPICACoulLongKokkos::init_one(int i, int j) k_params.h_view(i,j).lj3 = lj3[i][j]; k_params.h_view(i,j).lj4 = lj4[i][j]; k_params.h_view(i,j).offset = offset[i][j]; - k_params.h_view(i,j).cutsq = cutone*cutone; - k_params.h_view(i,j).cut_lj = cut_lj[i][j]; + //k_params.h_view(i,j).cutsq = cutone*cutone; + //k_params.h_view(i,j).cut_lj = cut_lj[i][j]; k_params.h_view(i,j).cut_ljsq = cut_ljsq[i][j]; k_params.h_view(i,j).cut_coulsq = cut_coulsq; k_params.h_view(i,j).lj_type = lj_type[i][j]; diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h index 73ebf82b23..02c5d58599 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h @@ -49,12 +49,12 @@ class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { void init_style() override; double init_one(int, int) override; - struct params_lj_coul{ + struct params_lj_coul { KOKKOS_INLINE_FUNCTION - params_lj_coul() {cutsq=0;cut_coulsq=0;cut_lj=0;cut_ljsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;lj_type=0;}; + params_lj_coul() {cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;lj_type=0;}; KOKKOS_INLINE_FUNCTION - params_lj_coul(int /*i*/) {cutsq=0;cut_coulsq=0;cut_lj=0;cut_ljsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;lj_type=0;}; - F_FLOAT cutsq,cut_coulsq,cut_lj,cut_ljsq,lj1,lj2,lj3,lj4,offset; + params_lj_coul(int /*i*/) {cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;lj_type=0;}; + F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; int lj_type; }; @@ -102,8 +102,10 @@ class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { int newton_pair; - typename AT::tdual_ffloat_2d k_cutsq, k_cut_lj, k_cut_ljsq; - typename AT::t_ffloat_2d d_cutsq, d_cut_lj, d_cut_ljsq, d_cut_coulsq; + typename AT::tdual_ffloat_2d k_cutsq; + typename AT::t_ffloat_2d d_cutsq; + typename AT::t_ffloat_2d d_cut_ljsq; + typename AT::t_ffloat_2d d_cut_coulsq; typename AT::t_ffloat_1d_randomread d_rtable, d_drtable, d_ftable, d_dftable, From 9c37e0f0dfd3f6a4db78f11e3dfe1e558618b563 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sun, 7 Jul 2024 15:32:12 -0400 Subject: [PATCH 048/169] add charmmfsw example for kokkos gpu testing --- examples/charmmfsw/charmmff.cmap | 340 +++++++++++++++++++++++++++ examples/charmmfsw/data.charmmfsw.gz | Bin 0 -> 764185 bytes examples/charmmfsw/in.charmmfsw | 47 ++++ 3 files changed, 387 insertions(+) create mode 100644 examples/charmmfsw/charmmff.cmap create mode 100644 examples/charmmfsw/data.charmmfsw.gz create mode 100644 examples/charmmfsw/in.charmmfsw diff --git a/examples/charmmfsw/charmmff.cmap b/examples/charmmfsw/charmmff.cmap new file mode 100644 index 0000000000..6fea0c508f --- /dev/null +++ b/examples/charmmfsw/charmmff.cmap @@ -0,0 +1,340 @@ +#CMAP for C NH1 CT1 C NH1 CT1 C NH1; id=1 +#phi = -180.000000 + 0.130000 0.770000 0.970000 1.250000 2.120000 + 2.720000 2.090000 1.790000 0.780000 -0.690000 + 1.000000 -2.200000 -4.830000 -4.820000 -4.910000 + -3.590000 -2.770000 -2.780000 -2.450000 -2.350000 + -2.340000 -1.520000 -0.950000 -0.040000 + +#phi = -165.000000 + -0.130000 1.380000 1.580000 1.870000 2.400000 + 2.490000 2.440000 1.930000 1.090000 0.640000 + 0.260000 -2.800000 -4.010000 -4.140000 -3.420000 + -2.600000 -2.300000 -1.500000 -1.100000 -0.860000 + -0.640000 -0.210000 -1.080000 -1.120000 + +#phi = -150.000000 + 0.080000 1.420000 1.620000 2.050000 2.650000 + 2.720000 2.320000 1.990000 1.560000 2.460000 + -0.230000 -1.820000 -2.580000 -3.010000 -2.550000 + -1.890000 -1.350000 -0.730000 0.070000 -0.230000 + -0.770000 -1.280000 -1.290000 -0.820000 + +#phi = -135.000000 + 0.930000 1.520000 2.240000 2.550000 3.110000 + 2.920000 2.460000 2.190000 2.060000 1.850000 + 0.120000 -1.180000 -2.000000 -2.280000 -1.960000 + -1.340000 -0.930000 0.020000 0.310000 -0.520000 + -1.150000 -0.980000 -0.570000 -0.440000 + +#phi = -120.000000 + 1.360000 1.960000 2.700000 3.040000 3.700000 + 3.560000 2.640000 2.770000 2.720000 1.630000 + 0.710000 -0.790000 -2.120000 -2.630000 -1.800000 + -0.430000 -0.060000 0.440000 0.910000 -0.550000 + -0.970000 -0.860000 -0.250000 0.450000 + +#phi = -105.000000 + 2.050000 2.540000 2.820000 3.090000 3.370000 + 3.550000 3.070000 2.900000 2.960000 2.120000 + 0.910000 -0.820000 -2.090000 -2.240000 -1.460000 + 0.210000 0.080000 0.770000 1.040000 -0.120000 + -0.320000 -0.160000 0.310000 0.730000 + +#phi = -90.000000 + 1.450000 2.750000 2.740000 3.160000 3.450000 + 3.340000 3.180000 3.900000 3.340000 2.440000 + 0.910000 -0.610000 -1.510000 -1.620000 -0.960000 + -0.020000 0.420000 0.910000 0.460000 0.150000 + -0.070000 0.020000 0.280000 0.750000 + +#phi = -75.000000 + 1.380000 3.350000 2.350000 3.060000 3.810000 + 3.700000 3.580000 4.210000 3.540000 1.690000 + 0.100000 -0.680000 -0.120000 -0.430000 -0.600000 + 0.230000 0.420000 0.300000 0.550000 0.190000 + -0.250000 -0.190000 -0.250000 0.470000 + +#phi = -60.000000 + 0.240000 1.230000 1.720000 3.170000 4.210000 + 4.390000 4.280000 3.670000 2.270000 -0.480000 + -0.410000 -0.040000 -0.360000 -0.820000 -0.170000 + 0.140000 0.270000 0.320000 0.310000 -0.670000 + -0.950000 -1.530000 -1.480000 -0.200000 + +#phi = -45.000000 + -1.180000 0.080000 2.350000 4.210000 5.380000 + 5.390000 4.380000 2.460000 1.120000 0.110000 + 0.010000 -0.150000 -0.800000 -0.580000 0.080000 + 0.270000 -0.050000 0.380000 0.250000 -0.890000 + -1.580000 -1.950000 -1.980000 -2.000000 + +#phi = -30.000000 + -1.170000 1.070000 4.180000 6.740000 6.070000 + 4.810000 2.780000 1.320000 0.770000 -0.010000 + 0.280000 -0.710000 1.310000 1.520000 1.920000 + 2.220000 0.190000 0.530000 0.330000 -1.600000 + -2.850000 -3.550000 -3.280000 -2.660000 + +#phi = -15.000000 + 0.290000 5.590000 3.730000 3.220000 3.270000 + 2.520000 1.590000 1.380000 0.860000 0.660000 + 1.620000 0.850000 0.510000 0.740000 1.020000 + 1.620000 -0.340000 0.180000 -0.610000 -2.560000 + -3.790000 -3.810000 -3.160000 -1.750000 + +#phi = 0.000000 + 2.830000 0.790000 0.320000 0.480000 0.630000 + 0.980000 1.240000 1.670000 1.650000 2.520000 + 1.610000 0.780000 0.120000 0.070000 0.120000 + -1.570000 -1.210000 -1.930000 -2.600000 -3.790000 + -3.930000 -3.620000 -2.680000 -0.920000 + +#phi = 15.000000 + -0.780000 -1.910000 -2.050000 -1.850000 -1.050000 + 0.180000 1.680000 2.220000 1.360000 2.450000 + 1.440000 0.680000 -0.240000 -0.540000 -0.790000 + -2.180000 -3.210000 -4.350000 -3.940000 -3.910000 + -3.460000 -2.770000 1.760000 0.310000 + +#phi = 30.000000 + -2.960000 -3.480000 -3.440000 -2.400000 -1.130000 + 0.340000 1.430000 1.390000 0.970000 2.460000 + 1.520000 0.550000 -0.410000 -1.480000 -3.580000 + -4.130000 -4.560000 -4.440000 -3.580000 -2.960000 + -1.960000 -1.070000 -1.600000 -2.450000 + +#phi = 45.000000 + -4.020000 -3.840000 -3.370000 -2.330000 -0.980000 + 0.360000 0.810000 0.750000 0.500000 1.900000 + 0.770000 -0.420000 -3.290000 -3.910000 -4.520000 + -4.890000 -3.850000 -4.150000 -2.670000 -2.370000 + -2.860000 -3.420000 -3.670000 -3.600000 + +#phi = 60.000000 + -3.350000 -2.980000 -2.320000 -1.240000 -0.260000 + 0.720000 0.670000 0.440000 2.400000 1.630000 + -2.010000 -3.310000 -3.990000 -4.530000 -4.850000 + -3.770000 -3.940000 -3.890000 -2.610000 -3.510000 + -3.760000 -3.640000 -3.450000 -3.340000 + +#phi = 75.000000 + -2.250000 -1.640000 -1.010000 0.040000 0.640000 + 0.820000 0.520000 -0.010000 -0.370000 -1.190000 + -2.390000 -3.380000 -4.500000 -5.590000 -5.510000 + -4.940000 -3.830000 -3.840000 -3.700000 -4.150000 + -4.170000 -3.730000 -3.740000 -2.620000 + +#phi = 90.000000 + -1.720000 -1.180000 -0.430000 0.280000 0.810000 + 0.800000 0.480000 -0.340000 -0.790000 -1.770000 + -2.810000 -3.800000 -5.220000 -6.280000 -6.580000 + -5.640000 -5.060000 -4.020000 -4.150000 -4.470000 + -4.100000 -3.770000 -3.160000 -2.650000 + +#phi = 105.000000 + -1.850000 -1.090000 -0.450000 0.130000 1.010000 + 0.880000 0.490000 -0.220000 -0.860000 -1.680000 + -3.010000 -4.130000 -5.990000 -6.860000 -6.830000 + -5.850000 -3.860000 -4.860000 -4.910000 -4.720000 + -4.600000 -4.090000 -3.270000 -2.410000 + +#phi = 120.000000 + -1.970000 -1.120000 -0.540000 -0.150000 0.760000 + 1.040000 0.760000 0.310000 -0.330000 -1.870000 + -3.370000 -5.010000 -6.120000 -7.050000 -6.980000 + -3.700000 -4.510000 -5.090000 -5.420000 -4.850000 + -4.440000 -4.000000 -3.420000 -2.750000 + +#phi = 135.000000 + -2.110000 -1.170000 -0.320000 -0.010000 0.320000 + 1.090000 0.940000 0.630000 -0.170000 -1.830000 + -3.470000 -4.950000 -6.110000 -1.920000 -4.050000 + -5.000000 -5.000000 -4.840000 -4.890000 -4.300000 + -4.490000 -4.440000 -4.160000 -3.180000 + +#phi = 150.000000 + -1.760000 -0.400000 0.020000 0.360000 0.630000 + 1.260000 1.360000 0.950000 -0.070000 -1.480000 + -3.150000 1.840000 -1.760000 -5.090000 -5.740000 + -5.390000 -4.780000 -4.190000 -4.120000 -4.040000 + -4.130000 -4.030000 -4.030000 -2.940000 + +#phi = 165.000000 + -0.810000 -0.070000 0.380000 0.540000 1.280000 + 1.640000 1.700000 1.520000 0.630000 -1.090000 + -2.740000 -0.740000 -4.560000 -6.410000 -5.890000 + -5.140000 -4.190000 -3.670000 -3.840000 -3.560000 + -3.550000 -3.250000 -2.750000 -1.810000 + + +#CMAP for C NH1 CT2 C NH1 CT2 C NH1; id=2 +#phi = -180.000000 + 0.235350 0.182300 0.177200 0.396800 0.859400 + 1.489700 2.092500 2.297700 1.808600 0.696200 + -0.563300 -1.432700 -1.015100 1.426300 -0.564300 + 0.696200 1.808200 2.301700 2.092600 1.489100 + 0.859500 0.396900 0.176900 0.182400 + +#phi = -165.000000 + 0.020100 -0.203800 -0.269700 0.014200 0.620800 + 1.392400 2.046200 2.188200 1.683900 0.688500 + -0.373700 -0.703500 0.837800 3.704000 -0.730100 + 0.594100 1.713100 2.205800 2.026400 1.529800 + 1.027400 0.623800 0.348400 0.182800 + +#phi = -150.000000 + -0.533600 -0.807400 -0.804600 -0.379800 0.365300 + 1.168000 1.641000 1.618100 1.302200 0.615100 + 0.065700 0.738500 2.959500 -2.036600 -0.934600 + 0.407900 1.517000 1.984800 1.833100 1.435200 + 0.995600 0.562200 0.150600 -0.209000 + +#phi = -135.000000 + -1.208500 -1.429400 -1.319200 -0.817500 -0.112400 + 0.454400 0.737600 0.879300 0.850100 0.670300 + 0.943500 -2.651200 -2.829400 -2.199100 -1.065700 + 0.279600 1.322000 1.668300 1.521300 1.193900 + 0.765300 0.246000 -0.315500 -0.823200 + +#phi = -120.000000 + -1.789100 -1.965500 -1.860700 -1.447900 -0.896500 + -0.401000 -0.015100 0.321300 0.634600 0.976300 + -1.977500 -2.883200 -2.848500 -2.137900 -0.960300 + 0.308700 1.098100 1.245300 1.133600 0.881800 + 0.448200 -0.153900 -0.823700 -1.404300 + +#phi = -105.000000 + -2.246700 -2.487000 -2.473700 -2.135600 -1.577700 + -0.980600 -0.429100 0.144700 0.734000 -0.918300 + -2.299200 -2.882200 -2.668600 -1.847100 -0.719800 + 0.107000 0.496000 0.553500 0.584300 0.494000 + 0.098300 -0.529800 -1.237900 -1.840100 + +#phi = -90.000000 + -2.851100 -3.181100 -3.199500 -2.785300 -2.054300 + -1.242900 -0.476500 0.288100 -0.045300 -1.470600 + -2.558800 -2.869400 -2.450300 -1.582200 -0.930800 + -0.426400 -0.022700 0.000000 -0.097400 -0.136100 + -0.439600 -1.038600 -1.741000 -2.373200 + +#phi = -75.000000 + -3.961800 -4.268200 -4.109000 -3.364700 -2.252200 + -1.140400 -0.209800 0.487300 -0.746200 -2.127700 + -2.932100 -2.898500 -2.247900 -1.730400 -1.177200 + -0.448200 0.034900 -0.073300 -0.531600 -0.933300 + -1.360700 -2.009200 -2.745700 -3.424900 + +#phi = -60.000000 + -5.408000 -5.355100 -4.640100 -3.283200 -1.710200 + -0.423800 0.354400 -0.103700 -1.577700 -2.828300 + -3.151200 -2.649200 -2.183000 -1.761200 -0.981700 + -0.174700 0.262600 0.039200 -0.663000 -1.530700 + -2.478200 -3.465600 -4.334200 -5.011200 + +#phi = -45.000000 + -6.093200 -5.298400 -3.816620 -1.922530 -0.196160 + 0.768200 0.568500 -0.831300 -2.343900 -3.037100 + -2.663700 -2.191100 -2.022900 -1.438500 -0.649000 + 0.077000 0.441500 0.257500 -0.491100 -1.820600 + -3.473100 -4.895200 -5.790700 -6.205900 + +#phi = -30.000000 + -5.258225 -3.675795 -1.631110 0.430085 1.496470 + 0.318200 -0.555100 -1.695500 -2.434200 -2.192600 + -1.691300 -1.890000 -1.708500 -1.206300 -0.567400 + 0.054300 0.497200 0.599600 -0.171000 -2.137600 + -4.237000 -5.584100 -6.135100 -6.067000 + +#phi = -15.000000 + -3.161820 -0.902080 1.432450 -1.452885 -1.560780 + -1.665600 -1.783100 -1.755100 -1.329300 -0.731100 + -1.317000 -1.662800 -1.601200 -1.294900 -0.817300 + -0.197100 0.549500 0.850400 -0.689700 -2.819900 + -4.393000 -5.111500 -5.205690 -4.654785 + +#phi = 0.000000 + 0.034035 -2.349860 -3.412065 -3.620070 -3.450950 + -2.875650 -1.787800 -0.541250 0.410450 -0.372500 + -1.126850 -1.498450 -1.608700 -1.498450 -1.126850 + -0.372500 0.410450 -0.541250 -1.787800 -2.875650 + -3.450950 -3.620070 -3.412065 -2.349860 + +#phi = 15.000000 + -3.162345 -4.654785 -5.205690 -5.111500 -4.393000 + -2.819900 -0.689700 0.850400 0.549500 -0.197100 + -0.817300 -1.294900 -1.601200 -1.662800 -1.317000 + -0.731100 -1.329300 -1.755100 -1.783100 -1.665600 + -1.560780 -1.452885 1.432450 -0.902080 + +#phi = 30.000000 + -5.258220 -6.067000 -6.135100 -5.584100 -4.237000 + -2.137600 -0.171000 0.599600 0.497200 0.054300 + -0.567400 -1.206300 -1.708500 -1.890000 -1.691300 + -2.192600 -2.434200 -1.695500 -0.555100 0.318200 + 1.496470 0.430085 -1.631110 -3.675795 + +#phi = 45.000000 + -6.093300 -6.205900 -5.790700 -4.895200 -3.473100 + -1.820600 -0.491100 0.257500 0.441500 0.077000 + -0.649000 -1.438500 -2.022900 -2.191100 -2.663700 + -3.037100 -2.343900 -0.831300 0.568500 0.768200 + -0.196160 -1.922530 -3.816620 -5.298400 + +#phi = 60.000000 + -5.407500 -5.011200 -4.334200 -3.465600 -2.478200 + -1.530700 -0.663000 0.039200 0.262600 -0.174700 + -0.981700 -1.761200 -2.183000 -2.649200 -3.151200 + -2.828300 -1.577700 -0.103700 0.354400 -0.423800 + -1.710200 -3.283200 -4.640100 -5.355100 + +#phi = 75.000000 + -3.961900 -3.424900 -2.745700 -2.009200 -1.360700 + -0.933300 -0.531600 -0.073300 0.034900 -0.448200 + -1.177200 -1.730400 -2.247900 -2.898500 -2.932100 + -2.127700 -0.746200 0.487300 -0.209800 -1.140400 + -2.252200 -3.364700 -4.109000 -4.268200 + +#phi = 90.000000 + -2.854500 -2.373200 -1.741000 -1.038600 -0.439600 + -0.136100 -0.097400 0.000000 -0.022700 -0.426400 + -0.930800 -1.582200 -2.450300 -2.869400 -2.558800 + -1.470600 -0.045300 0.288100 -0.476500 -1.242900 + -2.054300 -2.785300 -3.199500 -3.181100 + +#phi = 105.000000 + -2.246400 -1.840100 -1.237900 -0.529800 0.098300 + 0.494000 0.584300 0.553500 0.496000 0.107000 + -0.719800 -1.847100 -2.668600 -2.882200 -2.299200 + -0.918300 0.734000 0.144700 -0.429100 -0.980600 + -1.577700 -2.135600 -2.473700 -2.487000 + +#phi = 120.000000 + -1.788800 -1.404300 -0.823700 -0.153900 0.448200 + 0.881800 1.133600 1.245300 1.098100 0.308700 + -0.960300 -2.137900 -2.848500 -2.883200 -1.977500 + 0.976300 0.634600 0.321300 -0.015100 -0.401000 + -0.896500 -1.447900 -1.860700 -1.965500 + +#phi = 135.000000 + -1.208900 -0.823200 -0.315500 0.246000 0.765300 + 1.193900 1.521300 1.668300 1.322000 0.279600 + -1.065700 -2.199100 -2.829400 -2.651200 0.943500 + 0.670300 0.850100 0.879300 0.737600 0.454400 + -0.112400 -0.817500 -1.319200 -1.429400 + +#phi = 150.000000 + -0.533400 -0.209000 0.150600 0.562200 0.995600 + 1.435200 1.833100 1.984800 1.517000 0.407900 + -0.934600 -2.036600 2.959500 0.738500 0.065700 + 0.615100 1.302200 1.618100 1.641000 1.168000 + 0.365300 -0.379800 -0.804600 -0.807400 + +#phi = 165.000000 + 0.019900 0.182800 0.348400 0.623800 1.027400 + 1.529800 2.026400 2.205800 1.713100 0.594100 + -0.730100 3.704000 0.837800 -0.703500 -0.373700 + 0.688500 1.683900 2.188200 2.046200 1.392400 + 0.620800 0.014200 -0.269700 -0.203800 + + diff --git a/examples/charmmfsw/data.charmmfsw.gz b/examples/charmmfsw/data.charmmfsw.gz new file mode 100644 index 0000000000000000000000000000000000000000..0fe7d2df0b12f2f669aa1f69bb92269561da39e6 GIT binary patch literal 764185 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

^-u@Tlz~a}D4(|>dCEL8@^AyFUm-Yjq?G|qH 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 f1pY66zIn{k!X3khJj<3^d=~nn- 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 z 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≦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 VmC5E!*CJ!4{|3vun{rFa8vud1-ar5V literal 0 HcmV?d00001 diff --git a/examples/charmmfsw/in.charmmfsw b/examples/charmmfsw/in.charmmfsw new file mode 100644 index 0000000000..2483596556 --- /dev/null +++ b/examples/charmmfsw/in.charmmfsw @@ -0,0 +1,47 @@ +#echo screen +#variable dcdfreq index 5000 +#variable outputname index step5_production +#variable inputname index step4.1_equilibration + +# charmmfsw example generated by https://charmm-gui.org/ +# from PDB structure 1HVN (https://www.rcsb.org/structure/1HVN) +# +# Dependencies: packages MOLECULE / KSPACE / RIGID +# To test with KOKKOS, use -sf kk + +units real +boundary p p p + +newton off +pair_style lj/charmmfsw/coul/long 10 12 +pair_modify mix arithmetic +kspace_style pppm 1e-6 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmmfsw +special_bonds charmm +improper_style harmonic +timestep 2 + +fix cmap all cmap charmmff.cmap +fix_modify cmap energy yes +read_data data.charmmfsw.gz fix cmap crossterm CMAP + +#variable laststep file ${inputname}.dump +#next laststep +#read_dump ${inputname}.dump ${laststep} x y z vx vy vz ix iy iz box yes replace yes format native + +neighbor 2 bin +neigh_modify delay 5 every 1 + +#include restraints/constraint_angletype +fix 1 all shake 1e-6 500 0 m 1.008 a 142 +fix 2 all npt temp 303.15 303.15 100.0 iso 0.9869233 0.9869233 1000 couple xyz mtk no pchain 0 + +thermo 100 +thermo_style custom step time spcpu cpuremain etotal pe ke temp press vol + +run 1000 + From 06e8f8eab2934bde107a56eedfd18021a7e81aa3 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sun, 7 Jul 2024 15:56:24 -0400 Subject: [PATCH 049/169] cleanup --- examples/charmmfsw/in.charmmfsw | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/examples/charmmfsw/in.charmmfsw b/examples/charmmfsw/in.charmmfsw index 2483596556..f1e3f05121 100644 --- a/examples/charmmfsw/in.charmmfsw +++ b/examples/charmmfsw/in.charmmfsw @@ -1,13 +1,8 @@ -#echo screen -#variable dcdfreq index 5000 -#variable outputname index step5_production -#variable inputname index step4.1_equilibration - # charmmfsw example generated by https://charmm-gui.org/ # from PDB structure 1HVN (https://www.rcsb.org/structure/1HVN) # # Dependencies: packages MOLECULE / KSPACE / RIGID -# To test with KOKKOS, use -sf kk +# To test with KOKKOS: lmp -k on g 1 -sf kk -pk kokkos neigh half -in in.charmmfsw units real boundary p p p @@ -29,14 +24,9 @@ fix cmap all cmap charmmff.cmap fix_modify cmap energy yes read_data data.charmmfsw.gz fix cmap crossterm CMAP -#variable laststep file ${inputname}.dump -#next laststep -#read_dump ${inputname}.dump ${laststep} x y z vx vy vz ix iy iz box yes replace yes format native - neighbor 2 bin neigh_modify delay 5 every 1 -#include restraints/constraint_angletype fix 1 all shake 1e-6 500 0 m 1.008 a 142 fix 2 all npt temp 303.15 303.15 100.0 iso 0.9869233 0.9869233 1000 couple xyz mtk no pchain 0 From c77d2d952d9f6acffde8b3fc9b39ac7fc60ab591 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sun, 7 Jul 2024 16:55:39 -0400 Subject: [PATCH 050/169] Update pair_lj_charmmfsw_coul_long_kokkos.cpp --- src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.cpp index c07a089a35..23247bf20d 100644 --- a/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.cpp @@ -463,7 +463,6 @@ double PairLJCharmmfswCoulLongKokkos::init_one(int i, int j) k_params.h_view(i,j).lj2 = lj2[i][j]; k_params.h_view(i,j).lj3 = lj3[i][j]; k_params.h_view(i,j).lj4 = lj4[i][j]; - //k_params.h_view(i,j).offset = offset[i][j]; k_params.h_view(i,j).cut_ljsq = cut_ljsq; k_params.h_view(i,j).cut_coulsq = cut_coulsq; From b1a4f08dd24da6b3c7e988612e7fd2a95d7d92a7 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sun, 7 Jul 2024 16:56:00 -0400 Subject: [PATCH 051/169] Update in.charmmfsw --- examples/charmmfsw/in.charmmfsw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/charmmfsw/in.charmmfsw b/examples/charmmfsw/in.charmmfsw index f1e3f05121..fae489e8d7 100644 --- a/examples/charmmfsw/in.charmmfsw +++ b/examples/charmmfsw/in.charmmfsw @@ -31,7 +31,7 @@ fix 1 all shake 1e-6 500 0 m 1.008 a 142 fix 2 all npt temp 303.15 303.15 100.0 iso 0.9869233 0.9869233 1000 couple xyz mtk no pchain 0 thermo 100 -thermo_style custom step time spcpu cpuremain etotal pe ke temp press vol +thermo_style custom step time spcpu cpuremain etotal evdwl ecoul elong edihed pe ke temp press vol run 1000 From aaf25602e3ffc46477c40853966c4f26b522d4c1 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sun, 7 Jul 2024 17:11:18 -0400 Subject: [PATCH 052/169] add Q_MASK to datamask_read --- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp index d833914e4e..a205218a82 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -50,7 +50,7 @@ PairLJSPICACoulLongKokkos::PairLJSPICACoulLongKokkos(LAMMPS *lmp) : kokkosable = 1; atomKK = (AtomKokkos *) atom; execution_space = ExecutionSpaceFromDevice::space; - datamask_read = X_MASK | F_MASK | TYPE_MASK | ENERGY_MASK | VIRIAL_MASK; + datamask_read = X_MASK | F_MASK | TYPE_MASK | Q_MASK | ENERGY_MASK | VIRIAL_MASK; datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; } From 4bc97dc812375f5b157b6514f4362f8fac4cf02e Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Mon, 8 Jul 2024 05:01:23 -0600 Subject: [PATCH 053/169] fix topo labels --- src/KOKKOS/dihedral_hybrid_kokkos.cpp | 96 ++++++++++----------- src/KOKKOS/dihedral_hybrid_kokkos.h | 2 +- src/KOKKOS/improper_hybrid_kokkos.cpp | 117 +++++++++++++------------- src/KOKKOS/improper_hybrid_kokkos.h | 22 ++--- 4 files changed, 121 insertions(+), 116 deletions(-) diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.cpp b/src/KOKKOS/dihedral_hybrid_kokkos.cpp index 4adbb7f18b..d0b9f7d646 100644 --- a/src/KOKKOS/dihedral_hybrid_kokkos.cpp +++ b/src/KOKKOS/dihedral_hybrid_kokkos.cpp @@ -11,7 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -#include "bond_hybrid_kokkos.h" +#include "dihedral_hybrid_kokkos.h" #include "atom_kokkos.h" #include "atom_masks.h" @@ -54,69 +54,71 @@ DihedralHybridKokkos::~DihedralHybridKokkos() void DihedralHybridKokkos::compute(int eflag, int vflag) { - // save ptrs to original bondlist + // save ptrs to original dihedrallist - int nbondlist_orig = neighbor->nbondlist; - neighborKK->k_bondlist.sync_device(); - auto k_bondlist_orig = neighborKK->k_bondlist; - auto d_bondlist_orig = k_bondlist_orig.d_view; - auto d_nbondlist = k_nbondlist.d_view; - auto h_nbondlist = k_nbondlist.h_view; + int ndihedrallist_orig = neighbor->ndihedrallist; + neighborKK->k_dihedrallist.sync_device(); + auto k_dihedrallist_orig = neighborKK->k_dihedrallist; + auto d_dihedrallist_orig = k_dihedrallist_orig.d_view; + auto d_ndihedrallist = k_ndihedrallist.d_view; + auto h_ndihedrallist = k_ndihedrallist.h_view; - // if this is re-neighbor step, create sub-style bondlists - // nbondlist[] = length of each sub-style list - // realloc sub-style bondlist if necessary - // load sub-style bondlist with 3 values from original bondlist + // if this is re-neighbor step, create sub-style dihedrallists + // ndihedrallist[] = length of each sub-style list + // realloc sub-style dihedrallist if necessary + // load sub-style dihedrallist with 3 values from original dihedrallist if (neighbor->ago == 0) { - Kokkos::deep_copy(d_nbondlist,0); + Kokkos::deep_copy(d_ndihedrallist,0); k_map.sync_device(); auto d_map = k_map.d_view; - Kokkos::parallel_for(nbondlist_orig,LAMMPS_LAMBDA(int i) { - const int m = d_map[d_bondlist_orig(i,2)]; - if (m >= 0) Kokkos::atomic_increment(&d_nbondlist[m]); + Kokkos::parallel_for(ndihedrallist_orig,LAMMPS_LAMBDA(int i) { + const int m = d_map[d_dihedrallist_orig(i,2)]; + if (m >= 0) Kokkos::atomic_increment(&d_ndihedrallist[m]); }); - k_nbondlist.modify_device(); - k_nbondlist.sync_host(); + k_ndihedrallist.modify_device(); + k_ndihedrallist.sync_host(); - maxbond_all = 0; + maxdihedral_all = 0; for (int m = 0; m < nstyles; m++) - if (h_nbondlist[m] > maxbond_all) - maxbond_all = h_nbondlist[m] + EXTRA; + if (h_ndihedrallist[m] > maxdihedral_all) + maxdihedral_all = h_ndihedrallist[m] + EXTRA; - if (k_bondlist.d_view.extent(1) < maxbond_all) - MemKK::realloc_kokkos(k_bondlist, "bond_hybrid:bondlist", nstyles, maxbond_all, 3); - auto d_bondlist = k_bondlist.d_view; + if (k_dihedrallist.d_view.extent(1) < maxdihedral_all) + MemKK::realloc_kokkos(k_dihedrallist, "dihedral_hybrid:dihedrallist", nstyles, maxdihedral_all, 3); + auto d_dihedrallist = k_dihedrallist.d_view; - Kokkos::deep_copy(d_nbondlist,0); + Kokkos::deep_copy(d_ndihedrallist,0); - Kokkos::parallel_for(nbondlist_orig,LAMMPS_LAMBDA(int i) { - const int m = d_map[d_bondlist_orig(i,2)]; + Kokkos::parallel_for(ndihedrallist_orig,LAMMPS_LAMBDA(int i) { + const int m = d_map[d_dihedrallist_orig(i,2)]; if (m < 0) return; - const int n = Kokkos::atomic_fetch_add(&d_nbondlist[m],1); - d_bondlist(m,n,0) = d_bondlist_orig(i,0); - d_bondlist(m,n,1) = d_bondlist_orig(i,1); - d_bondlist(m,n,2) = d_bondlist_orig(i,2); + const int n = Kokkos::atomic_fetch_add(&d_ndihedrallist[m],1); + d_dihedrallist(m,n,0) = d_dihedrallist_orig(i,0); + d_dihedrallist(m,n,1) = d_dihedrallist_orig(i,1); + d_dihedrallist(m,n,2) = d_dihedrallist_orig(i,2); + d_dihedrallist(m,n,3) = d_dihedrallist_orig(i,3); + d_dihedrallist(m,n,4) = d_dihedrallist_orig(i,4); }); } // call each sub-style's compute function - // set neighbor->bondlist to sub-style bondlist before call + // set neighbor->dihedrallist to sub-style dihedrallist before call // accumulate sub-style global/peratom energy/virial in hybrid ev_init(eflag, vflag); - k_nbondlist.modify_device(); - k_nbondlist.sync_host(); + k_ndihedrallist.modify_device(); + k_ndihedrallist.sync_host(); for (int m = 0; m < nstyles; m++) { - neighbor->nbondlist = h_nbondlist[m]; - auto k_bondlist_m = Kokkos::subview(k_bondlist,m,Kokkos::ALL,Kokkos::ALL); - k_bondlist_m.modify_device(); - neighborKK->k_bondlist = k_bondlist_m; + neighbor->ndihedrallist = h_ndihedrallist[m]; + auto k_dihedrallist_m = Kokkos::subview(k_dihedrallist,m,Kokkos::ALL,Kokkos::ALL); + k_dihedrallist_m.modify_device(); + neighborKK->k_dihedrallist = k_dihedrallist_m; auto style = styles[m]; atomKK->sync(style->execution_space,style->datamask_read); @@ -142,10 +144,10 @@ void DihedralHybridKokkos::compute(int eflag, int vflag) } } - // restore ptrs to original bondlist + // restore ptrs to original dihedrallist - neighbor->nbondlist = nbondlist_orig; - neighborKK->k_bondlist = k_bondlist_orig; + neighbor->ndihedrallist = ndihedrallist_orig; + neighborKK->k_dihedrallist = k_dihedrallist_orig; } /* ---------------------------------------------------------------------- */ @@ -153,13 +155,13 @@ void DihedralHybridKokkos::compute(int eflag, int vflag) void DihedralHybridKokkos::allocate() { allocated = 1; - int n = atom->nbondtypes; + int n = atom->ndihedraltypes; - memoryKK->create_kokkos(k_map, map, n + 1, "bond:map"); - memory->create(setflag, n + 1, "bond:setflag"); + memoryKK->create_kokkos(k_map, map, n + 1, "dihedral:map"); + memory->create(setflag, n + 1, "dihedral:setflag"); for (int i = 1; i <= n; i++) setflag[i] = 0; - k_nbondlist = DAT::tdual_int_1d("bond:nbondlist", nstyles); + k_ndihedrallist = DAT::tdual_int_1d("dihedral:ndihedrallist", nstyles); } /* ---------------------------------------------------------------------- */ @@ -193,7 +195,7 @@ void DihedralHybridKokkos::init_style() for (int m = 0; m < nstyles; m++) { if (!styles[m]->kokkosable) - error->all(FLERR,"Must use only Kokkos-enabled bond styles with bond_style hybrid/kk"); + error->all(FLERR,"Must use only Kokkos-enabled dihedral styles with dihedral_style hybrid/kk"); if (styles[m]->execution_space == Host) lmp->kokkos->allow_overlap = 0; @@ -208,7 +210,7 @@ double DihedralHybridKokkos::memory_usage() { double bytes = (double) maxeatom * sizeof(double); bytes += (double) maxvatom * 6 * sizeof(double); - for (int m = 0; m < nstyles; m++) bytes += (double) maxbond_all * 3 * sizeof(int); + for (int m = 0; m < nstyles; m++) bytes += (double) maxdihedral_all * 3 * sizeof(int); for (int m = 0; m < nstyles; m++) if (styles[m]) bytes += styles[m]->memory_usage(); return bytes; diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.h b/src/KOKKOS/dihedral_hybrid_kokkos.h index 8b090d46c2..29a3d29689 100644 --- a/src/KOKKOS/dihedral_hybrid_kokkos.h +++ b/src/KOKKOS/dihedral_hybrid_kokkos.h @@ -23,7 +23,7 @@ DihedralStyle(hybrid/kk/host,DihedralHybridKokkos); #ifndef LMP_BOND_HYBRID_KOKKOS_H #define LMP_BOND_HYBRID_KOKKOS_H -#include "bond_hybrid.h" +#include "dihedral_hybrid.h" #include "kokkos_type.h" namespace LAMMPS_NS { diff --git a/src/KOKKOS/improper_hybrid_kokkos.cpp b/src/KOKKOS/improper_hybrid_kokkos.cpp index d63ebccac6..4d571b3eae 100644 --- a/src/KOKKOS/improper_hybrid_kokkos.cpp +++ b/src/KOKKOS/improper_hybrid_kokkos.cpp @@ -11,7 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -#include "bond_hybrid_kokkos.h" +#include "improper_hybrid_kokkos.h" #include "atom_kokkos.h" #include "atom_masks.h" @@ -30,7 +30,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -BondHybridKokkos::BondHybridKokkos(LAMMPS *lmp) : BondHybrid(lmp) +ImproperHybridKokkos::ImproperHybridKokkos(LAMMPS *lmp) : ImproperHybrid(lmp) { kokkosable = 1; @@ -45,78 +45,81 @@ BondHybridKokkos::BondHybridKokkos(LAMMPS *lmp) : BondHybrid(lmp) /* ---------------------------------------------------------------------- */ -BondHybridKokkos::~BondHybridKokkos() +ImproperHybridKokkos::~ImproperHybridKokkos() { deallocate(); } /* ---------------------------------------------------------------------- */ -void BondHybridKokkos::compute(int eflag, int vflag) +void ImproperHybridKokkos::compute(int eflag, int vflag) { - // save ptrs to original bondlist - int nbondlist_orig = neighbor->nbondlist; - neighborKK->k_bondlist.sync_device(); - auto k_bondlist_orig = neighborKK->k_bondlist; - auto d_bondlist_orig = k_bondlist_orig.d_view; - auto d_nbondlist = k_nbondlist.d_view; - auto h_nbondlist = k_nbondlist.h_view; + // save ptrs to original improperlist - // if this is re-neighbor step, create sub-style bondlists - // nbondlist[] = length of each sub-style list - // realloc sub-style bondlist if necessary - // load sub-style bondlist with 3 values from original bondlist + int nimproperlist_orig = neighbor->nimproperlist; + neighborKK->k_improperlist.sync_device(); + auto k_improperlist_orig = neighborKK->k_improperlist; + auto d_improperlist_orig = k_improperlist_orig.d_view; + auto d_nimproperlist = k_nimproperlist.d_view; + auto h_nimproperlist = k_nimproperlist.h_view; + + // if this is re-neighbor step, create sub-style improperlists + // nimproperlist[] = length of each sub-style list + // realloc sub-style improperlist if necessary + // load sub-style improperlist with 3 values from original improperlist if (neighbor->ago == 0) { - Kokkos::deep_copy(d_nbondlist,0); + Kokkos::deep_copy(d_nimproperlist,0); k_map.sync_device(); auto d_map = k_map.d_view; - Kokkos::parallel_for(nbondlist_orig,LAMMPS_LAMBDA(int i) { - const int m = d_map[d_bondlist_orig(i,2)]; - if (m >= 0) Kokkos::atomic_increment(&d_nbondlist[m]); + Kokkos::parallel_for(nimproperlist_orig,LAMMPS_LAMBDA(int i) { + const int m = d_map[d_improperlist_orig(i,2)]; + if (m >= 0) Kokkos::atomic_increment(&d_nimproperlist[m]); }); - k_nbondlist.modify_device(); - k_nbondlist.sync_host(); + k_nimproperlist.modify_device(); + k_nimproperlist.sync_host(); - maxbond_all = 0; + maximproper_all = 0; for (int m = 0; m < nstyles; m++) - if (h_nbondlist[m] > maxbond_all) - maxbond_all = h_nbondlist[m] + EXTRA; + if (h_nimproperlist[m] > maximproper_all) + maximproper_all = h_nimproperlist[m] + EXTRA; - if (k_bondlist.d_view.extent(1) < maxbond_all) - MemKK::realloc_kokkos(k_bondlist, "bond_hybrid:bondlist", nstyles, maxbond_all, 3); - auto d_bondlist = k_bondlist.d_view; + if (k_improperlist.d_view.extent(1) < maximproper_all) + MemKK::realloc_kokkos(k_improperlist, "improper_hybrid:improperlist", nstyles, maximproper_all, 3); + auto d_improperlist = k_improperlist.d_view; - Kokkos::deep_copy(d_nbondlist,0); + Kokkos::deep_copy(d_nimproperlist,0); - Kokkos::parallel_for(nbondlist_orig,LAMMPS_LAMBDA(int i) { - const int m = d_map[d_bondlist_orig(i,2)]; + Kokkos::parallel_for(nimproperlist_orig,LAMMPS_LAMBDA(int i) { + const int m = d_map[d_improperlist_orig(i,2)]; if (m < 0) return; - const int n = Kokkos::atomic_fetch_add(&d_nbondlist[m],1); - d_bondlist(m,n,0) = d_bondlist_orig(i,0); - d_bondlist(m,n,1) = d_bondlist_orig(i,1); - d_bondlist(m,n,2) = d_bondlist_orig(i,2); + const int n = Kokkos::atomic_fetch_add(&d_nimproperlist[m],1); + d_improperlist(m,n,0) = d_improperlist_orig(i,0); + d_improperlist(m,n,1) = d_improperlist_orig(i,1); + d_improperlist(m,n,2) = d_improperlist_orig(i,2); + d_improperlist(m,n,3) = d_improperlist_orig(i,3); + d_improperlist(m,n,4) = d_improperlist_orig(i,4); }); } // call each sub-style's compute function - // set neighbor->bondlist to sub-style bondlist before call + // set neighbor->improperlist to sub-style improperlist before call // accumulate sub-style global/peratom energy/virial in hybrid ev_init(eflag, vflag); - k_nbondlist.modify_device(); - k_nbondlist.sync_host(); + k_nimproperlist.modify_device(); + k_nimproperlist.sync_host(); for (int m = 0; m < nstyles; m++) { - neighbor->nbondlist = h_nbondlist[m]; - auto k_bondlist_m = Kokkos::subview(k_bondlist,m,Kokkos::ALL,Kokkos::ALL); - k_bondlist_m.modify_device(); - neighborKK->k_bondlist = k_bondlist_m; + neighbor->nimproperlist = h_nimproperlist[m]; + auto k_improperlist_m = Kokkos::subview(k_improperlist,m,Kokkos::ALL,Kokkos::ALL); + k_improperlist_m.modify_device(); + neighborKK->k_improperlist = k_improperlist_m; auto style = styles[m]; atomKK->sync(style->execution_space,style->datamask_read); @@ -142,29 +145,29 @@ void BondHybridKokkos::compute(int eflag, int vflag) } } - // restore ptrs to original bondlist + // restore ptrs to original improperlist - neighbor->nbondlist = nbondlist_orig; - neighborKK->k_bondlist = k_bondlist_orig; + neighbor->nimproperlist = nimproperlist_orig; + neighborKK->k_improperlist = k_improperlist_orig; } /* ---------------------------------------------------------------------- */ -void BondHybridKokkos::allocate() +void ImproperHybridKokkos::allocate() { allocated = 1; - int n = atom->nbondtypes; + int n = atom->nimpropertypes; - memoryKK->create_kokkos(k_map, map, n + 1, "bond:map"); - memory->create(setflag, n + 1, "bond:setflag"); + memoryKK->create_kokkos(k_map, map, n + 1, "improper:map"); + memory->create(setflag, n + 1, "improper:setflag"); for (int i = 1; i <= n; i++) setflag[i] = 0; - k_nbondlist = DAT::tdual_int_1d("bond:nbondlist", nstyles); + k_nimproperlist = DAT::tdual_int_1d("improper:nimproperlist", nstyles); } /* ---------------------------------------------------------------------- */ -void BondHybridKokkos::deallocate() +void ImproperHybridKokkos::deallocate() { if (!allocated) return; @@ -178,22 +181,22 @@ void BondHybridKokkos::deallocate() set coeffs for one type ---------------------------------------------------------------------- */ -void BondHybridKokkos::coeff(int narg, char **arg) +void ImproperHybridKokkos::coeff(int narg, char **arg) { - BondHybrid::coeff(narg,arg); + ImproperHybrid::coeff(narg,arg); k_map.modify_host(); } /* ---------------------------------------------------------------------- */ -void BondHybridKokkos::init_style() +void ImproperHybridKokkos::init_style() { - BondHybrid::init_style(); + ImproperHybrid::init_style(); for (int m = 0; m < nstyles; m++) { if (!styles[m]->kokkosable) - error->all(FLERR,"Must use only Kokkos-enabled bond styles with bond_style hybrid/kk"); + error->all(FLERR,"Must use only Kokkos-enabled improper styles with improper_style hybrid/kk"); if (styles[m]->execution_space == Host) lmp->kokkos->allow_overlap = 0; @@ -204,11 +207,11 @@ void BondHybridKokkos::init_style() memory usage ------------------------------------------------------------------------- */ -double BondHybridKokkos::memory_usage() +double ImproperHybridKokkos::memory_usage() { double bytes = (double) maxeatom * sizeof(double); bytes += (double) maxvatom * 6 * sizeof(double); - for (int m = 0; m < nstyles; m++) bytes += (double) maxbond_all * 3 * sizeof(int); + for (int m = 0; m < nstyles; m++) bytes += (double) maximproper_all * 3 * sizeof(int); for (int m = 0; m < nstyles; m++) if (styles[m]) bytes += styles[m]->memory_usage(); return bytes; diff --git a/src/KOKKOS/improper_hybrid_kokkos.h b/src/KOKKOS/improper_hybrid_kokkos.h index 217beaca5f..f2a80f6a0c 100644 --- a/src/KOKKOS/improper_hybrid_kokkos.h +++ b/src/KOKKOS/improper_hybrid_kokkos.h @@ -13,9 +13,9 @@ #ifdef BOND_CLASS // clang-format off -BondStyle(hybrid/kk,BondHybridKokkos); -BondStyle(hybrid/kk/device,BondHybridKokkos); -BondStyle(hybrid/kk/host,BondHybridKokkos); +ImproperStyle(hybrid/kk,ImproperHybridKokkos); +ImproperStyle(hybrid/kk/device,ImproperHybridKokkos); +ImproperStyle(hybrid/kk/host,ImproperHybridKokkos); // clang-format on #else @@ -23,30 +23,30 @@ BondStyle(hybrid/kk/host,BondHybridKokkos); #ifndef LMP_BOND_HYBRID_KOKKOS_H #define LMP_BOND_HYBRID_KOKKOS_H -#include "bond_hybrid.h" +#include "improper_hybrid.h" #include "kokkos_type.h" namespace LAMMPS_NS { -class BondHybridKokkos : public BondHybrid { +class ImproperHybridKokkos : public ImproperHybrid { friend class Force; public: - BondHybridKokkos(class LAMMPS *); - ~BondHybridKokkos() override; + ImproperHybridKokkos(class LAMMPS *); + ~ImproperHybridKokkos() override; void compute(int, int) override; void coeff(int, char **) override; void init_style() override; double memory_usage() override; private: - int maxbond_all; + int maximproper_all; class NeighborKokkos *neighborKK; - DAT::tdual_int_1d k_map; // which style each bond type points to - DAT::tdual_int_1d k_nbondlist; // # of bonds in sub-style bondlists - DAT::tdual_int_3d k_bondlist; // bondlist for each sub-style + DAT::tdual_int_1d k_map; // which style each improper type points to + DAT::tdual_int_1d k_nimproperlist; // # of impropers in sub-style improperlists + DAT::tdual_int_3d k_improperlist; // improperlist for each sub-style void allocate() override; void deallocate() override; From 7673a904d148854ba2ce26e41b27dbf285c7ea51 Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Mon, 8 Jul 2024 05:05:06 -0600 Subject: [PATCH 054/169] update variable for consistency w/ non-kokkos --- src/KOKKOS/angle_hybrid_kokkos.cpp | 8 ++++---- src/KOKKOS/bond_hybrid_kokkos.cpp | 8 ++++---- src/KOKKOS/dihedral_hybrid_kokkos.cpp | 8 ++++---- src/KOKKOS/improper_hybrid_kokkos.cpp | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/KOKKOS/angle_hybrid_kokkos.cpp b/src/KOKKOS/angle_hybrid_kokkos.cpp index 8293e31b91..4f2e26746c 100644 --- a/src/KOKKOS/angle_hybrid_kokkos.cpp +++ b/src/KOKKOS/angle_hybrid_kokkos.cpp @@ -154,11 +154,11 @@ void AngleHybridKokkos::compute(int eflag, int vflag) void AngleHybridKokkos::allocate() { allocated = 1; - int n = atom->nangletypes; + int np1 = atom->nangletypes + 1; - memoryKK->create_kokkos(k_map, map, n + 1, "angle:map"); - memory->create(setflag, n + 1, "angle:setflag"); - for (int i = 1; i <= n; i++) setflag[i] = 0; + memoryKK->create_kokkos(k_map, map, np1, "angle:map"); + memory->create(setflag, np1, "angle:setflag"); + for (int i = 1; i <= np1; i++) setflag[i] = 0; k_nanglelist = DAT::tdual_int_1d("angle:nanglelist", nstyles); } diff --git a/src/KOKKOS/bond_hybrid_kokkos.cpp b/src/KOKKOS/bond_hybrid_kokkos.cpp index d63ebccac6..8a391808c9 100644 --- a/src/KOKKOS/bond_hybrid_kokkos.cpp +++ b/src/KOKKOS/bond_hybrid_kokkos.cpp @@ -153,11 +153,11 @@ void BondHybridKokkos::compute(int eflag, int vflag) void BondHybridKokkos::allocate() { allocated = 1; - int n = atom->nbondtypes; + int np1 = atom->nbondtypes + 1; - memoryKK->create_kokkos(k_map, map, n + 1, "bond:map"); - memory->create(setflag, n + 1, "bond:setflag"); - for (int i = 1; i <= n; i++) setflag[i] = 0; + memoryKK->create_kokkos(k_map, map, np1, "bond:map"); + memory->create(setflag, np1, "bond:setflag"); + for (int i = 1; i <= np1; i++) setflag[i] = 0; k_nbondlist = DAT::tdual_int_1d("bond:nbondlist", nstyles); } diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.cpp b/src/KOKKOS/dihedral_hybrid_kokkos.cpp index d0b9f7d646..4570f316a4 100644 --- a/src/KOKKOS/dihedral_hybrid_kokkos.cpp +++ b/src/KOKKOS/dihedral_hybrid_kokkos.cpp @@ -155,11 +155,11 @@ void DihedralHybridKokkos::compute(int eflag, int vflag) void DihedralHybridKokkos::allocate() { allocated = 1; - int n = atom->ndihedraltypes; + int np1 = atom->ndihedraltypes + 1; - memoryKK->create_kokkos(k_map, map, n + 1, "dihedral:map"); - memory->create(setflag, n + 1, "dihedral:setflag"); - for (int i = 1; i <= n; i++) setflag[i] = 0; + memoryKK->create_kokkos(k_map, map, np1, "dihedral:map"); + memory->create(setflag, np1, "dihedral:setflag"); + for (int i = 1; i <= np1; i++) setflag[i] = 0; k_ndihedrallist = DAT::tdual_int_1d("dihedral:ndihedrallist", nstyles); } diff --git a/src/KOKKOS/improper_hybrid_kokkos.cpp b/src/KOKKOS/improper_hybrid_kokkos.cpp index 4d571b3eae..1384d8648d 100644 --- a/src/KOKKOS/improper_hybrid_kokkos.cpp +++ b/src/KOKKOS/improper_hybrid_kokkos.cpp @@ -156,11 +156,11 @@ void ImproperHybridKokkos::compute(int eflag, int vflag) void ImproperHybridKokkos::allocate() { allocated = 1; - int n = atom->nimpropertypes; + int np1 = atom->nimpropertypes + 1; - memoryKK->create_kokkos(k_map, map, n + 1, "improper:map"); - memory->create(setflag, n + 1, "improper:setflag"); - for (int i = 1; i <= n; i++) setflag[i] = 0; + memoryKK->create_kokkos(k_map, map, np1, "improper:map"); + memory->create(setflag, np1, "improper:setflag"); + for (int i = 1; i <= np1; i++) setflag[i] = 0; k_nimproperlist = DAT::tdual_int_1d("improper:nimproperlist", nstyles); } From d0e5640a75c0659d818d47c0bf80c0a327eb8d74 Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Mon, 8 Jul 2024 05:05:36 -0600 Subject: [PATCH 055/169] add cvflag check, update mem usage --- src/KOKKOS/angle_hybrid_kokkos.cpp | 10 +++++++++- src/KOKKOS/dihedral_hybrid_kokkos.cpp | 10 +++++++++- src/KOKKOS/improper_hybrid_kokkos.cpp | 10 +++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/KOKKOS/angle_hybrid_kokkos.cpp b/src/KOKKOS/angle_hybrid_kokkos.cpp index 4f2e26746c..ffcc20538f 100644 --- a/src/KOKKOS/angle_hybrid_kokkos.cpp +++ b/src/KOKKOS/angle_hybrid_kokkos.cpp @@ -141,6 +141,13 @@ void AngleHybridKokkos::compute(int eflag, int vflag) for (int i = 0; i < n; i++) for (int j = 0; j < 6; j++) vatom[i][j] += vatom_substyle[i][j]; } + if (cvflag_atom) { + int n = atom->nlocal; + if (force->newton_bond) n += atom->nghost; + double **cvatom_substyle = styles[m]->cvatom; + for (int i = 0; i < n; i++) + for (int j = 0; j < 9; j++) cvatom[i][j] += cvatom_substyle[i][j]; + } } // restore ptrs to original anglelist @@ -209,7 +216,8 @@ double AngleHybridKokkos::memory_usage() { double bytes = (double) maxeatom * sizeof(double); bytes += (double) maxvatom * 6 * sizeof(double); - for (int m = 0; m < nstyles; m++) bytes += (double) maxangle_all * 3 * sizeof(int); + bytes += (double) maxcvatom * 9 * sizeof(double); + for (int m = 0; m < nstyles; m++) bytes += (double) maxangle_all * 4 * sizeof(int); for (int m = 0; m < nstyles; m++) if (styles[m]) bytes += styles[m]->memory_usage(); return bytes; diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.cpp b/src/KOKKOS/dihedral_hybrid_kokkos.cpp index 4570f316a4..5e7c9ac8b8 100644 --- a/src/KOKKOS/dihedral_hybrid_kokkos.cpp +++ b/src/KOKKOS/dihedral_hybrid_kokkos.cpp @@ -142,6 +142,13 @@ void DihedralHybridKokkos::compute(int eflag, int vflag) for (int i = 0; i < n; i++) for (int j = 0; j < 6; j++) vatom[i][j] += vatom_substyle[i][j]; } + if (cvflag_atom) { + int n = atom->nlocal; + if (force->newton_bond) n += atom->nghost; + double **cvatom_substyle = styles[m]->cvatom; + for (int i = 0; i < n; i++) + for (int j = 0; j < 9; j++) cvatom[i][j] += cvatom_substyle[i][j]; + } } // restore ptrs to original dihedrallist @@ -210,7 +217,8 @@ double DihedralHybridKokkos::memory_usage() { double bytes = (double) maxeatom * sizeof(double); bytes += (double) maxvatom * 6 * sizeof(double); - for (int m = 0; m < nstyles; m++) bytes += (double) maxdihedral_all * 3 * sizeof(int); + bytes += (double) maxcvatom * 9 * sizeof(double); + for (int m = 0; m < nstyles; m++) bytes += (double) maxdihedral_all * 5 * sizeof(int); for (int m = 0; m < nstyles; m++) if (styles[m]) bytes += styles[m]->memory_usage(); return bytes; diff --git a/src/KOKKOS/improper_hybrid_kokkos.cpp b/src/KOKKOS/improper_hybrid_kokkos.cpp index 1384d8648d..3d4790c818 100644 --- a/src/KOKKOS/improper_hybrid_kokkos.cpp +++ b/src/KOKKOS/improper_hybrid_kokkos.cpp @@ -143,6 +143,13 @@ void ImproperHybridKokkos::compute(int eflag, int vflag) for (int i = 0; i < n; i++) for (int j = 0; j < 6; j++) vatom[i][j] += vatom_substyle[i][j]; } + if (cvflag_atom) { + int n = atom->nlocal; + if (force->newton_bond) n += atom->nghost; + double **cvatom_substyle = styles[m]->cvatom; + for (int i = 0; i < n; i++) + for (int j = 0; j < 9; j++) cvatom[i][j] += cvatom_substyle[i][j]; + } } // restore ptrs to original improperlist @@ -211,7 +218,8 @@ double ImproperHybridKokkos::memory_usage() { double bytes = (double) maxeatom * sizeof(double); bytes += (double) maxvatom * 6 * sizeof(double); - for (int m = 0; m < nstyles; m++) bytes += (double) maximproper_all * 3 * sizeof(int); + bytes += (double) maxcvatom * 9 * sizeof(double); + for (int m = 0; m < nstyles; m++) bytes += (double) maximproper_all * 5 * sizeof(int); for (int m = 0; m < nstyles; m++) if (styles[m]) bytes += styles[m]->memory_usage(); return bytes; From d274989843c3d4c7ed80a5cd37585ba47a713cc7 Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Tue, 16 Jul 2024 11:11:31 -0600 Subject: [PATCH 056/169] update indices --- src/KOKKOS/angle_hybrid_kokkos.cpp | 4 ++-- src/KOKKOS/dihedral_hybrid_kokkos.cpp | 4 ++-- src/KOKKOS/improper_hybrid_kokkos.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/KOKKOS/angle_hybrid_kokkos.cpp b/src/KOKKOS/angle_hybrid_kokkos.cpp index ffcc20538f..5146a061b2 100644 --- a/src/KOKKOS/angle_hybrid_kokkos.cpp +++ b/src/KOKKOS/angle_hybrid_kokkos.cpp @@ -75,7 +75,7 @@ void AngleHybridKokkos::compute(int eflag, int vflag) auto d_map = k_map.d_view; Kokkos::parallel_for(nanglelist_orig,LAMMPS_LAMBDA(int i) { - const int m = d_map[d_anglelist_orig(i,2)]; + const int m = d_map[d_anglelist_orig(i,3)]; if (m >= 0) Kokkos::atomic_increment(&d_nanglelist[m]); }); @@ -94,7 +94,7 @@ void AngleHybridKokkos::compute(int eflag, int vflag) Kokkos::deep_copy(d_nanglelist,0); Kokkos::parallel_for(nanglelist_orig,LAMMPS_LAMBDA(int i) { - const int m = d_map[d_anglelist_orig(i,2)]; + const int m = d_map[d_anglelist_orig(i,3)]; if (m < 0) return; const int n = Kokkos::atomic_fetch_add(&d_nanglelist[m],1); d_anglelist(m,n,0) = d_anglelist_orig(i,0); diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.cpp b/src/KOKKOS/dihedral_hybrid_kokkos.cpp index 5e7c9ac8b8..3b99b6278a 100644 --- a/src/KOKKOS/dihedral_hybrid_kokkos.cpp +++ b/src/KOKKOS/dihedral_hybrid_kokkos.cpp @@ -75,7 +75,7 @@ void DihedralHybridKokkos::compute(int eflag, int vflag) auto d_map = k_map.d_view; Kokkos::parallel_for(ndihedrallist_orig,LAMMPS_LAMBDA(int i) { - const int m = d_map[d_dihedrallist_orig(i,2)]; + const int m = d_map[d_dihedrallist_orig(i,4)]; if (m >= 0) Kokkos::atomic_increment(&d_ndihedrallist[m]); }); @@ -94,7 +94,7 @@ void DihedralHybridKokkos::compute(int eflag, int vflag) Kokkos::deep_copy(d_ndihedrallist,0); Kokkos::parallel_for(ndihedrallist_orig,LAMMPS_LAMBDA(int i) { - const int m = d_map[d_dihedrallist_orig(i,2)]; + const int m = d_map[d_dihedrallist_orig(i,4)]; if (m < 0) return; const int n = Kokkos::atomic_fetch_add(&d_ndihedrallist[m],1); d_dihedrallist(m,n,0) = d_dihedrallist_orig(i,0); diff --git a/src/KOKKOS/improper_hybrid_kokkos.cpp b/src/KOKKOS/improper_hybrid_kokkos.cpp index 3d4790c818..a1f4be9b4b 100644 --- a/src/KOKKOS/improper_hybrid_kokkos.cpp +++ b/src/KOKKOS/improper_hybrid_kokkos.cpp @@ -76,7 +76,7 @@ void ImproperHybridKokkos::compute(int eflag, int vflag) auto d_map = k_map.d_view; Kokkos::parallel_for(nimproperlist_orig,LAMMPS_LAMBDA(int i) { - const int m = d_map[d_improperlist_orig(i,2)]; + const int m = d_map[d_improperlist_orig(i,4)]; if (m >= 0) Kokkos::atomic_increment(&d_nimproperlist[m]); }); @@ -95,7 +95,7 @@ void ImproperHybridKokkos::compute(int eflag, int vflag) Kokkos::deep_copy(d_nimproperlist,0); Kokkos::parallel_for(nimproperlist_orig,LAMMPS_LAMBDA(int i) { - const int m = d_map[d_improperlist_orig(i,2)]; + const int m = d_map[d_improperlist_orig(i,4)]; if (m < 0) return; const int n = Kokkos::atomic_fetch_add(&d_nimproperlist[m],1); d_improperlist(m,n,0) = d_improperlist_orig(i,0); From a5299b48d97bd93123068ad0d5ef87580b2939aa Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Tue, 16 Jul 2024 12:33:49 -0600 Subject: [PATCH 057/169] update view size --- src/KOKKOS/angle_hybrid_kokkos.cpp | 2 +- src/KOKKOS/dihedral_hybrid_kokkos.cpp | 2 +- src/KOKKOS/improper_hybrid_kokkos.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/KOKKOS/angle_hybrid_kokkos.cpp b/src/KOKKOS/angle_hybrid_kokkos.cpp index 5146a061b2..e2d52a2992 100644 --- a/src/KOKKOS/angle_hybrid_kokkos.cpp +++ b/src/KOKKOS/angle_hybrid_kokkos.cpp @@ -88,7 +88,7 @@ void AngleHybridKokkos::compute(int eflag, int vflag) maxangle_all = h_nanglelist[m] + EXTRA; if (k_anglelist.d_view.extent(1) < maxangle_all) - MemKK::realloc_kokkos(k_anglelist, "angle_hybrid:anglelist", nstyles, maxangle_all, 3); + MemKK::realloc_kokkos(k_anglelist, "angle_hybrid:anglelist", nstyles, maxangle_all, 4); auto d_anglelist = k_anglelist.d_view; Kokkos::deep_copy(d_nanglelist,0); diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.cpp b/src/KOKKOS/dihedral_hybrid_kokkos.cpp index 3b99b6278a..22a965a4e6 100644 --- a/src/KOKKOS/dihedral_hybrid_kokkos.cpp +++ b/src/KOKKOS/dihedral_hybrid_kokkos.cpp @@ -88,7 +88,7 @@ void DihedralHybridKokkos::compute(int eflag, int vflag) maxdihedral_all = h_ndihedrallist[m] + EXTRA; if (k_dihedrallist.d_view.extent(1) < maxdihedral_all) - MemKK::realloc_kokkos(k_dihedrallist, "dihedral_hybrid:dihedrallist", nstyles, maxdihedral_all, 3); + MemKK::realloc_kokkos(k_dihedrallist, "dihedral_hybrid:dihedrallist", nstyles, maxdihedral_all, 5); auto d_dihedrallist = k_dihedrallist.d_view; Kokkos::deep_copy(d_ndihedrallist,0); diff --git a/src/KOKKOS/improper_hybrid_kokkos.cpp b/src/KOKKOS/improper_hybrid_kokkos.cpp index a1f4be9b4b..016b29ea24 100644 --- a/src/KOKKOS/improper_hybrid_kokkos.cpp +++ b/src/KOKKOS/improper_hybrid_kokkos.cpp @@ -89,7 +89,7 @@ void ImproperHybridKokkos::compute(int eflag, int vflag) maximproper_all = h_nimproperlist[m] + EXTRA; if (k_improperlist.d_view.extent(1) < maximproper_all) - MemKK::realloc_kokkos(k_improperlist, "improper_hybrid:improperlist", nstyles, maximproper_all, 3); + MemKK::realloc_kokkos(k_improperlist, "improper_hybrid:improperlist", nstyles, maximproper_all, 5); auto d_improperlist = k_improperlist.d_view; Kokkos::deep_copy(d_nimproperlist,0); From ccfdb4aee4458e207eed57226c92891d2dd001fc Mon Sep 17 00:00:00 2001 From: alphataubio Date: Tue, 16 Jul 2024 19:45:47 -0400 Subject: [PATCH 058/169] https://matsci.org/t/a-few-kokkos-development-questions/56598 --- src/KOKKOS/angle_spica_kokkos.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 0e89c13967..6c8c8b8aba 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -87,7 +87,6 @@ void AngleSPICAKokkos::compute(int eflag_in, int vflag_in) d_vatom = k_vatom.template view(); } - atomKK->sync(execution_space,datamask_read); k_k.template sync(); k_theta0.template sync(); k_repscale.template sync(); @@ -99,15 +98,20 @@ void AngleSPICAKokkos::compute(int eflag_in, int vflag_in) k_rminsq.template sync(); k_emin.template sync(); - if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); - else atomKK->modified(execution_space,F_MASK); + + // "It has to do with overlapping host/device in verlet_kokkos.cpp. For this reason, all topology styles (bond, angle, etc.) must set DATAMASK_READ, DATAMASK_MODIFY in the constructor and must not use atomKK->sync/modified. This is a gotcha that needed to be better documented." + // https://matsci.org/t/a-few-kokkos-development-questions/56598 + // + // atomKK->sync(execution_space,datamask_read); + // if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); + // else atomKK->modified(execution_space,F_MASK); + //atomKK->k_type.template sync(); x = atomKK->k_x.template view(); f = atomKK->k_f.template view(); neighborKK->k_anglelist.template sync(); anglelist = neighborKK->k_anglelist.template view(); int nanglelist = neighborKK->nanglelist; - atomKK->k_type.template sync(); d_type = atomKK->k_type.template view(); nlocal = atom->nlocal; newton_bond = force->newton_bond; From 99ec87dddc616fb53e272cc9f1a1a0134d64b778 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Wed, 17 Jul 2024 01:16:37 -0400 Subject: [PATCH 059/169] Update pair_lj_spica_coul_long.cpp --- src/CG-SPICA/pair_lj_spica_coul_long.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CG-SPICA/pair_lj_spica_coul_long.cpp b/src/CG-SPICA/pair_lj_spica_coul_long.cpp index ed6cb17e7c..176c076da9 100644 --- a/src/CG-SPICA/pair_lj_spica_coul_long.cpp +++ b/src/CG-SPICA/pair_lj_spica_coul_long.cpp @@ -358,7 +358,7 @@ void PairLJSPICACoulLong::coeff(int narg, char **arg) void PairLJSPICACoulLong::init_style() { - if (!atom->q_flag) error->all(FLERR, "Pair style lj/cut/coul/long requires atom attribute q"); + if (!atom->q_flag) error->all(FLERR, "Pair style lj/spica/coul/long requires atom attribute q"); neighbor->add_request(this); From 992987eb6ab3ea5e2742d8ed876768e7d81cf3c2 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Thu, 18 Jul 2024 00:27:35 -0400 Subject: [PATCH 060/169] fix formatting to make diff easier --- .../pair_lj_charmmfsw_coul_long_kokkos.h | 27 ++++++++----------- src/KOKKOS/pair_lj_spica_coul_long_kokkos.h | 17 ++++-------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.h b/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.h index 7533f40dbc..df5c70298a 100644 --- a/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.h +++ b/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.h @@ -48,30 +48,25 @@ class PairLJCharmmfswCoulLongKokkos : public PairLJCharmmfswCoulLong { protected: template KOKKOS_INLINE_FUNCTION - F_FLOAT compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, - const int& itype, const int& jtype) const; + F_FLOAT compute_fpair(const F_FLOAT& rsq, const int& i, const int& j, const int& itype, const int& jtype) const; template KOKKOS_INLINE_FUNCTION - F_FLOAT compute_fcoul(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, + F_FLOAT compute_evdwl(const F_FLOAT& rsq, const int& i, const int& j, const int& itype, const int& jtype) const; + + template + KOKKOS_INLINE_FUNCTION + F_FLOAT compute_fcoul(const F_FLOAT& rsq, const int& i, const int& j, const int& itype, const int& jtype, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const; template KOKKOS_INLINE_FUNCTION - F_FLOAT compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, - const int& itype, const int& jtype) const; - - template - KOKKOS_INLINE_FUNCTION - F_FLOAT compute_ecoul(const F_FLOAT& rsq, const int& i, const int&j, - const int& itype, const int& jtype, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const; + F_FLOAT compute_ecoul(const F_FLOAT& rsq, const int& i, const int& j, const int& itype, + const int& jtype, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const; Kokkos::DualView k_params; - typename Kokkos::DualView::t_dev_const_um params; - // hardwired to space for 12 atom types - params_lj_coul m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; - + typename Kokkos::DualView::t_dev_const_um params; + params_lj_coul m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; // hardwired to space for 12 atom types F_FLOAT m_cutsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; F_FLOAT m_cut_ljsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; F_FLOAT m_cut_coulsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; @@ -100,8 +95,8 @@ class PairLJCharmmfswCoulLongKokkos : public PairLJCharmmfswCoulLong { int neighflag; int nlocal,nall,eflag,vflag; - double special_coul[4]; double special_lj[4]; + double special_coul[4]; double qqrd2e; void allocate() override; diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h index 02c5d58599..d7a20a3c49 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h @@ -44,7 +44,6 @@ class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { void compute(int, int) override; - void settings(int, char **) override; void init_tables(double cut_coul, double *cut_respa) override; void init_style() override; double init_one(int, int) override; @@ -61,32 +60,26 @@ class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { protected: template KOKKOS_INLINE_FUNCTION - F_FLOAT compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const; + F_FLOAT compute_fpair(const F_FLOAT& rsq, const int& i, const int& j, const int& itype, const int& jtype) const; template KOKKOS_INLINE_FUNCTION - F_FLOAT compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const; - - //template - //KOKKOS_INLINE_FUNCTION - //F_FLOAT compute_ecoul(const F_FLOAT& /*rsq*/, const int& /*i*/, const int& /*j*/, - // const int& /*itype*/, const int& /*jtype*/) const { return 0; } + F_FLOAT compute_evdwl(const F_FLOAT& rsq, const int& i, const int& j, const int& itype, const int& jtype) const; template KOKKOS_INLINE_FUNCTION - F_FLOAT compute_fcoul(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, + F_FLOAT compute_fcoul(const F_FLOAT& rsq, const int& i, const int& j, const int& itype, const int& jtype, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const; template KOKKOS_INLINE_FUNCTION - F_FLOAT compute_ecoul(const F_FLOAT& rsq, const int& i, const int&j, - const int& itype, const int& jtype, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const; + F_FLOAT compute_ecoul(const F_FLOAT& rsq, const int& i, const int& j, const int& itype, + const int& jtype, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const; Kokkos::DualView k_params; typename Kokkos::DualView::t_dev_const_um params; params_lj_coul m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; // hardwired to space for 12 atom types F_FLOAT m_cutsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; - F_FLOAT m_cut_lj[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; F_FLOAT m_cut_ljsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; F_FLOAT m_cut_coulsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; typename AT::t_x_array_randomread x; From 23f37e6f63a685f847e39c3c4cc6777768a9e17d Mon Sep 17 00:00:00 2001 From: alphataubio Date: Thu, 18 Jul 2024 03:53:44 -0400 Subject: [PATCH 061/169] minor fixes --- src/KOKKOS/angle_spica_kokkos.cpp | 3 --- .../pair_lj_charmmfsw_coul_long_kokkos.cpp | 2 +- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 27 ++----------------- src/KOKKOS/pair_lj_spica_coul_long_kokkos.h | 12 ++++----- 4 files changed, 9 insertions(+), 35 deletions(-) diff --git a/src/KOKKOS/angle_spica_kokkos.cpp b/src/KOKKOS/angle_spica_kokkos.cpp index 6c8c8b8aba..05da415f32 100644 --- a/src/KOKKOS/angle_spica_kokkos.cpp +++ b/src/KOKKOS/angle_spica_kokkos.cpp @@ -417,9 +417,6 @@ void AngleSPICAKokkos::coeff(int narg, char **arg) k_theta0.template modify(); k_repscale.template modify(); k_setflag.template modify(); - - Kokkos::printf("*** AngleSPICAKokkos::coeff\n"); - } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.cpp index 23247bf20d..1c769e82a6 100644 --- a/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_charmmfsw_coul_long_kokkos.cpp @@ -13,7 +13,7 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing author: Mitch Murphy (alphataubio) + Contributing author: Mitch Murphy (alphataubio@gmail.com) Based on serial kspace lj-fsw sections (force-switched) provided by Robert Meissner and Lucio Colombi Ciacchi of Bremen University, Germany, diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp index a205218a82..c0861e2c77 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -65,8 +65,6 @@ PairLJSPICACoulLongKokkos::~PairLJSPICACoulLongKokkos() memoryKK->destroy_kokkos(k_eatom,eatom); memoryKK->destroy_kokkos(k_vatom,vatom); memoryKK->destroy_kokkos(k_cutsq,cutsq); - //memoryKK->destroy_kokkos(k_cut_lj,cut_lj); - //memoryKK->destroy_kokkos(k_cut_ljsq,cut_ljsq); } } @@ -311,26 +309,10 @@ void PairLJSPICACoulLongKokkos::allocate() memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); d_cutsq = k_cutsq.template view(); - //d_cut_lj = typename AT::t_ffloat_2d("pair:cut_lj",n+1,n+1); - //d_cut_ljsq = typename AT::t_ffloat_2d("pair:cut_ljsq",n+1,n+1); - //d_cut_coulsq = typename AT::t_ffloat_2d("pair:cut_coulsq",n+1,n+1); - - k_params = Kokkos::DualView("PairLJSPICACoulLong::params",n+1,n+1); + k_params = Kokkos::DualView("PairLJSPICACoulLong::params",n+1,n+1); params = k_params.template view(); } -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -template -void PairLJSPICACoulLongKokkos::settings(int narg, char **arg) -{ - if (narg > 2) error->all(FLERR,"Illegal pair_style command"); - - PairLJSPICACoulLong::settings(1,arg); -} - /* ---------------------------------------------------------------------- init tables ------------------------------------------------------------------------- */ @@ -447,9 +429,6 @@ void PairLJSPICACoulLongKokkos::init_style() { PairLJSPICACoulLong::init_style(); - //Kokkos::deep_copy(d_cut_ljsq,cut_ljsq); - Kokkos::deep_copy(d_cut_coulsq,cut_coulsq); - // error if rRESPA with inner levels if (update->whichflag == 1 && utils::strmatch(update->integrate_style,"^respa")) { @@ -484,16 +463,14 @@ double PairLJSPICACoulLongKokkos::init_one(int i, int j) k_params.h_view(i,j).lj3 = lj3[i][j]; k_params.h_view(i,j).lj4 = lj4[i][j]; k_params.h_view(i,j).offset = offset[i][j]; - //k_params.h_view(i,j).cutsq = cutone*cutone; - //k_params.h_view(i,j).cut_lj = cut_lj[i][j]; k_params.h_view(i,j).cut_ljsq = cut_ljsq[i][j]; k_params.h_view(i,j).cut_coulsq = cut_coulsq; k_params.h_view(i,j).lj_type = lj_type[i][j]; k_params.h_view(j,i) = k_params.h_view(i,j); + if (i k_params; - typename Kokkos::DualView::t_dev_const_um params; - params_lj_coul m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; // hardwired to space for 12 atom types + Kokkos::DualView k_params; + typename Kokkos::DualView::t_dev_const_um params; + params_lj_spica_coul m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; // hardwired to space for 12 atom types F_FLOAT m_cutsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; F_FLOAT m_cut_ljsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; F_FLOAT m_cut_coulsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; From bb005e185843b3b38906ea6ba452162f254265f1 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Thu, 18 Jul 2024 04:24:40 -0400 Subject: [PATCH 062/169] k_cut_ljsq and k_cut_coulsq --- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 19 ++++++++++++++++++- src/KOKKOS/pair_lj_spica_coul_long_kokkos.h | 6 ++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp index c0861e2c77..ba769dc127 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -65,6 +65,8 @@ PairLJSPICACoulLongKokkos::~PairLJSPICACoulLongKokkos() memoryKK->destroy_kokkos(k_eatom,eatom); memoryKK->destroy_kokkos(k_vatom,vatom); memoryKK->destroy_kokkos(k_cutsq,cutsq); + memoryKK->destroy_kokkos(k_cut_ljsq,cut_ljsq); + memoryKK->destroy_kokkos(k_cut_coulsq); } } @@ -95,6 +97,8 @@ void PairLJSPICACoulLongKokkos::compute(int eflag_in, int vflag_in) atomKK->sync(execution_space,datamask_read); k_cutsq.template sync(); + k_cut_ljsq.template sync(); + k_cut_coulsq.template sync(); k_params.template sync(); if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); else atomKK->modified(execution_space,F_MASK); @@ -305,9 +309,17 @@ void PairLJSPICACoulLongKokkos::allocate() PairLJSPICACoulLong::allocate(); int n = atom->ntypes; + memory->destroy(cutsq); + memory->destroy(cut_ljsq); + memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); + memoryKK->create_kokkos(k_cut_ljsq,cut_ljsq,n+1,n+1,"pair:cut_ljsq"); + memoryKK->create_kokkos(k_cut_coulsq,n+1,n+1,"pair:cut_coulsq"); + d_cutsq = k_cutsq.template view(); + d_cut_ljsq = k_cut_ljsq.template view(); + d_cut_coulsq = k_cut_coulsq.template view(); k_params = Kokkos::DualView("PairLJSPICACoulLong::params",n+1,n+1); params = k_params.template view(); @@ -467,7 +479,7 @@ double PairLJSPICACoulLongKokkos::init_one(int i, int j) k_params.h_view(i,j).cut_coulsq = cut_coulsq; k_params.h_view(i,j).lj_type = lj_type[i][j]; k_params.h_view(j,i) = k_params.h_view(i,j); - + if (i::init_one(int i, int j) } k_cutsq.h_view(i,j) = k_cutsq.h_view(j,i) = cutone*cutone; + k_cut_ljsq.h_view(i,j) = k_cut_ljsq.h_view(j,i) = cut_ljsq[i][j]; + k_cut_coulsq.h_view(i,j) = k_cut_coulsq.h_view(j,i) = cut_coulsq; + k_cutsq.template modify(); + k_cut_ljsq.template modify(); + k_cut_coulsq.template modify(); k_params.template modify(); return cutone; diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h index 3106f681d1..f6b28757a9 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h @@ -95,10 +95,8 @@ class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { int newton_pair; - typename AT::tdual_ffloat_2d k_cutsq; - typename AT::t_ffloat_2d d_cutsq; - typename AT::t_ffloat_2d d_cut_ljsq; - typename AT::t_ffloat_2d d_cut_coulsq; + typename AT::tdual_ffloat_2d k_cutsq, k_cut_ljsq, k_cut_coulsq; + typename AT::t_ffloat_2d d_cutsq, d_cut_ljsq, d_cut_coulsq; typename AT::t_ffloat_1d_randomread d_rtable, d_drtable, d_ftable, d_dftable, From ce0fd7dcb723e581018b851e075336b21517e5af Mon Sep 17 00:00:00 2001 From: Yifan Li Date: Sat, 20 Jul 2024 22:34:27 -0400 Subject: [PATCH 063/169] initialize lj parameters to 1 --- src/REPLICA/fix_pimd_langevin.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/REPLICA/fix_pimd_langevin.h b/src/REPLICA/fix_pimd_langevin.h index 869281243f..f23c0d4b1e 100644 --- a/src/REPLICA/fix_pimd_langevin.h +++ b/src/REPLICA/fix_pimd_langevin.h @@ -48,9 +48,9 @@ class FixPIMDLangevin : public Fix { double inverse_np; // 1.0/np double temp; // temperature double hbar; // Planck's constant - double lj_epsilon, lj_sigma, lj_mass; // LJ unit energy, length, and mass scales - double other_planck; - double other_mvv2e; + double lj_epsilon = 1, lj_sigma = 1, lj_mass = 1; // LJ unit energy, length, and mass scales + double other_planck = 1; + double other_mvv2e = 1; double kt; // k_B * temp double beta, beta_np; // beta = 1./kBT beta_np = 1./kBT/np int thermostat; // NHC or PILE_L From 49ead6be1010444fcad05c62a48fc20c7f67550d Mon Sep 17 00:00:00 2001 From: Yifan Li Date: Sat, 20 Jul 2024 22:46:06 -0400 Subject: [PATCH 064/169] update doc --- doc/src/fix_pimd.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/fix_pimd.rst b/doc/src/fix_pimd.rst index a2e137da25..0c7f763ced 100644 --- a/doc/src/fix_pimd.rst +++ b/doc/src/fix_pimd.rst @@ -236,7 +236,7 @@ The keyword *fixcom* specifies whether the center-of-mass of the extended ring-p Once *fixcom* is set to be *yes*, the center-of-mass velocity will be distracted from the centroid-mode velocities in each step. The keyword *lj* should be used if :doc:`lj units ` is used for *fix pimd/langevin*. Typically one may want to use -reduced units to run the simulation, and then convert the results into some physical units (for example, :doc:`metal units `). In this case, the 5 quantities in the physical mass units are needed: epsilon (energy scale), sigma (length scale), mass, Planck's constant, mvv2e (mass * velocity^2 to energy conversion factor). Planck's constant and mvv2e can be found in src/update.cpp. If there is no need to convert reduced units to physical units, set all these five value to 1. +reduced units to run the simulation, and then convert the results into some physical units (for example, :doc:`metal units `). In this case, the 5 quantities in the physical mass units are needed: epsilon (energy scale), sigma (length scale), mass, Planck's constant, mvv2e (mass * velocity^2 to energy conversion factor). Planck's constant and mvv2e can be found in src/update.cpp. If there is no need to convert reduced units to physical units, you can omit the keyword *lj* and these five values will be set to 1. The PIMD algorithm in LAMMPS is implemented as a hyper-parallel scheme as described in :ref:`Calhoun `. In LAMMPS this is done by using From 9413bb825fa0a4a0e24ead59f55003356dd71958 Mon Sep 17 00:00:00 2001 From: alphataubio Date: Sat, 20 Jul 2024 23:25:46 -0400 Subject: [PATCH 065/169] match lj/spica/coul/long as close as possible to lj/cut/coul/long --- src/KOKKOS/pair_lj_cut_coul_long_kokkos.cpp | 3 +-- src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp | 27 ++++++++----------- src/KOKKOS/pair_lj_spica_coul_long_kokkos.h | 2 +- 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/KOKKOS/pair_lj_cut_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_cut_coul_long_kokkos.cpp index 5124d40505..f2d22e5cc5 100644 --- a/src/KOKKOS/pair_lj_cut_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_cut_coul_long_kokkos.cpp @@ -76,7 +76,6 @@ void PairLJCutCoulLongKokkos::compute(int eflag_in, int vflag_in) ev_init(eflag,vflag,0); - // reallocate per-atom arrays if necessary if (eflag_atom) { @@ -125,11 +124,11 @@ void PairLJCutCoulLongKokkos::compute(int eflag_in, int vflag_in) ev = pair_compute,CoulLongTable<0> > (this,(NeighListKokkos*)list); - if (eflag) { eng_vdwl += ev.evdwl; eng_coul += ev.ecoul; } + if (vflag_global) { virial[0] += ev.v[0]; virial[1] += ev.v[1]; diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp index ba769dc127..63756ed8de 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.cpp @@ -20,12 +20,12 @@ #include "atom_kokkos.h" #include "atom_masks.h" -#include "comm.h" #include "error.h" #include "ewald_const.h" #include "force.h" #include "kokkos.h" #include "memory_kokkos.h" +#include "neigh_list.h" #include "neigh_request.h" #include "neighbor.h" #include "respa.h" @@ -66,7 +66,6 @@ PairLJSPICACoulLongKokkos::~PairLJSPICACoulLongKokkos() memoryKK->destroy_kokkos(k_vatom,vatom); memoryKK->destroy_kokkos(k_cutsq,cutsq); memoryKK->destroy_kokkos(k_cut_ljsq,cut_ljsq); - memoryKK->destroy_kokkos(k_cut_coulsq); } } @@ -98,7 +97,6 @@ void PairLJSPICACoulLongKokkos::compute(int eflag_in, int vflag_in) atomKK->sync(execution_space,datamask_read); k_cutsq.template sync(); k_cut_ljsq.template sync(); - k_cut_coulsq.template sync(); k_params.template sync(); if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); else atomKK->modified(execution_space,F_MASK); @@ -106,21 +104,20 @@ void PairLJSPICACoulLongKokkos::compute(int eflag_in, int vflag_in) x = atomKK->k_x.view(); c_x = atomKK->k_x.view(); f = atomKK->k_f.view(); + q = atomKK->k_q.view(); type = atomKK->k_type.view(); nlocal = atom->nlocal; nall = atom->nlocal + atom->nghost; - newton_pair = force->newton_pair; special_lj[0] = force->special_lj[0]; special_lj[1] = force->special_lj[1]; special_lj[2] = force->special_lj[2]; special_lj[3] = force->special_lj[3]; - - q = atomKK->k_q.view(); special_coul[0] = force->special_coul[0]; special_coul[1] = force->special_coul[1]; special_coul[2] = force->special_coul[2]; special_coul[3] = force->special_coul[3]; qqrd2e = force->qqrd2e; + newton_pair = force->newton_pair; // loop over neighbors of my atoms @@ -134,7 +131,7 @@ void PairLJSPICACoulLongKokkos::compute(int eflag_in, int vflag_in) ev = pair_compute,CoulLongTable<0> > (this,(NeighListKokkos*)list); - if (eflag_global) { + if (eflag) { eng_vdwl += ev.evdwl; eng_coul += ev.ecoul; } @@ -309,17 +306,15 @@ void PairLJSPICACoulLongKokkos::allocate() PairLJSPICACoulLong::allocate(); int n = atom->ntypes; - memory->destroy(cutsq); - memory->destroy(cut_ljsq); - memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); - memoryKK->create_kokkos(k_cut_ljsq,cut_ljsq,n+1,n+1,"pair:cut_ljsq"); - memoryKK->create_kokkos(k_cut_coulsq,n+1,n+1,"pair:cut_coulsq"); - d_cutsq = k_cutsq.template view(); + + memory->destroy(cut_ljsq); + memoryKK->create_kokkos(k_cut_ljsq,cut_ljsq,n+1,n+1,"pair:cut_ljsq"); d_cut_ljsq = k_cut_ljsq.template view(); - d_cut_coulsq = k_cut_coulsq.template view(); + + d_cut_coulsq = typename AT::t_ffloat_2d("pair:cut_coulsq",n+1,n+1); k_params = Kokkos::DualView("PairLJSPICACoulLong::params",n+1,n+1); params = k_params.template view(); @@ -441,6 +436,8 @@ void PairLJSPICACoulLongKokkos::init_style() { PairLJSPICACoulLong::init_style(); + Kokkos::deep_copy(d_cut_coulsq,cut_coulsq); + // error if rRESPA with inner levels if (update->whichflag == 1 && utils::strmatch(update->integrate_style,"^respa")) { @@ -489,11 +486,9 @@ double PairLJSPICACoulLongKokkos::init_one(int i, int j) k_cutsq.h_view(i,j) = k_cutsq.h_view(j,i) = cutone*cutone; k_cut_ljsq.h_view(i,j) = k_cut_ljsq.h_view(j,i) = cut_ljsq[i][j]; - k_cut_coulsq.h_view(i,j) = k_cut_coulsq.h_view(j,i) = cut_coulsq; k_cutsq.template modify(); k_cut_ljsq.template modify(); - k_cut_coulsq.template modify(); k_params.template modify(); return cutone; diff --git a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h index f6b28757a9..2e5dea9c40 100644 --- a/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h +++ b/src/KOKKOS/pair_lj_spica_coul_long_kokkos.h @@ -95,7 +95,7 @@ class PairLJSPICACoulLongKokkos : public PairLJSPICACoulLong { int newton_pair; - typename AT::tdual_ffloat_2d k_cutsq, k_cut_ljsq, k_cut_coulsq; + typename AT::tdual_ffloat_2d k_cutsq, k_cut_ljsq; typename AT::t_ffloat_2d d_cutsq, d_cut_ljsq, d_cut_coulsq; typename AT::t_ffloat_1d_randomread From c689cea7d8122673fe3fd0734772ef59a93ec754 Mon Sep 17 00:00:00 2001 From: Yifan Li Date: Sat, 20 Jul 2024 23:48:39 -0400 Subject: [PATCH 066/169] initialize in constructor rather than header --- src/REPLICA/fix_pimd_langevin.cpp | 5 +++++ src/REPLICA/fix_pimd_langevin.h | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/REPLICA/fix_pimd_langevin.cpp b/src/REPLICA/fix_pimd_langevin.cpp index c24984f152..04dbcb8a90 100644 --- a/src/REPLICA/fix_pimd_langevin.cpp +++ b/src/REPLICA/fix_pimd_langevin.cpp @@ -90,6 +90,11 @@ FixPIMDLangevin::FixPIMDLangevin(LAMMPS *lmp, int narg, char **arg) : integrator = OBABO; thermostat = PILE_L; barostat = BZP; + lj_epsilon = 1; + lj_sigma = 1; + lj_mass = 1; + other_planck = 1; + other_mvv2e = 1; fmass = 1.0; np = universe->nworlds; inverse_np = 1.0 / np; diff --git a/src/REPLICA/fix_pimd_langevin.h b/src/REPLICA/fix_pimd_langevin.h index f23c0d4b1e..869281243f 100644 --- a/src/REPLICA/fix_pimd_langevin.h +++ b/src/REPLICA/fix_pimd_langevin.h @@ -48,9 +48,9 @@ class FixPIMDLangevin : public Fix { double inverse_np; // 1.0/np double temp; // temperature double hbar; // Planck's constant - double lj_epsilon = 1, lj_sigma = 1, lj_mass = 1; // LJ unit energy, length, and mass scales - double other_planck = 1; - double other_mvv2e = 1; + double lj_epsilon, lj_sigma, lj_mass; // LJ unit energy, length, and mass scales + double other_planck; + double other_mvv2e; double kt; // k_B * temp double beta, beta_np; // beta = 1./kBT beta_np = 1./kBT/np int thermostat; // NHC or PILE_L From 409e795027a9a166486b4e0aa4575f3f877cb03f Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Mon, 22 Jul 2024 10:45:31 -0600 Subject: [PATCH 067/169] remove extra iteration --- src/KOKKOS/angle_hybrid_kokkos.cpp | 2 +- src/KOKKOS/dihedral_hybrid_kokkos.cpp | 2 +- src/KOKKOS/improper_hybrid_kokkos.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/KOKKOS/angle_hybrid_kokkos.cpp b/src/KOKKOS/angle_hybrid_kokkos.cpp index e2d52a2992..06b2845545 100644 --- a/src/KOKKOS/angle_hybrid_kokkos.cpp +++ b/src/KOKKOS/angle_hybrid_kokkos.cpp @@ -165,7 +165,7 @@ void AngleHybridKokkos::allocate() memoryKK->create_kokkos(k_map, map, np1, "angle:map"); memory->create(setflag, np1, "angle:setflag"); - for (int i = 1; i <= np1; i++) setflag[i] = 0; + for (int i = 1; i < np1; i++) setflag[i] = 0; k_nanglelist = DAT::tdual_int_1d("angle:nanglelist", nstyles); } diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.cpp b/src/KOKKOS/dihedral_hybrid_kokkos.cpp index 22a965a4e6..88dbeaf13b 100644 --- a/src/KOKKOS/dihedral_hybrid_kokkos.cpp +++ b/src/KOKKOS/dihedral_hybrid_kokkos.cpp @@ -166,7 +166,7 @@ void DihedralHybridKokkos::allocate() memoryKK->create_kokkos(k_map, map, np1, "dihedral:map"); memory->create(setflag, np1, "dihedral:setflag"); - for (int i = 1; i <= np1; i++) setflag[i] = 0; + for (int i = 1; i < np1; i++) setflag[i] = 0; k_ndihedrallist = DAT::tdual_int_1d("dihedral:ndihedrallist", nstyles); } diff --git a/src/KOKKOS/improper_hybrid_kokkos.cpp b/src/KOKKOS/improper_hybrid_kokkos.cpp index 016b29ea24..bfa55978cc 100644 --- a/src/KOKKOS/improper_hybrid_kokkos.cpp +++ b/src/KOKKOS/improper_hybrid_kokkos.cpp @@ -167,7 +167,7 @@ void ImproperHybridKokkos::allocate() memoryKK->create_kokkos(k_map, map, np1, "improper:map"); memory->create(setflag, np1, "improper:setflag"); - for (int i = 1; i <= np1; i++) setflag[i] = 0; + for (int i = 1; i < np1; i++) setflag[i] = 0; k_nimproperlist = DAT::tdual_int_1d("improper:nimproperlist", nstyles); } From b551a8197fe3cbff899238994cf06eba25a40ccb Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Mon, 22 Jul 2024 10:57:49 -0600 Subject: [PATCH 068/169] remove extra iteration --- src/KOKKOS/bond_hybrid_kokkos.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KOKKOS/bond_hybrid_kokkos.cpp b/src/KOKKOS/bond_hybrid_kokkos.cpp index 8a391808c9..db247c7100 100644 --- a/src/KOKKOS/bond_hybrid_kokkos.cpp +++ b/src/KOKKOS/bond_hybrid_kokkos.cpp @@ -157,7 +157,7 @@ void BondHybridKokkos::allocate() memoryKK->create_kokkos(k_map, map, np1, "bond:map"); memory->create(setflag, np1, "bond:setflag"); - for (int i = 1; i <= np1; i++) setflag[i] = 0; + for (int i = 1; i < np1; i++) setflag[i] = 0; k_nbondlist = DAT::tdual_int_1d("bond:nbondlist", nstyles); } From 8bba2d12ec12dbb065a3db9a029088b10e033c65 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Tue, 23 Jul 2024 17:41:48 -0600 Subject: [PATCH 069/169] Fix bug in GPU/CPU overlap --- src/KOKKOS/atom_vec_kokkos.h | 32 +++++--------------------------- 1 file changed, 5 insertions(+), 27 deletions(-) diff --git a/src/KOKKOS/atom_vec_kokkos.h b/src/KOKKOS/atom_vec_kokkos.h index 646d9a4840..7030f706b8 100644 --- a/src/KOKKOS/atom_vec_kokkos.h +++ b/src/KOKKOS/atom_vec_kokkos.h @@ -141,28 +141,6 @@ class AtomVecKokkos : virtual public AtomVec { public: #ifdef LMP_KOKKOS_GPU - template - Kokkos::View > - create_async_copy(const ViewType& src) { - typedef Kokkos::View, - LMPPinnedHostType,typename ViewType::memory_space>::type, - Kokkos::MemoryTraits > mirror_type; - if (buffer_size == 0) { - buffer = Kokkos::kokkos_malloc(src.span()); - buffer_size = src.span(); - } else if (buffer_size < src.span()) { - buffer = Kokkos::kokkos_realloc(buffer,src.span()); - buffer_size = src.span(); - } - return mirror_type(buffer, src.d_view.layout()); - } - template void perform_async_copy(ViewType& src, unsigned int space) { typedef Kokkos::View::type, Kokkos::MemoryTraits > mirror_type; if (buffer_size == 0) { - buffer = Kokkos::kokkos_malloc(src.span()*sizeof(typename ViewType::value_type)); - buffer_size = src.span(); - } else if (buffer_size < src.span()) { - buffer = Kokkos::kokkos_realloc(buffer,src.span()*sizeof(typename ViewType::value_type)); - buffer_size = src.span(); + buffer_size = src.span()*sizeof(typename ViewType::value_type); + buffer = Kokkos::kokkos_malloc(buffer_size); + } else if (buffer_size < src.span()*sizeof(typename ViewType::value_type)) { + buffer_size = src.span()*sizeof(typename ViewType::value_type); + buffer = Kokkos::kokkos_realloc(buffer,buffer_size); } mirror_type tmp_view((typename ViewType::value_type*)buffer, src.d_view.layout()); From ce0e513d8ca4327f8aa6999c5f588ec4dbd0fa01 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Tue, 23 Jul 2024 17:42:23 -0600 Subject: [PATCH 070/169] Remove unused function --- src/KOKKOS/atom_kokkos.cpp | 16 ---------------- src/KOKKOS/atom_kokkos.h | 1 - 2 files changed, 17 deletions(-) diff --git a/src/KOKKOS/atom_kokkos.cpp b/src/KOKKOS/atom_kokkos.cpp index 6707deddd5..e2ae9ffb19 100644 --- a/src/KOKKOS/atom_kokkos.cpp +++ b/src/KOKKOS/atom_kokkos.cpp @@ -276,22 +276,6 @@ void AtomKokkos::sort_device() if (domain->triclinic) domain->x2lamda(nlocal); } -/* ---------------------------------------------------------------------- - reallocate memory to the pointer selected by the mask -------------------------------------------------------------------------- */ - -void AtomKokkos::grow(unsigned int mask) -{ - if (mask & SPECIAL_MASK) { - memoryKK->destroy_kokkos(k_special, special); - sync(Device, mask); - modified(Device, mask); - memoryKK->grow_kokkos(k_special, special, nmax, maxspecial, "atom:special"); - avec->grow_pointers(); - sync(Host, mask); - } -} - /* ---------------------------------------------------------------------- add a custom variable with name of type flag = 0/1 for int/double assumes name does not already exist diff --git a/src/KOKKOS/atom_kokkos.h b/src/KOKKOS/atom_kokkos.h index 8501af2a24..d978a771de 100644 --- a/src/KOKKOS/atom_kokkos.h +++ b/src/KOKKOS/atom_kokkos.h @@ -165,7 +165,6 @@ class AtomKokkos : public Atom { void modified(const ExecutionSpace space, unsigned int mask); void sync_overlapping_device(const ExecutionSpace space, unsigned int mask); void sort() override; - virtual void grow(unsigned int mask); int add_custom(const char *, int, int, int border = 0) override; void remove_custom(int, int, int) override; void deallocate_topology() override; From 732786d178e8762e9c3e495f34ce864ab868c78a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 24 Jul 2024 08:57:47 -0400 Subject: [PATCH 071/169] use preferred comparison method --- python/lammps/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/lammps/core.py b/python/lammps/core.py index dbadebe7f2..97bcb5157d 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -992,7 +992,7 @@ class lammps(object): return None dim = self.extract_pair_dimension(name) - if dim == None: + if dim is None: return None elif dim == 0: self.lib.lammps_extract_pair.restype = POINTER(c_double) From 20fb6a427958ac49441b39c33ee211d12db1fafe Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 24 Jul 2024 10:21:20 -0400 Subject: [PATCH 072/169] add typelabel support to neigh_modify exclude type --- src/neighbor.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/neighbor.cpp b/src/neighbor.cpp index a1c8979ca7..d9b97de667 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.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 @@ -2705,8 +2705,8 @@ void Neighbor::modify_params(int narg, char **arg) memory->grow(ex1_type,maxex_type,"neigh:ex1_type"); memory->grow(ex2_type,maxex_type,"neigh:ex2_type"); } - ex1_type[nex_type] = utils::inumeric(FLERR,arg[iarg+2],false,lmp); - ex2_type[nex_type] = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + ex1_type[nex_type] = utils::expand_type_int(FLERR, arg[iarg+2], 0, lmp); + ex2_type[nex_type] = utils::expand_type_int(FLERR, arg[iarg+3], 0, lmp); nex_type++; iarg += 4; } else if (strcmp(arg[iarg+1],"group") == 0) { From 93bab0cfcc0af60ffff3ebedb78928428e70028f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 24 Jul 2024 10:40:59 -0400 Subject: [PATCH 073/169] simplify parser for fix shake/rattle options and add typelabel support --- src/RIGID/fix_shake.cpp | 51 +++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/src/RIGID/fix_shake.cpp b/src/RIGID/fix_shake.cpp index ac71ea01a6..22dfbd97fe 100644 --- a/src/RIGID/fix_shake.cpp +++ b/src/RIGID/fix_shake.cpp @@ -121,49 +121,40 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : mass_list = new double[atom->ntypes]; nmass = 0; - char mode = '\0'; int next = 6; while (next < narg) { - if (strcmp(arg[next],"b") == 0) mode = 'b'; - else if (strcmp(arg[next],"a") == 0) mode = 'a'; - else if (strcmp(arg[next],"t") == 0) mode = 't'; - else if (strcmp(arg[next],"m") == 0) { - mode = 'm'; - atom->check_mass(FLERR); - - // break if keyword that is not b,a,t,m - - } else if (isalpha(arg[next][0])) break; - - // read numeric args of b,a,t,m - - else if (mode == 'b') { - int i = utils::inumeric(FLERR,arg[next],false,lmp); + if ((strcmp(arg[next],"b") == 0) && (next+1 < narg)) { + int i = utils::expand_type_int(FLERR,arg[next+1],1,lmp); if (i < 1 || i > atom->nbondtypes) - error->all(FLERR,"Invalid bond type index for {}", mystyle); + error->all(FLERR,"Invalid bond type {} for {}", arg[next+1], mystyle); bond_flag[i] = 1; - - } else if (mode == 'a') { - int i = utils::inumeric(FLERR,arg[next],false,lmp); + ++next; + } else if ((strcmp(arg[next],"a") == 0) && (next+1 < narg)) { + int i = utils::expand_type_int(FLERR,arg[next+1],2,lmp); if (i < 1 || i > atom->nangletypes) - error->all(FLERR,"Invalid angle type index for {}", mystyle); + error->all(FLERR,"Invalid angle type {} for {}", arg[next+1], mystyle); angle_flag[i] = 1; - - } else if (mode == 't') { - int i = utils::inumeric(FLERR,arg[next],false,lmp); + ++next; + } else if ((strcmp(arg[next],"t") == 0) && (next+1 < narg)) { + int i = utils::expand_type_int(FLERR,arg[next+1],0,lmp); if (i < 1 || i > atom->ntypes) - error->all(FLERR,"Invalid atom type index for {}", mystyle); + error->all(FLERR,"Invalid atom type {} for {}", arg[next+1], mystyle); type_flag[i] = 1; - - } else if (mode == 'm') { - double massone = utils::numeric(FLERR,arg[next],false,lmp); + ++next; + } else if ((strcmp(arg[next],"m") == 0) && (next+1 < narg)) { + atom->check_mass(FLERR); + double massone = utils::numeric(FLERR,arg[next+1],false,lmp); if (massone == 0.0) error->all(FLERR,"Invalid atom mass for {}", mystyle); if (nmass == atom->ntypes) error->all(FLERR,"Too many masses for {}", mystyle); mass_list[nmass++] = massone; + ++next; - } else error->all(FLERR,"Unknown {} command option: {}", mystyle, arg[next]); - next++; + // exit loop if keyword is not b, a, t, or m + + } else if (isalpha(arg[next][0])) break; + else error->all(FLERR,"Unknown {} command option: {}", mystyle, arg[next]); + ++next; } // parse optional args From 1c42a06f1ba750ec5c0246c66f9c92ac4e656635 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 24 Jul 2024 15:59:55 -0400 Subject: [PATCH 074/169] use enums instead of numbers. --- src/RIGID/fix_shake.cpp | 6 +++--- src/neighbor.cpp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/RIGID/fix_shake.cpp b/src/RIGID/fix_shake.cpp index 22dfbd97fe..89978a8d0a 100644 --- a/src/RIGID/fix_shake.cpp +++ b/src/RIGID/fix_shake.cpp @@ -124,19 +124,19 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : int next = 6; while (next < narg) { if ((strcmp(arg[next],"b") == 0) && (next+1 < narg)) { - int i = utils::expand_type_int(FLERR,arg[next+1],1,lmp); + int i = utils::expand_type_int(FLERR,arg[next+1],Atom::BOND,lmp); if (i < 1 || i > atom->nbondtypes) error->all(FLERR,"Invalid bond type {} for {}", arg[next+1], mystyle); bond_flag[i] = 1; ++next; } else if ((strcmp(arg[next],"a") == 0) && (next+1 < narg)) { - int i = utils::expand_type_int(FLERR,arg[next+1],2,lmp); + int i = utils::expand_type_int(FLERR,arg[next+1],Atom::ANGLE,lmp); if (i < 1 || i > atom->nangletypes) error->all(FLERR,"Invalid angle type {} for {}", arg[next+1], mystyle); angle_flag[i] = 1; ++next; } else if ((strcmp(arg[next],"t") == 0) && (next+1 < narg)) { - int i = utils::expand_type_int(FLERR,arg[next+1],0,lmp); + int i = utils::expand_type_int(FLERR,arg[next+1],Atom::ATOM,lmp); if (i < 1 || i > atom->ntypes) error->all(FLERR,"Invalid atom type {} for {}", arg[next+1], mystyle); type_flag[i] = 1; diff --git a/src/neighbor.cpp b/src/neighbor.cpp index d9b97de667..072240b482 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -2705,8 +2705,8 @@ void Neighbor::modify_params(int narg, char **arg) memory->grow(ex1_type,maxex_type,"neigh:ex1_type"); memory->grow(ex2_type,maxex_type,"neigh:ex2_type"); } - ex1_type[nex_type] = utils::expand_type_int(FLERR, arg[iarg+2], 0, lmp); - ex2_type[nex_type] = utils::expand_type_int(FLERR, arg[iarg+3], 0, lmp); + ex1_type[nex_type] = utils::expand_type_int(FLERR, arg[iarg+2], Atom::ATOM, lmp); + ex2_type[nex_type] = utils::expand_type_int(FLERR, arg[iarg+3], Atom::ATOM, lmp); nex_type++; iarg += 4; } else if (strcmp(arg[iarg+1],"group") == 0) { From e844ce3ddf0cdffad77faafefa3c6218f1e97f5f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 25 Jul 2024 08:44:54 -0400 Subject: [PATCH 075/169] re-align ReaxFF OpenMP version of ValidateLists with serial version --- src/OPENMP/reaxff_forces_omp.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/OPENMP/reaxff_forces_omp.cpp b/src/OPENMP/reaxff_forces_omp.cpp index 26922add1e..ce8ad0716f 100644 --- a/src/OPENMP/reaxff_forces_omp.cpp +++ b/src/OPENMP/reaxff_forces_omp.cpp @@ -155,7 +155,7 @@ namespace ReaxFF { /* ---------------------------------------------------------------------- */ static void Validate_ListsOMP(reax_system *system, reax_list **lists, - int step, int n, int N, int numH) + int step, int N, int numH) { int comp, Hindex; reax_list *bonds, *hbonds; @@ -195,7 +195,7 @@ namespace ReaxFF { #if defined(_OPENMP) #pragma omp for schedule(guided) #endif - for (int i = 0; i < n; ++i) { + for (int i = 0; i < N; ++i) { Hindex = system->my_atoms[i].Hindex; if (Hindex > -1) { system->my_atoms[i].num_hbonds = @@ -457,8 +457,7 @@ namespace ReaxFF { workspace->realloc.num_bonds = num_bonds; workspace->realloc.num_hbonds = num_hbonds; - Validate_ListsOMP(system, lists, data->step, - system->n, system->N, system->numH); + Validate_ListsOMP(system, lists, data->step, system->N, system->numH); } /* ---------------------------------------------------------------------- */ From 870306dd04fcd6881999657140d42f55334895ab Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 24 Jul 2024 08:57:47 -0400 Subject: [PATCH 076/169] use preferred comparison method --- python/lammps/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/lammps/core.py b/python/lammps/core.py index dbadebe7f2..97bcb5157d 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -992,7 +992,7 @@ class lammps(object): return None dim = self.extract_pair_dimension(name) - if dim == None: + if dim is None: return None elif dim == 0: self.lib.lammps_extract_pair.restype = POINTER(c_double) From a278a6f9516cb6b4b2e3362c458ef8ffa3f73e41 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 25 Jul 2024 09:02:47 -0400 Subject: [PATCH 077/169] restore original fix shake code --- src/RIGID/fix_shake.cpp | 61 +++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/src/RIGID/fix_shake.cpp b/src/RIGID/fix_shake.cpp index 89978a8d0a..ac71ea01a6 100644 --- a/src/RIGID/fix_shake.cpp +++ b/src/RIGID/fix_shake.cpp @@ -121,40 +121,49 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : mass_list = new double[atom->ntypes]; nmass = 0; + char mode = '\0'; int next = 6; while (next < narg) { - if ((strcmp(arg[next],"b") == 0) && (next+1 < narg)) { - int i = utils::expand_type_int(FLERR,arg[next+1],Atom::BOND,lmp); - if (i < 1 || i > atom->nbondtypes) - error->all(FLERR,"Invalid bond type {} for {}", arg[next+1], mystyle); - bond_flag[i] = 1; - ++next; - } else if ((strcmp(arg[next],"a") == 0) && (next+1 < narg)) { - int i = utils::expand_type_int(FLERR,arg[next+1],Atom::ANGLE,lmp); - if (i < 1 || i > atom->nangletypes) - error->all(FLERR,"Invalid angle type {} for {}", arg[next+1], mystyle); - angle_flag[i] = 1; - ++next; - } else if ((strcmp(arg[next],"t") == 0) && (next+1 < narg)) { - int i = utils::expand_type_int(FLERR,arg[next+1],Atom::ATOM,lmp); - if (i < 1 || i > atom->ntypes) - error->all(FLERR,"Invalid atom type {} for {}", arg[next+1], mystyle); - type_flag[i] = 1; - ++next; - } else if ((strcmp(arg[next],"m") == 0) && (next+1 < narg)) { + if (strcmp(arg[next],"b") == 0) mode = 'b'; + else if (strcmp(arg[next],"a") == 0) mode = 'a'; + else if (strcmp(arg[next],"t") == 0) mode = 't'; + else if (strcmp(arg[next],"m") == 0) { + mode = 'm'; atom->check_mass(FLERR); - double massone = utils::numeric(FLERR,arg[next+1],false,lmp); + + // break if keyword that is not b,a,t,m + + } else if (isalpha(arg[next][0])) break; + + // read numeric args of b,a,t,m + + else if (mode == 'b') { + int i = utils::inumeric(FLERR,arg[next],false,lmp); + if (i < 1 || i > atom->nbondtypes) + error->all(FLERR,"Invalid bond type index for {}", mystyle); + bond_flag[i] = 1; + + } else if (mode == 'a') { + int i = utils::inumeric(FLERR,arg[next],false,lmp); + if (i < 1 || i > atom->nangletypes) + error->all(FLERR,"Invalid angle type index for {}", mystyle); + angle_flag[i] = 1; + + } else if (mode == 't') { + int i = utils::inumeric(FLERR,arg[next],false,lmp); + if (i < 1 || i > atom->ntypes) + error->all(FLERR,"Invalid atom type index for {}", mystyle); + type_flag[i] = 1; + + } else if (mode == 'm') { + double massone = utils::numeric(FLERR,arg[next],false,lmp); if (massone == 0.0) error->all(FLERR,"Invalid atom mass for {}", mystyle); if (nmass == atom->ntypes) error->all(FLERR,"Too many masses for {}", mystyle); mass_list[nmass++] = massone; - ++next; - // exit loop if keyword is not b, a, t, or m - - } else if (isalpha(arg[next][0])) break; - else error->all(FLERR,"Unknown {} command option: {}", mystyle, arg[next]); - ++next; + } else error->all(FLERR,"Unknown {} command option: {}", mystyle, arg[next]); + next++; } // parse optional args From 13fabe445ef64ea1d652ba83937bd12f9dd04c30 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 25 Jul 2024 09:04:55 -0400 Subject: [PATCH 078/169] add check to detect whether there are overlaps between type labels and fix shake keywords --- src/RIGID/fix_shake.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/RIGID/fix_shake.cpp b/src/RIGID/fix_shake.cpp index ac71ea01a6..51b9eb8f78 100644 --- a/src/RIGID/fix_shake.cpp +++ b/src/RIGID/fix_shake.cpp @@ -21,6 +21,7 @@ #include "comm.h" #include "domain.h" #include "error.h" +#include "label_map.h" #include "fix_respa.h" #include "force.h" #include "group.h" @@ -106,6 +107,21 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : max_iter = utils::inumeric(FLERR, arg[4], false, lmp); output_every = utils::inumeric(FLERR, arg[5], false, lmp); + // check if any typelabels conflict with fix shake arguments. + + bool allow_typelabels = (atom->labelmapflag != 0); + if (allow_typelabels) { + for (int i = Atom::ATOM; i < Atom::DIHEDRAL; ++i) { + if ((atom->lmap->find("b", i) < 0) || + (atom->lmap->find("a", i) < 0) || + (atom->lmap->find("t", i) < 0) || + (atom->lmap->find("m", i) < 0)) allow_typelabels = false; + } + if (!allow_typelabels && (comm->me == 0)) + error->warning(FLERR, "At least one typelabel conflicts with a fix shake option: " + "support for typelabels is disabled."); + } + // parse SHAKE args for bond and angle types // will be used by find_clusters // store args for "b" "a" "t" as flags in (1:n) list for fast access From ff27bb88656f11783fec5217b0627c837396eea3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 25 Jul 2024 16:59:13 -0400 Subject: [PATCH 079/169] add missing space --- src/molecule.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/molecule.cpp b/src/molecule.cpp index 55dfb4d15d..617402d605 100644 --- a/src/molecule.cpp +++ b/src/molecule.cpp @@ -599,14 +599,14 @@ void Molecule::read(int flag) } else if (keyword == "Dihedrals") { if (ndihedrals == 0) error->all(FLERR, - "Found Dihedrals section" + "Found Dihedrals section " "but no ndihedrals setting in header"); dihedralflag = tag_require = 1; dihedrals(flag, line); } else if (keyword == "Impropers") { if (nimpropers == 0) error->all(FLERR, - "Found Impropers section" + "Found Impropers section " "but no nimpropers setting in header"); improperflag = tag_require = 1; impropers(flag, line); From 26503c948a5ae0e15f829902bf6aef2bf0d950fb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 25 Jul 2024 16:59:41 -0400 Subject: [PATCH 080/169] improve detection of triclinic box trajectory files --- src/reader_native.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reader_native.cpp b/src/reader_native.cpp index 4dac65e3cb..10d16ac859 100644 --- a/src/reader_native.cpp +++ b/src/reader_native.cpp @@ -254,7 +254,7 @@ bigint ReaderNative::read_header(double box[3][3], int &boxinfo, int &triclinic, triclinic = 0; box[0][2] = box[1][2] = box[2][2] = 0.0; read_lines(1); - if (line[strlen("ITEM: BOX BOUNDS ")] == 'x') triclinic = 1; + if (utils::strmatch(line,"ITEM: BOX BOUNDS.*xy\\s+xz\\s+yz")) triclinic = 1; try { read_lines(1); From e02ad1a3b208797cc9c5b3a08c24cabb5065b7a6 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Thu, 25 Jul 2024 17:02:22 -0600 Subject: [PATCH 081/169] Cleaning up SPH package, minor bug fixes --- src/SPH/compute_sph_e_atom.cpp | 30 ++++++------ src/SPH/compute_sph_rho_atom.cpp | 33 ++++++------- src/SPH/compute_sph_t_atom.cpp | 32 ++++++------- src/SPH/fix_sph.cpp | 32 ++++++++----- src/SPH/fix_sph_stationary.cpp | 27 ++++++----- src/SPH/fix_sph_stationary.h | 3 -- src/SPH/pair_sph_heatconduction.cpp | 33 ++++++++----- src/SPH/pair_sph_idealgas.cpp | 52 ++++++++++---------- src/SPH/pair_sph_idealgas.h | 1 - src/SPH/pair_sph_lj.cpp | 52 ++++++++++---------- src/SPH/pair_sph_lj.h | 2 - src/SPH/pair_sph_rhosum.cpp | 56 +++++++++------------- src/SPH/pair_sph_taitwater.cpp | 64 ++++++++++--------------- src/SPH/pair_sph_taitwater_morris.cpp | 68 +++++++++++---------------- 14 files changed, 227 insertions(+), 258 deletions(-) diff --git a/src/SPH/compute_sph_e_atom.cpp b/src/SPH/compute_sph_e_atom.cpp index 05e752c49b..8bb0622acd 100644 --- a/src/SPH/compute_sph_e_atom.cpp +++ b/src/SPH/compute_sph_e_atom.cpp @@ -13,13 +13,15 @@ ------------------------------------------------------------------------- */ #include "compute_sph_e_atom.h" -#include + #include "atom.h" -#include "update.h" -#include "modify.h" #include "comm.h" -#include "memory.h" #include "error.h" +#include "memory.h" +#include "modify.h" +#include "update.h" + +#include using namespace LAMMPS_NS; @@ -31,7 +33,7 @@ ComputeSPHEAtom::ComputeSPHEAtom(LAMMPS *lmp, int narg, char **arg) : if (narg != 3) error->all(FLERR,"Number of arguments for compute sph/e/atom command != 3"); if (atom->esph_flag != 1) - error->all(FLERR,"Compute sph/e/atom command requires atom_style sph)"); + error->all(FLERR,"Compute sph/e/atom requires atom attribut energy, e.g. in atom_style sph"); peratom_flag = 1; size_peratom_cols = 0; @@ -51,12 +53,11 @@ ComputeSPHEAtom::~ComputeSPHEAtom() void ComputeSPHEAtom::init() { - int count = 0; for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style,"evector/atom") == 0) count++; + if (strcmp(modify->compute[i]->style,"sph/e/atom") == 0) count++; if (count > 1 && comm->me == 0) - error->warning(FLERR,"More than one compute evector/atom"); + error->warning(FLERR,"More than one compute sph/e/atom"); } /* ---------------------------------------------------------------------- */ @@ -78,14 +79,13 @@ void ComputeSPHEAtom::compute_peratom() int *mask = atom->mask; int nlocal = atom->nlocal; - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - evector[i] = esph[i]; - } - else { - evector[i] = 0.0; - } + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + evector[i] = esph[i]; + } else { + evector[i] = 0.0; } + } } /* ---------------------------------------------------------------------- diff --git a/src/SPH/compute_sph_rho_atom.cpp b/src/SPH/compute_sph_rho_atom.cpp index 9c596bdfc3..54d1237368 100644 --- a/src/SPH/compute_sph_rho_atom.cpp +++ b/src/SPH/compute_sph_rho_atom.cpp @@ -13,13 +13,15 @@ ------------------------------------------------------------------------- */ #include "compute_sph_rho_atom.h" -#include + #include "atom.h" -#include "update.h" -#include "modify.h" #include "comm.h" -#include "memory.h" #include "error.h" +#include "memory.h" +#include "modify.h" +#include "update.h" + +#include using namespace LAMMPS_NS; @@ -30,8 +32,7 @@ ComputeSPHRhoAtom::ComputeSPHRhoAtom(LAMMPS *lmp, int narg, char **arg) : { if (narg != 3) error->all(FLERR,"Illegal compute sph/rho/atom command"); if (atom->rho_flag != 1) - error->all(FLERR,"Compute sph/rho/atom command requires atom_style sph"); - + error->all(FLERR, "Compute sph/rho/atom requires atom attribute density, e.g. in atom_style sph"); peratom_flag = 1; size_peratom_cols = 0; @@ -50,12 +51,11 @@ ComputeSPHRhoAtom::~ComputeSPHRhoAtom() void ComputeSPHRhoAtom::init() { - int count = 0; for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style,"rhoVector/atom") == 0) count++; + if (strcmp(modify->compute[i]->style,"sph/rho/atom") == 0) count++; if (count > 1 && comm->me == 0) - error->warning(FLERR,"More than one compute rhoVector/atom"); + error->warning(FLERR,"More than one compute sph/rho/atom"); } /* ---------------------------------------------------------------------- */ @@ -73,20 +73,17 @@ void ComputeSPHRhoAtom::compute_peratom() vector_atom = rhoVector; } - // compute kinetic energy for each atom in group - double *rho = atom->rho; int *mask = atom->mask; int nlocal = atom->nlocal; - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - rhoVector[i] = rho[i]; - } - else { - rhoVector[i] = 0.0; - } + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + rhoVector[i] = rho[i]; + } else { + rhoVector[i] = 0.0; } + } } /* ---------------------------------------------------------------------- diff --git a/src/SPH/compute_sph_t_atom.cpp b/src/SPH/compute_sph_t_atom.cpp index 4a83013434..e795c32a5e 100644 --- a/src/SPH/compute_sph_t_atom.cpp +++ b/src/SPH/compute_sph_t_atom.cpp @@ -13,13 +13,15 @@ ------------------------------------------------------------------------- */ #include "compute_sph_t_atom.h" -#include + #include "atom.h" -#include "update.h" -#include "modify.h" #include "comm.h" -#include "memory.h" #include "error.h" +#include "memory.h" +#include "modify.h" +#include "update.h" + +#include using namespace LAMMPS_NS; @@ -31,7 +33,7 @@ ComputeSPHTAtom::ComputeSPHTAtom(LAMMPS *lmp, int narg, char **arg) : if (narg != 3) error->all(FLERR,"Number of arguments for compute sph/t/atom command != 3"); if ((atom->esph_flag != 1) || (atom->cv_flag != 1)) - error->all(FLERR,"Compute sph/t/atom command requires atom_style sph"); + error->all(FLERR, "Compute sph/t/atom requires atom attributes energy and specific heat, e.g. in atom_style sph"); peratom_flag = 1; size_peratom_cols = 0; @@ -51,12 +53,11 @@ ComputeSPHTAtom::~ComputeSPHTAtom() void ComputeSPHTAtom::init() { - int count = 0; for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style,"meso/t/atom") == 0) count++; + if (strcmp(modify->compute[i]->style,"sph/t/atom") == 0) count++; if (count > 1 && comm->me == 0) - error->warning(FLERR,"More than one compute meso/t/atom"); + error->warning(FLERR,"More than one compute sph/t/atom"); } /* ---------------------------------------------------------------------- */ @@ -79,16 +80,15 @@ void ComputeSPHTAtom::compute_peratom() int *mask = atom->mask; int nlocal = atom->nlocal; - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - if (cv[i] > 0.0) { - tvector[i] = esph[i] / cv[i]; - } - } - else { - tvector[i] = 0.0; + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (cv[i] > 0.0) { + tvector[i] = esph[i] / cv[i]; } + } else { + tvector[i] = 0.0; } + } } /* ---------------------------------------------------------------------- diff --git a/src/SPH/fix_sph.cpp b/src/SPH/fix_sph.cpp index 0dafcee7c0..96479be928 100644 --- a/src/SPH/fix_sph.cpp +++ b/src/SPH/fix_sph.cpp @@ -13,10 +13,13 @@ ------------------------------------------------------------------------- */ #include "fix_sph.h" + #include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" #include "force.h" #include "update.h" -#include "error.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -24,11 +27,10 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ FixSPH::FixSPH(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg) { - - if ((atom->esph_flag != 1) || (atom->rho_flag != 1)) - error->all(FLERR, - "Fix sph command requires atom_style with both energy and density"); + Fix(lmp, narg, arg) +{ + if ((atom->esph_flag != 1) || (atom->rho_flag != 1) || (atom->vest_flag != 1)) + error->all(FLERR, "Fix sph requires atom attributes energy, density, and velocity estimates, e.g. in atom_style sph"); if (narg != 3) error->all(FLERR,"Illegal number of arguments for fix sph command"); @@ -38,7 +40,8 @@ FixSPH::FixSPH(LAMMPS *lmp, int narg, char **arg) : /* ---------------------------------------------------------------------- */ -int FixSPH::setmask() { +int FixSPH::setmask() +{ int mask = 0; mask |= INITIAL_INTEGRATE; mask |= FINAL_INTEGRATE; @@ -48,11 +51,14 @@ int FixSPH::setmask() { /* ---------------------------------------------------------------------- */ -void FixSPH::init() { +void FixSPH::init() +{ dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; } +/* ---------------------------------------------------------------------- */ + void FixSPH::setup_pre_force(int /*vflag*/) { // set vest equal to v @@ -76,7 +82,8 @@ void FixSPH::setup_pre_force(int /*vflag*/) allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixSPH::initial_integrate(int /*vflag*/) { +void FixSPH::initial_integrate(int /*vflag*/) +{ // update v and x and rho and e of atoms in group double **x = atom->x; @@ -129,8 +136,8 @@ void FixSPH::initial_integrate(int /*vflag*/) { /* ---------------------------------------------------------------------- */ -void FixSPH::final_integrate() { - +void FixSPH::final_integrate() +{ // update v, rho, and e of atoms in group double **v = atom->v; @@ -169,7 +176,8 @@ void FixSPH::final_integrate() { /* ---------------------------------------------------------------------- */ -void FixSPH::reset_dt() { +void FixSPH::reset_dt() +{ dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; } diff --git a/src/SPH/fix_sph_stationary.cpp b/src/SPH/fix_sph_stationary.cpp index 673a7d50bf..877bb5b17b 100644 --- a/src/SPH/fix_sph_stationary.cpp +++ b/src/SPH/fix_sph_stationary.cpp @@ -13,10 +13,11 @@ ------------------------------------------------------------------------- */ #include "fix_sph_stationary.h" + #include "atom.h" +#include "error.h" #include "force.h" #include "update.h" -#include "error.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -24,11 +25,10 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ FixSPHStationary::FixSPHStationary(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg) { - + Fix(lmp, narg, arg) +{ if ((atom->esph_flag != 1) || (atom->rho_flag != 1)) - error->all(FLERR, - "Fix sph/stationary command requires atom_style with both energy and density, e.g. meso"); + error->all(FLERR, "Fix sph/stationary requires atom attributes energy and density, e.g. in atom_style sph"); if (narg != 3) error->all(FLERR,"Illegal number of arguments for fix sph/stationary command"); @@ -38,7 +38,8 @@ FixSPHStationary::FixSPHStationary(LAMMPS *lmp, int narg, char **arg) : /* ---------------------------------------------------------------------- */ -int FixSPHStationary::setmask() { +int FixSPHStationary::setmask() +{ int mask = 0; mask |= INITIAL_INTEGRATE; mask |= FINAL_INTEGRATE; @@ -47,7 +48,8 @@ int FixSPHStationary::setmask() { /* ---------------------------------------------------------------------- */ -void FixSPHStationary::init() { +void FixSPHStationary::init() +{ dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; } @@ -56,8 +58,8 @@ void FixSPHStationary::init() { allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixSPHStationary::initial_integrate(int /*vflag*/) { - +void FixSPHStationary::initial_integrate(int /*vflag*/) +{ double *rho = atom->rho; double *drho = atom->drho; double *esph = atom->esph; @@ -80,8 +82,8 @@ void FixSPHStationary::initial_integrate(int /*vflag*/) { /* ---------------------------------------------------------------------- */ -void FixSPHStationary::final_integrate() { - +void FixSPHStationary::final_integrate() +{ double *esph = atom->esph; double *desph = atom->desph; double *rho = atom->rho; @@ -101,7 +103,8 @@ void FixSPHStationary::final_integrate() { /* ---------------------------------------------------------------------- */ -void FixSPHStationary::reset_dt() { +void FixSPHStationary::reset_dt() +{ dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; } diff --git a/src/SPH/fix_sph_stationary.h b/src/SPH/fix_sph_stationary.h index 51e336a038..78ece5e5d4 100644 --- a/src/SPH/fix_sph_stationary.h +++ b/src/SPH/fix_sph_stationary.h @@ -33,9 +33,6 @@ class FixSPHStationary : public Fix { void final_integrate() override; void reset_dt() override; - private: - class NeighList *list; - protected: double dtv, dtf; double *step_respa; diff --git a/src/SPH/pair_sph_heatconduction.cpp b/src/SPH/pair_sph_heatconduction.cpp index cb27982fa3..145d9cadee 100644 --- a/src/SPH/pair_sph_heatconduction.cpp +++ b/src/SPH/pair_sph_heatconduction.cpp @@ -13,14 +13,15 @@ ------------------------------------------------------------------------- */ #include "pair_sph_heatconduction.h" -#include + #include "atom.h" +#include "domain.h" +#include "error.h" #include "force.h" #include "memory.h" -#include "error.h" #include "neigh_list.h" -#include "domain.h" +#include using namespace LAMMPS_NS; @@ -28,12 +29,16 @@ using namespace LAMMPS_NS; PairSPHHeatConduction::PairSPHHeatConduction(LAMMPS *lmp) : Pair(lmp) { + if ((atom->esph_flag != 1) || (atom->rho_flag != 1)) + error->all(FLERR, "Pair sph/heatconduction requires atom attributes energy and density, e.g. in atom_style sph"); + restartinfo = 0; } /* ---------------------------------------------------------------------- */ -PairSPHHeatConduction::~PairSPHHeatConduction() { +PairSPHHeatConduction::~PairSPHHeatConduction() +{ if (allocated) { memory->destroy(setflag); memory->destroy(cutsq); @@ -44,7 +49,8 @@ PairSPHHeatConduction::~PairSPHHeatConduction() { /* ---------------------------------------------------------------------- */ -void PairSPHHeatConduction::compute(int eflag, int vflag) { +void PairSPHHeatConduction::compute(int eflag, int vflag) +{ int i, j, ii, jj, inum, jnum, itype, jtype; double xtmp, ytmp, ztmp, delx, dely, delz; @@ -124,7 +130,6 @@ void PairSPHHeatConduction::compute(int eflag, int vflag) { if (newton_pair || j < nlocal) { desph[j] -= deltaE; } - } } } @@ -134,7 +139,8 @@ void PairSPHHeatConduction::compute(int eflag, int vflag) { allocate all arrays ------------------------------------------------------------------------- */ -void PairSPHHeatConduction::allocate() { +void PairSPHHeatConduction::allocate() +{ allocated = 1; int n = atom->ntypes; @@ -152,7 +158,8 @@ void PairSPHHeatConduction::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHHeatConduction::settings(int narg, char **/*arg*/) { +void PairSPHHeatConduction::settings(int narg, char **/*arg*/) +{ if (narg != 0) error->all(FLERR, "Illegal number of arguments for pair_style sph/heatconduction"); @@ -162,7 +169,8 @@ void PairSPHHeatConduction::settings(int narg, char **/*arg*/) { set coeffs for one or more type pairs ------------------------------------------------------------------------- */ -void PairSPHHeatConduction::coeff(int narg, char **arg) { +void PairSPHHeatConduction::coeff(int narg, char **arg) +{ if (narg != 4) error->all(FLERR,"Incorrect number of args for pair_style sph/heatconduction coefficients"); if (!allocated) @@ -178,7 +186,6 @@ void PairSPHHeatConduction::coeff(int narg, char **arg) { int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { - //printf("setting cut[%d][%d] = %f\n", i, j, cut_one); cut[i][j] = cut_one; alpha[i][j] = alpha_one; setflag[i][j] = 1; @@ -194,7 +201,8 @@ void PairSPHHeatConduction::coeff(int narg, char **arg) { init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairSPHHeatConduction::init_one(int i, int j) { +double PairSPHHeatConduction::init_one(int i, int j) +{ if (setflag[i][j] == 0) { error->all(FLERR,"All pair sph/heatconduction coeffs are not set"); @@ -209,7 +217,8 @@ double PairSPHHeatConduction::init_one(int i, int j) { /* ---------------------------------------------------------------------- */ double PairSPHHeatConduction::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, - double /*rsq*/, double /*factor_coul*/, double /*factor_lj*/, double &fforce) { + double /*rsq*/, double /*factor_coul*/, double /*factor_lj*/, double &fforce) +{ fforce = 0.0; return 0.0; diff --git a/src/SPH/pair_sph_idealgas.cpp b/src/SPH/pair_sph_idealgas.cpp index 114d323bbd..97cbda2ab3 100644 --- a/src/SPH/pair_sph_idealgas.cpp +++ b/src/SPH/pair_sph_idealgas.cpp @@ -13,14 +13,15 @@ ------------------------------------------------------------------------- */ #include "pair_sph_idealgas.h" -#include -#include "atom.h" -#include "force.h" -#include "neigh_list.h" -#include "memory.h" -#include "error.h" -#include "domain.h" +#include "atom.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "neigh_list.h" + +#include using namespace LAMMPS_NS; @@ -28,12 +29,17 @@ using namespace LAMMPS_NS; PairSPHIdealGas::PairSPHIdealGas(LAMMPS *lmp) : Pair(lmp) { + if ((atom->esph_flag != 1) || (atom->rho_flag != 1) || (atom->vest_flag != 1)) + error->all(FLERR, "Pair sph/idealgas requires atom attributes energy, density, and velocity estimates, e.g. in atom_style sph"); + restartinfo = 0; + single_enable = 0; } /* ---------------------------------------------------------------------- */ -PairSPHIdealGas::~PairSPHIdealGas() { +PairSPHIdealGas::~PairSPHIdealGas() +{ if (allocated) { memory->destroy(setflag); memory->destroy(cutsq); @@ -45,7 +51,8 @@ PairSPHIdealGas::~PairSPHIdealGas() { /* ---------------------------------------------------------------------- */ -void PairSPHIdealGas::compute(int eflag, int vflag) { +void PairSPHIdealGas::compute(int eflag, int vflag) +{ int i, j, ii, jj, inum, jnum, itype, jtype; double xtmp, ytmp, ztmp, delx, dely, delz, fpair; @@ -160,10 +167,6 @@ void PairSPHIdealGas::compute(int eflag, int vflag) { if (evflag) ev_tally(i, j, nlocal, newton_pair, 0.0, 0.0, fpair, delx, dely, delz); - - if (evflag) - ev_tally(i, j, nlocal, newton_pair, 0.0, 0.0, fpair, delx, dely, - delz); } } } @@ -175,7 +178,8 @@ void PairSPHIdealGas::compute(int eflag, int vflag) { allocate all arrays ------------------------------------------------------------------------- */ -void PairSPHIdealGas::allocate() { +void PairSPHIdealGas::allocate() +{ allocated = 1; int n = atom->ntypes; @@ -194,7 +198,8 @@ void PairSPHIdealGas::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHIdealGas::settings(int narg, char **/*arg*/) { +void PairSPHIdealGas::settings(int narg, char **/*arg*/) +{ if (narg != 0) error->all(FLERR, "Illegal number of arguments for pair_style sph/idealgas"); @@ -204,7 +209,8 @@ void PairSPHIdealGas::settings(int narg, char **/*arg*/) { set coeffs for one or more type pairs ------------------------------------------------------------------------- */ -void PairSPHIdealGas::coeff(int narg, char **arg) { +void PairSPHIdealGas::coeff(int narg, char **arg) +{ if (narg != 4) error->all(FLERR,"Incorrect number of args for pair_style sph/idealgas coefficients"); if (!allocated) @@ -221,7 +227,6 @@ void PairSPHIdealGas::coeff(int narg, char **arg) { for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { viscosity[i][j] = viscosity_one; - //printf("setting cut[%d][%d] = %f\n", i, j, cut_one); cut[i][j] = cut_one; setflag[i][j] = 1; count++; @@ -236,8 +241,8 @@ void PairSPHIdealGas::coeff(int narg, char **arg) { init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairSPHIdealGas::init_one(int i, int j) { - +double PairSPHIdealGas::init_one(int i, int j) +{ if (setflag[i][j] == 0) { error->all(FLERR,"All pair sph/idealgas coeffs are not set"); } @@ -246,12 +251,3 @@ double PairSPHIdealGas::init_one(int i, int j) { return cut[i][j]; } - -/* ---------------------------------------------------------------------- */ - -double PairSPHIdealGas::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, - double /*rsq*/, double /*factor_coul*/, double /*factor_lj*/, double &fforce) { - fforce = 0.0; - - return 0.0; -} diff --git a/src/SPH/pair_sph_idealgas.h b/src/SPH/pair_sph_idealgas.h index 3d61d76616..c3c11ac5bd 100644 --- a/src/SPH/pair_sph_idealgas.h +++ b/src/SPH/pair_sph_idealgas.h @@ -32,7 +32,6 @@ class PairSPHIdealGas : public Pair { void settings(int, char **) override; void coeff(int, char **) override; double init_one(int, int) override; - double single(int, int, int, int, double, double, double, double &) override; protected: double **cut, **viscosity; diff --git a/src/SPH/pair_sph_lj.cpp b/src/SPH/pair_sph_lj.cpp index d59a3ad992..4bdefca1a6 100644 --- a/src/SPH/pair_sph_lj.cpp +++ b/src/SPH/pair_sph_lj.cpp @@ -13,14 +13,15 @@ ------------------------------------------------------------------------- */ #include "pair_sph_lj.h" -#include -#include "atom.h" -#include "force.h" -#include "neigh_list.h" -#include "memory.h" -#include "error.h" -#include "domain.h" +#include "atom.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "neigh_list.h" + +#include using namespace LAMMPS_NS; @@ -28,12 +29,17 @@ using namespace LAMMPS_NS; PairSPHLJ::PairSPHLJ(LAMMPS *lmp) : Pair(lmp) { + if ((atom->esph_flag != 1) || (atom->rho_flag != 1) || (atom->cv_flag != 1) || (atom->vest_flag != 1)) + error->all(FLERR, "Pair sph/lj requires atom attributes energy, density, specific heat, and velocity estimates, e.g. in atom_style sph"); + restartinfo = 0; + single_enable = 0; } /* ---------------------------------------------------------------------- */ -PairSPHLJ::~PairSPHLJ() { +PairSPHLJ::~PairSPHLJ() +{ if (allocated) { memory->destroy(setflag); memory->destroy(cutsq); @@ -45,7 +51,8 @@ PairSPHLJ::~PairSPHLJ() { /* ---------------------------------------------------------------------- */ -void PairSPHLJ::compute(int eflag, int vflag) { +void PairSPHLJ::compute(int eflag, int vflag) +{ int i, j, ii, jj, inum, jnum, itype, jtype; double xtmp, ytmp, ztmp, delx, dely, delz, fpair; @@ -182,7 +189,8 @@ void PairSPHLJ::compute(int eflag, int vflag) { allocate all arrays ------------------------------------------------------------------------- */ -void PairSPHLJ::allocate() { +void PairSPHLJ::allocate() +{ allocated = 1; int n = atom->ntypes; @@ -201,7 +209,8 @@ void PairSPHLJ::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHLJ::settings(int narg, char **/*arg*/) { +void PairSPHLJ::settings(int narg, char **/*arg*/) +{ if (narg != 0) error->all(FLERR, "Illegal number of arguments for pair_style sph/lj"); @@ -211,7 +220,8 @@ void PairSPHLJ::settings(int narg, char **/*arg*/) { set coeffs for one or more type pairs ------------------------------------------------------------------------- */ -void PairSPHLJ::coeff(int narg, char **arg) { +void PairSPHLJ::coeff(int narg, char **arg) +{ if (narg != 4) error->all(FLERR, "Incorrect args for pair_style sph/lj coefficients"); @@ -229,7 +239,6 @@ void PairSPHLJ::coeff(int narg, char **arg) { for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { viscosity[i][j] = viscosity_one; - printf("setting cut[%d][%d] = %f\n", i, j, cut_one); cut[i][j] = cut_one; setflag[i][j] = 1; count++; @@ -244,8 +253,8 @@ void PairSPHLJ::coeff(int narg, char **arg) { init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairSPHLJ::init_one(int i, int j) { - +double PairSPHLJ::init_one(int i, int j) +{ if (setflag[i][j] == 0) { error->all(FLERR,"All pair sph/lj coeffs are not set"); } @@ -256,16 +265,6 @@ double PairSPHLJ::init_one(int i, int j) { return cut[i][j]; } -/* ---------------------------------------------------------------------- */ - -double PairSPHLJ::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, - double /*rsq*/, double /*factor_coul*/, double /*factor_lj*/, double &fforce) { - fforce = 0.0; - - return 0.0; -} - - /*double PairSPHLJ::LJEOS2(double rho, double e, double cv) { @@ -297,7 +296,8 @@ double PairSPHLJ::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, Journal of Chemical Physics 73 pp. 5401-5403 (1980) */ -void PairSPHLJ::LJEOS2(double rho, double e, double cv, double *p, double *c) { +void PairSPHLJ::LJEOS2(double rho, double e, double cv, double *p, double *c) +{ double T = e/cv; double beta = 1.0 / T; double beta_sqrt = sqrt(beta); diff --git a/src/SPH/pair_sph_lj.h b/src/SPH/pair_sph_lj.h index 47c34159e1..eb93a14de9 100644 --- a/src/SPH/pair_sph_lj.h +++ b/src/SPH/pair_sph_lj.h @@ -32,8 +32,6 @@ class PairSPHLJ : public Pair { void settings(int, char **) override; void coeff(int, char **) override; double init_one(int, int) override; - double single(int, int, int, int, double, double, double, double &) override; - //double LJEOS(int); void LJEOS2(double, double, double, double *, double *); protected: diff --git a/src/SPH/pair_sph_rhosum.cpp b/src/SPH/pair_sph_rhosum.cpp index 34adf3ce87..4fd96319ee 100644 --- a/src/SPH/pair_sph_rhosum.cpp +++ b/src/SPH/pair_sph_rhosum.cpp @@ -29,6 +29,9 @@ using namespace LAMMPS_NS; PairSPHRhoSum::PairSPHRhoSum(LAMMPS *lmp) : Pair(lmp) { + if (atom->rho_flag != 1) + error->all(FLERR, "Pair sph/rhosum requires atom attribute density, e.g. in atom_style sph"); + restartinfo = 0; // set comm size needed by this Pair @@ -39,11 +42,11 @@ PairSPHRhoSum::PairSPHRhoSum(LAMMPS *lmp) : Pair(lmp) /* ---------------------------------------------------------------------- */ -PairSPHRhoSum::~PairSPHRhoSum() { +PairSPHRhoSum::~PairSPHRhoSum() +{ if (allocated) { memory->destroy(setflag); memory->destroy(cutsq); - memory->destroy(cut); } } @@ -52,14 +55,16 @@ PairSPHRhoSum::~PairSPHRhoSum() { init specific to this pair style ------------------------------------------------------------------------- */ -void PairSPHRhoSum::init_style() { +void PairSPHRhoSum::init_style() +{ // need a full neighbor list neighbor->add_request(this, NeighConst::REQ_FULL); } /* ---------------------------------------------------------------------- */ -void PairSPHRhoSum::compute(int eflag, int vflag) { +void PairSPHRhoSum::compute(int eflag, int vflag) +{ int i, j, ii, jj, jnum, itype, jtype; double xtmp, ytmp, ztmp, delx, dely, delz; double rsq, imass, h, ih, ihsq; @@ -75,25 +80,6 @@ void PairSPHRhoSum::compute(int eflag, int vflag) { int *type = atom->type; double *mass = atom->mass; - // check consistency of pair coefficients - - if (first) { - for (i = 1; i <= atom->ntypes; i++) { - for (j = 1; i <= atom->ntypes; i++) { - if (cutsq[i][j] > 0.0) { - if (!setflag[i][i] || !setflag[j][j]) { - if (comm->me == 0) { - printf( - "SPH particle types %d and %d interact, but not all of their single particle properties are set.\n", - i, j); - } - } - } - } - } - first = 0; - } - inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -186,7 +172,6 @@ void PairSPHRhoSum::compute(int eflag, int vflag) { rho[i] += mass[jtype] * wf; } - } } } @@ -200,7 +185,8 @@ void PairSPHRhoSum::compute(int eflag, int vflag) { allocate all arrays ------------------------------------------------------------------------- */ -void PairSPHRhoSum::allocate() { +void PairSPHRhoSum::allocate() +{ allocated = 1; int n = atom->ntypes; @@ -210,7 +196,6 @@ void PairSPHRhoSum::allocate() { setflag[i][j] = 0; memory->create(cutsq, n + 1, n + 1, "pair:cutsq"); - memory->create(cut, n + 1, n + 1, "pair:cut"); } @@ -218,7 +203,8 @@ void PairSPHRhoSum::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHRhoSum::settings(int narg, char **arg) { +void PairSPHRhoSum::settings(int narg, char **arg) +{ if (narg != 1) error->all(FLERR, "Illegal number of arguments for pair_style sph/rhosum"); @@ -229,7 +215,8 @@ void PairSPHRhoSum::settings(int narg, char **arg) { set coeffs for one or more type pairs ------------------------------------------------------------------------- */ -void PairSPHRhoSum::coeff(int narg, char **arg) { +void PairSPHRhoSum::coeff(int narg, char **arg) +{ if (narg != 3) error->all(FLERR,"Incorrect number of args for sph/rhosum coefficients"); if (!allocated) @@ -244,7 +231,6 @@ void PairSPHRhoSum::coeff(int narg, char **arg) { int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { - //printf("setting cut[%d][%d] = %f\n", i, j, cut_one); cut[i][j] = cut_one; setflag[i][j] = 1; count++; @@ -259,7 +245,8 @@ void PairSPHRhoSum::coeff(int narg, char **arg) { init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairSPHRhoSum::init_one(int i, int j) { +double PairSPHRhoSum::init_one(int i, int j) +{ if (setflag[i][j] == 0) { error->all(FLERR,"All pair sph/rhosum coeffs are not set"); } @@ -272,7 +259,8 @@ double PairSPHRhoSum::init_one(int i, int j) { /* ---------------------------------------------------------------------- */ double PairSPHRhoSum::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, double /*rsq*/, - double /*factor_coul*/, double /*factor_lj*/, double &fforce) { + double /*factor_coul*/, double /*factor_lj*/, double &fforce) +{ fforce = 0.0; return 0.0; @@ -281,7 +269,8 @@ double PairSPHRhoSum::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, /* ---------------------------------------------------------------------- */ int PairSPHRhoSum::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int * /*pbc*/) { + int /*pbc_flag*/, int * /*pbc*/) +{ int i, j, m; double *rho = atom->rho; @@ -295,7 +284,8 @@ int PairSPHRhoSum::pack_forward_comm(int n, int *list, double *buf, /* ---------------------------------------------------------------------- */ -void PairSPHRhoSum::unpack_forward_comm(int n, int first, double *buf) { +void PairSPHRhoSum::unpack_forward_comm(int n, int first, double *buf) +{ int i, m, last; double *rho = atom->rho; diff --git a/src/SPH/pair_sph_taitwater.cpp b/src/SPH/pair_sph_taitwater.cpp index 9a5991718d..d97492de63 100644 --- a/src/SPH/pair_sph_taitwater.cpp +++ b/src/SPH/pair_sph_taitwater.cpp @@ -13,15 +13,16 @@ ------------------------------------------------------------------------- */ #include "pair_sph_taitwater.h" -#include -#include "atom.h" -#include "force.h" -#include "comm.h" -#include "neigh_list.h" -#include "memory.h" -#include "error.h" -#include "domain.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "neigh_list.h" + +#include using namespace LAMMPS_NS; @@ -29,6 +30,9 @@ using namespace LAMMPS_NS; PairSPHTaitwater::PairSPHTaitwater(LAMMPS *lmp) : Pair(lmp) { + if ((atom->esph_flag != 1) || (atom->rho_flag != 1) || (atom->vest_flag != 1)) + error->all(FLERR, "Pair sph/taitwater requires atom attributes energy, density, and velocity estimates, e.g. in atom_style sph"); + restartinfo = 0; single_enable = 0; first = 1; @@ -36,7 +40,8 @@ PairSPHTaitwater::PairSPHTaitwater(LAMMPS *lmp) : Pair(lmp) /* ---------------------------------------------------------------------- */ -PairSPHTaitwater::~PairSPHTaitwater() { +PairSPHTaitwater::~PairSPHTaitwater() +{ if (allocated) { memory->destroy(setflag); memory->destroy(cutsq); @@ -51,7 +56,8 @@ PairSPHTaitwater::~PairSPHTaitwater() { /* ---------------------------------------------------------------------- */ -void PairSPHTaitwater::compute(int eflag, int vflag) { +void PairSPHTaitwater::compute(int eflag, int vflag) +{ int i, j, ii, jj, inum, jnum, itype, jtype; double xtmp, ytmp, ztmp, delx, dely, delz, fpair; @@ -72,25 +78,6 @@ void PairSPHTaitwater::compute(int eflag, int vflag) { int nlocal = atom->nlocal; int newton_pair = force->newton_pair; - // check consistency of pair coefficients - - if (first) { - for (i = 1; i <= atom->ntypes; i++) { - for (j = 1; i <= atom->ntypes; i++) { - if (cutsq[i][j] > 1.e-32) { - if (!setflag[i][i] || !setflag[j][j]) { - if (comm->me == 0) { - printf( - "SPH particle types %d and %d interact with cutoff=%g, but not all of their single particle properties are set.\n", - i, j, sqrt(cutsq[i][j])); - } - } - } - } - } - first = 0; - } - inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -201,7 +188,8 @@ void PairSPHTaitwater::compute(int eflag, int vflag) { allocate all arrays ------------------------------------------------------------------------- */ -void PairSPHTaitwater::allocate() { +void PairSPHTaitwater::allocate() +{ allocated = 1; int n = atom->ntypes; @@ -223,7 +211,8 @@ void PairSPHTaitwater::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHTaitwater::settings(int narg, char **/*arg*/) { +void PairSPHTaitwater::settings(int narg, char **/*arg*/) +{ if (narg != 0) error->all(FLERR, "Illegal number of arguments for pair_style sph/taitwater"); @@ -233,7 +222,8 @@ void PairSPHTaitwater::settings(int narg, char **/*arg*/) { set coeffs for one or more type pairs ------------------------------------------------------------------------- */ -void PairSPHTaitwater::coeff(int narg, char **arg) { +void PairSPHTaitwater::coeff(int narg, char **arg) +{ if (narg != 6) error->all(FLERR, "Incorrect args for pair_style sph/taitwater coefficients"); @@ -257,14 +247,8 @@ void PairSPHTaitwater::coeff(int narg, char **arg) { B[i] = B_one; for (int j = MAX(jlo,i); j <= jhi; j++) { viscosity[i][j] = viscosity_one; - //printf("setting cut[%d][%d] = %f\n", i, j, cut_one); cut[i][j] = cut_one; - setflag[i][j] = 1; - - //cut[j][i] = cut[i][j]; - //viscosity[j][i] = viscosity[i][j]; - //setflag[j][i] = 1; count++; } } @@ -277,8 +261,8 @@ void PairSPHTaitwater::coeff(int narg, char **arg) { init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairSPHTaitwater::init_one(int i, int j) { - +double PairSPHTaitwater::init_one(int i, int j) +{ if (setflag[i][j] == 0) { error->all(FLERR,"All pair sph/taitwater coeffs are set"); } diff --git a/src/SPH/pair_sph_taitwater_morris.cpp b/src/SPH/pair_sph_taitwater_morris.cpp index 50fcd270f6..2209cc4ecf 100644 --- a/src/SPH/pair_sph_taitwater_morris.cpp +++ b/src/SPH/pair_sph_taitwater_morris.cpp @@ -13,15 +13,16 @@ ------------------------------------------------------------------------- */ #include "pair_sph_taitwater_morris.h" -#include -#include "atom.h" -#include "force.h" -#include "comm.h" -#include "neigh_list.h" -#include "memory.h" -#include "error.h" -#include "domain.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "neigh_list.h" + +#include using namespace LAMMPS_NS; @@ -29,6 +30,9 @@ using namespace LAMMPS_NS; PairSPHTaitwaterMorris::PairSPHTaitwaterMorris(LAMMPS *lmp) : Pair(lmp) { + if ((atom->esph_flag != 1) || (atom->rho_flag != 1) || (atom->vest_flag != 1)) + error->all(FLERR, "Pair sph/taitwater/morris requires atom attributes energy, density, and velocity estimates, e.g. in atom_style sph"); + restartinfo = 0; first = 1; single_enable = 0; @@ -36,7 +40,8 @@ PairSPHTaitwaterMorris::PairSPHTaitwaterMorris(LAMMPS *lmp) : Pair(lmp) /* ---------------------------------------------------------------------- */ -PairSPHTaitwaterMorris::~PairSPHTaitwaterMorris() { +PairSPHTaitwaterMorris::~PairSPHTaitwaterMorris() +{ if (allocated) { memory->destroy(setflag); memory->destroy(cutsq); @@ -51,7 +56,8 @@ PairSPHTaitwaterMorris::~PairSPHTaitwaterMorris() { /* ---------------------------------------------------------------------- */ -void PairSPHTaitwaterMorris::compute(int eflag, int vflag) { +void PairSPHTaitwaterMorris::compute(int eflag, int vflag) +{ int i, j, ii, jj, inum, jnum, itype, jtype; double xtmp, ytmp, ztmp, delx, dely, delz, fpair; @@ -72,25 +78,6 @@ void PairSPHTaitwaterMorris::compute(int eflag, int vflag) { int nlocal = atom->nlocal; int newton_pair = force->newton_pair; - // check consistency of pair coefficients - - if (first) { - for (i = 1; i <= atom->ntypes; i++) { - for (j = 1; i <= atom->ntypes; i++) { - if (cutsq[i][j] > 1.e-32) { - if (!setflag[i][i] || !setflag[j][j]) { - if (comm->me == 0) { - printf( - "SPH particle types %d and %d interact with cutoff=%g, but not all of their single particle properties are set.\n", - i, j, sqrt(cutsq[i][j])); - } - } - } - } - } - first = 0; - } - inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -152,9 +139,9 @@ void PairSPHTaitwaterMorris::compute(int eflag, int vflag) { fj = tmp * tmp * tmp; fj = B[jtype] * (fj * fj * tmp - 1.0) / (rho[j] * rho[j]); - velx=vxtmp - v[j][0]; - vely=vytmp - v[j][1]; - velz=vztmp - v[j][2]; + velx = vxtmp - v[j][0]; + vely = vytmp - v[j][1]; + velz = vztmp - v[j][2]; // dot product of velocity delta and distance vector delVdotDelR = delx * velx + dely * vely + delz * velz; @@ -169,8 +156,6 @@ void PairSPHTaitwaterMorris::compute(int eflag, int vflag) { fpair = -imass * jmass * (fi + fj) * wfd; deltaE = -0.5 *(fpair * delVdotDelR + fvisc * (velx*velx + vely*vely + velz*velz)); - // printf("testvar= %f, %f \n", delx, dely); - f[i][0] += delx * fpair + velx * fvisc; f[i][1] += dely * fpair + vely * fvisc; f[i][2] += delz * fpair + velz * fvisc; @@ -189,6 +174,7 @@ void PairSPHTaitwaterMorris::compute(int eflag, int vflag) { drho[j] += imass * delVdotDelR * wfd; } + // viscous forces do not contribute to virial if (evflag) ev_tally(i, j, nlocal, newton_pair, 0.0, 0.0, fpair, delx, dely, delz); } @@ -202,7 +188,8 @@ void PairSPHTaitwaterMorris::compute(int eflag, int vflag) { allocate all arrays ------------------------------------------------------------------------- */ -void PairSPHTaitwaterMorris::allocate() { +void PairSPHTaitwaterMorris::allocate() +{ allocated = 1; int n = atom->ntypes; @@ -224,7 +211,8 @@ void PairSPHTaitwaterMorris::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHTaitwaterMorris::settings(int narg, char **/*arg*/) { +void PairSPHTaitwaterMorris::settings(int narg, char **/*arg*/) +{ if (narg != 0) error->all(FLERR, "Illegal number of arguments for pair_style sph/taitwater/morris"); @@ -234,7 +222,8 @@ void PairSPHTaitwaterMorris::settings(int narg, char **/*arg*/) { set coeffs for one or more type pairs ------------------------------------------------------------------------- */ -void PairSPHTaitwaterMorris::coeff(int narg, char **arg) { +void PairSPHTaitwaterMorris::coeff(int narg, char **arg) +{ if (narg != 6) error->all(FLERR, "Incorrect args for pair_style sph/taitwater/morris coefficients"); @@ -258,7 +247,6 @@ void PairSPHTaitwaterMorris::coeff(int narg, char **arg) { B[i] = B_one; for (int j = MAX(jlo,i); j <= jhi; j++) { viscosity[i][j] = viscosity_one; - //printf("setting cut[%d][%d] = %f\n", i, j, cut_one); cut[i][j] = cut_one; setflag[i][j] = 1; @@ -274,8 +262,8 @@ void PairSPHTaitwaterMorris::coeff(int narg, char **arg) { init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairSPHTaitwaterMorris::init_one(int i, int j) { - +double PairSPHTaitwaterMorris::init_one(int i, int j) +{ if (setflag[i][j] == 0) { error->all(FLERR,"All pair sph/taitwater/morris coeffs are not set"); } From 6abbbdba6c98f9ba77b56dc5820053dc6ec01310 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Thu, 25 Jul 2024 17:10:23 -0600 Subject: [PATCH 082/169] Patching vremap in SPH --- src/SPH/fix_sph.cpp | 42 +++++++++++++++++++++++++++++++++++++++--- src/SPH/fix_sph.h | 2 ++ 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/SPH/fix_sph.cpp b/src/SPH/fix_sph.cpp index 96479be928..876d7ac4fb 100644 --- a/src/SPH/fix_sph.cpp +++ b/src/SPH/fix_sph.cpp @@ -61,6 +61,10 @@ void FixSPH::init() void FixSPH::setup_pre_force(int /*vflag*/) { + remap_v_flag = domain->deform_vremap; + if (remap_v_flag && (!comm->ghost_velocity)) + error->all(FLERR, "Fix sph requires ghost atoms store velocity when deforming with remap v"); + // set vest equal to v double **v = atom->v; double **vest = atom->vest; @@ -119,9 +123,16 @@ void FixSPH::initial_integrate(int /*vflag*/) rho[i] += dtf * drho[i]; // ... and density // extrapolate velocity for use with velocity-dependent potentials, e.g. SPH - vest[i][0] = v[i][0] + 2.0 * dtfm * f[i][0]; - vest[i][1] = v[i][1] + 2.0 * dtfm * f[i][1]; - vest[i][2] = v[i][2] + 2.0 * dtfm * f[i][2]; + // if velocities are remapped, perform this extrapolation after communication + if (remap_v_flag) { + vest[i][0] = dtfm * f[i][0]; + vest[i][1] = dtfm * f[i][1]; + vest[i][2] = dtfm * f[i][2]; + } else { + vest[i][0] = v[i][0] + 2.0 * dtfm * f[i][0]; + vest[i][1] = v[i][1] + 2.0 * dtfm * f[i][1]; + vest[i][2] = v[i][2] + 2.0 * dtfm * f[i][2]; + } v[i][0] += dtfm * f[i][0]; v[i][1] += dtfm * f[i][1]; @@ -136,6 +147,31 @@ void FixSPH::initial_integrate(int /*vflag*/) /* ---------------------------------------------------------------------- */ +void FixSPH::pre_force(int /*vflag*/) +{ + // if velocities are remapped, calculate estimates here + // note that vest currently stores dtfm * force + if (!remap_v_flag) return; + + double **v = atom->v; + double **vest = atom->vest; + int *mask = atom->mask; + int nlocal = atom->nlocal; + if (igroup == atom->firstgroup) + nlocal = atom->nfirst; + + int nall = nlocal + atom->nghost; + for (int i = 0; i < nall; i++) { + if (mask[i] & groupbit) { + vest[i][0] += v[i][0]; + vest[i][1] += v[i][1]; + vest[i][2] += v[i][2]; + } + } +} + +/* ---------------------------------------------------------------------- */ + void FixSPH::final_integrate() { // update v, rho, and e of atoms in group diff --git a/src/SPH/fix_sph.h b/src/SPH/fix_sph.h index 415e38bd21..7676844dd9 100644 --- a/src/SPH/fix_sph.h +++ b/src/SPH/fix_sph.h @@ -30,6 +30,7 @@ class FixSPH : public Fix { int setmask() override; void init() override; void setup_pre_force(int) override; + void pre_force(int) override; void initial_integrate(int) override; void final_integrate() override; void reset_dt() override; @@ -41,6 +42,7 @@ class FixSPH : public Fix { double dtv, dtf; double *step_respa; int mass_require; + int remap_v_flag; class Pair *pair; }; From 49b377fc3db56bac056cff1009c55c896c23f644 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Thu, 25 Jul 2024 17:51:48 -0600 Subject: [PATCH 083/169] Adding errors to unpatched uses of vest with vremap --- src/DPD-MESO/fix_mvv_dpd.cpp | 5 +++++ src/DPD-MESO/fix_mvv_edpd.cpp | 5 +++++ src/DPD-MESO/fix_mvv_tdpd.cpp | 5 +++++ src/DPD-SMOOTH/fix_meso_move.cpp | 7 +++++++ src/DPD-SMOOTH/fix_rigid_meso.cpp | 5 +++++ src/MACHDYN/fix_smd_integrate_tlsph.cpp | 5 +++++ src/MACHDYN/fix_smd_integrate_ulsph.cpp | 5 +++++ 7 files changed, 37 insertions(+) diff --git a/src/DPD-MESO/fix_mvv_dpd.cpp b/src/DPD-MESO/fix_mvv_dpd.cpp index d51000b15b..6def3305d8 100644 --- a/src/DPD-MESO/fix_mvv_dpd.cpp +++ b/src/DPD-MESO/fix_mvv_dpd.cpp @@ -65,6 +65,11 @@ void FixMvvDPD::init() if (!atom->vest_flag) error->all(FLERR,"Fix mvv/dpd requires atom attribute vest e.g. from atom style mdpd"); + // Cannot use vremap since its effects aren't propagated to vest + // see RHEO or SPH packages for examples patches + if (domain->deform_vremap) + error->all(FLERR, "Fix mvv/dpd cannot be used with velocity remapping"); + if (!force->pair_match("^mdpd",0) && !force->pair_match("^dpd",0)) { if (force->pair_match("^hybrid",0)) { if (!(force->pair_match("^mdpd",0,1) || force->pair_match("^dpd",0),1)) { diff --git a/src/DPD-MESO/fix_mvv_edpd.cpp b/src/DPD-MESO/fix_mvv_edpd.cpp index 7ac0dc3de7..389a8c97bf 100644 --- a/src/DPD-MESO/fix_mvv_edpd.cpp +++ b/src/DPD-MESO/fix_mvv_edpd.cpp @@ -73,6 +73,11 @@ void FixMvvEDPD::init() { if (!atom->edpd_flag) error->all(FLERR,"Fix mvv/edpd requires atom style edpd"); + // Cannot use vremap since its effects aren't propagated to vest + // see RHEO or SPH packages for examples patches + if (domain->deform_vremap) + error->all(FLERR, "Fix mvv/edpd cannot be used with velocity remapping"); + if (!force->pair_match("^edpd",0)) { if (force->pair_match("^hybrid",0)) { if (!force->pair_match("^edpd",0,1)) { diff --git a/src/DPD-MESO/fix_mvv_tdpd.cpp b/src/DPD-MESO/fix_mvv_tdpd.cpp index 122fd56365..1babbb8c5f 100644 --- a/src/DPD-MESO/fix_mvv_tdpd.cpp +++ b/src/DPD-MESO/fix_mvv_tdpd.cpp @@ -71,6 +71,11 @@ void FixMvvTDPD::init() { if (!atom->tdpd_flag) error->all(FLERR,"Fix mvv/tdpd requires atom style tdpd"); + // Cannot use vremap since its effects aren't propagated to vest + // see RHEO or SPH packages for examples patches + if (domain->deform_vremap) + error->all(FLERR, "Fix mvv/tdpd cannot be used with velocity remapping"); + if (!force->pair_match("^tdpd",0)) { if (force->pair_match("^hybrid",0)) { if (!force->pair_match("^tdpd",0,1)) { diff --git a/src/DPD-SMOOTH/fix_meso_move.cpp b/src/DPD-SMOOTH/fix_meso_move.cpp index 2c3213c3cd..89a7814f6a 100644 --- a/src/DPD-SMOOTH/fix_meso_move.cpp +++ b/src/DPD-SMOOTH/fix_meso_move.cpp @@ -350,7 +350,14 @@ void FixMesoMove::init () { } void FixMesoMove::setup_pre_force (int /*vflag*/) { + + // Cannot use vremap since its effects aren't propagated to vest + // see RHEO or SPH packages for examples patches + if (domain->deform_vremap) + error->all(FLERR, "Fix meso/move cannot be used with velocity remapping"); + // set vest equal to v + double **v = atom->v; double **vest = atom->vest; int *mask = atom->mask; diff --git a/src/DPD-SMOOTH/fix_rigid_meso.cpp b/src/DPD-SMOOTH/fix_rigid_meso.cpp index e0ad501e02..bfceb3295e 100644 --- a/src/DPD-SMOOTH/fix_rigid_meso.cpp +++ b/src/DPD-SMOOTH/fix_rigid_meso.cpp @@ -92,6 +92,11 @@ void FixRigidMeso::setup (int vflag) { conjqm[ibody][2] *= 2.0; conjqm[ibody][3] *= 2.0; } + + // Cannot use vremap since its effects aren't propagated to vest + // see RHEO or SPH packages for examples patches + if (domain->deform_vremap) + error->all(FLERR, "Fix rigid/meso cannot be used with velocity remapping"); } /* ---------------------------------------------------------------------- diff --git a/src/MACHDYN/fix_smd_integrate_tlsph.cpp b/src/MACHDYN/fix_smd_integrate_tlsph.cpp index f138a3c387..97cce5524d 100644 --- a/src/MACHDYN/fix_smd_integrate_tlsph.cpp +++ b/src/MACHDYN/fix_smd_integrate_tlsph.cpp @@ -115,6 +115,11 @@ void FixSMDIntegrateTlsph::init() { dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; vlimitsq = vlimit * vlimit; + + // Cannot use vremap since its effects aren't propagated to vest + // see RHEO or SPH packages for examples patches + if (domain->deform_vremap) + error->all(FLERR, "Fix smd/integrate_tlsph cannot be used with velocity remapping"); } /* ---------------------------------------------------------------------- diff --git a/src/MACHDYN/fix_smd_integrate_ulsph.cpp b/src/MACHDYN/fix_smd_integrate_ulsph.cpp index 8ef5c65b67..395946ba20 100644 --- a/src/MACHDYN/fix_smd_integrate_ulsph.cpp +++ b/src/MACHDYN/fix_smd_integrate_ulsph.cpp @@ -144,6 +144,11 @@ void FixSMDIntegrateUlsph::init() { dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; vlimitsq = vlimit * vlimit; + + // Cannot use vremap since its effects aren't propagated to vest + // see RHEO or SPH packages for examples patches + if (domain->deform_vremap) + error->all(FLERR, "Fix smd/integrate_ulsph cannot be used with velocity remapping"); } /* ---------------------------------------------------------------------- From d43e87bce1acfb33b5b4bb913c5bfc89a0039b1a Mon Sep 17 00:00:00 2001 From: jtclemm Date: Thu, 25 Jul 2024 17:54:52 -0600 Subject: [PATCH 084/169] Missing word --- src/DPD-MESO/fix_mvv_dpd.cpp | 2 +- src/DPD-MESO/fix_mvv_edpd.cpp | 2 +- src/DPD-MESO/fix_mvv_tdpd.cpp | 2 +- src/DPD-SMOOTH/fix_meso_move.cpp | 2 +- src/DPD-SMOOTH/fix_rigid_meso.cpp | 2 +- src/MACHDYN/fix_smd_integrate_tlsph.cpp | 4 ++-- src/MACHDYN/fix_smd_integrate_ulsph.cpp | 4 ++-- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/DPD-MESO/fix_mvv_dpd.cpp b/src/DPD-MESO/fix_mvv_dpd.cpp index 6def3305d8..5e91b4bad9 100644 --- a/src/DPD-MESO/fix_mvv_dpd.cpp +++ b/src/DPD-MESO/fix_mvv_dpd.cpp @@ -66,7 +66,7 @@ void FixMvvDPD::init() error->all(FLERR,"Fix mvv/dpd requires atom attribute vest e.g. from atom style mdpd"); // Cannot use vremap since its effects aren't propagated to vest - // see RHEO or SPH packages for examples patches + // see RHEO or SPH packages for examples of patches if (domain->deform_vremap) error->all(FLERR, "Fix mvv/dpd cannot be used with velocity remapping"); diff --git a/src/DPD-MESO/fix_mvv_edpd.cpp b/src/DPD-MESO/fix_mvv_edpd.cpp index 389a8c97bf..d34e9b5e5a 100644 --- a/src/DPD-MESO/fix_mvv_edpd.cpp +++ b/src/DPD-MESO/fix_mvv_edpd.cpp @@ -74,7 +74,7 @@ void FixMvvEDPD::init() if (!atom->edpd_flag) error->all(FLERR,"Fix mvv/edpd requires atom style edpd"); // Cannot use vremap since its effects aren't propagated to vest - // see RHEO or SPH packages for examples patches + // see RHEO or SPH packages for examples of patches if (domain->deform_vremap) error->all(FLERR, "Fix mvv/edpd cannot be used with velocity remapping"); diff --git a/src/DPD-MESO/fix_mvv_tdpd.cpp b/src/DPD-MESO/fix_mvv_tdpd.cpp index 1babbb8c5f..a34c86b6dd 100644 --- a/src/DPD-MESO/fix_mvv_tdpd.cpp +++ b/src/DPD-MESO/fix_mvv_tdpd.cpp @@ -72,7 +72,7 @@ void FixMvvTDPD::init() if (!atom->tdpd_flag) error->all(FLERR,"Fix mvv/tdpd requires atom style tdpd"); // Cannot use vremap since its effects aren't propagated to vest - // see RHEO or SPH packages for examples patches + // see RHEO or SPH packages for examples of patches if (domain->deform_vremap) error->all(FLERR, "Fix mvv/tdpd cannot be used with velocity remapping"); diff --git a/src/DPD-SMOOTH/fix_meso_move.cpp b/src/DPD-SMOOTH/fix_meso_move.cpp index 89a7814f6a..c9d4a41400 100644 --- a/src/DPD-SMOOTH/fix_meso_move.cpp +++ b/src/DPD-SMOOTH/fix_meso_move.cpp @@ -352,7 +352,7 @@ void FixMesoMove::init () { void FixMesoMove::setup_pre_force (int /*vflag*/) { // Cannot use vremap since its effects aren't propagated to vest - // see RHEO or SPH packages for examples patches + // see RHEO or SPH packages for examples of patches if (domain->deform_vremap) error->all(FLERR, "Fix meso/move cannot be used with velocity remapping"); diff --git a/src/DPD-SMOOTH/fix_rigid_meso.cpp b/src/DPD-SMOOTH/fix_rigid_meso.cpp index bfceb3295e..54fd72f924 100644 --- a/src/DPD-SMOOTH/fix_rigid_meso.cpp +++ b/src/DPD-SMOOTH/fix_rigid_meso.cpp @@ -94,7 +94,7 @@ void FixRigidMeso::setup (int vflag) { } // Cannot use vremap since its effects aren't propagated to vest - // see RHEO or SPH packages for examples patches + // see RHEO or SPH packages for examples of patches if (domain->deform_vremap) error->all(FLERR, "Fix rigid/meso cannot be used with velocity remapping"); } diff --git a/src/MACHDYN/fix_smd_integrate_tlsph.cpp b/src/MACHDYN/fix_smd_integrate_tlsph.cpp index 97cce5524d..e00c88bc22 100644 --- a/src/MACHDYN/fix_smd_integrate_tlsph.cpp +++ b/src/MACHDYN/fix_smd_integrate_tlsph.cpp @@ -116,8 +116,8 @@ void FixSMDIntegrateTlsph::init() { dtf = 0.5 * update->dt * force->ftm2v; vlimitsq = vlimit * vlimit; - // Cannot use vremap since its effects aren't propagated to vest - // see RHEO or SPH packages for examples patches + // Cannot use vremap since its effects aren't propagated to vest + // see RHEO or SPH packages for examples of patches if (domain->deform_vremap) error->all(FLERR, "Fix smd/integrate_tlsph cannot be used with velocity remapping"); } diff --git a/src/MACHDYN/fix_smd_integrate_ulsph.cpp b/src/MACHDYN/fix_smd_integrate_ulsph.cpp index 395946ba20..c6530c989b 100644 --- a/src/MACHDYN/fix_smd_integrate_ulsph.cpp +++ b/src/MACHDYN/fix_smd_integrate_ulsph.cpp @@ -145,8 +145,8 @@ void FixSMDIntegrateUlsph::init() { dtf = 0.5 * update->dt * force->ftm2v; vlimitsq = vlimit * vlimit; - // Cannot use vremap since its effects aren't propagated to vest - // see RHEO or SPH packages for examples patches + // Cannot use vremap since its effects aren't propagated to vest + // see RHEO or SPH packages for examples of patches if (domain->deform_vremap) error->all(FLERR, "Fix smd/integrate_ulsph cannot be used with velocity remapping"); } From 3deffb0dfd96fb7b57d735762da56bc6d71694ad Mon Sep 17 00:00:00 2001 From: jtclemm Date: Thu, 25 Jul 2024 18:10:27 -0600 Subject: [PATCH 085/169] typo --- src/SPH/compute_sph_e_atom.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SPH/compute_sph_e_atom.cpp b/src/SPH/compute_sph_e_atom.cpp index 8bb0622acd..b98fd97479 100644 --- a/src/SPH/compute_sph_e_atom.cpp +++ b/src/SPH/compute_sph_e_atom.cpp @@ -33,7 +33,7 @@ ComputeSPHEAtom::ComputeSPHEAtom(LAMMPS *lmp, int narg, char **arg) : if (narg != 3) error->all(FLERR,"Number of arguments for compute sph/e/atom command != 3"); if (atom->esph_flag != 1) - error->all(FLERR,"Compute sph/e/atom requires atom attribut energy, e.g. in atom_style sph"); + error->all(FLERR,"Compute sph/e/atom requires atom attribute energy, e.g. in atom_style sph"); peratom_flag = 1; size_peratom_cols = 0; From 68a6bc069330a2e6583af78e67f93be70e1c4bcf Mon Sep 17 00:00:00 2001 From: jtclemm Date: Thu, 25 Jul 2024 18:15:34 -0600 Subject: [PATCH 086/169] Adding missing header file --- src/DPD-MESO/fix_mvv_dpd.cpp | 1 + src/DPD-MESO/fix_mvv_edpd.cpp | 1 + src/DPD-MESO/fix_mvv_tdpd.cpp | 1 + src/DPD-SMOOTH/fix_rigid_meso.cpp | 3 ++- src/MACHDYN/fix_smd_integrate_tlsph.cpp | 15 +++++++++------ src/MACHDYN/fix_smd_integrate_ulsph.cpp | 15 +++++++++------ 6 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/DPD-MESO/fix_mvv_dpd.cpp b/src/DPD-MESO/fix_mvv_dpd.cpp index 5e91b4bad9..6b5440902b 100644 --- a/src/DPD-MESO/fix_mvv_dpd.cpp +++ b/src/DPD-MESO/fix_mvv_dpd.cpp @@ -24,6 +24,7 @@ #include "fix_mvv_dpd.h" #include "atom.h" +#include "domain.h" #include "error.h" #include "force.h" #include "update.h" diff --git a/src/DPD-MESO/fix_mvv_edpd.cpp b/src/DPD-MESO/fix_mvv_edpd.cpp index d34e9b5e5a..32a1608d6e 100644 --- a/src/DPD-MESO/fix_mvv_edpd.cpp +++ b/src/DPD-MESO/fix_mvv_edpd.cpp @@ -33,6 +33,7 @@ #include "fix_mvv_edpd.h" #include "atom.h" +#include "domain.h" #include "error.h" #include "force.h" #include "update.h" diff --git a/src/DPD-MESO/fix_mvv_tdpd.cpp b/src/DPD-MESO/fix_mvv_tdpd.cpp index a34c86b6dd..d4e2d8a5c9 100644 --- a/src/DPD-MESO/fix_mvv_tdpd.cpp +++ b/src/DPD-MESO/fix_mvv_tdpd.cpp @@ -29,6 +29,7 @@ #include "fix_mvv_tdpd.h" #include "atom.h" +#include "domain.h" #include "error.h" #include "force.h" #include "update.h" diff --git a/src/DPD-SMOOTH/fix_rigid_meso.cpp b/src/DPD-SMOOTH/fix_rigid_meso.cpp index 54fd72f924..3e8b07e6dc 100644 --- a/src/DPD-SMOOTH/fix_rigid_meso.cpp +++ b/src/DPD-SMOOTH/fix_rigid_meso.cpp @@ -29,11 +29,12 @@ ------------------------------------------------------------------------- */ #include "fix_rigid_meso.h" + #include "math_extra.h" #include "atom.h" #include "domain.h" -#include "memory.h" #include "error.h" +#include "memory.h" using namespace LAMMPS_NS; using namespace FixConst; diff --git a/src/MACHDYN/fix_smd_integrate_tlsph.cpp b/src/MACHDYN/fix_smd_integrate_tlsph.cpp index e00c88bc22..ee617c1577 100644 --- a/src/MACHDYN/fix_smd_integrate_tlsph.cpp +++ b/src/MACHDYN/fix_smd_integrate_tlsph.cpp @@ -24,15 +24,18 @@ ------------------------------------------------------------------------- */ #include "fix_smd_integrate_tlsph.h" + +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "pair.h" +#include "update.h" + #include #include #include -#include "atom.h" -#include "force.h" -#include "update.h" -#include "error.h" -#include "pair.h" -#include "comm.h" using namespace Eigen; using namespace LAMMPS_NS; diff --git a/src/MACHDYN/fix_smd_integrate_ulsph.cpp b/src/MACHDYN/fix_smd_integrate_ulsph.cpp index c6530c989b..6e2934c2ec 100644 --- a/src/MACHDYN/fix_smd_integrate_ulsph.cpp +++ b/src/MACHDYN/fix_smd_integrate_ulsph.cpp @@ -24,15 +24,18 @@ ------------------------------------------------------------------------- */ #include "fix_smd_integrate_ulsph.h" + +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "pair.h" +#include "update.h" + #include #include #include -#include "atom.h" -#include "comm.h" -#include "force.h" -#include "update.h" -#include "error.h" -#include "pair.h" using namespace Eigen; using namespace LAMMPS_NS; From 1a034af7d53760e6f92f4f701b8eb1982984a518 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 25 Jul 2024 21:14:38 -0400 Subject: [PATCH 087/169] fix logic bug --- src/RIGID/fix_shake.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/RIGID/fix_shake.cpp b/src/RIGID/fix_shake.cpp index 51b9eb8f78..049f3fb49c 100644 --- a/src/RIGID/fix_shake.cpp +++ b/src/RIGID/fix_shake.cpp @@ -112,10 +112,10 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : bool allow_typelabels = (atom->labelmapflag != 0); if (allow_typelabels) { for (int i = Atom::ATOM; i < Atom::DIHEDRAL; ++i) { - if ((atom->lmap->find("b", i) < 0) || - (atom->lmap->find("a", i) < 0) || - (atom->lmap->find("t", i) < 0) || - (atom->lmap->find("m", i) < 0)) allow_typelabels = false; + if ((atom->lmap->find("b", i) >= 0) || + (atom->lmap->find("a", i) >= 0) || + (atom->lmap->find("t", i) >= 0) || + (atom->lmap->find("m", i) >= 0)) allow_typelabels = false; } if (!allow_typelabels && (comm->me == 0)) error->warning(FLERR, "At least one typelabel conflicts with a fix shake option: " From c343287f2c714f6e8522fbfecb2ed703ba8b933b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 25 Jul 2024 21:15:16 -0400 Subject: [PATCH 088/169] add conditional typelabel support --- src/RIGID/fix_shake.cpp | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/RIGID/fix_shake.cpp b/src/RIGID/fix_shake.cpp index 049f3fb49c..41708823bb 100644 --- a/src/RIGID/fix_shake.cpp +++ b/src/RIGID/fix_shake.cpp @@ -99,6 +99,7 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : comm_forward = 3; // parse SHAKE args + auto mystyle = fmt::format("fix {}", style); if (narg < 8) utils::missing_cmd_args(FLERR, mystyle, error); @@ -140,6 +141,7 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : char mode = '\0'; int next = 6; while (next < narg) { + int i = -1; if (strcmp(arg[next],"b") == 0) mode = 'b'; else if (strcmp(arg[next],"a") == 0) mode = 'a'; else if (strcmp(arg[next],"t") == 0) mode = 't'; @@ -147,33 +149,40 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : mode = 'm'; atom->check_mass(FLERR); - // break if keyword that is not b,a,t,m + // break if known optional keyword - } else if (isalpha(arg[next][0])) break; + } else if ((strcmp(arg[next], "mol") == 0) || (strcmp(arg[next], "kbond") == 0)) { + break; - // read numeric args of b,a,t,m + // get numeric types for b, a, t, or m keywords. + + } else if (mode == 'b') { + if (allow_typelabels) i = utils::expand_type_int(FLERR, arg[next], Atom::BOND, lmp); + else i = utils::inumeric(FLERR, arg[next], false, lmp); - else if (mode == 'b') { - int i = utils::inumeric(FLERR,arg[next],false,lmp); if (i < 1 || i > atom->nbondtypes) - error->all(FLERR,"Invalid bond type index for {}", mystyle); + error->all(FLERR,"Invalid bond type {} index for {}", arg[next], mystyle); bond_flag[i] = 1; } else if (mode == 'a') { - int i = utils::inumeric(FLERR,arg[next],false,lmp); + if (allow_typelabels) i = utils::expand_type_int(FLERR, arg[next], Atom::ANGLE, lmp); + else i = utils::inumeric(FLERR, arg[next], false, lmp); + if (i < 1 || i > atom->nangletypes) - error->all(FLERR,"Invalid angle type index for {}", mystyle); + error->all(FLERR,"Invalid angle type {} for {}", arg[next], mystyle); angle_flag[i] = 1; } else if (mode == 't') { - int i = utils::inumeric(FLERR,arg[next],false,lmp); + if (allow_typelabels) i = utils::expand_type_int(FLERR, arg[next], Atom::ATOM, lmp); + else i = utils::inumeric(FLERR, arg[next], false, lmp); + if (i < 1 || i > atom->ntypes) - error->all(FLERR,"Invalid atom type index for {}", mystyle); + error->all(FLERR,"Invalid atom type {} for {}", arg[next], mystyle); type_flag[i] = 1; } else if (mode == 'm') { - double massone = utils::numeric(FLERR,arg[next],false,lmp); - if (massone == 0.0) error->all(FLERR,"Invalid atom mass for {}", mystyle); + double massone = utils::numeric(FLERR, arg[next], false, lmp); + if (massone == 0.0) error->all(FLERR,"Invalid atom mass {} for {}", arg[next], mystyle); if (nmass == atom->ntypes) error->all(FLERR,"Too many masses for {}", mystyle); mass_list[nmass++] = massone; From df4ae4128306208415a69f451434f6f330abc318 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 25 Jul 2024 21:25:14 -0400 Subject: [PATCH 089/169] update docs for added typelabel support --- doc/src/fix_shake.rst | 13 ++++++-- doc/src/neigh_modify.rst | 68 +++++++++++++++++++++------------------- 2 files changed, 46 insertions(+), 35 deletions(-) diff --git a/doc/src/fix_shake.rst b/doc/src/fix_shake.rst index 73caa9c668..3d1e57fcd8 100644 --- a/doc/src/fix_shake.rst +++ b/doc/src/fix_shake.rst @@ -27,9 +27,9 @@ Syntax .. parsed-literal:: - *b* values = one or more bond types - *a* values = one or more angle types - *t* values = one or more atom types + *b* values = one or more bond types (may use typelabels) + *a* values = one or more angle types (may use typelabels) + *t* values = one or more atom types (may use typelabels) *m* value = one or more mass values * zero or more keyword/value pairs may be appended @@ -137,6 +137,13 @@ constrained (within a fudge factor of MASSDELTA specified in both bonds in the angle are constrained then the angle will also be constrained if its type is in the list. +.. versionchanged:: TBD + +The types may be given as typelabels for as long as none of the +typelabels are called *b*, *a*, *t*, or *m*. In those cases the type +arguments would be ambiguous and thus support for typelabels will be +disabled instead. + For all constraints, a particular bond is only constrained if both atoms in the bond are in the group specified with the SHAKE fix. diff --git a/doc/src/neigh_modify.rst b/doc/src/neigh_modify.rst index 3ec6578b3f..8182d69db1 100644 --- a/doc/src/neigh_modify.rst +++ b/doc/src/neigh_modify.rst @@ -32,7 +32,7 @@ Syntax group-ID = only build pair neighbor lists for atoms in this group *exclude* values: *type* M N - M,N = exclude if one atom in pair is type M, other is type N + M,N = exclude if one atom in pair is type M, other is type N (M and N may be typelabels) *group* group1-ID group2-ID group1-ID,group2-ID = exclude if one atom is in 1st group, other in 2nd *molecule/intra* group-ID @@ -159,15 +159,19 @@ sample scenarios where this is useful: * When one or more rigid bodies are specified, interactions within each body can be turned off to save needless computation. See the :doc:`fix rigid ` command for more details. -The *exclude type* option turns off the pairwise interaction if one -atom is of type M and the other of type N. M can equal N. The -*exclude group* option turns off the interaction if one atom is in the -first group and the other is the second. Group1-ID can equal -group2-ID. The *exclude molecule/intra* option turns off the -interaction if both atoms are in the specified group and in the same -molecule, as determined by their molecule ID. The *exclude -molecule/inter* turns off the interaction between pairs of atoms that -have different molecule IDs and are both in the specified group. +.. versionchanged:: TBD + + Support for typelabels was added. + +The *exclude type* option turns off the pairwise interaction if one atom +is of type M and the other of type N. M can equal N. The *exclude +group* option turns off the interaction if one atom is in the first +group and the other is the second. Group1-ID can equal group2-ID. The +*exclude molecule/intra* option turns off the interaction if both atoms +are in the specified group and in the same molecule, as determined by +their molecule ID. The *exclude molecule/inter* turns off the +interaction between pairs of atoms that have different molecule IDs and +are both in the specified group. Each of the exclude options can be specified multiple times. The *exclude type* option is the most efficient option to use; it requires @@ -219,34 +223,34 @@ atom can have. The *binsize* option allows you to specify what size of bins will be used in neighbor list construction to sort and find neighboring atoms. By default, for :doc:`neighbor style bin `, LAMMPS uses bins -that are 1/2 the size of the maximum pair cutoff. For :doc:`neighbor style multi `, -the bins are 1/2 the size of the collection interaction cutoff. -Typically these are good values for minimizing the time for -neighbor list construction. This setting overrides the default. -If you make it too big, there is little overhead due to +that are 1/2 the size of the maximum pair cutoff. For :doc:`neighbor +style multi `, the bins are 1/2 the size of the collection +interaction cutoff. Typically these are good values for minimizing the +time for neighbor list construction. This setting overrides the +default. If you make it too big, there is little overhead due to looping over bins, but more atoms are checked. If you make it too -small, the optimal number of atoms is checked, but bin overhead goes -up. If you set the binsize to 0.0, LAMMPS will use the default -binsize of 1/2 the cutoff. +small, the optimal number of atoms is checked, but bin overhead goes up. +If you set the binsize to 0.0, LAMMPS will use the default binsize of +1/2 the cutoff. The *collection/type* option allows you to define collections of atom -types, used by the *multi* neighbor mode. By grouping atom types with -similar physical size or interaction cutoff lengths, one may be able -to improve performance by reducing -overhead. You must first specify the number of collections N to be -defined followed by N lists of types. Each list consists of a series of type -ranges separated by commas. The range can be specified as a -single numeric value, or a wildcard asterisk can be used to specify a range -of values. This takes the form "\*" or "\*n" or "n\*" or "m\*n". For -example, if M = the number of atom types, then an asterisk with no numeric -values means all types from 1 to M. A leading asterisk means all types -from 1 to n (inclusive). A trailing asterisk means all types from n to M -(inclusive). A middle asterisk means all types from m to n (inclusive). -Note that all atom types must be included in exactly one of the N collections. +types, used by the *multi* neighbor mode. By grouping atom types with +similar physical size or interaction cutoff lengths, one may be able to +improve performance by reducing overhead. You must first specify the +number of collections N to be defined followed by N lists of types. +Each list consists of a series of type ranges separated by commas. The +range can be specified as a single numeric value, or a wildcard asterisk +can be used to specify a range of values. This takes the form "\*" or +"\*n" or "n\*" or "m\*n". For example, if M = the number of atom types, +then an asterisk with no numeric values means all types from 1 to M. A +leading asterisk means all types from 1 to n (inclusive). A trailing +asterisk means all types from n to M (inclusive). A middle asterisk +means all types from m to n (inclusive). Note that all atom types must +be included in exactly one of the N collections. The *collection/interval* option provides a similar capability. This command allows a user to define collections by specifying a series of -cutoff intervals. LAMMPS will automatically sort atoms into these +cutoff intervals. LAMMPS will automatically sort atoms into these intervals based on their type-dependent cutoffs or their finite size. You must first specify the number of collections N to be defined followed by N values representing the upper cutoff of each interval. From c8818a16c55db4d653e667bcc95777f66d496ed0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 25 Jul 2024 22:14:06 -0400 Subject: [PATCH 090/169] Add menu entries to open LAMMPS tutorial website --- doc/src/Howto_lammps_gui.rst | 9 ++++++--- doc/utils/sphinx-config/false_positives.txt | 1 + tools/lammps-gui/CMakeLists.txt | 2 +- tools/lammps-gui/codeeditor.cpp | 11 +++++++++++ tools/lammps-gui/codeeditor.h | 1 + tools/lammps-gui/icons/help-browser.png | Bin 5073 -> 4071 bytes tools/lammps-gui/icons/help-tutorial.png | Bin 0 -> 3414 bytes tools/lammps-gui/lammpsgui.cpp | 6 ++++++ tools/lammps-gui/lammpsgui.h | 1 + tools/lammps-gui/lammpsgui.qrc | 1 + tools/lammps-gui/lammpsgui.ui | 14 +++++++++++++- 11 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 tools/lammps-gui/icons/help-tutorial.png diff --git a/doc/src/Howto_lammps_gui.rst b/doc/src/Howto_lammps_gui.rst index a91a46ad3c..baae66bb40 100644 --- a/doc/src/Howto_lammps_gui.rst +++ b/doc/src/Howto_lammps_gui.rst @@ -559,6 +559,9 @@ a minimal description of LAMMPS-GUI. The ``LAMMPS-GUI Howto`` entry will open this documentation page from the online documentation in a web browser window. The ``LAMMPS Manual`` entry will open the main page of the LAMMPS online documentation in a web browser window. +The ``LAMMPS Tutorial`` entry will open the main page of the set of +LAMMPS tutorials authored and maintained by Simon Gravelle at +https://lammpstutorials.github.io/ in a web browser window. ----- @@ -744,12 +747,12 @@ available (On macOS use the Command key instead of Ctrl/Control). - Reformat line - Shift+TAB - Show Completions - * - Ctrl+Shift+Enter + * - Ctrl+Shift+T + - LAMMPS Tutorial + - Ctrl+Shift+Enter - Run File - - - - - - Further editing keybindings `are documented with the Qt documentation `_. In diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index d18ab66181..649834ed7f 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1355,6 +1355,7 @@ Grama grana granregion graphene +Gravelle Greathouse greenyellow Greffet diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 435516a521..0b307a43cc 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -199,7 +199,7 @@ if(APPLE) 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_COPYRIGHT "(c) 2003 - 2024, The LAMMPS Developers" MACOSX_BUNDLE TRUE ) # additional targets to populate the bundle tree and create the .dmg image file diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index 2d349e28ab..c4690c3d7f 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -775,6 +775,11 @@ void CodeEditor::contextMenuEvent(QContextMenuEvent *event) action->setData(QString()); connect(action, &QAction::triggered, this, &CodeEditor::open_help); + action = menu->addAction(QString("LAMMPS Tutorial")); + action->setIcon(QIcon(":/icons/help-tutorial.png")); + action->setData(QString("https://lammpstutorials.github.io/")); + connect(action, &QAction::triggered, this, &CodeEditor::open_url); + menu->exec(event->globalPos()); delete menu; } @@ -1208,6 +1213,12 @@ void CodeEditor::open_help() QUrl(QString("https://docs.lammps.org/%1").arg(act->data().toString()))); } +void CodeEditor::open_url() +{ + auto *act = qobject_cast(sender()); + QDesktopServices::openUrl(QUrl(act->data().toString())); +} + void CodeEditor::view_file() { auto *act = qobject_cast(sender()); diff --git a/tools/lammps-gui/codeeditor.h b/tools/lammps-gui/codeeditor.h index b36f0d8de0..978dc41d3b 100644 --- a/tools/lammps-gui/codeeditor.h +++ b/tools/lammps-gui/codeeditor.h @@ -78,6 +78,7 @@ private slots: void get_help(); void find_help(QString &page, QString &help); void open_help(); + void open_url(); void view_file(); void reformatCurrentLine(); void runCompletion(); diff --git a/tools/lammps-gui/icons/help-browser.png b/tools/lammps-gui/icons/help-browser.png index f3edf2c430bdfaebd9565afc32e692b3a68dd3fe..f61fca45731edc92424a84448c002bb3e130eba4 100644 GIT binary patch literal 4071 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 delta 5048 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 O3IG5}MNUMnLSTZ+^3y>8 diff --git a/tools/lammps-gui/icons/help-tutorial.png b/tools/lammps-gui/icons/help-tutorial.png new file mode 100644 index 0000000000000000000000000000000000000000..94df016852eedd250f2edd45eb45296102db972c GIT binary patch literal 3414 zcma);XEfZ~8pi*l4v{d?OJoMo%Pl%hlV3X|K@?d zwRm#?IEO%^G)$c)hn|PTTaB2JNedH)!9D9^U&p@s@sh_-ZufYG(aA1Z?ZU2uMS77a zt*Gy6rn#@6QF>srvQP{|*q2;J7!1PzqcJnnvn)7rVhs~bPQEyf&aRHE_Njd{GI@Kv z@onSQ;qm)j{*$L;t`;!t_)NRiV(-H(`SqOjg&ePb)%7MAr1f-xNd7WjQrGu9{k?V7 ztVUNaA2&j4S|00-dM(U;%!w~jOVaHAb}0kR6HVW9?%`#W%Z78@3^kZXf2dA2?l4BL zPL4+4hkvULI{&a(^Bt^jSEktFC-eTv94XKXbf>{}*lI11Ko_C;6iM}NE-E$zU z5=(4oqz_P=$$|oKOpe%_&1o~+j?nmck>$(t^wPmU5~%%f->7#mTkBC+k15+k;Q-yiun$`yE+&os zCZyG*C8My8Wt~8sz0(0Z&GgliYB-oLMZd^4vkd*X2fS=Xz_?coQ#0^ZANw`E1hjZ!9+s zRUfh(Fp619zF;qczi4tvATp1ss1ANCP<~wMNJXXLB=j6i)0w10=-jC8^e~8VCi-k( zth-FjwD#q#uN&(OBbJB_5sL5YkvEw~>w21^pIfpLuQwSCs^vA{U0#amS>cNx+k_Cd zBZZ0CXi4SiI%YdZ9U#kC81DiO*b2GgRM~dKo|NNCZ#N% zU?B`)VZ~{^4RI-IJEpx!OWT;9A`KbhVEa%PQQ9-}d9~(8K+D+k!Mmuapg2DDzqI0UF1b4*5w~3@PGMs zWiODfQ4->FzNKcv#4h0`&NNqLFqE3cCVZpfx;htf+>lQ>CX}WRRP7JNZ(X&<(@MZIjzr3L`v>}tQ?vX~Ao|MS+G zhNNpZ4GK!tFDTnE@O|f;-gyu#ynDG}q-gAcUl(&ZB=vscfqi>~IQwI3p#3%{z}LJX z`Nsy$`2be=?->N{xd~k`4O8ocWJ*VYkiJ(3N=V+5?4W~xtz)$z}o{rXL(4>rjL7lFJqbXGdTh2=5jC2U$`1TrXJAF3PtE^x=X+_`4 z^NjWw*DRF|>8OCE&JSwP4a32g)`dch*@(Qk7Fb_2$4+1SMrOGMePC((}_x-$Zk%|}c(PMNffpXtx9&ia6>YZIXZE2xQ` z<0dflhVTem#}%xLsN~UPjc)xl0AQmr6zJAVo4X!6urmmwY7yG-tDjzbAb=9y6-Dc@ z?G<|1DFvH=rp%jB!+yG{R9VJt*!-(6boOZ4j*zflN*`#oOAh-Wqn6pY{uOM*0kz_tCRZ|_Sy);Jg3 z<8CFtO5`^!t?Y-4La4~~C8DC+LqbY6{+j5*fOV2&eCrMtIGG zdO|~Nc(gX}FWRAdJErb(5Y6E_GTdQg`g`SzLgtgD$_$Q4-v|Jn>39ss%LJFV(Q^i0 zyiE#s*cCqdnPJ^};J}MZnG)QV4m`RFtlp4iH> z@d)Mhde$V>9gWZTy(fIPxx|N%cOI_F=Nuf2;O2XrRkjD(tS@y>CFG@QMz1N)IlEev zar^;SZ@Sqw?{KbPb@#I0(&ba`Yy;-z^@wN2uT71_pA0PGCvj~+mWuyoj-;V?*-gy? zD>^`5fmq?O;if-aGU{~gFMs~~HOLfs&GHe=CjP+HM<65d>*d(Snx9vha>2mB@=uS0 z9&XcRlhI(kY@%3-VmOB9IM`?V5om+YoF?*_Hgy4p0eD%XZJYb3=COog;A|m5h#^I& zH8zz@C=gSTvErwcsy|H%IAvKP6b!(-xvh1nKHQ<{iT7zt5JFG+^A`_^$8`t{ zkBpr9;c!0`$o5{Pr%zZ2h4b_C!E3eqK_oRNt5R^v z2F{WkMf?Xib0U9H6hIa(1*ZVArf?-BLKZ2f@C#^IvFZ3Pz}4N(*}?yR1D%zl{uIFR zERw#nt-YIZ1Ldmv?G{(j5Z$KKZ6)z#h2OWNJjQRcxfi)Bpeg literal 0 HcmV?d00001 diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 99fc75d869..18d4e67a2d 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -210,6 +210,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : connect(ui->action_Help, &QAction::triggered, this, &LammpsGui::help); connect(ui->actionLAMMPS_GUI_Howto, &QAction::triggered, this, &LammpsGui::howto); connect(ui->actionLAMMPS_Manual, &QAction::triggered, this, &LammpsGui::manual); + connect(ui->actionLAMMPS_Tutorial, &QAction::triggered, this, &LammpsGui::tutorial); connect(ui->actionPreferences, &QAction::triggered, this, &LammpsGui::preferences); connect(ui->actionDefaults, &QAction::triggered, this, &LammpsGui::defaults); connect(ui->actionView_in_OVITO, &QAction::triggered, this, &LammpsGui::start_exe); @@ -1332,6 +1333,11 @@ void LammpsGui::manual() QDesktopServices::openUrl(QUrl("https://docs.lammps.org/")); } +void LammpsGui::tutorial() +{ + QDesktopServices::openUrl(QUrl("https://lammpstutorials.github.io/")); +} + void LammpsGui::howto() { QDesktopServices::openUrl(QUrl("https://docs.lammps.org/Howto_lammps_gui.html")); diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index f41266b485..eb8618125b 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -99,6 +99,7 @@ private slots: void about(); void help(); void manual(); + void tutorial(); void howto(); void logupdate(); void modified(); diff --git a/tools/lammps-gui/lammpsgui.qrc b/tools/lammps-gui/lammpsgui.qrc index b4bf6b578d..8cb3f3244e 100644 --- a/tools/lammps-gui/lammpsgui.qrc +++ b/tools/lammps-gui/lammpsgui.qrc @@ -40,6 +40,7 @@ icons/help-about.png icons/help-browser.png icons/help-faq.png + icons/help-tutorial.png icons/image-x-generic.png icons/media-playback-start-2.png icons/media-playlist-repeat.png diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index d0354feb6c..2607e715b9 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -86,6 +86,7 @@ + @@ -313,6 +314,17 @@ Ctrl+Shift+M + + + + + + LAMMPS &Tutorial + + + Ctrl+Shift+T + + @@ -454,7 +466,7 @@ - LAMMPS-GUI Howto + LAMMPS-&GUI Howto Ctrl+Shift+G From 7bae7ea2f7334aef4bdae699c9e3c0aec1c508e9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 26 Jul 2024 10:04:39 -0400 Subject: [PATCH 091/169] add export to YAML to chart viewer --- tools/lammps-gui/CMakeLists.txt | 2 +- tools/lammps-gui/TODO.md | 3 +- tools/lammps-gui/chartviewer.cpp | 40 +++++++++++++++++++- tools/lammps-gui/chartviewer.h | 3 +- tools/lammps-gui/icons/application-yaml.png | Bin 0 -> 2872 bytes tools/lammps-gui/lammpsgui.qrc | 1 + 6 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 tools/lammps-gui/icons/application-yaml.png diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 0b307a43cc..3609cf6297 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 1.6.3 LANGUAGES CXX) +project(lammps-gui VERSION 1.6.4 LANGUAGES CXX) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md index d0b78b5591..e44d477a3a 100644 --- a/tools/lammps-gui/TODO.md +++ b/tools/lammps-gui/TODO.md @@ -2,8 +2,7 @@ LAMMPS-GUI TODO list: # Short term goals (v1.x) -- add a "file viewer", also view file option in editor context menu if word under cursor is a file -- add "export to YAML" to chart viewer. +- bundle LAMMPS tutorial input files - implement indenting regions for (nested) loops? - implement data file manager GUI with the following features: diff --git a/tools/lammps-gui/chartviewer.cpp b/tools/lammps-gui/chartviewer.cpp index d176dd98b7..38ea9d1f0d 100644 --- a/tools/lammps-gui/chartviewer.cpp +++ b/tools/lammps-gui/chartviewer.cpp @@ -36,7 +36,9 @@ using namespace QtCharts; ChartWindow::ChartWindow(const QString &_filename, QWidget *parent) : - QWidget(parent), menu(new QMenuBar), file(new QMenu("&File")), filename(_filename) + QWidget(parent), menu(new QMenuBar), file(new QMenu("&File")), + saveAsAct(nullptr), exportCsvAct(nullptr), exportDatAct(nullptr), exportYamlAct(nullptr), + closeAct(nullptr), stopAct(nullptr), quitAct(nullptr), filename(_filename) { auto *top = new QHBoxLayout; menu->addMenu(file); @@ -61,6 +63,8 @@ ChartWindow::ChartWindow(const QString &_filename, QWidget *parent) : exportCsvAct->setIcon(QIcon(":/icons/application-calc.png")); exportDatAct = file->addAction("Export data to &Gnuplot...", this, &ChartWindow::exportDat); exportDatAct->setIcon(QIcon(":/icons/application-plot.png")); + exportYamlAct = file->addAction("Export data to &YAML...", this, &ChartWindow::exportYaml); + exportYamlAct->setIcon(QIcon(":/icons/yaml-file-icon.png")); file->addSeparator(); stopAct = file->addAction("Stop &Run", this, &ChartWindow::stop_run); stopAct->setIcon(QIcon(":/icons/process-stop.png")); @@ -227,6 +231,40 @@ void ChartWindow::exportCsv() } } } +void ChartWindow::exportYaml() +{ + if (charts.empty()) return; + QString defaultname = filename + ".yaml"; + if (filename.isEmpty()) defaultname = "lammpsdata.yaml"; + QString fileName = QFileDialog::getSaveFileName(this, "Save Chart as YAML data", defaultname, + "Image Files (*.yaml, *.yml)"); + if (!fileName.isEmpty()) { + QFile file(fileName); + if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { + QTextStream out(&file); + out.setRealNumberPrecision(8); + out << "---\n"; + + out << "keywords: ['Step'"; + for (auto &c : charts) + out << ", " << c->get_title(); + out << "]\n"; + + out << "data: \n"; + int lines = charts[0]->get_count(); + for (int i = 0; i < lines; ++i) { + // timestep + out << " - [" << charts[0]->get_step(i); + // data + for (auto &c : charts) + out << ", " << c->get_data(i); + out << "]\n"; + } + out << "...\n"; + file.close(); + } + } +} void ChartWindow::change_chart(int) { diff --git a/tools/lammps-gui/chartviewer.h b/tools/lammps-gui/chartviewer.h index da0468eaf8..42afe0a9b8 100644 --- a/tools/lammps-gui/chartviewer.h +++ b/tools/lammps-gui/chartviewer.h @@ -50,6 +50,7 @@ private slots: void saveAs(); void exportDat(); void exportCsv(); + void exportYaml(); void change_chart(int index); @@ -61,7 +62,7 @@ private: QMenuBar *menu; QMenu *file; QComboBox *columns; - QAction *saveAsAct, *exportCsvAct, *exportDatAct; + QAction *saveAsAct, *exportCsvAct, *exportDatAct, *exportYamlAct; QAction *closeAct, *stopAct, *quitAct; QString filename; diff --git a/tools/lammps-gui/icons/application-yaml.png b/tools/lammps-gui/icons/application-yaml.png new file mode 100644 index 0000000000000000000000000000000000000000..d1457147d4af6630b8f4528b3173a2ef6e09ef89 GIT binary patch literal 2872 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/application-calc.png icons/application-exit.png icons/application-plot.png + icons/application-yaml.png icons/axes-img.png icons/document-new.png icons/document-open-recent.png From c0c69af70912240981f2b9c7a2810635aad91ace Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 26 Jul 2024 10:19:15 -0400 Subject: [PATCH 092/169] update LAMMPS-GUI howto docs --- doc/src/Howto_lammps_gui.rst | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/doc/src/Howto_lammps_gui.rst b/doc/src/Howto_lammps_gui.rst index baae66bb40..b64e343de7 100644 --- a/doc/src/Howto_lammps_gui.rst +++ b/doc/src/Howto_lammps_gui.rst @@ -235,20 +235,30 @@ run number that this chart window corresponds to. Same as for the *Output* window, the chart window is replaced on each new run, but the behavior can be changed in the preferences dialog. +.. versionadded:: 1.6 + + Support for YAML export added + From the ``File`` menu on the top left, it is possible to save an image of the currently displayed plot or export the data in either plain text columns (for use by plotting tools like `gnuplot `_ or `grace -`_), or as CSV data which can -be imported for further processing with Microsoft Excel or `pandas -`_ +`_), as CSV data which can be +imported for further processing with Microsoft Excel `LibreOffice Calc +`_ or with Python via `pandas +`_, or as YAML which can be imported into +Python with `PyYAML `_ or pandas. Thermo output data from successive run commands in the input script is combined into a single data set unless the format, number, or names of output columns are changed with a :doc:`thermo_style ` or a :doc:`thermo_modify ` command, or the current time step is reset with :doc:`reset_timestep `, or if a -:doc:`clear ` command is issued. +:doc:`clear ` command is issued. This is where the YAML export +from the *Charts* window differs from that of the *Output* window: +here you get the compounded data set starting with the last change of +output fields or timestep setting, while the export from the log will +contain *all* YAML output but *segmented* into individual runs. Image Slide Show ---------------- From a2f461c688d28ec48a46013504fef8a1445e30f9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 26 Jul 2024 10:35:07 -0400 Subject: [PATCH 093/169] fix cut-n-paste doc issue --- doc/src/pair_born_gauss.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/pair_born_gauss.rst b/doc/src/pair_born_gauss.rst index 97f0042ee7..58796438ad 100644 --- a/doc/src/pair_born_gauss.rst +++ b/doc/src/pair_born_gauss.rst @@ -19,7 +19,7 @@ Examples .. code-block:: LAMMPS pair_style born/gauss 10.0 - pair_coeff 1 1 1 1 8.2464e13 12.48 0.042644277 0.44 3.56 + pair_coeff 1 1 8.2464e13 12.48 0.042644277 0.44 3.56 Description """"""""""" From e317c18e1e3f737433eb9923d419e3e9dc15271c Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Fri, 26 Jul 2024 12:57:22 -0600 Subject: [PATCH 094/169] whitespace --- src/KOKKOS/angle_harmonic_kokkos.cpp | 2 +- src/KOKKOS/dihedral_harmonic_kokkos.cpp | 2 +- src/KOKKOS/improper_harmonic_kokkos.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/KOKKOS/angle_harmonic_kokkos.cpp b/src/KOKKOS/angle_harmonic_kokkos.cpp index 4e6aae9c1b..2b3c283732 100644 --- a/src/KOKKOS/angle_harmonic_kokkos.cpp +++ b/src/KOKKOS/angle_harmonic_kokkos.cpp @@ -72,7 +72,7 @@ void AngleHarmonicKokkos::compute(int eflag_in, int vflag_in) // reallocate per-atom arrays if necessary if (eflag_atom) { - if(k_eatom.extent(0) < maxeatom) { + if(k_eatom.extent(0) < maxeatom) { memoryKK->destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"angle:eatom"); d_eatom = k_eatom.template view(); diff --git a/src/KOKKOS/dihedral_harmonic_kokkos.cpp b/src/KOKKOS/dihedral_harmonic_kokkos.cpp index c451c880ca..05babd69b4 100644 --- a/src/KOKKOS/dihedral_harmonic_kokkos.cpp +++ b/src/KOKKOS/dihedral_harmonic_kokkos.cpp @@ -75,7 +75,7 @@ void DihedralHarmonicKokkos::compute(int eflag_in, int vflag_in) // reallocate per-atom arrays if necessary if (eflag_atom) { - if(k_eatom.extent(0) < maxeatom) { + if(k_eatom.extent(0) < maxeatom) { memoryKK->destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"dihedral:eatom"); d_eatom = k_eatom.view(); diff --git a/src/KOKKOS/improper_harmonic_kokkos.cpp b/src/KOKKOS/improper_harmonic_kokkos.cpp index 31eac00828..eafa7a08ec 100644 --- a/src/KOKKOS/improper_harmonic_kokkos.cpp +++ b/src/KOKKOS/improper_harmonic_kokkos.cpp @@ -74,7 +74,7 @@ void ImproperHarmonicKokkos::compute(int eflag_in, int vflag_in) // reallocate per-atom arrays if necessary if (eflag_atom) { - if(k_eatom.extent(0) < maxeatom) { + if(k_eatom.extent(0) < maxeatom) { memoryKK->destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom"); d_eatom = k_eatom.template view(); From e28de32a77f34d761497631703a7c93e07f5b5cd Mon Sep 17 00:00:00 2001 From: "Megan J. McCarthy" Date: Fri, 26 Jul 2024 13:06:17 -0600 Subject: [PATCH 095/169] update docs, kk accel style --- doc/src/Commands_bond.rst | 6 +++--- doc/src/angle_hybrid.rst | 3 +++ doc/src/dihedral_hybrid.rst | 3 +++ doc/src/improper_hybrid.rst | 3 +++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/doc/src/Commands_bond.rst b/doc/src/Commands_bond.rst index eec6f7acf1..d0ca52748c 100644 --- a/doc/src/Commands_bond.rst +++ b/doc/src/Commands_bond.rst @@ -73,7 +73,7 @@ OPT. * :doc:`none ` * :doc:`zero ` - * :doc:`hybrid ` + * :doc:`hybrid (k) ` * * * @@ -119,7 +119,7 @@ OPT. * :doc:`none ` * :doc:`zero ` - * :doc:`hybrid ` + * :doc:`hybrid (k) ` * * * @@ -157,7 +157,7 @@ OPT. * :doc:`none ` * :doc:`zero ` - * :doc:`hybrid ` + * :doc:`hybrid (k) ` * * * diff --git a/doc/src/angle_hybrid.rst b/doc/src/angle_hybrid.rst index cf8ea1a3fb..5eba42cd25 100644 --- a/doc/src/angle_hybrid.rst +++ b/doc/src/angle_hybrid.rst @@ -1,8 +1,11 @@ .. index:: angle_style hybrid +.. index:: angle_style hybrid/kk angle_style hybrid command ========================== +Accelerator Variants: *hybrid/kk* + Syntax """""" diff --git a/doc/src/dihedral_hybrid.rst b/doc/src/dihedral_hybrid.rst index 998a752275..b22fecef44 100644 --- a/doc/src/dihedral_hybrid.rst +++ b/doc/src/dihedral_hybrid.rst @@ -1,8 +1,11 @@ .. index:: dihedral_style hybrid +.. index:: dihedral_style hybrid/kk dihedral_style hybrid command ============================= +Accelerator Variants: *hybrid/kk* + Syntax """""" diff --git a/doc/src/improper_hybrid.rst b/doc/src/improper_hybrid.rst index a829d9989c..c2f80bdd25 100644 --- a/doc/src/improper_hybrid.rst +++ b/doc/src/improper_hybrid.rst @@ -1,8 +1,11 @@ .. index:: improper_style hybrid +.. index:: improper_style hybrid/kk improper_style hybrid command ============================= +Accelerator Variants: *hybrid/kk* + Syntax """""" From 343d600410001d3d13bffe441184615f9a268b9a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 26 Jul 2024 17:23:46 -0400 Subject: [PATCH 096/169] make docs consistent with rest of manual and rephrase fix shake changes --- doc/src/fix_shake.rst | 19 +++++++++++-------- doc/src/neigh_modify.rst | 4 ++-- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/doc/src/fix_shake.rst b/doc/src/fix_shake.rst index 3d1e57fcd8..a81b797a29 100644 --- a/doc/src/fix_shake.rst +++ b/doc/src/fix_shake.rst @@ -27,9 +27,9 @@ Syntax .. parsed-literal:: - *b* values = one or more bond types (may use typelabels) - *a* values = one or more angle types (may use typelabels) - *t* values = one or more atom types (may use typelabels) + *b* values = one or more bond types (may use type labels) + *a* values = one or more angle types (may use type labels) + *t* values = one or more atom types (may use type labels) *m* value = one or more mass values * zero or more keyword/value pairs may be appended @@ -139,12 +139,15 @@ constrained if its type is in the list. .. versionchanged:: TBD -The types may be given as typelabels for as long as none of the -typelabels are called *b*, *a*, *t*, or *m*. In those cases the type -arguments would be ambiguous and thus support for typelabels will be -disabled instead. +The types may be given as type labels *only* if there is no atom, bond, +or angle type label named *b*, *a*, *t*, or *m* defined in the +simulation. In that is the case, type labels cannot be used as +constraint type index with these two fixes because the type labels would +be incorrectly treated as a new type of constraint instead. Thus, +LAMMPS will print a warning and type label handling is disabled and +numeric types must be used. -For all constraints, a particular bond is only constrained if both +For all constraints, a particular bond is only constrained if *both* atoms in the bond are in the group specified with the SHAKE fix. The degrees-of-freedom removed by SHAKE bonds and angles are accounted diff --git a/doc/src/neigh_modify.rst b/doc/src/neigh_modify.rst index 8182d69db1..63d7221c70 100644 --- a/doc/src/neigh_modify.rst +++ b/doc/src/neigh_modify.rst @@ -32,7 +32,7 @@ Syntax group-ID = only build pair neighbor lists for atoms in this group *exclude* values: *type* M N - M,N = exclude if one atom in pair is type M, other is type N (M and N may be typelabels) + M,N = exclude if one atom in pair is type M, other is type N (M and N may be type labels) *group* group1-ID group2-ID group1-ID,group2-ID = exclude if one atom is in 1st group, other in 2nd *molecule/intra* group-ID @@ -161,7 +161,7 @@ sample scenarios where this is useful: .. versionchanged:: TBD - Support for typelabels was added. + Support for type labels was added. The *exclude type* option turns off the pairwise interaction if one atom is of type M and the other of type N. M can equal N. The *exclude From ca2507135336894606138139f503ec42f6d52730 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 26 Jul 2024 17:55:02 -0400 Subject: [PATCH 097/169] include generic accelerated style blurb --- doc/src/angle_hybrid.rst | 4 ++++ doc/src/dihedral_hybrid.rst | 4 ++++ doc/src/improper_hybrid.rst | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/doc/src/angle_hybrid.rst b/doc/src/angle_hybrid.rst index 5eba42cd25..c6371a9746 100644 --- a/doc/src/angle_hybrid.rst +++ b/doc/src/angle_hybrid.rst @@ -82,6 +82,10 @@ for specific angle types. ---------- +.. include:: accel_styles.rst + +---------- + Restrictions """""""""""" diff --git a/doc/src/dihedral_hybrid.rst b/doc/src/dihedral_hybrid.rst index b22fecef44..15d05487a5 100644 --- a/doc/src/dihedral_hybrid.rst +++ b/doc/src/dihedral_hybrid.rst @@ -83,6 +83,10 @@ for specific dihedral types. ---------- +.. include:: accel_styles.rst + +---------- + Restrictions """""""""""" diff --git a/doc/src/improper_hybrid.rst b/doc/src/improper_hybrid.rst index c2f80bdd25..eacc73017b 100644 --- a/doc/src/improper_hybrid.rst +++ b/doc/src/improper_hybrid.rst @@ -82,6 +82,10 @@ types. ---------- +.. include:: accel_styles.rst + +---------- + Restrictions """""""""""" From cabde6549e7a295e789207e7923ddbb2f0197617 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 26 Jul 2024 19:08:59 -0400 Subject: [PATCH 098/169] add backward compatibility with inputs created before the rename of SDK to SPICA --- src/KOKKOS/angle_spica_kokkos.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/KOKKOS/angle_spica_kokkos.h b/src/KOKKOS/angle_spica_kokkos.h index 4865c684a2..7b96e9b8a9 100644 --- a/src/KOKKOS/angle_spica_kokkos.h +++ b/src/KOKKOS/angle_spica_kokkos.h @@ -16,6 +16,9 @@ AngleStyle(spica/kk,AngleSPICAKokkos); AngleStyle(spica/kk/device,AngleSPICAKokkos); AngleStyle(spica/kk/host,AngleSPICAKokkos); +AngleStyle(sdk/kk,AngleSPICAKokkos); +AngleStyle(sdk/kk/device,AngleSPICAKokkos); +AngleStyle(sdk/kk/host,AngleSPICAKokkos); // clang-format on #else From 2a99b9957dc33cf84852f9184356c2ea6e7c8d75 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 26 Jul 2024 19:34:23 -0400 Subject: [PATCH 099/169] simplify and shorten charmmfsw example. add reference logs. --- examples/charmmfsw/in.charmmfsw | 12 +- .../charmmfsw/log.26Jul24.charmmfsw.g++.1 | 221 ++++++++++++++++++ .../charmmfsw/log.26Jul24.charmmfsw.g++.4 | 221 ++++++++++++++++++ 3 files changed, 448 insertions(+), 6 deletions(-) create mode 100644 examples/charmmfsw/log.26Jul24.charmmfsw.g++.1 create mode 100644 examples/charmmfsw/log.26Jul24.charmmfsw.g++.4 diff --git a/examples/charmmfsw/in.charmmfsw b/examples/charmmfsw/in.charmmfsw index fae489e8d7..fe7f486006 100644 --- a/examples/charmmfsw/in.charmmfsw +++ b/examples/charmmfsw/in.charmmfsw @@ -25,13 +25,13 @@ fix_modify cmap energy yes read_data data.charmmfsw.gz fix cmap crossterm CMAP neighbor 2 bin -neigh_modify delay 5 every 1 +neigh_modify delay 2 every 1 -fix 1 all shake 1e-6 500 0 m 1.008 a 142 -fix 2 all npt temp 303.15 303.15 100.0 iso 0.9869233 0.9869233 1000 couple xyz mtk no pchain 0 +fix 1 all shake 1e-6 100 100 m 1.008 a 142 +fix 2 all nvt temp 303.15 303.15 100.0 -thermo 100 -thermo_style custom step time spcpu cpuremain etotal evdwl ecoul elong edihed pe ke temp press vol +thermo 10 +thermo_style custom step etotal evdwl ecoul elong edihed pe ke temp press -run 1000 +run 100 diff --git a/examples/charmmfsw/log.26Jul24.charmmfsw.g++.1 b/examples/charmmfsw/log.26Jul24.charmmfsw.g++.1 new file mode 100644 index 0000000000..f56052b140 --- /dev/null +++ b/examples/charmmfsw/log.26Jul24.charmmfsw.g++.1 @@ -0,0 +1,221 @@ +LAMMPS (27 Jun 2024) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# charmmfsw example generated by https://charmm-gui.org/ +# from PDB structure 1HVN (https://www.rcsb.org/structure/1HVN) +# +# Dependencies: packages MOLECULE / KSPACE / RIGID +# To test with KOKKOS: lmp -k on g 1 -sf kk -pk kokkos neigh half -in in.charmmfsw + +units real +boundary p p p + +newton off +pair_style lj/charmmfsw/coul/long 10 12 +Switching to CHARMM coulomb energy conversion constant (src/KSPACE/pair_lj_charmmfsw_coul_long.cpp:63) +pair_modify mix arithmetic +kspace_style pppm 1e-6 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmmfsw +special_bonds charmm +improper_style harmonic +timestep 2 + +fix cmap all cmap charmmff.cmap +Reading CMAP parameters from: charmmff.cmap + Read in CMAP data for 2 crossterm types +fix_modify cmap energy yes +read_data data.charmmfsw.gz fix cmap crossterm CMAP +Reading data file ... + orthogonal box = (-24 -24 -24) to (24 24 24) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 10245 atoms + reading velocities ... + 10245 velocities + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 15 = max angles/atom + scanning dihedrals ... + 48 = max dihedrals/atom + scanning impropers ... + 4 = max impropers/atom + orthogonal box = (-24 -24 -24) to (24 24 24) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 6973 bonds + reading angles ... + 4057 angles + reading dihedrals ... + 1363 dihedrals + reading impropers ... + 70 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.002 seconds + read_data CPU = 0.072 seconds + +neighbor 2 bin +neigh_modify delay 2 every 1 + +fix 1 all shake 1e-6 100 100 m 1.008 a 142 +Finding SHAKE clusters ... + 75 = # of size 2 clusters + 47 = # of size 3 clusters + 9 = # of size 4 clusters + 3265 = # of frozen angles + find clusters CPU = 0.003 seconds +fix 2 all nvt temp 303.15 303.15 100.0 + +thermo 10 +thermo_style custom step etotal evdwl ecoul elong edihed pe ke temp press + +run 100 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419 + +@Article{Gissinger24, + author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor}, + title = {Type Label Framework for Bonded Force Fields in LAMMPS}, + journal = {J. Phys. Chem. B}, + year = 2024, + volume = 128, + number = 13, + pages = {3282–-3297} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 0.27938162 + grid = 54 54 54 + stencil order = 5 + estimated absolute RMS force accuracy = 0.00036407395 + estimated relative force accuracy = 1.0963718e-06 + using double precision FFTW3 + 3d grid and FFT values/proc = 226981 157464 +Generated 2016 of 2016 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 2 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmmfsw/coul/long, perpetual + attributes: half, newton off + pair build: half/bin/newtoff + stencil: full/bin/3d + bin: standard +SHAKE stats (type/ave/delta/count) on step 0 +Bond: 16 1.09 1.38032e-07 6 +Bond: 18 1.09 1.00046e-07 3 +Bond: 34 1.111 1.11388e-06 10 +Bond: 39 1.111 4.83041e-08 5 +Bond: 43 1.111 1.97842e-07 10 +Bond: 44 1.111 1.71815e-06 10 +Bond: 59 1.111 8.42509e-08 2 +Bond: 62 1.111 2.84854e-08 2 +Bond: 63 1.111 2.14153e-07 46 +Bond: 64 1.111 1.59305e-07 18 +Bond: 65 1.08 5.67061e-07 16 +Bond: 66 1.08 1.43965e-06 4 +Bond: 67 1 1.81926e-07 10 +Bond: 68 1.01 0 1 +Bond: 69 1.08 1.34571e-07 5 +Bond: 70 1.09 0 1 +Bond: 71 1.083 0 1 +Bond: 72 0.9572 2.71955e-07 6530 +Bond: 75 1 1.46045e-07 10 +Bond: 79 0.997 5.24499e-07 17 +Bond: 81 1 1.32984e-07 4 +Bond: 84 1.04 7.65389e-07 9 +Bond: 87 1 0 1 +Bond: 95 0.96 5.75241e-07 2 +Bond: 97 1.325 4.3613e-08 3 +Angle: 142 104.52 2.67611e-05 3265 +Per MPI rank memory allocation (min/avg/max) = 143.6 | 143.6 | 143.6 Mbytes + Step TotEng E_vdwl E_coul E_long E_dihed PotEng KinEng Temp Press + 0 -27877.652 3447.5013 144035.68 -182420.51 343.05623 -34213.5 6335.8474 307.44113 -989.27065 + 10 -27879.086 3334.4154 144205.4 -182416.19 348.14696 -34133.566 6254.4808 303.49289 -1211.2863 + 20 -27882.193 3293.7931 144272.04 -182415.87 333.20456 -34116.91 6234.7164 302.53384 -1041.5231 + 30 -27886.779 3177.7183 144344.61 -182409.28 340.77044 -34166.241 6279.462 304.70508 -1538.0247 + 40 -27892.698 3186.4294 144409.85 -182417.01 337.80177 -34097.62 6204.9214 301.08807 -1516.1201 + 50 -27898.215 3198.5531 144426.3 -182405.24 336.58074 -34049.909 6151.6947 298.50529 -1349.4431 + 60 -27900.589 3163.4592 144400.32 -182414.85 341.17705 -34110.926 6210.3369 301.35085 -1695.3697 + 70 -27900.487 3223.7183 144242.71 -182409.21 341.09496 -34188.493 6288.0059 305.11967 -1493.2031 + 80 -27901.07 3274.244 144265.07 -182417.68 344.0409 -34177.343 6276.2725 304.55032 -1273.0263 + 90 -27905.672 3237.6056 144288.71 -182418.22 342.15013 -34187.814 6282.1417 304.83511 -1268.0436 +SHAKE stats (type/ave/delta/count) on step 100 +Bond: 16 1.09 3.78281e-07 6 +Bond: 18 1.09 1.12288e-07 3 +Bond: 34 1.111 7.60709e-07 10 +Bond: 39 1.111 2.37855e-07 5 +Bond: 43 1.111 6.00872e-07 10 +Bond: 44 1.111 3.75324e-07 10 +Bond: 59 1.111 1.12311e-07 2 +Bond: 62 1.111 2.99471e-07 2 +Bond: 63 1.111 6.10589e-07 46 +Bond: 64 1.111 4.50733e-07 18 +Bond: 65 1.08 2.90668e-07 16 +Bond: 66 1.08 1.61592e-07 4 +Bond: 67 1 5.4508e-07 10 +Bond: 68 1.01 0 1 +Bond: 69 1.08 4.1398e-07 5 +Bond: 70 1.09 0 1 +Bond: 71 1.083 0 1 +Bond: 72 0.9572 1.76706e-06 6530 +Bond: 75 1 3.96686e-07 10 +Bond: 79 0.997 7.72922e-07 17 +Bond: 81 1 1.30673e-07 4 +Bond: 84 1.04 1.44551e-07 9 +Bond: 87 1 0 1 +Bond: 95 0.96 1.03526e-07 2 +Bond: 97 1.325 3.64689e-08 3 +Angle: 142 104.52 0.000130126 3265 + 100 -27913.241 3159.0677 144299.1 -182414.94 336.48839 -34254.412 6341.1706 307.69943 -1421.2905 +Loop time of 11.5304 on 1 procs for 100 steps with 10245 atoms + +Performance: 1.499 ns/day, 16.014 hours/ns, 8.673 timesteps/s, 88.852 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 8.6772 | 8.6772 | 8.6772 | 0.0 | 75.25 +Bond | 0.012444 | 0.012444 | 0.012444 | 0.0 | 0.11 +Kspace | 1.2286 | 1.2286 | 1.2286 | 0.0 | 10.66 +Neigh | 1.5276 | 1.5276 | 1.5276 | 0.0 | 13.25 +Comm | 0.010441 | 0.010441 | 0.010441 | 0.0 | 0.09 +Output | 0.00055001 | 0.00055001 | 0.00055001 | 0.0 | 0.00 +Modify | 0.07101 | 0.07101 | 0.07101 | 0.0 | 0.62 +Other | | 0.002628 | | | 0.02 + +Nlocal: 10245 ave 10245 max 10245 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 30479 ave 30479 max 30479 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 7.05928e+06 ave 7.05928e+06 max 7.05928e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 7059275 +Ave neighs/atom = 689.04588 +Ave special neighs/atom = 2.3664226 +Neighbor list builds = 10 +Dangerous builds = 0 + +Total wall time: 0:00:11 diff --git a/examples/charmmfsw/log.26Jul24.charmmfsw.g++.4 b/examples/charmmfsw/log.26Jul24.charmmfsw.g++.4 new file mode 100644 index 0000000000..b2dc69b0a5 --- /dev/null +++ b/examples/charmmfsw/log.26Jul24.charmmfsw.g++.4 @@ -0,0 +1,221 @@ +LAMMPS (27 Jun 2024) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# charmmfsw example generated by https://charmm-gui.org/ +# from PDB structure 1HVN (https://www.rcsb.org/structure/1HVN) +# +# Dependencies: packages MOLECULE / KSPACE / RIGID +# To test with KOKKOS: lmp -k on g 1 -sf kk -pk kokkos neigh half -in in.charmmfsw + +units real +boundary p p p + +newton off +pair_style lj/charmmfsw/coul/long 10 12 +Switching to CHARMM coulomb energy conversion constant (src/KSPACE/pair_lj_charmmfsw_coul_long.cpp:63) +pair_modify mix arithmetic +kspace_style pppm 1e-6 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmmfsw +special_bonds charmm +improper_style harmonic +timestep 2 + +fix cmap all cmap charmmff.cmap +Reading CMAP parameters from: charmmff.cmap + Read in CMAP data for 2 crossterm types +fix_modify cmap energy yes +read_data data.charmmfsw.gz fix cmap crossterm CMAP +Reading data file ... + orthogonal box = (-24 -24 -24) to (24 24 24) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 10245 atoms + reading velocities ... + 10245 velocities + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 15 = max angles/atom + scanning dihedrals ... + 48 = max dihedrals/atom + scanning impropers ... + 4 = max impropers/atom + orthogonal box = (-24 -24 -24) to (24 24 24) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 6973 bonds + reading angles ... + 4057 angles + reading dihedrals ... + 1363 dihedrals + reading impropers ... + 70 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.068 seconds + +neighbor 2 bin +neigh_modify delay 2 every 1 + +fix 1 all shake 1e-6 100 100 m 1.008 a 142 +Finding SHAKE clusters ... + 75 = # of size 2 clusters + 47 = # of size 3 clusters + 9 = # of size 4 clusters + 3265 = # of frozen angles + find clusters CPU = 0.001 seconds +fix 2 all nvt temp 303.15 303.15 100.0 + +thermo 10 +thermo_style custom step etotal evdwl ecoul elong edihed pe ke temp press + +run 100 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419 + +@Article{Gissinger24, + author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor}, + title = {Type Label Framework for Bonded Force Fields in LAMMPS}, + journal = {J. Phys. Chem. B}, + year = 2024, + volume = 128, + number = 13, + pages = {3282–-3297} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 0.27938162 + grid = 54 54 54 + stencil order = 5 + estimated absolute RMS force accuracy = 0.00036407395 + estimated relative force accuracy = 1.0963718e-06 + using double precision FFTW3 + 3d grid and FFT values/proc = 70516 40824 +Generated 2016 of 2016 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 2 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmmfsw/coul/long, perpetual + attributes: half, newton off + pair build: half/bin/newtoff + stencil: full/bin/3d + bin: standard +SHAKE stats (type/ave/delta/count) on step 0 +Bond: 16 1.09 1.38032e-07 6 +Bond: 18 1.09 1.00046e-07 3 +Bond: 34 1.111 1.11388e-06 10 +Bond: 39 1.111 4.83041e-08 5 +Bond: 43 1.111 1.97842e-07 10 +Bond: 44 1.111 1.71815e-06 10 +Bond: 59 1.111 8.42509e-08 2 +Bond: 62 1.111 2.84854e-08 2 +Bond: 63 1.111 2.14153e-07 46 +Bond: 64 1.111 1.59305e-07 18 +Bond: 65 1.08 5.67061e-07 16 +Bond: 66 1.08 1.43965e-06 4 +Bond: 67 1 1.81926e-07 10 +Bond: 68 1.01 0 1 +Bond: 69 1.08 1.34571e-07 5 +Bond: 70 1.09 0 1 +Bond: 71 1.083 0 1 +Bond: 72 0.9572 2.71955e-07 6530 +Bond: 75 1 1.46045e-07 10 +Bond: 79 0.997 5.24499e-07 17 +Bond: 81 1 1.32984e-07 4 +Bond: 84 1.04 7.65389e-07 9 +Bond: 87 1 0 1 +Bond: 95 0.96 5.75241e-07 2 +Bond: 97 1.325 4.3613e-08 3 +Angle: 142 104.52 2.67611e-05 3265 +Per MPI rank memory allocation (min/avg/max) = 76.88 | 77.06 | 77.25 Mbytes + Step TotEng E_vdwl E_coul E_long E_dihed PotEng KinEng Temp Press + 0 -27877.652 3447.5013 144035.68 -182420.51 343.05623 -34213.5 6335.8474 307.44113 -989.27065 + 10 -27879.086 3334.4154 144205.4 -182416.19 348.14696 -34133.566 6254.4808 303.49289 -1211.2863 + 20 -27882.193 3293.7931 144272.04 -182415.87 333.20456 -34116.91 6234.7164 302.53384 -1041.5231 + 30 -27886.779 3177.7183 144344.61 -182409.28 340.77044 -34166.241 6279.462 304.70508 -1538.0247 + 40 -27892.698 3186.4294 144409.85 -182417.01 337.80177 -34097.62 6204.9214 301.08807 -1516.1201 + 50 -27898.215 3198.5531 144426.3 -182405.24 336.58074 -34049.909 6151.6947 298.50529 -1349.4431 + 60 -27900.589 3163.4592 144400.32 -182414.85 341.17705 -34110.926 6210.3369 301.35085 -1695.3697 + 70 -27900.487 3223.7183 144242.71 -182409.21 341.09496 -34188.493 6288.0059 305.11967 -1493.2032 + 80 -27901.07 3274.244 144265.07 -182417.68 344.0409 -34177.343 6276.2725 304.55032 -1273.0263 + 90 -27905.672 3237.6056 144288.71 -182418.22 342.15013 -34187.814 6282.1417 304.83511 -1268.0436 +SHAKE stats (type/ave/delta/count) on step 100 +Bond: 16 1.09 3.78281e-07 6 +Bond: 18 1.09 1.12288e-07 3 +Bond: 34 1.111 7.60709e-07 10 +Bond: 39 1.111 2.37855e-07 5 +Bond: 43 1.111 6.00872e-07 10 +Bond: 44 1.111 3.75324e-07 10 +Bond: 59 1.111 1.12311e-07 2 +Bond: 62 1.111 2.99471e-07 2 +Bond: 63 1.111 6.10589e-07 46 +Bond: 64 1.111 4.50733e-07 18 +Bond: 65 1.08 2.90668e-07 16 +Bond: 66 1.08 1.61592e-07 4 +Bond: 67 1 5.4508e-07 10 +Bond: 68 1.01 0 1 +Bond: 69 1.08 4.1398e-07 5 +Bond: 70 1.09 0 1 +Bond: 71 1.083 0 1 +Bond: 72 0.9572 1.76706e-06 6530 +Bond: 75 1 3.96686e-07 10 +Bond: 79 0.997 7.72922e-07 17 +Bond: 81 1 1.30673e-07 4 +Bond: 84 1.04 1.44551e-07 9 +Bond: 87 1 0 1 +Bond: 95 0.96 1.03526e-07 2 +Bond: 97 1.325 3.64689e-08 3 +Angle: 142 104.52 0.000130126 3265 + 100 -27913.241 3159.0676 144299.1 -182414.94 336.48839 -34254.412 6341.1706 307.69943 -1421.2905 +Loop time of 3.49837 on 4 procs for 100 steps with 10245 atoms + +Performance: 4.939 ns/day, 4.859 hours/ns, 28.585 timesteps/s, 292.851 katom-step/s +99.4% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.4572 | 2.5133 | 2.5634 | 2.6 | 71.84 +Bond | 0.0040264 | 0.0050718 | 0.0069286 | 1.6 | 0.14 +Kspace | 0.45979 | 0.50903 | 0.56364 | 5.6 | 14.55 +Neigh | 0.42029 | 0.42034 | 0.42036 | 0.0 | 12.02 +Comm | 0.013207 | 0.013292 | 0.013404 | 0.1 | 0.38 +Output | 0.00026525 | 0.00029549 | 0.00038249 | 0.0 | 0.01 +Modify | 0.035024 | 0.035546 | 0.03621 | 0.3 | 1.02 +Other | | 0.001504 | | | 0.04 + +Nlocal: 2561.25 ave 2599 max 2520 min +Histogram: 1 1 0 0 0 0 0 0 0 2 +Nghost: 16491.5 ave 16541 max 16442 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 1.99855e+06 ave 2.04035e+06 max 1.95468e+06 min +Histogram: 1 1 0 0 0 0 0 0 0 2 + +Total # of neighbors = 7994217 +Ave neighs/atom = 780.30425 +Ave special neighs/atom = 2.3664226 +Neighbor list builds = 10 +Dangerous builds = 0 + +Total wall time: 0:00:03 From a972a282a792e4ad6cfd23e746cf7289b4c59b80 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Fri, 26 Jul 2024 17:43:04 -0600 Subject: [PATCH 100/169] Adding remap v restriction to doc files --- doc/src/fix_meso_move.rst | 5 +++++ doc/src/fix_mvv_dpd.rst | 5 +++++ doc/src/fix_rigid_meso.rst | 5 +++++ doc/src/fix_smd_integrate_tlsph.rst | 5 +++++ doc/src/fix_smd_integrate_ulsph.rst | 5 +++++ src/DPD-SMOOTH/fix_rigid_meso.cpp | 2 +- 6 files changed, 26 insertions(+), 1 deletion(-) diff --git a/doc/src/fix_meso_move.rst b/doc/src/fix_meso_move.rst index 55d54b2107..281a405ab0 100644 --- a/doc/src/fix_meso_move.rst +++ b/doc/src/fix_meso_move.rst @@ -247,6 +247,11 @@ defined by the :doc:`atom_style sph ` command. All particles in the group must be mesoscopic SPH/SDPD particles. +versionchanged:: TBD + +This fix is incompatible with deformation controls that remap velocity, +for instance the *remap v* option of :doc:`fix deform `. + Related commands """""""""""""""" diff --git a/doc/src/fix_mvv_dpd.rst b/doc/src/fix_mvv_dpd.rst index ff5b169f97..740785d562 100644 --- a/doc/src/fix_mvv_dpd.rst +++ b/doc/src/fix_mvv_dpd.rst @@ -97,6 +97,11 @@ These fixes are part of the DPD-MESO package. They are only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. +versionchanged:: TBD + +This fix is incompatible with deformation controls that remap velocity, +for instance the *remap v* option of :doc:`fix deform `. + Related commands """""""""""""""" diff --git a/doc/src/fix_rigid_meso.rst b/doc/src/fix_rigid_meso.rst index c8c994fd26..933369788e 100644 --- a/doc/src/fix_rigid_meso.rst +++ b/doc/src/fix_rigid_meso.rst @@ -353,6 +353,11 @@ defined by the :doc:`atom_style sph ` command. All particles in the group must be mesoscopic SPH/SDPD particles. +versionchanged:: TBD + +This fix is incompatible with deformation controls that remap velocity, +for instance the *remap v* option of :doc:`fix deform `. + Related commands """""""""""""""" diff --git a/doc/src/fix_smd_integrate_tlsph.rst b/doc/src/fix_smd_integrate_tlsph.rst index 515b30d4ff..e714c91a17 100644 --- a/doc/src/fix_smd_integrate_tlsph.rst +++ b/doc/src/fix_smd_integrate_tlsph.rst @@ -53,6 +53,11 @@ Restrictions This fix is part of the MACHDYN package. It is only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. +versionchanged:: TBD + +This fix is incompatible with deformation controls that remap velocity, +for instance the *remap v* option of :doc:`fix deform `. + Related commands """""""""""""""" diff --git a/doc/src/fix_smd_integrate_ulsph.rst b/doc/src/fix_smd_integrate_ulsph.rst index 17dfdb7b17..60c185db5f 100644 --- a/doc/src/fix_smd_integrate_ulsph.rst +++ b/doc/src/fix_smd_integrate_ulsph.rst @@ -61,6 +61,11 @@ Restrictions This fix is part of the MACHDYN package. It is only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. +versionchanged:: TBD + +This fix is incompatible with deformation controls that remap velocity, +for instance the *remap v* option of :doc:`fix deform `. + Related commands """""""""""""""" diff --git a/src/DPD-SMOOTH/fix_rigid_meso.cpp b/src/DPD-SMOOTH/fix_rigid_meso.cpp index 3e8b07e6dc..38b9d0a09c 100644 --- a/src/DPD-SMOOTH/fix_rigid_meso.cpp +++ b/src/DPD-SMOOTH/fix_rigid_meso.cpp @@ -30,10 +30,10 @@ #include "fix_rigid_meso.h" -#include "math_extra.h" #include "atom.h" #include "domain.h" #include "error.h" +#include "math_extra.h" #include "memory.h" using namespace LAMMPS_NS; From 08fdad12e8d4ff9b66f0fcda900ff331b9dbc6a7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 26 Jul 2024 19:47:10 -0400 Subject: [PATCH 101/169] fix typo and rewrap --- doc/src/fix_shake.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/fix_shake.rst b/doc/src/fix_shake.rst index a81b797a29..4129dcd9af 100644 --- a/doc/src/fix_shake.rst +++ b/doc/src/fix_shake.rst @@ -141,11 +141,11 @@ constrained if its type is in the list. The types may be given as type labels *only* if there is no atom, bond, or angle type label named *b*, *a*, *t*, or *m* defined in the -simulation. In that is the case, type labels cannot be used as -constraint type index with these two fixes because the type labels would -be incorrectly treated as a new type of constraint instead. Thus, -LAMMPS will print a warning and type label handling is disabled and -numeric types must be used. +simulation. If that is the case, type labels cannot be used as +constraint type index with these two fixes, because the type labels +would be incorrectly treated as a new type of constraint instead. +Thus, LAMMPS will print a warning and type label handling is disabled +and numeric types must be used. For all constraints, a particular bond is only constrained if *both* atoms in the bond are in the group specified with the SHAKE fix. From 8b0aaa814e1f71586100002d2de389d64a28fd2f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Jul 2024 00:19:21 -0400 Subject: [PATCH 102/169] small tweak to refer to LAMMPS-GUI more consistently --- doc/src/Howto_lammps_gui.rst | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/doc/src/Howto_lammps_gui.rst b/doc/src/Howto_lammps_gui.rst index b64e343de7..6dcf0da485 100644 --- a/doc/src/Howto_lammps_gui.rst +++ b/doc/src/Howto_lammps_gui.rst @@ -1,5 +1,5 @@ -Using the LAMMPS-GUI -==================== +Using LAMMPS-GUI +================ This document describes **LAMMPS-GUI version 1.6**. @@ -21,7 +21,7 @@ to the online LAMMPS documentation for known LAMMPS commands and styles. later), and Windows (version 10 or later) :ref:`are available ` for download. None-MPI LAMMPS executables of the same LAMMPS version are included in these packages as well. The - source code for the LAMMPS-GUI is included in the LAMMPS source code + source code for LAMMPS-GUI is included in the LAMMPS source code distribution and can be found in the ``tools/lammps-gui`` folder. It can be compiled alongside LAMMPS when :doc:`compiling with CMake `. @@ -35,18 +35,17 @@ but just rolled into a single executable: - use or extract data from the created files and visualize it with either a molecular visualization program or a plotting program - That procedure is quite effective for people proficient in using the command line, as that allows them to use tools for the individual steps that they are most comfortable with. It is often *required* to adopt this workflow when running LAMMPS simulations on high-performance computing facilities. -The main benefit of using the LAMMPS-GUI application instead is that -many basic tasks can be done directly from the GUI without switching to -a text console window or using external programs, let alone writing -scripts to extract data from the generated output. It also integrates -well with graphical desktop environments. +The main benefit of using LAMMPS-GUI is that many basic tasks can be +done directly from the GUI without switching to a text console window +or using external programs, let alone writing scripts to extract data +from the generated output. It also integrates well with graphical +desktop environments. LAMMPS-GUI thus makes it easier for beginners to get started running simple LAMMPS simulations. It is very suitable for tutorials on LAMMPS @@ -58,7 +57,7 @@ visualization and analysis tools, and run LAMMPS from the command line or a batch script. The following text provides a detailed tour of the features and -functionality of the LAMMPS-GUI. Suggestions for new features and +functionality of LAMMPS-GUI. Suggestions for new features and reports of bugs are always welcome. You can use the :doc:`the same channels as for LAMMPS itself ` for that purpose. @@ -437,7 +436,7 @@ Context Specific Help |gui-popup1| |gui-popup2| -A unique feature of the LAMMPS-GUI is the option to look up the +A unique feature of LAMMPS-GUI is the option to look up the LAMMPS documentation for the command in the current line. This can be done by either clicking the right mouse button or by using the `Ctrl-?` keyboard shortcut. When using the mouse, there are additional entries in the @@ -541,12 +540,12 @@ in an ``Image Viewer`` window. The ``View in OVITO`` entry will launch `OVITO `_ with a :doc:`data file ` containing the current state of -the system. This option is only available if the LAMMPS-GUI can find +the system. This option is only available if LAMMPS-GUI can find the OVITO executable in the system path. The ``View in VMD`` entry will launch VMD with a :doc:`data file ` containing the current state of the system. This option -is only available if the LAMMPS-GUI can find the VMD executable in the +is only available if LAMMPS-GUI can find the VMD executable in the system path. View @@ -579,8 +578,8 @@ Preferences ----------- The ``Preferences`` dialog allows customization of the behavior and -look of the LAMMPS-GUI application. The settings are grouped and each -group is displayed within a tab. +look of LAMMPS-GUI. The settings are grouped and each group is +displayed within a tab. .. |guiprefs1| image:: JPG/lammps-gui-prefs-general.png :width: 24% From 6eb6d972e9301b31ce9555e20327f4638fd392f6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Jul 2024 04:38:20 -0400 Subject: [PATCH 103/169] more doc tweaks --- doc/src/Howto_lammps_gui.rst | 76 ++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 29 deletions(-) diff --git a/doc/src/Howto_lammps_gui.rst b/doc/src/Howto_lammps_gui.rst index 6dcf0da485..5f48754ed5 100644 --- a/doc/src/Howto_lammps_gui.rst +++ b/doc/src/Howto_lammps_gui.rst @@ -16,21 +16,23 @@ to the online LAMMPS documentation for known LAMMPS commands and styles. .. note:: - Pre-compiled, ready-to-use LAMMPS-GUI executables for Linux (Ubuntu - 20.04LTS or later and compatible), macOS (version 11 aka Big Sur or - later), and Windows (version 10 or later) :ref:`are available - ` for download. None-MPI LAMMPS executables of - the same LAMMPS version are included in these packages as well. The - source code for LAMMPS-GUI is included in the LAMMPS source code + Pre-compiled, ready-to-use LAMMPS-GUI executables for Linux x86\_64 + (Ubuntu 20.04LTS or later and compatible), macOS (version 11 aka Big + Sur or later), and Windows (version 10 or later) :ref:`are available + ` for download. None-MPI LAMMPS executables for + running LAMMPS from the command line and :doc:`some LAMMPS tools ` + are also included. + + The source code for LAMMPS-GUI is included in the LAMMPS source code distribution and can be found in the ``tools/lammps-gui`` folder. It can be compiled alongside LAMMPS when :doc:`compiling with CMake `. LAMMPS-GUI tries to provide an experience similar to what people -traditionally would do to run LAMMPS using a command line window -but just rolled into a single executable: +traditionally would have running LAMMPS using a command line window +and the console LAMMPS executable but just rolled into a single executable: -- editing LAMMPS input files with a text editor +- writing & editing LAMMPS input files with a text editor - run LAMMPS on those input file with selected command line flags - use or extract data from the created files and visualize it with either a molecular visualization program or a plotting program @@ -42,19 +44,25 @@ this workflow when running LAMMPS simulations on high-performance computing facilities. The main benefit of using LAMMPS-GUI is that many basic tasks can be -done directly from the GUI without switching to a text console window -or using external programs, let alone writing scripts to extract data -from the generated output. It also integrates well with graphical -desktop environments. +done directly from the GUI without switching to a text console window or +using external programs, let alone writing scripts to extract data from +the generated output. It also integrates well with graphical desktop +environments where the `.lmp` filename extension can be registered with +LAMMPS-GUI as the executable to launch when double clicking on such +files. Also, LAMMPS-GUI has support for drag-n-drop, i.e. an input +file can be selected and then moved and dropped on the LAMMPS-GUI +executable, and LAMMPS-GUI will launch and read the file into its +buffer. LAMMPS-GUI thus makes it easier for beginners to get started running simple LAMMPS simulations. It is very suitable for tutorials on LAMMPS since you only need to learn how to use a single program for most tasks -and thus time can be saved and people can focus on learning LAMMPS. It -is also designed to keep the barrier low when you decide to switch to a -full featured, standalone programming editor and more sophisticated -visualization and analysis tools, and run LAMMPS from the command line -or a batch script. +and thus time can be saved and people can focus on learning LAMMPS. +The tutorials at https://lammpstutorials.github.io/ were specifically +updated for use with LAMMPS-GUI. + +Another design goal is to keep the barrier low when replacing part of +the functionality of LAMMPS-GUI with external tools. The following text provides a detailed tour of the features and functionality of LAMMPS-GUI. Suggestions for new features and @@ -87,17 +95,27 @@ window is stored when exiting and restored when starting again. Opening Files ^^^^^^^^^^^^^ -The LAMMPS-GUI application tries to open the first command line argument -as a LAMMPS input script, further arguments are ignored. When no -argument is given, LAMMPS-GUI starts with an empty buffer. Files can -also be opened via the ``File`` menu or by drag-and-drop of a file from -a graphical file manager into the editor window. Only one file can be -edited at a time, so opening a new file with a filled buffer closes that -buffer. If the buffer has unsaved modifications, you are asked to -either cancel the operation, discard the changes, or save them. A -buffer with modifications can be saved any time from the "File" menu, by -the keyboard shortcut `Ctrl-S` (`Command-S` on macOS), or by clicking on -the "Save" button at the very left in the status bar. +The LAMMPS-GUI application can be launched without command line arguments +and then starts with an empty buffer in the *Editor* window. If arguments +are given LAMMPS will use first command line argument as the file name for +the *Editor* buffer and reads its contents into the buffer, if the file +exists. All further arguments are ignored. Files can also be opened via +the ``File`` menu, the `Ctrl-O` (`Command-O` on macOS) keyboard shortcut +or by drag-and-drop of a file from a graphical file manager into the editor +window. If a file extension (e.g. ``.lmp``) has been registered with the +graphical environment to launch LAMMPS-GUI, an existing input file can +be launched with LAMMPS-GUI through double clicking. For the pre-compiled +macOS and Windows packages, this is enabled, for Linux the bundled +``lammps-gui.desktop`` file and the ``lammps-input.xml`` file need to be +registered with the graphical desktop. + +Only one file can be edited at a time, so opening a new file with a +filled buffer closes that buffer. If the buffer has unsaved +modifications, you are asked to either cancel the operation, discard the +changes, or save them. A buffer with modifications can be saved any +time from the "File" menu, by the keyboard shortcut `Ctrl-S` +(`Command-S` on macOS), or by clicking on the "Save" button at the very +left in the status bar. Running LAMMPS ^^^^^^^^^^^^^^ From a3775f785ac25bd4b40f018cd2555bb10e43ef4a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Jul 2024 08:55:02 -0400 Subject: [PATCH 104/169] add some installation info --- doc/src/Howto_lammps_gui.rst | 45 ++++++++++++++++++++++++++++++++---- doc/src/Tools.rst | 19 +++++++-------- 2 files changed, 51 insertions(+), 13 deletions(-) diff --git a/doc/src/Howto_lammps_gui.rst b/doc/src/Howto_lammps_gui.rst index 5f48754ed5..b2d2ba754e 100644 --- a/doc/src/Howto_lammps_gui.rst +++ b/doc/src/Howto_lammps_gui.rst @@ -71,6 +71,46 @@ channels as for LAMMPS itself ` for that purpose. ----- +Installing Pre-compiled LAMMPS-GUI Packages +------------------------------------------- + +LAMMPS-GUI is available as pre-compiled binary packages for Linux +x86\_64, macOS 11 and later, and Windows 10 and later. Alternately, it +can be compiled from source. + +Windows 10 and later +^^^^^^^^^^^^^^^^^^^^ + +After downloading the ``LAMMPS-Win10-64bit-GUI-.exe`` installer +package, you need to execute it, and start the installation process. +Since those packages are currently unsigned, you have to enable "Developer Mode" +in the Windows System Settings to run the installer. + +MacOS 11 and later +^^^^^^^^^^^^^^^^^^ + +After downloading the ``LAMMPS-macOS-multiarch-GUI-.dmg`` +installer package, you need to double-click it and then, in the window +that opens, drag the app bundle as indicated into the "Applications" +folder. The follow the instructions in the "README.txt" file to +get access to the other included executables. + +Linux on x86\_64 +^^^^^^^^^^^^^^^^ + +After downloading and unpacking the +``LAMMPS-Linux-x86_64-GUI-.tar.gz`` package. You can switch +into the "LAMMPS_GUI" folder and execute "./lammps-gui" directly. + +Compiling from Source +^^^^^^^^^^^^^^^^^^^^^ + +There also are instructions for :ref:`compiling LAMMPS-GUI from source +code ` avilable elsewhere in the manual. +Compilation from source *requires* using CMake. + +----- + Starting LAMMPS-GUI ------------------- @@ -104,10 +144,7 @@ the ``File`` menu, the `Ctrl-O` (`Command-O` on macOS) keyboard shortcut or by drag-and-drop of a file from a graphical file manager into the editor window. If a file extension (e.g. ``.lmp``) has been registered with the graphical environment to launch LAMMPS-GUI, an existing input file can -be launched with LAMMPS-GUI through double clicking. For the pre-compiled -macOS and Windows packages, this is enabled, for Linux the bundled -``lammps-gui.desktop`` file and the ``lammps-input.xml`` file need to be -registered with the graphical desktop. +be launched with LAMMPS-GUI through double clicking. Only one file can be edited at a time, so opening a new file with a filled buffer closes that buffer. If the buffer has unsaved diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index 4505142459..060fd9f89d 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -484,23 +484,22 @@ are in the :doc:`Howto_lammps_gui` tutorial Howto page. Here are a few highlights of LAMMPS-GUI -- Text editor with syntax highlighting customized for LAMMPS -- Text editor features command completion for known commands and styles -- Text editor will switch working directory to folder of file in buffer -- Text editor will remember up to 5 recent files +- Text editor with line numbers and syntax highlighting customized for LAMMPS +- Text editor features command completion and auto-indentation for known commands and styles +- Text editor will switch its working directory to folder of file in buffer +- Many adjustable settings and preferences that are persistent including the 5 most recent files - Context specific LAMMPS command help via online documentation - LAMMPS is running in a concurrent thread, so the GUI remains responsive -- Support for most accelerator packages - Progress bar indicates how far a run command is completed -- LAMMPS can be started and stopped with a hotkey -- Screen output is captured in a Log Window -- Thermodynamic output is captured and displayed as line graph in a Chart Window +- LAMMPS can be started and stopped with a mouse click or a hotkey +- Screen output is captured in an *Output* Window +- Thermodynamic output is captured and displayed as line graph in a *Chart* Window - Indicator for currently executed command - Indicator for line that caused an error - Visualization of current state in Image Viewer (via calling :doc:`write_dump image `) - Capture of images created via :doc:`dump image ` in Slide show window -- Many adjustable settings and preferences that are persistent - Dialog to set variables, similar to the LAMMPS command line flag '-v' / '-var' +- Support for GPU, INTEL, KOKKOS/OpenMP, OPENMAP, and OPT and accelerator packages Parallelization ^^^^^^^^^^^^^^^ @@ -542,6 +541,8 @@ variable so the executables will be found automatically. The LAMMPS-GUI executable is called ``lammps-gui`` and either takes no arguments or attempts to load the first argument as LAMMPS input file. +.. _lammps_gui_compilation: + Compilation ^^^^^^^^^^^ From a5d0efcd5b1d9eafd3f699e292fd67f034c68c18 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Jul 2024 20:42:42 -0400 Subject: [PATCH 105/169] make test environment consistent across all force tests --- unittest/force-styles/CMakeLists.txt | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/unittest/force-styles/CMakeLists.txt b/unittest/force-styles/CMakeLists.txt index 7d29395e39..f47bb75305 100644 --- a/unittest/force-styles/CMakeLists.txt +++ b/unittest/force-styles/CMakeLists.txt @@ -204,11 +204,7 @@ foreach(TEST ${FIX_TIMESTEP_TESTS}) continue() endif() add_test(NAME ${TNAME} COMMAND test_fix_timestep ${TEST}) -if(WIN32) - set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}\\\;${LAMMPS_PYTHON_DIR}") -else() - set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:${LAMMPS_PYTHON_DIR}:$ENV{PYTHONPATH};PYTHONDONTWRITEBYTECODE=1") -endif() + set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "${FORCE_TEST_ENVIRONMENT}") set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}") endforeach() @@ -225,7 +221,7 @@ foreach(TEST ${DIHEDRAL_TESTS}) continue() endif() add_test(NAME ${TNAME} COMMAND test_dihedral_style ${TEST}) - set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH};PYTHONDONTWRITEBYTECODE=1") + set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "${FORCE_TEST_ENVIRONMENT}") set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}") endforeach() @@ -242,7 +238,7 @@ foreach(TEST ${IMPROPER_TESTS}) continue() endif() add_test(NAME ${TNAME} COMMAND test_improper_style ${TEST}) - set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH};PYTHONDONTWRITEBYTECODE=1") + set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "${FORCE_TEST_ENVIRONMENT}") set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}") endforeach() @@ -250,7 +246,7 @@ if(MLIAP_ENABLE_PYTHON AND (NOT WIN32)) add_executable(test_mliappy_unified test_mliappy_unified.cpp) target_link_libraries(test_mliappy_unified PRIVATE lammps GTest::GMockMain) add_test(NAME TestMliapPyUnified COMMAND test_mliappy_unified) - set_tests_properties(TestMliapPyUnified PROPERTIES ENVIRONMENT "PYTHONPATH=${LAMMPS_PYTHON_DIR};PYTHONDONTWRITEBYTECODE=1") + set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "${FORCE_TEST_ENVIRONMENT}") endif() add_executable(test_pair_list test_pair_list.cpp) From 83297a1071e16cb5002766cabdb773df76cfe411 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Jul 2024 21:06:52 -0400 Subject: [PATCH 106/169] extend force style testers for bonded interactions to check KOKKOS/OpenMP selectively imported from PR #4190 by @alphataubio --- unittest/force-styles/test_angle_style.cpp | 120 ++++++++++++++++++ unittest/force-styles/test_bond_style.cpp | 106 ++++++++++++++++ unittest/force-styles/test_dihedral_style.cpp | 106 ++++++++++++++++ unittest/force-styles/test_improper_style.cpp | 102 +++++++++++++++ 4 files changed, 434 insertions(+) diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index e2b76cc7b6..e706cc11ac 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -530,6 +530,126 @@ TEST(AngleStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); }; +TEST(AngleStyle, kokkos_omp) +{ + if (!LAMMPS::is_installed_pkg("KOKKOS")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + if (!Info::has_accelerator_feature("KOKKOS", "api", "openmp")) GTEST_SKIP(); + + LAMMPS::argv args = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite", + "-k", "on", "t", "4", "-sf", "kk"}; + + ::testing::internal::CaptureStdout(); + LAMMPS *lmp = init_lammps(args, test_config, true); + + std::string output = ::testing::internal::GetCapturedStdout(); + if (verbose) std::cout << output; + + if (!lmp) { + std::cerr << "One or more prerequisite styles with /kk suffix\n" + "are not available in this LAMMPS configuration:\n"; + for (auto &prerequisite : test_config.prerequisites) { + std::cerr << prerequisite.first << "_style " << prerequisite.second << "\n"; + } + GTEST_SKIP(); + } + + EXPECT_THAT(output, StartsWith("LAMMPS (")); + EXPECT_THAT(output, HasSubstr("Loop time")); + + // abort if running in parallel and not all atoms are local + const int nlocal = lmp->atom->nlocal; + ASSERT_EQ(lmp->atom->natoms, nlocal); + + // relax error a bit for KOKKOS package + double epsilon = 5.0 * test_config.epsilon; + + ErrorStats stats; + auto angle = lmp->force->angle; + + EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("init_stress (newton on)", angle->virial, test_config.init_stress, epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton on: " << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon); + EXPECT_STRESS("run_stress (newton on)", angle->virial, test_config.run_stress, epsilon); + + stats.reset(); + int id = lmp->modify->find_compute("sum"); + double energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon); + EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon); + if (print_stats) std::cerr << "run_energy stats, newton on: " << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + lmp = init_lammps(args, test_config, false); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + // skip over these tests if newton bond is forced to be on + if (lmp->force->newton_bond == 0) { + angle = lmp->force->angle; + + EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("init_stress (newton off)", angle->virial, test_config.init_stress, + 2 * epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton off:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); + EXPECT_STRESS("run_stress (newton off)", angle->virial, test_config.run_stress, epsilon); + + stats.reset(); + id = lmp->modify->find_compute("sum"); + energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon); + EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon); + if (print_stats) std::cerr << "run_energy stats, newton off:" << stats << std::endl; + } + + if (!verbose) ::testing::internal::CaptureStdout(); + restart_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + angle = lmp->force->angle; + EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("restart_stress", angle->virial, test_config.init_stress, epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "restart_energy stats:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + data_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + angle = lmp->force->angle; + EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("data_stress", angle->virial, test_config.init_stress, epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "data_energy stats:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); +}; + + TEST(AngleStyle, numdiff) { if (!LAMMPS::is_installed_pkg("EXTRA-FIX")) GTEST_SKIP(); diff --git a/unittest/force-styles/test_bond_style.cpp b/unittest/force-styles/test_bond_style.cpp index d2523ff51d..81b105259d 100644 --- a/unittest/force-styles/test_bond_style.cpp +++ b/unittest/force-styles/test_bond_style.cpp @@ -532,6 +532,112 @@ TEST(BondStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); }; +TEST(BondStyle, kokkos_omp) +{ + if (!LAMMPS::is_installed_pkg("KOKKOS")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + if (!Info::has_accelerator_feature("KOKKOS", "api", "openmp")) GTEST_SKIP(); + + LAMMPS::argv args = {"BondStyle", "-log", "none", "-echo", "screen", "-nocite", + "-k", "on", "t", "4", "-sf", "kk"}; + + ::testing::internal::CaptureStdout(); + LAMMPS *lmp = init_lammps(args, test_config, true); + + std::string output = ::testing::internal::GetCapturedStdout(); + if (verbose) std::cout << output; + + if (!lmp) { + std::cerr << "One or more prerequisite styles with /kk suffix\n" + "are not available in this LAMMPS configuration:\n"; + for (auto &prerequisite : test_config.prerequisites) { + std::cerr << prerequisite.first << "_style " << prerequisite.second << "\n"; + } + GTEST_SKIP(); + } + + EXPECT_THAT(output, StartsWith("LAMMPS (")); + EXPECT_THAT(output, HasSubstr("Loop time")); + + // abort if running in parallel and not all atoms are local + const int nlocal = lmp->atom->nlocal; + ASSERT_EQ(lmp->atom->natoms, nlocal); + + // relax error a bit for KOKKOS package + double epsilon = 5.0 * test_config.epsilon; + + ErrorStats stats; + auto bond = lmp->force->bond; + + EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("init_stress (newton on)", bond->virial, test_config.init_stress, 10 * epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton on: " << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon); + EXPECT_STRESS("run_stress (newton on)", bond->virial, test_config.run_stress, 10 * epsilon); + + stats.reset(); + int id = lmp->modify->find_compute("sum"); + double energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.run_energy, epsilon); + + // FIXME: this is currently broken ??? for KOKKOS with bond style hybrid + // needs to be fixed in the main code somewhere. Not sure where, though. + //if (test_config.bond_style.substr(0, 6) != "hybrid") + // EXPECT_FP_LE_WITH_EPS(bond->energy, energy, epsilon); + + if (print_stats) std::cerr << "run_energy stats, newton on: " << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + lmp = init_lammps(args, test_config, false); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + // skip over these tests if newton bond is forced to be on + if (lmp->force->newton_bond == 0) { + bond = lmp->force->bond; + + EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("init_stress (newton off)", bond->virial, test_config.init_stress, + 10 * epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton off:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); + EXPECT_STRESS("run_stress (newton off)", bond->virial, test_config.run_stress, + 10 * epsilon); + + stats.reset(); + id = lmp->modify->find_compute("sum"); + energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.run_energy, epsilon); + + // FIXME: this is currently broken ??? for KOKKOS with bond style hybrid + // needs to be fixed in the main code somewhere. Not sure where, though. + //if (test_config.bond_style.substr(0, 6) != "hybrid") + // EXPECT_FP_LE_WITH_EPS(bond->energy, energy, epsilon); + + if (print_stats) std::cerr << "run_energy stats, newton off:" << stats << std::endl; + } + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); +}; + TEST(BondStyle, numdiff) { if (!LAMMPS::is_installed_pkg("EXTRA-FIX")) GTEST_SKIP(); diff --git a/unittest/force-styles/test_dihedral_style.cpp b/unittest/force-styles/test_dihedral_style.cpp index e6c34843c3..324745cc41 100644 --- a/unittest/force-styles/test_dihedral_style.cpp +++ b/unittest/force-styles/test_dihedral_style.cpp @@ -534,6 +534,112 @@ TEST(DihedralStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); }; +TEST(DihedralStyle, kokkos_omp) +{ + if (!LAMMPS::is_installed_pkg("KOKKOS")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + if (!Info::has_accelerator_feature("KOKKOS", "api", "openmp")) GTEST_SKIP(); + + LAMMPS::argv args = {"DihedralStyle", "-log", "none", "-echo", "screen", "-nocite", + "-k", "on", "t", "4", "-sf", "kk"}; + + ::testing::internal::CaptureStdout(); + LAMMPS *lmp = init_lammps(args, test_config, true); + + std::string output = ::testing::internal::GetCapturedStdout(); + if (verbose) std::cout << output; + + if (!lmp) { + std::cerr << "One or more prerequisite styles with /kk suffix\n" + "are not available in this LAMMPS configuration:\n"; + for (auto &prerequisite : test_config.prerequisites) { + std::cerr << prerequisite.first << "_style " << prerequisite.second << "\n"; + } + GTEST_SKIP(); + } + + EXPECT_THAT(output, StartsWith("LAMMPS (")); + EXPECT_THAT(output, HasSubstr("Loop time")); + + // abort if running in parallel and not all atoms are local + const int nlocal = lmp->atom->nlocal; + ASSERT_EQ(lmp->atom->natoms, nlocal); + + // relax error a bit for KOKKOS package + double epsilon = 5.0 * test_config.epsilon; + + ErrorStats stats; + auto dihedral = lmp->force->dihedral; + + EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("init_stress (newton on)", dihedral->virial, test_config.init_stress, + 10 * epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton on: " << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon); + EXPECT_STRESS("run_stress (newton on)", dihedral->virial, test_config.run_stress, 10 * epsilon); + + stats.reset(); + int id = lmp->modify->find_compute("sum"); + double energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.run_energy, epsilon); + + // FIXME: this is currently broken ??? for KOKKOS with dihedral style hybrid + // needs to be fixed in the main code somewhere. Not sure where, though. + //if (test_config.dihedral_style.substr(0, 6) != "hybrid") + // EXPECT_FP_LE_WITH_EPS(dihedral->energy, energy, epsilon); + //if (print_stats) std::cerr << "run_energy stats, newton on: " << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + lmp = init_lammps(args, test_config, false); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + // skip over these tests if newton bond is forced to be on + if (lmp->force->newton_bond == 0) { + dihedral = lmp->force->dihedral; + + EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("init_stress (newton off)", dihedral->virial, test_config.init_stress, + 10 * epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton off:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); + EXPECT_STRESS("run_stress (newton off)", dihedral->virial, test_config.run_stress, + 10 * epsilon); + + stats.reset(); + id = lmp->modify->find_compute("sum"); + energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.run_energy, epsilon); + + // FIXME: this is currently broken ??? for KOKKOS with dihedral style hybrid + // needs to be fixed in the main code somewhere. Not sure where, though. + //if (test_config.dihedral_style.substr(0, 6) != "hybrid") + // EXPECT_FP_LE_WITH_EPS(dihedral->energy, energy, epsilon); + + if (print_stats) std::cerr << "run_energy stats, newton off:" << stats << std::endl; + } + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); +}; + TEST(DihedralStyle, numdiff) { if (!LAMMPS::is_installed_pkg("EXTRA-FIX")) GTEST_SKIP(); diff --git a/unittest/force-styles/test_improper_style.cpp b/unittest/force-styles/test_improper_style.cpp index 59028fb1ff..a65bf438df 100644 --- a/unittest/force-styles/test_improper_style.cpp +++ b/unittest/force-styles/test_improper_style.cpp @@ -527,6 +527,108 @@ TEST(ImproperStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); }; +TEST(ImproperStyle, kokkos_omp) +{ + if (!LAMMPS::is_installed_pkg("KOKKOS")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + + LAMMPS::argv args = {"ImproperStyle", "-log", "none", "-echo", "screen", "-nocite", + "-k", "on", "t", "4", "-sf", "kk"}; + + ::testing::internal::CaptureStdout(); + LAMMPS *lmp = init_lammps(args, test_config, true); + + std::string output = ::testing::internal::GetCapturedStdout(); + if (verbose) std::cout << output; + + if (!lmp) { + std::cerr << "One or more prerequisite styles with /kk suffix\n" + "are not available in this LAMMPS configuration:\n"; + for (auto &prerequisite : test_config.prerequisites) { + std::cerr << prerequisite.first << "_style " << prerequisite.second << "\n"; + } + GTEST_SKIP(); + } + + EXPECT_THAT(output, StartsWith("LAMMPS (")); + EXPECT_THAT(output, HasSubstr("Loop time")); + + // abort if running in parallel and not all atoms are local + const int nlocal = lmp->atom->nlocal; + ASSERT_EQ(lmp->atom->natoms, nlocal); + + // relax error a bit for KOKKOS package + double epsilon = 5.0 * test_config.epsilon; + + ErrorStats stats; + auto improper = lmp->force->improper; + + EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("init_stress (newton on)", improper->virial, test_config.init_stress, + 10 * epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton on: " << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon); + EXPECT_STRESS("run_stress (newton on)", improper->virial, test_config.run_stress, 10 * epsilon); + + stats.reset(); + int id = lmp->modify->find_compute("sum"); + double energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.run_energy, epsilon); + // FIXME: this is currently broken ??? for KOKKOS with improper style hybrid + // needs to be fixed in the main code somewhere. Not sure where, though. + //if (test_config.improper_style.substr(0, 6) != "hybrid") + // EXPECT_FP_LE_WITH_EPS(improper->energy, energy, epsilon); + if (print_stats) std::cerr << "run_energy stats, newton on: " << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + lmp = init_lammps(args, test_config, false); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + // skip over these tests if newton bond is forced to be on + if (lmp->force->newton_bond == 0) { + improper = lmp->force->improper; + + EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); + EXPECT_STRESS("init_stress (newton off)", improper->virial, test_config.init_stress, + 10 * epsilon); + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton off:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); + EXPECT_STRESS("run_stress (newton off)", improper->virial, test_config.run_stress, + 10 * epsilon); + + stats.reset(); + id = lmp->modify->find_compute("sum"); + energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.run_energy, epsilon); + // FIXME: this is currently broken ??? for KOKKOS with improper style hybrid + // needs to be fixed in the main code somewhere. Not sure where, though. + //if (test_config.improper_style.substr(0, 6) != "hybrid") + // EXPECT_FP_LE_WITH_EPS(improper->energy, energy, epsilon); + if (print_stats) std::cerr << "run_energy stats, newton off:" << stats << std::endl; + } + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); +}; + TEST(ImproperStyle, numdiff) { if (!LAMMPS::is_installed_pkg("EXTRA-FIX")) GTEST_SKIP(); From 517fadd1678a80d1b157c34f8318f3c6fb6c6e91 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Jul 2024 21:11:21 -0400 Subject: [PATCH 107/169] skip kokkos_omp tests for now since they are failing --- unittest/force-styles/tests/dihedral-charmmfsw.yaml | 2 +- unittest/force-styles/tests/dihedral-hybrid.yaml | 2 +- unittest/force-styles/tests/improper-class2.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/unittest/force-styles/tests/dihedral-charmmfsw.yaml b/unittest/force-styles/tests/dihedral-charmmfsw.yaml index 6d2035acc5..577ddbd1a2 100644 --- a/unittest/force-styles/tests/dihedral-charmmfsw.yaml +++ b/unittest/force-styles/tests/dihedral-charmmfsw.yaml @@ -2,7 +2,7 @@ lammps_version: 17 Feb 2022 date_generated: Fri Mar 18 22:18:02 2022 epsilon: 5.0e-12 -skip_tests: +skip_tests: kokkos_omp prerequisites: ! | atom full dihedral charmmfsw diff --git a/unittest/force-styles/tests/dihedral-hybrid.yaml b/unittest/force-styles/tests/dihedral-hybrid.yaml index 4c499a8511..bf17a7fbf4 100644 --- a/unittest/force-styles/tests/dihedral-hybrid.yaml +++ b/unittest/force-styles/tests/dihedral-hybrid.yaml @@ -2,7 +2,7 @@ lammps_version: 17 Feb 2022 date_generated: Fri Mar 18 22:18:02 2022 epsilon: 2.5e-13 -skip_tests: +skip_tests: kokkos_omp prerequisites: ! | atom full dihedral harmonic diff --git a/unittest/force-styles/tests/improper-class2.yaml b/unittest/force-styles/tests/improper-class2.yaml index 38e8b9120b..4350441eeb 100644 --- a/unittest/force-styles/tests/improper-class2.yaml +++ b/unittest/force-styles/tests/improper-class2.yaml @@ -2,7 +2,7 @@ lammps_version: 17 Feb 2022 date_generated: Fri Mar 18 22:18:02 2022 epsilon: 2.5e-13 -skip_tests: +skip_tests: kokkos_omp prerequisites: ! | atom full improper class2 From 45795acdbfa7452484a4b3082a3e79ef4e023a1e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 28 Jul 2024 03:28:21 -0400 Subject: [PATCH 108/169] import bugfix for dihedral style charmmfsw from PR #4190. Test passes. --- src/KOKKOS/dihedral_charmmfsw_kokkos.cpp | 5 +++-- unittest/force-styles/tests/dihedral-charmmfsw.yaml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/KOKKOS/dihedral_charmmfsw_kokkos.cpp b/src/KOKKOS/dihedral_charmmfsw_kokkos.cpp index 3414a02ec4..a3c000b3cf 100644 --- a/src/KOKKOS/dihedral_charmmfsw_kokkos.cpp +++ b/src/KOKKOS/dihedral_charmmfsw_kokkos.cpp @@ -380,16 +380,17 @@ void DihedralCharmmfswKokkos::operator()(TagDihedralCharmmfswCompute const F_FLOAT dely = x(i1,1) - x(i4,1); const F_FLOAT delz = x(i1,2) - x(i4,2); const F_FLOAT rsq = delx*delx + dely*dely + delz*delz; + const F_FLOAT r = sqrt(rsq); const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r6inv = r2inv*r2inv*r2inv; F_FLOAT forcecoul; if (implicit) forcecoul = qqrd2e * q[i1]*q[i4]*r2inv; - else forcecoul = qqrd2e * q[i1]*q[i4]*sqrt(r2inv); + else if (dihedflag) forcecoul = qqrd2e * q[i1]*q[i4]*sqrt(r2inv); + else forcecoul = qqrd2e * q[i1]*q[i4]*(sqrt(r2inv) - r*cut_coulinv14*cut_coulinv14); const F_FLOAT forcelj = r6inv * (d_lj14_1(itype,jtype)*r6inv - d_lj14_2(itype,jtype)); const F_FLOAT fpair = d_weight[type] * (forcelj+forcecoul)*r2inv; - const F_FLOAT r = sqrt(rsq); F_FLOAT ecoul = 0.0; F_FLOAT evdwl = 0.0; F_FLOAT evdwl14_12, evdwl14_6; diff --git a/unittest/force-styles/tests/dihedral-charmmfsw.yaml b/unittest/force-styles/tests/dihedral-charmmfsw.yaml index 577ddbd1a2..6d2035acc5 100644 --- a/unittest/force-styles/tests/dihedral-charmmfsw.yaml +++ b/unittest/force-styles/tests/dihedral-charmmfsw.yaml @@ -2,7 +2,7 @@ lammps_version: 17 Feb 2022 date_generated: Fri Mar 18 22:18:02 2022 epsilon: 5.0e-12 -skip_tests: kokkos_omp +skip_tests: prerequisites: ! | atom full dihedral charmmfsw From ffdf499cb1c78a062c8a091ee22b56330e2a60c1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 28 Jul 2024 11:24:46 -0400 Subject: [PATCH 109/169] fix typo --- doc/src/Howto_lammps_gui.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Howto_lammps_gui.rst b/doc/src/Howto_lammps_gui.rst index b2d2ba754e..fef2fff434 100644 --- a/doc/src/Howto_lammps_gui.rst +++ b/doc/src/Howto_lammps_gui.rst @@ -106,7 +106,7 @@ Compiling from Source ^^^^^^^^^^^^^^^^^^^^^ There also are instructions for :ref:`compiling LAMMPS-GUI from source -code ` avilable elsewhere in the manual. +code ` available elsewhere in the manual. Compilation from source *requires* using CMake. ----- From 5501f608f545506f6fbed5fdb055bd2fea3e304c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 28 Jul 2024 11:25:15 -0400 Subject: [PATCH 110/169] fix out of bound memory access bug detected by hipcc --- lib/gpu/lal_dpd_coul_slater_long.cu | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/gpu/lal_dpd_coul_slater_long.cu b/lib/gpu/lal_dpd_coul_slater_long.cu index d9679ccdfd..4835b8777b 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cu +++ b/lib/gpu/lal_dpd_coul_slater_long.cu @@ -186,15 +186,13 @@ __kernel void k_dpd_coul_slater_long(const __global numtyp4 *restrict x_, atom_info(t_per_atom,ii,tid,offset); __local numtyp sp_cl[4]; - ///local_allocate_store_charge(); - sp_cl[0]=sp_cl_in[0]; sp_cl[1]=sp_cl_in[1]; sp_cl[2]=sp_cl_in[2]; sp_cl[3]=sp_cl_in[3]; int n_stride; - local_allocate_store_pair(); + local_allocate_store_charge(); acctyp3 f; f.x=(acctyp)0; f.y=(acctyp)0; f.z=(acctyp)0; @@ -332,8 +330,7 @@ __kernel void k_dpd_coul_slater_long(const __global numtyp4 *restrict x_, } // for nbor } // if ii - store_answers_q(f,energy,e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, - ans,engv); + store_answers_q(f,energy,e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag,ans,engv); } __kernel void k_dpd_coul_slater_long_fast(const __global numtyp4 *restrict x_, @@ -378,7 +375,7 @@ __kernel void k_dpd_coul_slater_long_fast(const __global numtyp4 *restrict x_, int n_stride; - local_allocate_store_pair(); + local_allocate_store_charge(); acctyp3 f; f.x=(acctyp)0; f.y=(acctyp)0; f.z=(acctyp)0; @@ -517,7 +514,6 @@ __kernel void k_dpd_coul_slater_long_fast(const __global numtyp4 *restrict x_, } // for nbor } // if ii - store_answers_q(f,energy,e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, - ans,engv); + store_answers_q(f,energy,e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag,ans,engv); } From 26aba2c314e913da6bc0e4656f68eb8ddfdd6985 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 28 Jul 2024 11:49:27 -0400 Subject: [PATCH 111/169] silence compiler warnings --- lib/gpu/lal_sw.cpp | 4 ++-- lib/gpu/lal_tersoff.cpp | 4 ++-- lib/gpu/lal_tersoff_mod.cpp | 4 ++-- lib/gpu/lal_tersoff_zbl.cpp | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/gpu/lal_sw.cpp b/lib/gpu/lal_sw.cpp index 9687a0352d..60d388f100 100644 --- a/lib/gpu/lal_sw.cpp +++ b/lib/gpu/lal_sw.cpp @@ -52,12 +52,12 @@ int SWT::init(const int ntypes, const int nlocal, const int nall, double ***costheta, const int *map, int ***e2param) { _lj_types=ntypes; - int oldparam=-1; int onetype=-1; int onetype3=0; int spq=1; - int mtypes=0; #ifdef USE_OPENCL + int oldparam=-1; + int mtypes=0; for (int ii=1; ii Date: Sun, 28 Jul 2024 12:42:05 -0400 Subject: [PATCH 112/169] don't check for omp.h if the compiler identifies as Clang since the CMake check seems broken --- cmake/Modules/LAMMPSUtils.cmake | 8 +++++++- tools/lammps-gui/CMakeLists.txt | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/LAMMPSUtils.cmake b/cmake/Modules/LAMMPSUtils.cmake index 2ec9d1b706..223577fe31 100644 --- a/cmake/Modules/LAMMPSUtils.cmake +++ b/cmake/Modules/LAMMPSUtils.cmake @@ -32,7 +32,13 @@ function(check_omp_h_include) set(CMAKE_REQUIRED_INCLUDES ${OpenMP_CXX_INCLUDE_DIRS}) set(CMAKE_REQUIRED_LINK_OPTIONS ${OpenMP_CXX_FLAGS}) set(CMAKE_REQUIRED_LIBRARIES ${OpenMP_CXX_LIBRARIES}) - check_include_file_cxx(omp.h _have_omp_h) + # there are all kinds of problems with finding omp.h + # for Clang and derived compilers so we pretend it is there. + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(_have_omp_h TRUE) + else() + check_include_file_cxx(omp.h _have_omp_h) + endif() else() set(_have_omp_h FALSE) endif() diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 3609cf6297..940221886f 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -22,7 +22,13 @@ function(check_omp_h_include) set(CMAKE_REQUIRED_INCLUDES ${OpenMP_CXX_INCLUDE_DIRS}) set(CMAKE_REQUIRED_LINK_OPTIONS ${OpenMP_CXX_FLAGS}) set(CMAKE_REQUIRED_LIBRARIES ${OpenMP_CXX_LIBRARIES}) - check_include_file_cxx(omp.h _have_omp_h) + # there are all kinds of problems with finding omp.h + # for Clang and derived compilers so we pretend it is there. + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(_have_omp_h TRUE) + else() + check_include_file_cxx(omp.h _have_omp_h) + endif() else() set(_have_omp_h FALSE) endif() From b9b62822ee8e5bf5b801eb1f190843bd449afc8e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 28 Jul 2024 16:00:57 -0400 Subject: [PATCH 113/169] add missing "override" property --- src/KOKKOS/pair_uf3_kokkos.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.h b/src/KOKKOS/pair_uf3_kokkos.h index 15c2832da1..ac3203a7ee 100644 --- a/src/KOKKOS/pair_uf3_kokkos.h +++ b/src/KOKKOS/pair_uf3_kokkos.h @@ -44,7 +44,7 @@ template class PairUF3Kokkos : public PairUF3 { void compute(int, int) override; void settings(int, char **) override; void coeff(int, char **) override; - void allocate(); + void allocate() override; void init_style() override; void init_list(int, class NeighList *) override; // needed for ptr to full neigh list double init_one(int, int) override; // needed for cutoff radius for neighbour list From 4f46b07d356837596175287e5e93a4527cee6333 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 28 Jul 2024 16:22:46 -0400 Subject: [PATCH 114/169] make more similar to pair style sw/kk --- src/KOKKOS/pair_uf3_kokkos.cpp | 2 +- src/KOKKOS/pair_uf3_kokkos.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index 4a3bcc164b..59112ddab0 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -1655,7 +1655,7 @@ double PairUF3Kokkos::single(int /*i*/, int /*j*/, int itype, int jt namespace LAMMPS_NS { template class PairUF3Kokkos; -#ifdef KOKKOS_ENABLE_CUDA +#ifdef KOKKOS_ENABLE_GPU template class PairUF3Kokkos; #endif } // namespace LAMMPS_NS diff --git a/src/KOKKOS/pair_uf3_kokkos.h b/src/KOKKOS/pair_uf3_kokkos.h index ac3203a7ee..9fedfcc3de 100644 --- a/src/KOKKOS/pair_uf3_kokkos.h +++ b/src/KOKKOS/pair_uf3_kokkos.h @@ -22,6 +22,7 @@ // clang-format off PairStyle(uf3/kk,PairUF3Kokkos) PairStyle(uf3/kk/device,PairUF3Kokkos) +PairStyle(uf3/kk/host,PairUF3Kokkos) // clang-format on #else From 4a2901bd5e866e9330766bca68256ab8c2c4a117 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 28 Jul 2024 20:46:44 -0400 Subject: [PATCH 115/169] temporarily remove non-compiling KOKKOS sources --- src/KOKKOS/pair_uf3_kokkos.cpp | 1661 -------------------------------- src/KOKKOS/pair_uf3_kokkos.h | 188 ---- 2 files changed, 1849 deletions(-) delete mode 100644 src/KOKKOS/pair_uf3_kokkos.cpp delete mode 100644 src/KOKKOS/pair_uf3_kokkos.h diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp deleted file mode 100644 index 59112ddab0..0000000000 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ /dev/null @@ -1,1661 +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. -------------------------------------------------------------------------- */ - -/* ---------------------------------------------------------------------- - Contributing author: Ajinkya Hire (Univ. of Florida), - Hendrik Kraß (Univ. of Constance), - Matthias Rupp (Luxembourg Institute of Science and Technology), - Richard Hennig (Univ of Florida) ----------------------------------------------------------------------- */ - -#include "pair_uf3.h" -#include "pair_uf3_kokkos.h" - -#include "atom_kokkos.h" -#include "atom_masks.h" -#include "comm.h" -#include "error.h" -#include "force.h" -#include "kokkos.h" -#include "kokkos_type.h" -#include "math_const.h" -#include "math_special_kokkos.h" -#include "memory.h" -#include "memory_kokkos.h" -#include "neigh_list_kokkos.h" -#include "neigh_request.h" -#include "neighbor.h" -#include "pair_kokkos.h" -#include "text_file_reader.h" - -#include -#include -#include - -using namespace LAMMPS_NS; -using namespace MathConst; -using MathSpecialKokkos::cube; -using MathSpecialKokkos::square; - -template PairUF3Kokkos::PairUF3Kokkos(LAMMPS *lmp) : PairUF3(lmp) -{ - respa_enable = 0; - - //kokkosable = 1; - atomKK = (AtomKokkos *) atom; - execution_space = ExecutionSpaceFromDevice::space; - datamask_read = X_MASK | F_MASK | TAG_MASK | TYPE_MASK | ENERGY_MASK | VIRIAL_MASK; - datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; - -} - -template PairUF3Kokkos::~PairUF3Kokkos() -{ - if (!copymode) { - memoryKK->destroy_kokkos(k_eatom, eatom); //destory eatom from host, set it to nullptr - //Also set k_eatom to empty View - memoryKK->destroy_kokkos(k_vatom, vatom); - memoryKK->destroy_kokkos(k_cutsq,cutsq); - destroy_3d(k_cut_3b,cut_3b); - destroy_4d(k_min_cut_3b,min_cut_3b); - eatom = NULL; - vatom = NULL; - cvatom = NULL; - } -} - -template -template -void PairUF3Kokkos::destroy_3d(TYPE data, typename TYPE::value_type*** &array) -{ - if (array == nullptr) return; - data = TYPE(); - memory->sfree(array); - array = nullptr; -} - -template -template -void PairUF3Kokkos::destroy_4d(TYPE data, typename TYPE::value_type**** &array) -{ - if (array == nullptr) return; - data = TYPE(); - memory->sfree(array); - array = nullptr; -} - -/* ---------------------------------------------------------------------- - * global settings - * ---------------------------------------------------------------------- */ - -template void PairUF3Kokkos::settings(int narg, char **arg) -{ - PairUF3::settings(narg, arg); - //1. Determines whether the simulation is 2-body or 2 and 3-body - //2. Set nbody_flag, num_of_elements, pot_3b -} - -/* ---------------------------------------------------------------------- - * set coeffs for one or more type pairs - * ---------------------------------------------------------------------- */ -template void PairUF3Kokkos::coeff(int narg, char **arg) -{ - PairUF3::coeff(narg,arg); - //Also calls allocate internally - //Grows arrays to the right dimensions --> setflag, cutsq, cut, knot_spacing_type_2b, - //knot_spacing_2b, n2b_knots_array_size, n2b_coeff_array_size, setflag_3b, - //cut_3b, cut_3b_list, min_cut_3b, knot_spacing_type_3b, knot_spacing_3b, - //tot_interaction_count_3b, map_3b, n3b_knots_array_size, n3b_coeff_array_size, - //neighshort - // - //Also reads the pot_files_internally - -} - -template -void PairUF3Kokkos::allocate() -{ - if (!allocated) PairUF3::allocate(); - int n = atom->ntypes; - memory->destroy(cutsq); //Why are we destroying cutsq? cutsq is allocated when - //PairUF3::coeff or PairUF3::allocate is called; in the next step when k_cutsq - //is created cutsq is set to point to the host array of k_cutsq - //memory->destroy(cut_3b); - - memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); - d_cutsq = k_cutsq.template view(); //assignment; get the device - //view of k_cutsq and assign it to d_cutsq; in the header file we just - //decleared d_cutsq's type - memoryKK->create_kokkos(k_cut_3b,n+1,n+1,n+1,"threebody:cut"); - memoryKK->create_kokkos(k_min_cut_3b,n+1,n+1,n+1,3,"threebody:cut"); - d_cut_3b = k_cut_3b.template view(); - d_min_cut_3b = k_min_cut_3b.template view(); -} - - -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -template void PairUF3Kokkos::init_style() -{ - - PairUF3::init_style(); - - neighflag = lmp->kokkos->neighflag; - - auto request = neighbor->find_request(this); - request->set_kokkos_host(std::is_same::value && - !std::is_same::value); - request->set_kokkos_device(std::is_same::value); - - request->enable_full(); - request->enable_ghost(); -} - -/* ---------------------------------------------------------------------- - init list sets the pointer to full neighbour list requested in previous function -------------------------------------------------------------------------- */ - -template -void PairUF3Kokkos::init_list(int /*id*/, class NeighList *ptr) -{ - list = ptr; -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ -template double PairUF3Kokkos::init_one(int i, int j) -{ - double cutone = PairUF3::init_one(i, j); - - if (!coefficients_created) create_coefficients(); - - k_cutsq.h_view(i,j) = k_cutsq.h_view(j,i) = cutone*cutone; //Update the k_cutsq's - //host memory - k_cutsq.template modify(); //Record that k_cutsq's host memory has - //been modified - - return cutone; -} - -template void PairUF3Kokkos::create_coefficients() -{ - const int num_of_elements = atom->ntypes; - coefficients_created = 1; - - if (pot_3b) { - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = 1; j < num_of_elements + 1; j++) { - for (int k = 1; k < num_of_elements + 1; k++) { - k_cut_3b.h_view(i,j,k) = cut_3b[i][j][k]; - - // Notice the order of min_cut_3b[i][j][k] - //In min_cut_3b[i][j][k], - //min_cut_3b[i][j][k][0] is the knot_vector along jk, - //min_cut_3b[i][j][k][1] is the knot_vector along ik, - //min_cut_3b[i][j][k][2] is the knot_vector along ij, - //see pair_uf3.cpp for more details - k_min_cut_3b.h_view(i,j,k,0) = min_cut_3b[i][j][k][0]; - k_min_cut_3b.h_view(i,j,k,1) = min_cut_3b[i][j][k][1]; - k_min_cut_3b.h_view(i,j,k,2) = min_cut_3b[i][j][k][2]; - } - } - } - k_cut_3b.template modify(); - k_min_cut_3b.template modify(); - } - - //No allocation on device for --> setflag, cut, knot_spacing_type_2b, - //n2b_knot, n2b_coeff, n2b_knot[i], n2b_coeff[i], setflag_3b, cut_3b, - //cut_3b_list, min_cut_3b, knot_spacing_type_3b, cut_3b_list, n3b_knot_matrix, - //neighshort - - //UFBS2b and UFBS3b are array of objects. Bad idea to use kokkos view(array) - //for it - create_2b_coefficients(); - if (pot_3b) create_3b_coefficients(); - -} - -template void PairUF3Kokkos::create_2b_coefficients() -{ - const int num_of_elements = atom->ntypes; - - // Setup interaction pair map - //TODO: Instead of using map2b and map3b use simple indexing - Kokkos::realloc(map2b, num_of_elements + 1, num_of_elements + 1); - auto map2b_view = Kokkos::create_mirror(map2b); - - int interaction_count = 0; - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = i; j < num_of_elements + 1; j++) { - map2b_view(i, j) = interaction_count; - map2b_view(j, i) = interaction_count++; - } - } - Kokkos::deep_copy(map2b, map2b_view); - - // Count max knots for array size - - int max_knots = max_num_knots_2b; - - // Copy coefficients to view - - Kokkos::realloc(d_coefficients_2b, interaction_count, max_knots - 4); - auto d_coefficients_2b_view = Kokkos::create_mirror(d_coefficients_2b); - - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = i; j < num_of_elements + 1; j++) { - for (int k = 0; k < max_num_coeff_2b; k++) { - d_coefficients_2b_view(map2b_view(i, j), k) = n2b_coeff_array[i][j][k]; - } - } - } - Kokkos::deep_copy(d_coefficients_2b, d_coefficients_2b_view); - - // Copy knots from array to view - - Kokkos::realloc(d_n2b_knot, interaction_count, max_knots); - Kokkos::realloc(d_n2b_knot_spacings, interaction_count); - auto d_n2b_knot_view = Kokkos::create_mirror(d_n2b_knot); - auto d_n2b_knot_spacings_view = Kokkos::create_mirror(d_n2b_knot_spacings); - - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = i; j < num_of_elements + 1; j++) { - for (int k = 0; k < max_num_knots_2b; k++) { - d_n2b_knot_view(map2b_view(i, j), k) = n2b_knots_array[i][j][k]; - } - d_n2b_knot_spacings_view(map2b_view(i, j)) = n2b_knots_array[i][j][4] - n2b_knots_array[i][j][3]; - } - } - - Kokkos::deep_copy(d_n2b_knot, d_n2b_knot_view); - Kokkos::deep_copy(d_n2b_knot_spacings, d_n2b_knot_spacings_view); - // Set spline constants - - Kokkos::realloc(constants_2b, interaction_count, max_knots - 4); - auto constants_2b_view = Kokkos::create_mirror(constants_2b); - - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = i; j < num_of_elements + 1; j++) { - for (int l = 0; l < n2b_knots_array_size[i][j] - 4; l++) { - //n2b_knot[i][j].size() - 4; l++) { - auto c = get_constants(&n2b_knots_array[i][j][l], n2b_coeff_array[i][j][l]); - for (int k = 0; k < 16; k++) - constants_2b_view(map2b_view(i, j), l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 - : c[k]; - } - } - } - Kokkos::deep_copy(constants_2b, constants_2b_view); - - Kokkos::realloc(dnconstants_2b, interaction_count, max_knots - 5); - auto dnconstants_2b_view = Kokkos::create_mirror(dnconstants_2b); - - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = i; j < num_of_elements + 1; j++) { - for (int l = 0; l < n2b_knots_array_size[i][j] - 5; l++) { - double dntemp4 = 3 / (n2b_knots_array[i][j][l + 4] - n2b_knots_array[i][j][l + 1]); - double coeff = (n2b_coeff_array[i][j][l + 1] - n2b_coeff_array[i][j][l]) * dntemp4; - auto c = get_dnconstants(&n2b_knots_array[i][j][l + 1], coeff); - for (int k = 0; k < 9; k++) - dnconstants_2b_view(map2b_view(i, j), l, k) = - (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; - } - } - } - Kokkos::deep_copy(dnconstants_2b, dnconstants_2b_view); -} - -template void PairUF3Kokkos::create_3b_coefficients() -{ - const int num_of_elements = atom->ntypes; - // Init interaction map for 3B - - Kokkos::realloc(map3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); - auto map3b_view = Kokkos::create_mirror(map3b); - - int interaction_count = 0; - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = 1; j < num_of_elements + 1; j++) { - for (int k = 1; k < num_of_elements + 1; k++) { - map3b_view(i, j, k) = interaction_count; - interaction_count++; - } - } - } - Kokkos::deep_copy(map3b, map3b_view); - - // Count max knots for view - - int max_knots = max_num_knots_3b; - //In n3b_knot_matrix[i][j][k], - //n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, - //n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, - //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, - //see pair_uf3.cpp for more details - - - // Init knot matrix view - - Kokkos::realloc(d_n3b_knot_matrix, interaction_count, 3, max_knots); - Kokkos::realloc(d_n3b_knot_matrix_spacings, interaction_count, 3); - auto d_n3b_knot_matrix_view = Kokkos::create_mirror(d_n3b_knot_matrix); - auto d_n3b_knot_matrix_spacings_view = Kokkos::create_mirror(d_n3b_knot_matrix_spacings); - - for (int i = 1; i < num_of_elements + 1; i++) - for (int j = 1; j < num_of_elements + 1; j++) - for (int k = 1; k < num_of_elements + 1; k++) { - for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][0]; m++) - d_n3b_knot_matrix_view(map3b_view(i, j, k), 0, m) = - n3b_knots_array[map_3b[i][j][k]][0][m]; - for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][1]; m++) - d_n3b_knot_matrix_view(map3b_view(i, j, k), 1, m) = - n3b_knots_array[map_3b[i][j][k]][1][m]; - for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][2]; m++) - d_n3b_knot_matrix_view(map3b_view(i, j, k), 2, m) = - n3b_knots_array[map_3b[i][j][k]][2][m]; - - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),2) = - n3b_knots_array[map_3b[i][j][k]][2][4] - n3b_knots_array[map_3b[i][j][k]][2][3]; - - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),1) = - n3b_knots_array[map_3b[i][j][k]][1][4] - n3b_knots_array[map_3b[i][j][k]][1][3]; - - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),0) = - n3b_knots_array[map_3b[i][j][k]][0][4] - n3b_knots_array[map_3b[i][j][k]][0][3]; - } - Kokkos::deep_copy(d_n3b_knot_matrix, d_n3b_knot_matrix_view); - Kokkos::deep_copy(d_n3b_knot_matrix_spacings, d_n3b_knot_matrix_spacings_view); - - // Set knots spacings - - Kokkos::realloc(d_n3b_knot_spacings, interaction_count, 3); - auto d_n3b_knot_spacings_view = Kokkos::create_mirror(d_n3b_knot_spacings); - - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = 1; j < num_of_elements + 1; j++) { - for (int k = 1; k < num_of_elements + 1; k++) { - d_n3b_knot_spacings_view(map3b_view(i, j, k), 0) = - 1 / (n3b_knots_array[map_3b[i][j][k]][0][5] - n3b_knots_array[map_3b[i][j][k]][0][4]); - - d_n3b_knot_spacings_view(map3b_view(i, j, k), 1) = - 1 / (n3b_knots_array[map_3b[i][j][k]][1][5] - n3b_knots_array[map_3b[i][j][k]][1][4]); - - d_n3b_knot_spacings_view(map3b_view(i, j, k), 2) = - 1 / (n3b_knots_array[map_3b[i][j][k]][2][5] - n3b_knots_array[map_3b[i][j][k]][2][4]); - } - } - } - Kokkos::deep_copy(d_n3b_knot_spacings, d_n3b_knot_spacings_view); - - // Copy coefficients - - Kokkos::realloc(d_coefficients_3b, interaction_count, max_knots - 4, max_knots - 4, - max_knots - 4); - auto d_coefficients_3b_view = Kokkos::create_mirror(d_coefficients_3b); - - for (int n = 1; n < num_of_elements + 1; n++) { - for (int m = 1; m < num_of_elements + 1; m++) { - for (int o = 1; o < num_of_elements + 1; o++) { - for (int i = 0; i < n3b_coeff_array_size[map_3b[n][m][o]][0]; i++) { - for (int j = 0; j < n3b_coeff_array_size[map_3b[n][m][o]][1]; j++) { - for (int k = 0; k < n3b_coeff_array_size[map_3b[n][m][o]][2]; k++) { - d_coefficients_3b_view(map3b_view(n, m, o), i, j, k) = - n3b_coeff_array[map_3b[n][m][o]][i][j][k]; - } - } - } - } - } - } - Kokkos::deep_copy(d_coefficients_3b, d_coefficients_3b_view); - // - // Create derivative coefficients - - // TODO: Shrink size - Kokkos::realloc(d_dncoefficients_3b, interaction_count, 3, max_knots - 4, max_knots - 4, - max_knots - 4); - auto d_dncoefficients_3b_view = Kokkos::create_mirror(d_dncoefficients_3b); - - //Notice the order for d_dncoefficients_3b_view(map3b_view(n, m, o), X, i, j, k) - //d_dncoefficients_3b_view(map3b_view(n, m, o), 2, i, j, k) --> coeff for rjk - //d_dncoefficients_3b_view(map3b_view(n, m, o), 1, i, j, k) --> coeff for rik - //d_dncoefficients_3b_view(map3b_view(n, m, o), 0, i, j, k) --> coeff for rij - // - //This is because- - //In n3b_knot_matrix[i][j][k], - //n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, - //n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, - //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, - //see pair_uf3.cpp for more details - - for (int n = 1; n < num_of_elements + 1; n++) { - for (int m = 1; m < num_of_elements + 1; m++) { - for (int o = 1; o < num_of_elements + 1; o++) { - int coeff_dim1 = n3b_coeff_array_size[map_3b[n][m][o]][0]; - int coeff_dim2 = n3b_coeff_array_size[map_3b[n][m][o]][1]; - int coeff_dim3 = n3b_coeff_array_size[map_3b[n][m][o]][2]; - for (int i = 0; i < coeff_dim1; i++) { - for (int j = 0; j < coeff_dim2; j++) { - for (int k = 0; k < coeff_dim3; k++) { - F_FLOAT dntemp4 = - 3 / (n3b_knots_array[map_3b[n][m][o]][0][k + 4] - n3b_knots_array[map_3b[n][m][o]][0][k + 1]); - - d_dncoefficients_3b_view(map3b_view(n, m, o), 2, i, j, k) = - (n3b_coeff_array[map_3b[n][m][o]][i][j][k + 1] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; - } - } - } - - for (int i = 0; i < coeff_dim1; i++) { - std::vector> dncoeff_vect2; - for (int j = 0; j < coeff_dim2; j++) { - F_FLOAT dntemp4 = - 3 / (n3b_knots_array[map_3b[n][m][o]][1][j + 4] - n3b_knots_array[map_3b[n][m][o]][1][j + 1]); - - std::vector dncoeff_vect; - for (int k = 0; k < coeff_dim3; k++) { - d_dncoefficients_3b_view(map3b_view(n, m, o), 1, i, j, k) = - (n3b_coeff_array[map_3b[n][m][o]][i][j + 1][k] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; - } - } - } - - for (int i = 0; i < coeff_dim1; i++) { - F_FLOAT dntemp4 = - 3 / (n3b_knots_array[map_3b[n][m][o]][2][i + 4] - n3b_knots_array[map_3b[n][m][o]][2][i + 1]); - for (int j = 0; j < coeff_dim2; j++) { - for (int k = 0; k < coeff_dim3; k++) { - d_dncoefficients_3b_view(map3b_view(n, m, o), 0, i, j, k) = - (n3b_coeff_array[map_3b[n][m][o]][i + 1][j][k] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; - } - } - } - } - } - } - Kokkos::deep_copy(d_dncoefficients_3b, d_dncoefficients_3b_view); - - // Set spline constants - - Kokkos::realloc(constants_3b, interaction_count, 3, max_knots - 4); - auto constants_3b_view = Kokkos::create_mirror(constants_3b); - - //In n3b_knot_matrix[i][j][k], - //n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, - //n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, - //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, - //see pair_uf3.cpp for more details - for (int n = 1; n < num_of_elements + 1; n++) { - for (int m = 1; m < num_of_elements + 1; m++) { - for (int o = 1; o < num_of_elements + 1; o++) { - for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][2] - 4; l++) { - auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][2][l], 1); - for (int k = 0; k < 16; k++) - constants_3b_view(map3b_view(n, m, o), 0, l, k) = - (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; - } - for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][1] - 4; l++) { - auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][1][l], 1); - for (int k = 0; k < 16; k++) - constants_3b_view(map3b_view(n, m, o), 1, l, k) = - (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; - } - for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][0] -4; l++) { - auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][0][l], 1); - for (int k = 0; k < 16; k++) - constants_3b_view(map3b_view(n, m, o), 2, l, k) = - (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; - } - } - } - } - Kokkos::deep_copy(constants_3b, constants_3b_view); - - Kokkos::realloc(dnconstants_3b, interaction_count, 3, max_knots - 6); - auto dnconstants_3b_view = Kokkos::create_mirror(dnconstants_3b); - - for (int n = 1; n < num_of_elements + 1; n++) { - for (int m = 1; m < num_of_elements + 1; m++) { - for (int o = 1; o < num_of_elements + 1; o++) { - for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][2] - 5; l++) { - auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][2][l], 1); - for (int k = 0; k < 9; k++) - dnconstants_3b_view(map3b_view(n, m, o), 0, l - 1, k) = - (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; - } - for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][1] - 5; l++) { - auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][1][l], 1); - for (int k = 0; k < 9; k++) - dnconstants_3b_view(map3b_view(n, m, o), 1, l - 1, k) = - (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; - } - for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][0] - 5; l++) { - auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][0][l], 1); - for (int k = 0; k < 9; k++) - dnconstants_3b_view(map3b_view(n, m, o), 2, l - 1, k) = - (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; - } - } - } - } - Kokkos::deep_copy(dnconstants_3b, dnconstants_3b_view); -} - -template -template -KOKKOS_INLINE_FUNCTION void PairUF3Kokkos::twobody(const int itype, const int jtype, - const F_FLOAT r, F_FLOAT &evdwl, - F_FLOAT &fpair) const -{ - - // Find knot starting position - int interaction_id = map2b(itype, jtype); - int start_index = 3; - while (r > d_n2b_knot(interaction_id, start_index + 1)) start_index++; - //int start_index = 3+(int)((r-d_n2b_knot(interaction_id,0))/d_n2b_knot_spacings(interaction_id)); - - F_FLOAT r_values[4]; - r_values[0] = 1; - r_values[1] = r; - r_values[2] = r_values[1] * r_values[1]; - - if (EVFLAG) { - r_values[3] = r_values[2] * r_values[1]; - // Calculate energy - evdwl = constants_2b(interaction_id, start_index, 0); - evdwl += r_values[1] * constants_2b(interaction_id, start_index, 1); - evdwl += r_values[2] * constants_2b(interaction_id, start_index, 2); - evdwl += r_values[3] * constants_2b(interaction_id, start_index, 3); - evdwl += constants_2b(interaction_id, start_index - 1, 4); - evdwl += r_values[1] * constants_2b(interaction_id, start_index - 1, 5); - evdwl += r_values[2] * constants_2b(interaction_id, start_index - 1, 6); - evdwl += r_values[3] * constants_2b(interaction_id, start_index - 1, 7); - evdwl += constants_2b(interaction_id, start_index - 2, 8); - evdwl += r_values[1] * constants_2b(interaction_id, start_index - 2, 9); - evdwl += r_values[2] * constants_2b(interaction_id, start_index - 2, 10); - evdwl += r_values[3] * constants_2b(interaction_id, start_index - 2, 11); - evdwl += constants_2b(interaction_id, start_index - 3, 12); - evdwl += r_values[1] * constants_2b(interaction_id, start_index - 3, 13); - evdwl += r_values[2] * constants_2b(interaction_id, start_index - 3, 14); - evdwl += r_values[3] * constants_2b(interaction_id, start_index - 3, 15); - } - - // Calculate force - fpair = dnconstants_2b(interaction_id, start_index - 1, 0); - fpair += r_values[1] * dnconstants_2b(interaction_id, start_index - 1, 1); - fpair += r_values[2] * dnconstants_2b(interaction_id, start_index - 1, 2); - fpair += dnconstants_2b(interaction_id, start_index - 2, 3); - fpair += r_values[1] * dnconstants_2b(interaction_id, start_index - 2, 4); - fpair += r_values[2] * dnconstants_2b(interaction_id, start_index - 2, 5); - fpair += dnconstants_2b(interaction_id, start_index - 3, 6); - fpair += r_values[1] * dnconstants_2b(interaction_id, start_index - 3, 7); - fpair += r_values[2] * dnconstants_2b(interaction_id, start_index - 3, 8); -} - -template -template -KOKKOS_INLINE_FUNCTION void PairUF3Kokkos::threebody( - const int itype, const int jtype, const int ktype, const F_FLOAT value_rij, - const F_FLOAT value_rik, const F_FLOAT value_rjk, F_FLOAT &evdwl, F_FLOAT (&fforce)[3]) const -{ - evdwl = 0; - fforce[0] = 0; - fforce[1] = 0; - fforce[2] = 0; - - F_FLOAT evals[3][4]; - F_FLOAT dnevals[3][4]; - int start_indices[3]; - F_FLOAT r[3] = {value_rij, value_rik, value_rjk}; - int interaction_id = map3b(itype, jtype, ktype); - - auto coefficients = - Kokkos::subview(d_coefficients_3b, interaction_id, Kokkos::ALL, Kokkos::ALL, Kokkos::ALL); - auto dncoefficients = Kokkos::subview(d_dncoefficients_3b, interaction_id, Kokkos::ALL, - Kokkos::ALL, Kokkos::ALL, Kokkos::ALL); - //Notice the 2-d in d_n3b_knot_matrix - // - //In d_n3b_knot_matrix[i][j][k], - //d_n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, - //d_n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, - //d_n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, - // - //and r[0] = rij, r[1] = rik and r[2] = rjk - //see n3b_knot_matrix and pair_uf3.cpp for more details - for (int d = 0; d < 3; d++) { - start_indices[d] = 3; - while (r[d] > d_n3b_knot_matrix(interaction_id, 2-d, start_indices[d] + 1)) start_indices[d]++; - //start_indices[d] = 3+(int)((r[d]-d_n3b_knot_matrix(interaction_id, 2-d, 0))/d_n3b_knot_matrix_spacings(interaction_id, 2-d)); - - F_FLOAT r_values[4]; - r_values[0] = 1; - r_values[1] = r[d]; - r_values[2] = r_values[1] * r_values[1]; - - r_values[3] = r_values[2] * r_values[1]; - - // Calculate energy - evals[d][0] = constants_3b(interaction_id, d, start_indices[d], 0); - evals[d][0] += r_values[1] * constants_3b(interaction_id, d, start_indices[d], 1); - evals[d][0] += r_values[2] * constants_3b(interaction_id, d, start_indices[d], 2); - evals[d][0] += r_values[3] * constants_3b(interaction_id, d, start_indices[d], 3); - evals[d][1] = constants_3b(interaction_id, d, start_indices[d] - 1, 4); - evals[d][1] += r_values[1] * constants_3b(interaction_id, d, start_indices[d] - 1, 5); - evals[d][1] += r_values[2] * constants_3b(interaction_id, d, start_indices[d] - 1, 6); - evals[d][1] += r_values[3] * constants_3b(interaction_id, d, start_indices[d] - 1, 7); - evals[d][2] = constants_3b(interaction_id, d, start_indices[d] - 2, 8); - evals[d][2] += r_values[1] * constants_3b(interaction_id, d, start_indices[d] - 2, 9); - evals[d][2] += r_values[2] * constants_3b(interaction_id, d, start_indices[d] - 2, 10); - evals[d][2] += r_values[3] * constants_3b(interaction_id, d, start_indices[d] - 2, 11); - evals[d][3] = constants_3b(interaction_id, d, start_indices[d] - 3, 12); - evals[d][3] += r_values[1] * constants_3b(interaction_id, d, start_indices[d] - 3, 13); - evals[d][3] += r_values[2] * constants_3b(interaction_id, d, start_indices[d] - 3, 14); - evals[d][3] += r_values[3] * constants_3b(interaction_id, d, start_indices[d] - 3, 15); - - dnevals[d][0] = dnconstants_3b(interaction_id, d, start_indices[d] - 1, 0); - dnevals[d][0] += r_values[1] * dnconstants_3b(interaction_id, d, start_indices[d] - 1, 1); - dnevals[d][0] += r_values[2] * dnconstants_3b(interaction_id, d, start_indices[d] - 1, 2); - dnevals[d][1] = dnconstants_3b(interaction_id, d, start_indices[d] - 2, 3); - dnevals[d][1] += r_values[1] * dnconstants_3b(interaction_id, d, start_indices[d] - 2, 4); - dnevals[d][1] += r_values[2] * dnconstants_3b(interaction_id, d, start_indices[d] - 2, 5); - dnevals[d][2] = dnconstants_3b(interaction_id, d, start_indices[d] - 3, 6); - dnevals[d][2] += r_values[1] * dnconstants_3b(interaction_id, d, start_indices[d] - 3, 7); - dnevals[d][2] += r_values[2] * dnconstants_3b(interaction_id, d, start_indices[d] - 3, 8); - dnevals[d][3] = 0; - } - - if (EVFLAG) { - for (int i = 0; i < 4; i++) { - for (int j = 0; j < 4; j++) { - for (int k = 0; k < 4; k++) { - evdwl += coefficients(start_indices[0] - i, start_indices[1] - j, start_indices[2] - k) * - evals[0][i] * evals[1][j] * evals[2][k]; - } - } - } - } - - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 4; j++) { - for (int k = 0; k < 4; k++) { - fforce[0] += dncoefficients(0, start_indices[0] - 3 + i, start_indices[1] - 3 + j, - start_indices[2] - 3 + k) * - dnevals[0][2 - i] * evals[1][3 - j] * evals[2][3 - k]; - } - } - } - - for (int i = 0; i < 4; i++) { - for (int j = 0; j < 3; j++) { - for (int k = 0; k < 4; k++) { - fforce[1] += dncoefficients(1, start_indices[0] - 3 + i, start_indices[1] - 3 + j, - start_indices[2] - 3 + k) * - evals[0][3 - i] * dnevals[1][2 - j] * evals[2][3 - k]; - } - } - } - - for (int i = 0; i < 4; i++) { - for (int j = 0; j < 4; j++) { - for (int k = 0; k < 3; k++) { - fforce[2] += dncoefficients(2, start_indices[0] - 3 + i, start_indices[1] - 3 + j, - start_indices[2] - 3 + k) * - evals[0][3 - i] * evals[1][3 - j] * dnevals[2][2 - k]; - } - } - } -} - -template void PairUF3Kokkos::compute(int eflag_in, int vflag_in) -{ - eflag = eflag_in; - vflag = vflag_in; - - if (neighflag == FULL) no_virial_fdotr_compute = 1; - - ev_init(eflag, vflag, 0); - - // reallocate per-atom arrays if necessary - - if (eflag_atom) { - memoryKK->destroy_kokkos(k_eatom, eatom); - memoryKK->create_kokkos(k_eatom, eatom, maxeatom, "pair:eatom"); - d_eatom = k_eatom.view(); - } - if (vflag_atom) { - memoryKK->destroy_kokkos(k_vatom, vatom); - memoryKK->create_kokkos(k_vatom, vatom, maxvatom, "pair:vatom"); - d_vatom = k_vatom.view(); - } - - atomKK->sync(execution_space, datamask_read); - if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); - else atomKK->modified(execution_space,F_MASK); - - x = atomKK->k_x.template view(); - f = atomKK->k_f.template view(); - tag = atomKK->k_tag.template view(); - type = atomKK->k_type.template view(); - nlocal = atom->nlocal; - newton_pair = force->newton_pair; - nall = atom->nlocal + atom->nghost; - k_cutsq.template sync(); //Sync the device memory of k_cutsq with - //the array from the host memory; this updates d_cutsq also - k_cut_3b.template sync(); - k_min_cut_3b.template sync(); - - inum = list->inum; - const int ignum = inum + list->gnum; - NeighListKokkos *k_list = static_cast *>(list); - d_ilist = k_list->d_ilist; - d_numneigh = k_list->d_numneigh; - d_neighbors = k_list->d_neighbors; - - copymode = 1; - - escatter = ScatterEType(d_eatom); - fscatter = ScatterFType(f); - vscatter = ScatterVType(d_vatom); - //cvscatter = ScatterCVType(d_cvatom); - - EV_FLOAT ev; - EV_FLOAT ev_all; - - // build short neighbor list - - int max_neighs = d_neighbors.extent(1); - - if (((int)d_neighbors_short.extent(1) != max_neighs) || - ((int)d_neighbors_short.extent(0) != ignum)) { - d_neighbors_short = Kokkos::View("UF3::neighbors_short", ignum, max_neighs); - } - if (d_numneigh_short.extent(0) != ignum) - d_numneigh_short = Kokkos::View("UF3::numneighs_short", ignum); - Kokkos::parallel_for( - Kokkos::RangePolicy(0, ignum), *this); - - // loop over neighbor list of my atoms - - if (evflag) { - Kokkos::parallel_reduce( - Kokkos::RangePolicy>(0, inum), *this, ev); - } - else{ - Kokkos::parallel_for( - Kokkos::RangePolicy>(0, inum), *this); - } - ev_all += ev; - - Kokkos::Experimental::contribute(d_eatom, escatter); - Kokkos::Experimental::contribute(d_vatom, vscatter); - //Kokkos::Experimental::contribute(d_cvatom, cvscatter); - Kokkos::Experimental::contribute(f, fscatter); - - if (eflag_global) eng_vdwl += ev_all.evdwl; - if (vflag_global) { - virial[0] += ev_all.v[0]; - virial[1] += ev_all.v[1]; - virial[2] += ev_all.v[2]; - virial[3] += ev_all.v[3]; - virial[4] += ev_all.v[4]; - virial[5] += ev_all.v[5]; - } - - if (eflag_atom) { - k_eatom.template modify(); - k_eatom.template sync(); - } - - if (vflag_atom) { - k_vatom.template modify(); - k_vatom.template sync(); - } - - if (cvflag_atom) { - //k_cvatom.template modify(); - //k_cvatom.template sync(); - } - - if (vflag_fdotr) pair_virial_fdotr_compute(this); - - copymode = 0; -} - -/* ---------------------------------------------------------------------- */ - -template -KOKKOS_INLINE_FUNCTION void PairUF3Kokkos::operator()(TagPairUF3ComputeShortNeigh, - const int &ii) const -{ - const int i = d_ilist[ii]; - const X_FLOAT xtmp = x(i, 0); - const X_FLOAT ytmp = x(i, 1); - const X_FLOAT ztmp = x(i, 2); - - const int jnum = d_numneigh[i]; - int inside = 0; - for (int jj = 0; jj < jnum; jj++) { - int j = d_neighbors(i, jj); - j &= NEIGHMASK; - - const X_FLOAT delx = xtmp - x(j, 0); - const X_FLOAT dely = ytmp - x(j, 1); - const X_FLOAT delz = ztmp - x(j, 2); - const F_FLOAT rsq = delx * delx + dely * dely + delz * delz; - - const int itype = type[i]; - const int jtype = type[j]; - - if (rsq <= d_cutsq(itype, jtype)) { - d_neighbors_short(i, inside) = j; - inside++; - } - } - d_numneigh_short(i) = inside; -} - -/* ---------------------------------------------------------------------- */ - -template -template -KOKKOS_INLINE_FUNCTION void -PairUF3Kokkos::operator()(TagPairUF3ComputeFullA, const int &ii, - EV_FLOAT &ev) const -{ - // The f array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - - auto v_f = vscatter.access(); - auto a_f = fscatter.access(); - auto a_cvatom = cvscatter.access(); - - F_FLOAT del_rji[3], del_rki[3], del_rkj[3], triangle_eval[3]; - F_FLOAT fij[3], fik[3], fjk[3]; - F_FLOAT fji[3], fki[3], fkj[3]; - F_FLOAT Fj[3], Fk[3]; - F_FLOAT evdwl = 0, evdwl3 = 0; - F_FLOAT fpair = 0; - - const int i = d_ilist[ii]; - const int itype = type[i]; - const X_FLOAT xtmp = x(i, 0); - const X_FLOAT ytmp = x(i, 1); - const X_FLOAT ztmp = x(i, 2); - - // two-body interactions - - const int jnum = d_numneigh_short[i]; - - F_FLOAT fxtmpi = 0.0; - F_FLOAT fytmpi = 0.0; - F_FLOAT fztmpi = 0.0; - - for (int jj = 0; jj < jnum; jj++) { - int j = d_neighbors_short(i, jj); - j &= NEIGHMASK; - const int jtype = type[j]; - - const X_FLOAT delx = xtmp - x(j, 0); - const X_FLOAT dely = ytmp - x(j, 1); - const X_FLOAT delz = ztmp - x(j, 2); - const F_FLOAT rsq = delx * delx + dely * dely + delz * delz; - - if (rsq >= d_cutsq(itype, jtype)) continue; - - const F_FLOAT rij = sqrt(rsq); - this->template twobody(itype, jtype, rij, evdwl, fpair); - - fpair = -fpair / rij; - - fxtmpi += delx * fpair; - fytmpi += dely * fpair; - fztmpi += delz * fpair; - a_f(j, 0) -= delx * fpair; - a_f(j, 1) -= dely * fpair; - a_f(j, 2) -= delz * fpair; - - if (EVFLAG) { - if (eflag) ev.evdwl += evdwl; - if (vflag_either || eflag_atom) - this->template ev_tally(ev, i, j, evdwl, fpair, delx, dely, delz); - } - } - - // 3-body interaction - // jth atom - const int jnumm1 = jnum - 1; - for (int jj = 0; jj < jnumm1; jj++) { - int j = d_neighbors_short(i, jj); - j &= NEIGHMASK; - const int jtype = type[j]; - del_rji[0] = x(j, 0) - xtmp; - del_rji[1] = x(j, 1) - ytmp; - del_rji[2] = x(j, 2) - ztmp; - F_FLOAT rij = sqrt(del_rji[0] * del_rji[0] + del_rji[1] * del_rji[1] + del_rji[2] * del_rji[2]); - - F_FLOAT fxtmpj = 0.0; - F_FLOAT fytmpj = 0.0; - F_FLOAT fztmpj = 0.0; - - for (int kk = jj + 1; kk < jnum; kk++) { - int k = d_neighbors_short(i, kk); - k &= NEIGHMASK; - const int ktype = type[k]; - - // Notice the order of d_min_cut_3b[i][j][k] - //In d_min_cut_3b[i][j][k], - //d_min_cut_3b[i][j][k][0] is the knot_vector along jk, - //d_min_cut_3b[i][j][k][1] is the knot_vector along ik, - //d_min_cut_3b[i][j][k][2] is the knot_vector along ij, - //see pair_uf3.cpp for more details - if (rij < d_min_cut_3b(itype, jtype, ktype, 2)) continue; - if (rij > d_cut_3b(itype, jtype, ktype)) continue; - - del_rki[0] = x(k, 0) - xtmp; - del_rki[1] = x(k, 1) - ytmp; - del_rki[2] = x(k, 2) - ztmp; - F_FLOAT rik = - sqrt(del_rki[0] * del_rki[0] + del_rki[1] * del_rki[1] + del_rki[2] * del_rki[2]); - - if (rik < d_min_cut_3b(itype, jtype, ktype, 1)) continue; - if (rik > d_cut_3b(itype, ktype, jtype)) continue; - - del_rkj[0] = x(k, 0) - x(j, 0); - del_rkj[1] = x(k, 1) - x(j, 1); - del_rkj[2] = x(k, 2) - x(j, 2); - F_FLOAT rjk = - sqrt(del_rkj[0] * del_rkj[0] + del_rkj[1] * del_rkj[1] + del_rkj[2] * del_rkj[2]); - if (rjk < d_min_cut_3b(itype, jtype, ktype, 0)) continue; - this->template threebody(itype, jtype, ktype, rij, rik, rjk, evdwl3, triangle_eval); - - fij[0] = *(triangle_eval + 0) * (del_rji[0] / rij); - fji[0] = -fij[0]; - fik[0] = *(triangle_eval + 1) * (del_rki[0] / rik); - fki[0] = -fik[0]; - fjk[0] = *(triangle_eval + 2) * (del_rkj[0] / rjk); - fkj[0] = -fjk[0]; - - fij[1] = *(triangle_eval + 0) * (del_rji[1] / rij); - fji[1] = -fij[1]; - fik[1] = *(triangle_eval + 1) * (del_rki[1] / rik); - fki[1] = -fik[1]; - fjk[1] = *(triangle_eval + 2) * (del_rkj[1] / rjk); - fkj[1] = -fjk[1]; - - fij[2] = *(triangle_eval + 0) * (del_rji[2] / rij); - fji[2] = -fij[2]; - fik[2] = *(triangle_eval + 1) * (del_rki[2] / rik); - fki[2] = -fik[2]; - fjk[2] = *(triangle_eval + 2) * (del_rkj[2] / rjk); - fkj[2] = -fjk[2]; - - Fj[0] = fji[0] + fjk[0]; - Fj[1] = fji[1] + fjk[1]; - Fj[2] = fji[2] + fjk[2]; - - Fk[0] = fki[0] + fkj[0]; - Fk[1] = fki[1] + fkj[1]; - Fk[2] = fki[2] + fkj[2]; - - fxtmpi += (fij[0] + fik[0]); - fytmpi += (fij[1] + fik[1]); - fztmpi += (fij[2] + fik[2]); - fxtmpj += Fj[0]; - fytmpj += Fj[1]; - fztmpj += Fj[2]; - a_f(k, 0) += Fk[0]; - a_f(k, 1) += Fk[1]; - a_f(k, 2) += Fk[2]; - - if (EVFLAG) { - if (eflag) { ev.evdwl += evdwl3; } - if (vflag_either || eflag_atom) { - this->template ev_tally3(ev, i, j, k, evdwl3, 0.0, Fj, Fk, del_rji, del_rki); - if (cvflag_atom) { - - F_FLOAT ric[3]; - ric[0] = THIRD * (-del_rji[0] - del_rki[0]); - ric[1] = THIRD * (-del_rji[1] - del_rki[1]); - ric[2] = THIRD * (-del_rji[2] - del_rki[2]); - a_cvatom(i, 0) += ric[0] * (-Fj[0] - Fk[0]); - a_cvatom(i, 1) += ric[1] * (-Fj[1] - Fk[1]); - a_cvatom(i, 2) += ric[2] * (-Fj[2] - Fk[2]); - a_cvatom(i, 3) += ric[0] * (-Fj[1] - Fk[1]); - a_cvatom(i, 4) += ric[0] * (-Fj[2] - Fk[2]); - a_cvatom(i, 5) += ric[1] * (-Fj[2] - Fk[2]); - a_cvatom(i, 6) += ric[1] * (-Fj[0] - Fk[0]); - a_cvatom(i, 7) += ric[2] * (-Fj[0] - Fk[0]); - a_cvatom(i, 8) += ric[2] * (-Fj[1] - Fk[1]); - - double rjc[3]; - rjc[0] = THIRD * (del_rji[0] - del_rkj[0]); - rjc[1] = THIRD * (del_rji[1] - del_rkj[1]); - rjc[2] = THIRD * (del_rji[2] - del_rkj[2]); - - a_cvatom(j, 0) += rjc[0] * Fj[0]; - a_cvatom(j, 1) += rjc[1] * Fj[1]; - a_cvatom(j, 2) += rjc[2] * Fj[2]; - a_cvatom(j, 3) += rjc[0] * Fj[1]; - a_cvatom(j, 4) += rjc[0] * Fj[2]; - a_cvatom(j, 5) += rjc[1] * Fj[2]; - a_cvatom(j, 6) += rjc[1] * Fj[0]; - a_cvatom(j, 7) += rjc[2] * Fj[0]; - a_cvatom(j, 8) += rjc[2] * Fj[1]; - - double rkc[3]; - rkc[0] = THIRD * (del_rki[0] + del_rkj[0]); - rkc[1] = THIRD * (del_rki[1] + del_rkj[1]); - rkc[2] = THIRD * (del_rki[2] + del_rkj[2]); - - a_cvatom(k, 0) += rkc[0] * Fk[0]; - a_cvatom(k, 1) += rkc[1] * Fk[1]; - a_cvatom(k, 2) += rkc[2] * Fk[2]; - a_cvatom(k, 3) += rkc[0] * Fk[1]; - a_cvatom(k, 4) += rkc[0] * Fk[2]; - a_cvatom(k, 5) += rkc[1] * Fk[2]; - a_cvatom(k, 6) += rkc[1] * Fk[0]; - a_cvatom(k, 7) += rkc[2] * Fk[0]; - a_cvatom(k, 8) += rkc[2] * Fk[1]; - } - } - } - } - a_f(j, 0) += fxtmpj; - a_f(j, 1) += fytmpj; - a_f(j, 2) += fztmpj; - } - - a_f(i, 0) += fxtmpi; - a_f(i, 1) += fytmpi; - a_f(i, 2) += fztmpi; -} - -template -template -KOKKOS_INLINE_FUNCTION void -PairUF3Kokkos::operator()(TagPairUF3ComputeFullA, - const int &ii) const -{ - EV_FLOAT ev; - this->template operator()(TagPairUF3ComputeFullA(), ii, ev); -} - -/* ---------------------------------------------------------------------- */ - -template -template -KOKKOS_INLINE_FUNCTION void -PairUF3Kokkos::ev_tally(EV_FLOAT &ev, const int &i, const int &j, const F_FLOAT &epair, - const F_FLOAT &fpair, const F_FLOAT &delx, const F_FLOAT &dely, - const F_FLOAT &delz) const -{ - - // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, - // and neither for Serial - - auto a_eatom = escatter.access(); - auto a_vatom = vscatter.access(); - auto a_cvatom = cvscatter.access(); - - if (eflag_atom) { - const E_FLOAT epairhalf = 0.5 * epair; - a_eatom[i] += epairhalf; - a_eatom[j] += epairhalf; - } - - if (vflag_either) { - const E_FLOAT v0 = delx * delx * fpair; - const E_FLOAT v1 = dely * dely * fpair; - const E_FLOAT v2 = delz * delz * fpair; - const E_FLOAT v3 = delx * dely * fpair; - const E_FLOAT v4 = delx * delz * fpair; - const E_FLOAT v5 = dely * delz * fpair; - - if (vflag_global) { - ev.v[0] += v0; - ev.v[1] += v1; - ev.v[2] += v2; - ev.v[3] += v3; - ev.v[4] += v4; - ev.v[5] += v5; - } - - if (vflag_atom) { - a_vatom(i, 0) += 0.5 * v0; - a_vatom(i, 1) += 0.5 * v1; - a_vatom(i, 2) += 0.5 * v2; - a_vatom(i, 3) += 0.5 * v3; - a_vatom(i, 4) += 0.5 * v4; - a_vatom(i, 5) += 0.5 * v5; - - a_vatom(j, 0) += 0.5 * v0; - a_vatom(j, 1) += 0.5 * v1; - a_vatom(j, 2) += 0.5 * v2; - a_vatom(j, 3) += 0.5 * v3; - a_vatom(j, 4) += 0.5 * v4; - a_vatom(j, 5) += 0.5 * v5; - } - - if (cvflag_atom) { - a_cvatom(i, 0) += 0.5 * v0; - a_cvatom(i, 1) += 0.5 * v1; - a_cvatom(i, 2) += 0.5 * v2; - a_cvatom(i, 3) += 0.5 * v3; - a_cvatom(i, 4) += 0.5 * v4; - a_cvatom(i, 5) += 0.5 * v5; - a_cvatom(i, 6) += 0.5 * v3; - a_cvatom(i, 7) += 0.5 * v4; - a_cvatom(i, 8) += 0.5 * v5; - a_cvatom(j, 0) += 0.5 * v0; - a_cvatom(j, 1) += 0.5 * v1; - a_cvatom(j, 2) += 0.5 * v2; - a_cvatom(j, 3) += 0.5 * v3; - a_cvatom(j, 4) += 0.5 * v4; - a_cvatom(j, 5) += 0.5 * v5; - a_cvatom(j, 6) += 0.5 * v3; - a_cvatom(j, 7) += 0.5 * v4; - a_cvatom(j, 8) += 0.5 * v5; - } - } -} - -/* ---------------------------------------------------------------------- - tally eng_vdwl and virial into global and per-atom accumulators - called by SW and hbond potentials, newton_pair is always on - virial = riFi + rjFj + rkFk = (rj-ri) Fj + (rk-ri) Fk = drji*fj + drki*fk - ------------------------------------------------------------------------- */ - -template -template -KOKKOS_INLINE_FUNCTION void -PairUF3Kokkos::ev_tally3(EV_FLOAT &ev, const int &i, const int &j, int &k, - const F_FLOAT &evdwl, const F_FLOAT &ecoul, F_FLOAT *fj, - F_FLOAT *fk, F_FLOAT *drji, F_FLOAT *drki) const -{ - F_FLOAT epairthird, v[6]; - - // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, - // and neither for Serial - - auto a_eatom = escatter.access(); - auto a_vatom = vscatter.access(); - - if (eflag_atom) { - epairthird = THIRD * (evdwl + ecoul); - a_eatom[i] += epairthird; - a_eatom[j] += epairthird; - a_eatom[k] += epairthird; - } - - if (vflag_either) { - v[0] = drji[0] * fj[0] + drki[0] * fk[0]; - v[1] = drji[1] * fj[1] + drki[1] * fk[1]; - v[2] = drji[2] * fj[2] + drki[2] * fk[2]; - v[3] = drji[0] * fj[1] + drki[0] * fk[1]; - v[4] = drji[0] * fj[2] + drki[0] * fk[2]; - v[5] = drji[1] * fj[2] + drki[1] * fk[2]; - - if (vflag_global) { - ev.v[0] += v[0]; - ev.v[1] += v[1]; - ev.v[2] += v[2]; - ev.v[3] += v[3]; - ev.v[4] += v[4]; - ev.v[5] += v[5]; - } - - if (vflag_atom) { - a_vatom(i, 0) += THIRD * v[0]; - a_vatom(i, 1) += THIRD * v[1]; - a_vatom(i, 2) += THIRD * v[2]; - a_vatom(i, 3) += THIRD * v[3]; - a_vatom(i, 4) += THIRD * v[4]; - a_vatom(i, 5) += THIRD * v[5]; - - a_vatom(j, 0) += THIRD * v[0]; - a_vatom(j, 1) += THIRD * v[1]; - a_vatom(j, 2) += THIRD * v[2]; - a_vatom(j, 3) += THIRD * v[3]; - a_vatom(j, 4) += THIRD * v[4]; - a_vatom(j, 5) += THIRD * v[5]; - - a_vatom(k, 0) += THIRD * v[0]; - a_vatom(k, 1) += THIRD * v[1]; - a_vatom(k, 2) += THIRD * v[2]; - a_vatom(k, 3) += THIRD * v[3]; - a_vatom(k, 4) += THIRD * v[4]; - a_vatom(k, 5) += THIRD * v[5]; - } - } -} - -/* ---------------------------------------------------------------------- - tally eng_vdwl and virial into global and per-atom accumulators - called by SW and hbond potentials, newton_pair is always on - virial = riFi + rjFj + rkFk = (rj-ri) Fj + (rk-ri) Fk = drji*fj + drki*fk - ------------------------------------------------------------------------- */ - -template -template -void PairUF3Kokkos::copy_2d(V &d, T **h, int m, int n) -{ - Kokkos::View tmp("pair::tmp", m, n); //Create tmp view(array) on - //device memory - - //auto h_view = Kokkos::create_mirror_view(tmp); - auto h_view = Kokkos::create_mirror(tmp); //Create a mirror of the device - //view(array) tmp, as deep_copy is only possible for mirror views - - for (int i = 0; i < m; i++) { - for (int j = 0; j < n; j++) { - h_view(i, j) = h[i][j]; //fill mirror - } - //views with data from normal array 'h' which always lives on host memory - } - - Kokkos::deep_copy(tmp, h_view); //Deepcopy data from h_view(host) to tmp(device) - - d = tmp; -} - -template -template -void PairUF3Kokkos::copy_3d(V &d, T ***h, int m, int n, int o) -{ - Kokkos::View tmp("pair::tmp", m, n, o); //Create tmp view(array) on - //device memory - - //auto h_view = Kokkos::create_mirror_view(tmp); //create_mirror always copies - //the data. create_mirror_view only copies data if the host cannot access the - //data - auto h_view = Kokkos::create_mirror(tmp); //Create a mirror of the device - //view(array) tmp, as deep_copy is only possible for mirror views - for (int i = 0; i < m; i++) { - for (int j = 0; j < n; j++) { - for (int k = 0; k < o; k++) { h_view(i, j, k) = h[i][j][k]; } //fill mirror - //views with data from normal array 'h' which always lives on host memory - } - } - - Kokkos::deep_copy(tmp, h_view); //Deepcopy data from h_view(host) to tmp(device) - - d = tmp; -} - -template -std::vector PairUF3Kokkos::get_constants(double *knots, double coefficient) -{ - - std::vector constants(16); - - constants[0] = coefficient * - (-cube(knots[0]) / - (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + - square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - knots[1] * knots[2] * knots[3])); - constants[1] = coefficient * - (3 * square(knots[0]) / - (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + - square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - knots[1] * knots[2] * knots[3])); - constants[2] = coefficient * - (-3 * knots[0] / - (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + - square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - knots[1] * knots[2] * knots[3])); - constants[3] = coefficient * - (1 / - (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + - square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - knots[1] * knots[2] * knots[3])); - constants[4] = coefficient * - (square(knots[1]) * knots[4] / - (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - knots[2] * knots[3] * knots[4]) + - square(knots[0]) * knots[2] / - (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + - knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + - knots[0] * knots[1] * knots[3] / - (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); - constants[5] = coefficient * - (-square(knots[1]) / - (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - knots[2] * knots[3] * knots[4]) - - 2 * knots[1] * knots[4] / - (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - knots[2] * knots[3] * knots[4]) - - square(knots[0]) / - (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + - knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - - 2 * knots[0] * knots[2] / - (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + - knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - - knots[0] * knots[1] / - (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * square(knots[3]) + knots[2] * square(knots[3])) - - knots[0] * knots[3] / - (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * square(knots[3]) + knots[2] * square(knots[3])) - - knots[1] * knots[3] / - (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); - constants[6] = coefficient * - (2 * knots[1] / - (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - knots[2] * knots[3] * knots[4]) + - knots[4] / - (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - knots[2] * knots[3] * knots[4]) + - 2 * knots[0] / - (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + - knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + - knots[2] / - (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + - knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + - knots[0] / - (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * square(knots[3]) + knots[2] * square(knots[3])) + - knots[1] / - (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * square(knots[3]) + knots[2] * square(knots[3])) + - knots[3] / - (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); - constants[7] = coefficient * - (-1 / - (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - knots[2] * knots[3] * knots[4]) - - 1 / - (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + - knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - - 1 / - (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); - constants[8] = coefficient * - (-knots[0] * square(knots[3]) / - (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + - knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - - knots[2] * square(knots[3]) + cube(knots[3])) - - knots[1] * knots[3] * knots[4] / - (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - - knots[2] * square(knots[4]) / - (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); - constants[9] = coefficient * - (2 * knots[0] * knots[3] / - (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + - knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - - knots[2] * square(knots[3]) + cube(knots[3])) + - square(knots[3]) / - (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + - knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - - knots[2] * square(knots[3]) + cube(knots[3])) + - knots[1] * knots[3] / - (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + - knots[1] * knots[4] / - (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + - knots[3] * knots[4] / - (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + - 2 * knots[2] * knots[4] / - (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * square(knots[4]) + knots[3] * square(knots[4])) + - square(knots[4]) / - (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); - constants[10] = coefficient * - (-knots[0] / - (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + - knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - - knots[2] * square(knots[3]) + cube(knots[3])) - - 2 * knots[3] / - (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + - knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - - knots[2] * square(knots[3]) + cube(knots[3])) - - knots[1] / - (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - - knots[3] / - (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - - knots[4] / - (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - - knots[2] / - (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * square(knots[4]) + knots[3] * square(knots[4])) - - 2 * knots[4] / - (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); - constants[11] = coefficient * - (1 / - (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + - knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - - knots[2] * square(knots[3]) + cube(knots[3])) + - 1 / - (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + - knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + - 1 / - (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); - constants[12] = coefficient * - (cube(knots[4]) / - (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + - knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + - cube(knots[4]))); - constants[13] = coefficient * - (-3 * square(knots[4]) / - (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + - knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + - cube(knots[4]))); - constants[14] = coefficient * - (3 * knots[4] / - (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + - knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + - cube(knots[4]))); - constants[15] = coefficient * - (-1 / - (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + - knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + - cube(knots[4]))); - - return constants; -} - -template -std::vector PairUF3Kokkos::get_dnconstants(double *knots, double coefficient) -{ - std::vector constants(9); - - constants[0] = coefficient * - (square(knots[0]) / - (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); - constants[1] = coefficient * - (-2 * knots[0] / - (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); - constants[2] = coefficient * - (1 / (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); - constants[3] = coefficient * - (-knots[1] * knots[3] / - (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - - knots[0] * knots[2] / - (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); - constants[4] = coefficient * - (knots[1] / - (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + - knots[3] / - (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + - knots[0] / - (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2])) + - knots[2] / - (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); - constants[5] = coefficient * - (-1 / (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - - 1 / (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); - constants[6] = coefficient * - (square(knots[3]) / - (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); - constants[7] = coefficient * - (-2 * knots[3] / - (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); - constants[8] = coefficient * - (1 / (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); - - return constants; -} - -template -double PairUF3Kokkos::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, - double /*factor_coul*/, double factor_lj, double &fforce) -{ - double value = 0.0; - double r = sqrt(rsq); - int interaction_id = map2b(itype, jtype); - int start_index = 3; - while (r > d_n2b_knot(interaction_id, start_index + 1)) start_index++; - - if (r < d_cutsq(itype, jtype)) { - F_FLOAT r_values[4]; - r_values[0] = 1; - r_values[1] = r; - r_values[2] = r_values[1] * r_values[1]; - r_values[3] = r_values[2] * r_values[1]; - - // Calculate energy - value = constants_2b(interaction_id, start_index, 0); - value += r_values[1] * constants_2b(interaction_id, start_index, 1); - value += r_values[2] * constants_2b(interaction_id, start_index, 2); - value += r_values[3] * constants_2b(interaction_id, start_index, 3); - value += constants_2b(interaction_id, start_index - 1, 4); - value += r_values[1] * constants_2b(interaction_id, start_index - 1, 5); - value += r_values[2] * constants_2b(interaction_id, start_index - 1, 6); - value += r_values[3] * constants_2b(interaction_id, start_index - 1, 7); - value += constants_2b(interaction_id, start_index - 2, 8); - value += r_values[1] * constants_2b(interaction_id, start_index - 2, 9); - value += r_values[2] * constants_2b(interaction_id, start_index - 2, 10); - value += r_values[3] * constants_2b(interaction_id, start_index - 2, 11); - value += constants_2b(interaction_id, start_index - 3, 12); - value += r_values[1] * constants_2b(interaction_id, start_index - 3, 13); - value += r_values[2] * constants_2b(interaction_id, start_index - 3, 14); - value += r_values[3] * constants_2b(interaction_id, start_index - 3, 15); - - // Calculate force - fforce = dnconstants_2b(interaction_id, start_index - 1, 0); - fforce += r_values[1] * dnconstants_2b(interaction_id, start_index - 1, 1); - fforce += r_values[2] * dnconstants_2b(interaction_id, start_index - 1, 2); - fforce += dnconstants_2b(interaction_id, start_index - 2, 3); - fforce += r_values[1] * dnconstants_2b(interaction_id, start_index - 2, 4); - fforce += r_values[2] * dnconstants_2b(interaction_id, start_index - 2, 5); - fforce += dnconstants_2b(interaction_id, start_index - 3, 6); - fforce += r_values[1] * dnconstants_2b(interaction_id, start_index - 3, 7); - fforce += r_values[2] * dnconstants_2b(interaction_id, start_index - 3, 8); - } - - return factor_lj * value; -} - -namespace LAMMPS_NS { -template class PairUF3Kokkos; -#ifdef KOKKOS_ENABLE_GPU -template class PairUF3Kokkos; -#endif -} // namespace LAMMPS_NS diff --git a/src/KOKKOS/pair_uf3_kokkos.h b/src/KOKKOS/pair_uf3_kokkos.h deleted file mode 100644 index 9fedfcc3de..0000000000 --- a/src/KOKKOS/pair_uf3_kokkos.h +++ /dev/null @@ -1,188 +0,0 @@ -/* -*- 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. -------------------------------------------------------------------------- */ - -/* ---------------------------------------------------------------------- - Contributing author: Ajinkya Hire (Univ. of Florida), - Hendrik Kraß (Univ. of Constance), - Matthias Rupp (Luxembourg Institute of Science and Technology), - Richard Hennig (Univ of Florida) ----------------------------------------------------------------------- */ - -#ifdef PAIR_CLASS -// clang-format off -PairStyle(uf3/kk,PairUF3Kokkos) -PairStyle(uf3/kk/device,PairUF3Kokkos) -PairStyle(uf3/kk/host,PairUF3Kokkos) -// clang-format on -#else - -#ifndef LMP_PAIR_UF3_KOKKOS_H -#define LMP_PAIR_UF3_KOKKOS_H - -#include "kokkos.h" -#include "pair_kokkos.h" -#include "pair_uf3.h" - -template struct TagPairUF3ComputeFullA {}; -struct TagPairUF3ComputeShortNeigh {}; - -namespace LAMMPS_NS { - -template class PairUF3Kokkos : public PairUF3 { - public: - PairUF3Kokkos(class LAMMPS *); - ~PairUF3Kokkos() override; - void compute(int, int) override; - void settings(int, char **) override; - void coeff(int, char **) override; - void allocate() override; - void init_style() override; - void init_list(int, class NeighList *) override; // needed for ptr to full neigh list - double init_one(int, int) override; // needed for cutoff radius for neighbour list - double single(int, int, int, int, double, double, double, double &) override; - - template void copy_2d(V &d, T **h, int m, int n); - template void copy_3d(V &d, T ***h, int m, int n, int o); - - template - KOKKOS_INLINE_FUNCTION void operator()(TagPairUF3ComputeFullA, const int &, - EV_FLOAT &) const; - - template - KOKKOS_INLINE_FUNCTION void operator()(TagPairUF3ComputeFullA, - const int &) const; - - KOKKOS_INLINE_FUNCTION - void operator()(TagPairUF3ComputeShortNeigh, const int &) const; - - enum { EnabledNeighFlags = FULL }; - enum { COUL_FLAG = 0 }; - typedef DeviceType device_type; - typedef ArrayTypes AT; - typedef EV_FLOAT value_type; - - protected: - typename AT::tdual_ffloat_2d k_cutsq;//Create a DualView, defination of tdual_ffloat_2d in kokkos_type.h - typename AT::t_ffloat_2d d_cutsq; //t_ffloat_2d = t_dev ==> Creates a new View d_cutsq - //the type of d_cutsq is decided by the Device(not host) type for the DualView k_cutsq - //Meaning the memory location of d_cutsq is the same as the Device(not host) memory location of - //k_cutsq - typedef Kokkos::DualView tdual_ffloat_3d; - typedef Kokkos::DualView tdual_ffloat_4d; - tdual_ffloat_3d k_cut_3b; - tdual_ffloat_4d k_min_cut_3b; - typename tdual_ffloat_3d::t_dev d_cut_3b; - typename tdual_ffloat_4d::t_dev d_min_cut_3b; - template void destroy_3d(TYPE data, typename TYPE::value_type*** &array); - template void destroy_4d(TYPE data, typename TYPE::value_type**** &array); - Kokkos::View /*d_cutsq,*/ d_cut_3b_list; - //Kokkos::View d_cut_3b; - - Kokkos::View d_coefficients_2b; - Kokkos::View d_dncoefficients_2b; - Kokkos::View d_n2b_knot; - Kokkos::View d_n2b_knot_spacings; - Kokkos::View map2b; - Kokkos::View constants; - Kokkos::View dnconstants; - Kokkos::View d_n3b_knot_matrix; - Kokkos::View d_coefficients_3b; - Kokkos::View d_dncoefficients_3b; - Kokkos::View d_n3b_knot_spacings; - Kokkos::View d_n3b_knot_matrix_spacings; - Kokkos::View map3b; - - Kokkos::View constants_2b; - Kokkos::View dnconstants_2b; - Kokkos::View constants_3b; - Kokkos::View dnconstants_3b; - - std::vector get_constants(double *knots, double coefficient); - std::vector get_dnconstants(double *knots, double coefficient); - - int coefficients_created = 0; - void create_coefficients(); - void create_3b_coefficients(); - void create_2b_coefficients(); - std::vector get_coefficients(const double *knots, const double coefficient) const; - std::vector get_dncoefficients(const double *knots, const double coefficient) const; - - template - void twobody(const int itype, const int jtype, const F_FLOAT r, F_FLOAT &evdwl, - F_FLOAT &fpair) const; - template - void threebody(const int itype, const int jtype, const int ktype, const F_FLOAT value_rij, - const F_FLOAT value_rik, const F_FLOAT value_rjk, F_FLOAT &evdwl3, - F_FLOAT (&fforce)[3]) const; - - template - KOKKOS_INLINE_FUNCTION void - ev_tally(EV_FLOAT &ev, const int &i, const int &j, const F_FLOAT &epair, const F_FLOAT &fpair, - const F_FLOAT &delx, const F_FLOAT &dely, const F_FLOAT &delz) const; - - template - KOKKOS_INLINE_FUNCTION void ev_tally3(EV_FLOAT &ev, const int &i, const int &j, int &k, - const F_FLOAT &evdwl, const F_FLOAT &ecoul, F_FLOAT *fj, - F_FLOAT *fk, F_FLOAT *drji, F_FLOAT *drki) const; - - typename AT::t_x_array_randomread x; - typename AT::t_f_array f; - typename AT::t_tagint_1d tag; - typename AT::t_int_1d_randomread type; - - DAT::tdual_efloat_1d k_eatom; - DAT::tdual_virial_array k_vatom; - typename AT::t_efloat_1d d_eatom; - typename AT::t_virial_array d_vatom; - - using ScatterFType = Kokkos::Experimental::ScatterView; - ScatterFType fscatter; - using ScatterVType = Kokkos::Experimental::ScatterView; - ScatterVType vscatter; - using ScatterCVType = Kokkos::Experimental::ScatterView; - ScatterCVType cvscatter; - using ScatterEType = Kokkos::Experimental::ScatterView; - ScatterEType escatter; - - typename AT::t_neighbors_2d d_neighbors; - typename AT::t_int_1d_randomread d_ilist; - typename AT::t_int_1d_randomread d_numneigh; - - int neighflag, newton_pair; - int nlocal, nall, eflag, vflag; - - int inum; - Kokkos::View d_neighbors_short; - Kokkos::View d_numneigh_short; - - friend void pair_virial_fdotr_compute(PairUF3Kokkos *); -}; - -KOKKOS_INLINE_FUNCTION int min(int i, int j) -{ - return i < j ? i : j; -} -KOKKOS_INLINE_FUNCTION int max(int i, int j) -{ - return i > j ? i : j; -} - -} // namespace LAMMPS_NS - -#endif -#endif - From e6a708d253a53507786025e0f4ab35db7e51bf46 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 28 Jul 2024 20:49:17 -0400 Subject: [PATCH 116/169] add support for AMD Phoenix APUs with HIP --- lib/kokkos/Makefile.kokkos | 8 +++++++- lib/kokkos/cmake/KokkosCore_config.h.in | 1 + lib/kokkos/cmake/kokkos_arch.cmake | 12 +++++++++--- lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp | 3 ++- .../Kokkos_OpenMPTarget_ParallelScan_Range.hpp | 2 +- lib/kokkos/core/src/impl/Kokkos_Core.cpp | 3 +++ lib/kokkos/generate_makefile.bash | 1 + 7 files changed, 24 insertions(+), 6 deletions(-) diff --git a/lib/kokkos/Makefile.kokkos b/lib/kokkos/Makefile.kokkos index 14a417b532..2b5507a421 100644 --- a/lib/kokkos/Makefile.kokkos +++ b/lib/kokkos/Makefile.kokkos @@ -23,7 +23,7 @@ KOKKOS_DEVICES ?= "OpenMP" # NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75,Ampere80,Ampere86,Ada89,Hopper90 # ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2,A64FX # IBM: Power8,Power9 -# AMD-GPUS: AMD_GFX906,AMD_GFX908,AMD_GFX90A,AMD_GFX940,AMD_GFX942,AMD_GFX1030,AMD_GFX1100 +# AMD-GPUS: AMD_GFX906,AMD_GFX908,AMD_GFX90A,AMD_GFX940,AMD_GFX942,AMD_GFX1030,AMD_GFX1100,AMD_GFX1103 # AMD-CPUS: AMDAVX,Zen,Zen2,Zen3 # Intel-GPUs: Gen9,Gen11,Gen12LP,DG1,XeHP,PVC KOKKOS_ARCH ?= "" @@ -433,6 +433,7 @@ KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100 := $(call kokkos_has_string,$(KOKKOS_ARCH), ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100), 0) KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100 := $(call kokkos_has_string,$(KOKKOS_ARCH),NAVI1100) endif +KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100 := $(call kokkos_has_string,$(KOKKOS_ARCH),AMD_GFX1103) # Any AVX? KOKKOS_INTERNAL_USE_ARCH_AVX := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_AMDAVX)) @@ -1118,6 +1119,11 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1100), 1) tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_GPU") KOKKOS_INTERNAL_HIP_ARCH_FLAG := --offload-arch=gfx1100 endif +ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AMD_GFX1103), 1) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_GFX1103") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_GPU") + KOKKOS_INTERNAL_HIP_ARCH_FLAG := --offload-arch=gfx1103 +endif ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) diff --git a/lib/kokkos/cmake/KokkosCore_config.h.in b/lib/kokkos/cmake/KokkosCore_config.h.in index 3ab39cd6ab..94f8fc4214 100644 --- a/lib/kokkos/cmake/KokkosCore_config.h.in +++ b/lib/kokkos/cmake/KokkosCore_config.h.in @@ -116,6 +116,7 @@ #cmakedefine KOKKOS_ARCH_AMD_GFX942 #cmakedefine KOKKOS_ARCH_AMD_GFX1030 #cmakedefine KOKKOS_ARCH_AMD_GFX1100 +#cmakedefine KOKKOS_ARCH_AMD_GFX1103 #cmakedefine KOKKOS_ARCH_AMD_GPU #cmakedefine KOKKOS_ARCH_VEGA // deprecated #cmakedefine KOKKOS_ARCH_VEGA906 // deprecated diff --git a/lib/kokkos/cmake/kokkos_arch.cmake b/lib/kokkos/cmake/kokkos_arch.cmake index 34e9f05986..816a532950 100644 --- a/lib/kokkos/cmake/kokkos_arch.cmake +++ b/lib/kokkos/cmake/kokkos_arch.cmake @@ -101,9 +101,9 @@ LIST(APPEND CORRESPONDING_AMD_FLAGS gfx90a gfx90a gfx908 gfx908) LIST(APPEND SUPPORTED_AMD_GPUS MI50/60 MI50/60) LIST(APPEND SUPPORTED_AMD_ARCHS VEGA906 AMD_GFX906) LIST(APPEND CORRESPONDING_AMD_FLAGS gfx906 gfx906) -LIST(APPEND SUPPORTED_AMD_GPUS RX7900XTX RX7900XTX V620/W6800 V620/W6800) -LIST(APPEND SUPPORTED_AMD_ARCHS NAVI1100 AMD_GFX1100 NAVI1030 AMD_GFX1030) -LIST(APPEND CORRESPONDING_AMD_FLAGS gfx1100 gfx1100 gfx1030 gfx1030) +LIST(APPEND SUPPORTED_AMD_GPUS PHOENIX RX7900XTX V620/W6800 V620/W6800) +LIST(APPEND SUPPORTED_AMD_ARCHS AMD_GFX1103 AMD_GFX1100 NAVI1030 AMD_GFX1030) +LIST(APPEND CORRESPONDING_AMD_FLAGS gfx1103 gfx1100 gfx1030 gfx1030) #FIXME CAN BE REPLACED WITH LIST_ZIP IN CMAKE 3.17 FOREACH(ARCH IN LISTS SUPPORTED_AMD_ARCHS) @@ -1045,6 +1045,12 @@ FOREACH(ARCH IN LISTS SUPPORTED_AMD_ARCHS) SET(KOKKOS_ARCH_NAVI1100 ON) BREAK() ENDIF() + STRING(REGEX MATCH "1103" IS_1103 ${ARCH}) + IF(IS_1103) + SET(KOKKOS_ARCH_AMD_GFX1103 ON) + SET(KOKKOS_ARCH_NAVI ON) + BREAK() + ENDIF() STRING(REGEX MATCH "1030" IS_1030 ${ARCH}) IF(IS_1030) SET(KOKKOS_ARCH_AMD_GFX1030 ON) diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp index 142008124a..7b55f519c2 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp @@ -35,7 +35,8 @@ struct HIPTraits { static constexpr int WarpSize = 64; static constexpr int WarpIndexMask = 0x003f; /* hexadecimal for 63 */ static constexpr int WarpIndexShift = 6; /* WarpSize == 1 << WarpShift*/ -#elif defined(KOKKOS_ARCH_AMD_GFX1030) || defined(KOKKOS_ARCH_AMD_GFX1100) +#elif defined(KOKKOS_ARCH_AMD_GFX1030) || defined(KOKKOS_ARCH_AMD_GFX1100) || \ + defined(KOKKOS_ARCH_AMD_GFX1103) static constexpr int WarpSize = 32; static constexpr int WarpIndexMask = 0x001f; /* hexadecimal for 31 */ static constexpr int WarpIndexShift = 5; /* WarpSize == 1 << WarpShift*/ diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_ParallelScan_Range.hpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_ParallelScan_Range.hpp index c1f7851f41..30195d96e0 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_ParallelScan_Range.hpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_ParallelScan_Range.hpp @@ -143,7 +143,7 @@ class ParallelScan, local_offset_value = element_values(team_id, i - 1); // FIXME_OPENMPTARGET We seem to access memory illegaly on AMD GPUs #if defined(KOKKOS_ARCH_AMD_GPU) && !defined(KOKKOS_ARCH_AMD_GFX1030) && \ - !defined(KOKKOS_ARCH_AMD_GFX1100) + !defined(KOKKOS_ARCH_AMD_GFX1100) && !defined(KOKKOS_ARCH_AMD_GFX1103) if constexpr (Analysis::Reducer::has_join_member_function()) { if constexpr (std::is_void_v) a_functor_reducer.get_functor().join(local_offset_value, diff --git a/lib/kokkos/core/src/impl/Kokkos_Core.cpp b/lib/kokkos/core/src/impl/Kokkos_Core.cpp index 4a69652616..c7addbe337 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Core.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_Core.cpp @@ -750,6 +750,9 @@ void pre_initialize_internal(const Kokkos::InitializationSettings& settings) { #elif defined(KOKKOS_ARCH_AMD_GFX1100) declare_configuration_metadata("architecture", "GPU architecture", "AMD_GFX1100"); +#elif defined(KOKKOS_ARCH_AMD_GFX1103) + declare_configuration_metadata("architecture", "GPU architecture", + "AMD_GFX1103"); #else declare_configuration_metadata("architecture", "GPU architecture", "none"); diff --git a/lib/kokkos/generate_makefile.bash b/lib/kokkos/generate_makefile.bash index 25370daa3f..70dd61f9af 100755 --- a/lib/kokkos/generate_makefile.bash +++ b/lib/kokkos/generate_makefile.bash @@ -164,6 +164,7 @@ display_help_text() { echo " AMD_GFX942 = AMD GPU MI300 GFX942" echo " AMD_GFX1030 = AMD GPU V620/W6800 GFX1030" echo " AMD_GFX1100 = AMD GPU RX 7900 XT(X) GFX1100" + echo " AMD_GFX1103 = AMD APU Radeon 740M/760M/780M/880M/890M GFX1103" echo " [ARM]" echo " ARMV80 = ARMv8.0 Compatible CPU" echo " ARMV81 = ARMv8.1 Compatible CPU" From 08d47d389d04b4c50420caf930e56cc1050abf9b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 28 Jul 2024 22:16:44 -0400 Subject: [PATCH 117/169] remove include obsoleted in Qt6 --- tools/lammps-gui/codeeditor.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index c4690c3d7f..37e6820452 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -34,7 +34,6 @@ #include #include #include -#include #include #include #include From 84edc5ac81707eb7b593cd90ecce742346c7bcd4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 00:04:31 -0400 Subject: [PATCH 118/169] correct documentation --- src/library.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/library.cpp b/src/library.cpp index 5af39ce910..32577e47b4 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -2532,7 +2532,7 @@ a char pointer and it should **not** be deallocated. Example: * * \param handle pointer to a previously created LAMMPS instance * \param name name of the variable - * \param group group-ID for atom style variable or ``NULL`` + * \param group group-ID for atom style variable or ``NULL`` or non-NULL to get vector length * \return pointer (cast to ``void *``) to the location of the * requested data or ``NULL`` if not found. */ From 7d69535d782f0e592920751fbe7a57bafbfce73e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 00:04:54 -0400 Subject: [PATCH 119/169] step LAMMPS-GUI version number to 1.6.5 --- 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 940221886f..7abf8f1e67 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 1.6.4 LANGUAGES CXX) +project(lammps-gui VERSION 1.6.5 LANGUAGES CXX) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) From aa3c2879992aa45eac229c3c522a990941be70d2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 00:05:53 -0400 Subject: [PATCH 120/169] add wrapper to extract value of equal style and compatible variables --- tools/lammps-gui/lammpswrapper.cpp | 20 ++++++++++++++++++++ tools/lammps-gui/lammpswrapper.h | 1 + 2 files changed, 21 insertions(+) diff --git a/tools/lammps-gui/lammpswrapper.cpp b/tools/lammps-gui/lammpswrapper.cpp index 1ccb225a0a..ed2bde1c9f 100644 --- a/tools/lammps-gui/lammpswrapper.cpp +++ b/tools/lammps-gui/lammpswrapper.cpp @@ -102,6 +102,26 @@ void *LammpsWrapper::extract_atom(const char *keyword) return val; } +// note: equal style and compatible variables only +double LammpsWrapper::extract_variable(const char *keyword) +{ + void *ptr = nullptr; + if (lammps_handle) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + ptr = ((liblammpsplugin_t *)plugin_handle)->extract_variable(lammps_handle, keyword, nullptr); +#else + ptr = lammps_extract_variable(lammps_handle, keyword, nullptr); +#endif + } + double val = *((double *)ptr); +#if defined(LAMMPS_GUI_USE_PLUGIN) + ptr = ((liblammpsplugin_t *)plugin_handle)->free(ptr); +#else + lammps_free(ptr); +#endif + return val; +} + int LammpsWrapper::id_count(const char *keyword) { int val = 0; diff --git a/tools/lammps-gui/lammpswrapper.h b/tools/lammps-gui/lammpswrapper.h index 8719ef4491..9157bf77b5 100644 --- a/tools/lammps-gui/lammpswrapper.h +++ b/tools/lammps-gui/lammpswrapper.h @@ -34,6 +34,7 @@ public: void *extract_global(const char *keyword); void *extract_pair(const char *keyword); void *extract_atom(const char *keyword); + double extract_variable(const char *keyword); int id_count(const char *idtype); int id_name(const char *idtype, int idx, char *buf, int buflen); From 15c2c59d0c7b64572011adfec2e83bfb9681259c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 00:06:38 -0400 Subject: [PATCH 121/169] add button to recenter the image on the currently selected group's COM --- tools/lammps-gui/icons/move-recenter.png | Bin 0 -> 3988 bytes tools/lammps-gui/imageviewer.cpp | 25 +++++++++++++++++++++++ tools/lammps-gui/imageviewer.h | 2 ++ tools/lammps-gui/lammpsgui.qrc | 1 + 4 files changed, 28 insertions(+) create mode 100644 tools/lammps-gui/icons/move-recenter.png diff --git a/tools/lammps-gui/icons/move-recenter.png b/tools/lammps-gui/icons/move-recenter.png new file mode 100644 index 0000000000000000000000000000000000000000..6de5429306f0b97052c3101112de8b37208da068 GIT binary patch literal 3988 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 Zo~P=+=el{dw2y)SLp@X73T>y@{{pp4Kkxtm literal 0 HcmV?d00001 diff --git a/tools/lammps-gui/imageviewer.cpp b/tools/lammps-gui/imageviewer.cpp index 388f4251ae..012a8681a5 100644 --- a/tools/lammps-gui/imageviewer.cpp +++ b/tools/lammps-gui/imageviewer.cpp @@ -152,6 +152,7 @@ ImageViewer::ImageViewer(const QString &fileName, LammpsWrapper *_lammps, QWidge vdwfactor = 0.5; auto pix = QPixmap(":/icons/emblem-photos.png"); + xcenter = ycenter = zcenter = 0.5; auto *renderstatus = new QLabel(QString()); renderstatus->setPixmap(pix.scaled(22, 22, Qt::KeepAspectRatio)); @@ -211,6 +212,8 @@ ImageViewer::ImageViewer(const QString &fileName, LammpsWrapper *_lammps, QWidge rotup->setToolTip("Rotate up by 15 degrees"); auto *rotdown = new QPushButton(QIcon(":/icons/gtk-go-down.png"), ""); rotdown->setToolTip("Rotate down by 15 degrees"); + auto *recenter = new QPushButton(QIcon(":/icons/move-recenter.png"), ""); + recenter->setToolTip("Recenter on group"); auto *reset = new QPushButton(QIcon(":/icons/gtk-zoom-fit.png"), ""); reset->setToolTip("Reset view to defaults"); auto *combo = new QComboBox; @@ -245,6 +248,7 @@ ImageViewer::ImageViewer(const QString &fileName, LammpsWrapper *_lammps, QWidge menuLayout->addWidget(rotright); menuLayout->addWidget(rotup); menuLayout->addWidget(rotdown); + menuLayout->addWidget(recenter); menuLayout->addWidget(reset); menuLayout->addWidget(new QLabel(" Group: ")); menuLayout->addWidget(combo); @@ -260,6 +264,7 @@ ImageViewer::ImageViewer(const QString &fileName, LammpsWrapper *_lammps, QWidge connect(rotright, &QPushButton::released, this, &ImageViewer::do_rot_right); connect(rotup, &QPushButton::released, this, &ImageViewer::do_rot_up); connect(rotdown, &QPushButton::released, this, &ImageViewer::do_rot_down); + connect(recenter, &QPushButton::released, this, &ImageViewer::do_recenter); connect(reset, &QPushButton::released, this, &ImageViewer::reset_view); connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(change_group(int))); @@ -301,6 +306,7 @@ void ImageViewer::reset_view() showaxes = settings.value("axes", false).toBool(); usessao = settings.value("ssao", false).toBool(); antialias = settings.value("antialias", false).toBool(); + xcenter = ycenter = zcenter = 0.5; settings.endGroup(); // reset state of checkable push buttons and combo box (if accessible) @@ -421,6 +427,24 @@ void ImageViewer::do_rot_up() createImage(); } +void ImageViewer::do_recenter() +{ + QString commands = QString("variable LAMMPSGUI_CX delete\n" + "variable LAMMPSGUI_CY delete\n" + "variable LAMMPSGUI_CZ delete\n" + "variable LAMMPSGUI_CX equal (xcm(%1,x)-xlo)/lx\n" + "variable LAMMPSGUI_CY equal (xcm(%1,y)-ylo)/ly\n" + "variable LAMMPSGUI_CZ equal (xcm(%1,z)-zlo)/lz\n").arg(group); + lammps->commands_string(commands.toLocal8Bit()); + xcenter = lammps->extract_variable("LAMMPSGUI_CX"); + ycenter = lammps->extract_variable("LAMMPSGUI_CZ"); + zcenter = lammps->extract_variable("LAMMPSGUI_CZ"); + lammps->commands_string("variable LAMMPSGUI_CX delete\n" + "variable LAMMPSGUI_CY delete\n" + "variable LAMMPSGUI_CZ delete\n"); + createImage(); +} + void ImageViewer::cmd_to_clipboard() { auto words = last_dump_cmd.split(" "); @@ -534,6 +558,7 @@ void ImageViewer::createImage() else dumpcmd += " axes no 0.0 0.0"; + dumpcmd += QString(" center s %1 %2 %3").arg(xcenter).arg(ycenter).arg(zcenter); dumpcmd += " modify boxcolor " + settings.value("boxcolor", "yellow").toString(); dumpcmd += " backcolor " + settings.value("background", "black").toString(); if (useelements) dumpcmd += blank + elements + blank + adiams + blank; diff --git a/tools/lammps-gui/imageviewer.h b/tools/lammps-gui/imageviewer.h index 9612a0e5d9..f9b935640e 100644 --- a/tools/lammps-gui/imageviewer.h +++ b/tools/lammps-gui/imageviewer.h @@ -55,6 +55,7 @@ private slots: void do_rot_right(); void do_rot_up(); void do_rot_down(); + void do_recenter(); void cmd_to_clipboard(); void change_group(int); @@ -90,6 +91,7 @@ private: int xsize, ysize; int hrot, vrot; double zoom, vdwfactor; + double xcenter, ycenter, zcenter; bool showbox, showaxes, antialias, usessao, useelements, usediameter, usesigma; }; #endif diff --git a/tools/lammps-gui/lammpsgui.qrc b/tools/lammps-gui/lammpsgui.qrc index fa09b6426b..eb7c1fbc19 100644 --- a/tools/lammps-gui/lammpsgui.qrc +++ b/tools/lammps-gui/lammpsgui.qrc @@ -45,6 +45,7 @@ icons/image-x-generic.png icons/media-playback-start-2.png icons/media-playlist-repeat.png + icons/move-recenter.png icons/object-rotate-left.png icons/object-rotate-right.png icons/ovito.png From 4d8e03e2aea1087c21b3265653fcb5d191c53ee9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 00:16:31 -0400 Subject: [PATCH 122/169] document recenter option --- doc/src/Howto_lammps_gui.rst | 19 ++++++++++--------- doc/src/JPG/lammps-gui-image.png | Bin 146813 -> 148489 bytes 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/doc/src/Howto_lammps_gui.rst b/doc/src/Howto_lammps_gui.rst index fef2fff434..127c682d4f 100644 --- a/doc/src/Howto_lammps_gui.rst +++ b/doc/src/Howto_lammps_gui.rst @@ -411,15 +411,16 @@ actual image size, high-quality (SSAO) rendering, anti-aliasing, view style, display of box or axes, zoom factor. The view of the system can be rotated horizontally and vertically. It is also possible to only display the atoms within a group defined in the input script (default is -"all"). After each change, the image is rendered again and the display -updated. The small palette icon on the top left is colored while LAMMPS -is running to render the new image; it is grayed out when LAMMPS is -finished. When there are many atoms to render and high quality images -with anti-aliasing are requested, re-rendering may take several seconds. -From the ``File`` menu of the image window, the current image can be -saved to a file (keyboard shortcut `Ctrl-S`) or copied to the clipboard -(keyboard shortcut `Ctrl-C`) for pasting the image into another -application. +"all"). The image can also be re-centered on the center of mass of the +selected group. After each change, the image is rendered again and the +display updated. The small palette icon on the top left is colored +while LAMMPS is running to render the new image; it is grayed out when +LAMMPS is finished. When there are many atoms to render and high +quality images with anti-aliasing are requested, re-rendering may take +several seconds. From the ``File`` menu of the image window, the +current image can be saved to a file (keyboard shortcut `Ctrl-S`) or +copied to the clipboard (keyboard shortcut `Ctrl-C`) for pasting the +image into another application. .. versionadded:: 1.6 diff --git a/doc/src/JPG/lammps-gui-image.png b/doc/src/JPG/lammps-gui-image.png index fb3fe609e0324a1c49189e2f07b249932956b12c..48b9fd1ce379a18351f166db769d890d3a584b7e 100644 GIT binary patch literal 148489 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

  • n1e-&lAjR78b_ z=ec9WO|J78P|M@S%Tyd&ydCR0Hcy0yYsEaDk$2xPX!67K|RE|Nc}Cniv8H{J;RgyuvsH_YK>vv z>-NXBp7(m!&Hy#aG9r3p{5~GV{QFRr0x9J68vQ$1r(bL(Y6MbsO-(a)JVE^Buo6^A z@fS&sq4nD{xkoS-3^MJ{B9tYa=MD`v4sw`F?zpUQQH5H(n!U>%s2#ur6Gt;Z7p54C zddwNUKS|g$y@*P|kqwbh3b^}0i0rkO-<74`H*h6;2C4&jxgr%6O6iks--l&=W#Jzr zT?PRueNpVr8kqVR>WlM9YweqKHHICiNP)ArK$mgSBQ<)Fg@3T*@SuG$oIKZgJEM89 zDgL2f9fXD(X}h3vE0j|sj<*~lw<%`tH+NMXZu=fTqPpzzMCS9aWCmtZXny*^HQ zfySL{uFsXUH-*v))qB8qf=p^7F9_42X!-?EIHn|Ina~kP&I5z{`JGrs=D$5SE!^q= zJI*1?vjtG&U#~s>w-DL?EyP64t4SXfgu8yDwB{M%l+6E-!tfnZ zIaYcH^`_QN=`cJ2P$IYILC-V%r9|Xm4@u-k?0YsoVI6x&0*q3$=nY$H#k(rdHC%7w zcJ}UhvE}L9st=c4K!v4 z#Sv2qPk4@%uKDOqYzqy#70I-%OJG+VG8Db%=A03_RP{K{VpW(sI5Qg~lLtJKTO3)zUD(%pWYKA7EDHWMQ!b`ZFg$@yLio{Ii$bl|D+%X4S)!iAa&E{^)dZvv9KIo&l-^#dupv>#@W9qo`8z1x??o*P!EF+!*&NrI4&4m`$QZu9kAOuM&`V07Tcs@#f~4{$>0xpf{XI6b z)G1^-%3Kd(@8u!+VO+UnH`HK5g`a-~JsMTI%Dr(YM#{1DTgRP8vVUCns0^*{C=XqH_bO znoL+?JlK4_RyPs!^+8Be5@CFl+J-L-CeJ>(ZOJ-+`Xp=n;P9mFT+RQseJ;0b#%9@` z(DTg_`4UNOOZS)V_SeZGlZuMTIL9R3P>^<%Q6b$_-+2-z7XKEq66CXr)+lL9KA7{L zL=Ci9!gp0PFiq0#j*!?qagWIW*#boO&cD8s#*wDRcDZ*_EwiJ=zk|Jy%XQy~090%Z z8=8wmoGWzJFS8lHgC7-nhav+x?saohmJs_zLj%{JE$Tq{ee%#`{ysL>?#GhqBiY-l zc|eQMKTrUDuz?V?%v83Qr%Xhf-&K-&{ijJU{I}KHtX}aIP401lqhkPKZQq)gCr}tjLJ81+^pQh@NnE!Ji+0frl^-Ii|@5%4p#_u^RgP)w)SG zpLlKikk?o1fc3$sgcD--so=SrBKce+qtbgKH)n+Gm&=to3E1?L2XO3w;qtThJ*dcF z$ScjxpQDV3gtnog7FO8b)#U!G@-ja!KY#1DZ=tk>QUE*zo(HS|F$|~RSbWS+2pOB) zpS*Kmt|Y~xi)_hYU)nYN`3~%5cdi~mYc`lE$s5ejrJpLk>VEqg`Ug=@_ha(l+e;Pc z1N`5?nSHeO5GLm2vC&u%SmS-DySb}oAT-=D)W2mS_!dR~;Owje9kHnK+Qw(O^EA+J zD}T-eGq}7dL25j=GS`01&2|D93;lG1B}mwFu+9Ks zwWnv#=i=S-xrj~^9j=QBmu&u}2W`*Qj&?~8B;EWw-)?Q?*Sjs;H^HfCDrS>KwKjXK zi)P82MIcz;-DTiRGtYVFFyo$PtgYoH1rj3r-OS?RoJ{;vjv`Cknfu6xC+5$G!^(d!ie(w%@XZf0%2 z#$dB#Bixl@TRJOKE(d0(TYX0Vt$;uqpp%nRarHWJuZAR-PIo##TDLD-aL#oy5oVO1 z-2h4lU@Wc5gpLDE-+8?p+=uAs2xM_O-C>n%{x=@CTqvQ@<;HBmm#7+W{dEnTY)Uq{ zN$Q)MkLTtmK4nc6(~6JVskWx3KafP`?V6w83y++se)QD9tnkR!@HoF-Z8V#F{0N3y zEAc5VdS^&4F4jnn->z$R>ZsxW^?U&4clOff=U4K%85(}-Bh|HXB1RA*eZm1`H3kO3 zT*ystXI@FEsUp)s7l(?LjIo)P;VKC`u4AP8_?z3?7wvfJF3}JKGf}8e&RN|d=_#j} z)a~ec&Z8gg?VsbPPiQ4XE1T$8ze2F>IZ*XcA6{z3FRl^PUv$G|S5Yw4n0WW;GxPTC>d#n;qa42Vas2WboA2MEb>MH5kb|Xb!z+P1h>Z=@pqwkm z+VRTf9*V8Ye(iv5A0~X6FI@;5q9v*i>UEmqcmIh%jc30Eb1@@Pqo`S3u29P*0{l7t zbL$>lJn|6&iGhxrXeZCf{7)Ey?>M|5jZ&!rbii)-d6>jK4SceH1&H8$5obzRQ2)j1 z%0Rcs7zIpn*Fo?Hpdb495yMfvqrA6b=P2w6d}DbV+)1pSC`q2cl1B}{m@1iI#G#-( z88>Wr$j4qLz_NproXXZ(pi54!1xA^ko&ri!hBfpuYI5u8T-5A|8=#Ay6+uTVZu}K9 z{QuE()lpGCU!QJ}Qt57x?(PQZloDA=6j+h&Mv(6A4uM6wr9m15=?+N|rF>`ozCZr) z91lnL*_mhN-uo$B>hJDyym3=gQ-CK;ftLKx1V2st@1x=MINtBB=GEHVyf+VX@GTh2 zuaTOP0vat~C6rMDFm)AM7W|zE@-&wnSAj#ll)CyD{ITBLw6sOweYCjPO`Of30-h`E zb-j&@{YWRN`LtU%R9a#6wIHxFYieov(`i0L4%+`Ara~Li$6Z-b8Lpo=sR5a=W@cv9a}FTM00?411WnI) z0u$tWQfMe@_0`U3Dl54hIaZs>E>WI;)4@2iXQ6JO5bzQd2Bu|;i$=8z^u^z=hv2ot z^}pId-tPR;VA1_fyWcyIV-$2M3kwSXsuRoBOtB$Je=dU0eECk4QbbDWJNjdSz#aq2k25mP+o5N~v$ztzu`uIqC{TdH^?@9=YqZ2B;^uM#S(wQl#m3J6G1x#6->9ks0f;gJ9)1fb{Dt`7Z+gcc*PYiLz+8!olQUr@o}61x>`Z9Jna=uj)hdg?(^8w5`erhm%4?r? zVv$iUj;$GfbVk6}^J#tbkr0nsJGl;li&$Xe682M0V9gvI9lh6NHFx8vWp z#grR220$0t%^!D+!dFllUI9h;p~kPim0P?#jdI>E) z`lSH85Z{Turs3`+Bc%6H=jBY9YA<52)Uilnz#K-{s`;k4E+~dMZ&LQlQ@So92KUrA zcDtR!6lTK1^C{Vea`@=gTqpRaexF%&8m8EcJ^wvhDrr+aet8GFHISK7Kks*$xwg$+ zZ0h+eAkWSDa26hsF181(a$~6^mJZ%60ZQviisDm0etQkiuW#SN-%ztC_=*x#;rOhf z`Qzq9wH98Z+rb9~;0FhgUvP1)igOPvd${R{+dQhPmg}awK&Qk`i+`~M-r&2tc39Jt z9jLm&x+)gZsvtS^1JY$Z2gsuUZ2--9m)NKF_N+Y-PU0#`BkaLa%^AImKucV6&Vj-} zng)8L)~S(DA0e}gx(NOY0rN6+U? zK4X9)rdNj~V2De2(UjX_)FhRFge~E{`GtkG z9X762Y=OrQ%)*jOi_49jP4M~sGi~D!R5R?@b9u*cY zn>a4wHtSLUR$-AaF*nc2&JLXje}~E?Pe&z1KpON~G+rl&U?XE)7%=R~Em7B_ilh_R zFP2oL_-h^Dmo>cJ490jSFR%I(QK`7d0K^&0Zk})VTZXqQ88~md+&@S%Y_5JR2FC3DSrix2{}2)0GbD}iam;xBr=Pr ziTvFt+eLQ=xefuM8?&VU7B&;1Bk9<4&;OCJ0(|=T(pXfA0 zS+kbY+R~4~aQ`u|1_eXhKyM>Faa5je!Lji?^Tjy6SHX-vulsUAb=@(3^o|$simQ;(L~68{bFFoT^Tm!pYevAMf*z5CSSmLWM)5 z?dXA48&KSs%a*=oiz(p}`eJNtZPC-y2l}ayC8aNbfsXUVwu;@D^5ZiiIW-ppj37%i zXdL-7H(f%|NIt>lH~L+^v&d*318V2%Ey%y&$=rWDpHP98wZQdjKH7DehOa$fm2d%d zDGmKgE5(%%QnmJT=tfq#152AW&*(*ViTUv(2ZDZ9=^wzNQY`zU4hUPyb(^rlA$T5e zJ~#V!XqGR48I1`@%Ynt|j%Pt)fVP4jY2c-D3&Asdz)y};%yMKvC;jA4H^>>-@!H7= z7!-8X{wwr1-~4On(9aM>xD-xpMJ9b?2m5y-yb2%9)3d-gjj82t!g@!S0+Y=B1&H@;I9(_PkAzVd$x0$*2z5Tt@_Il67 z*#=1?1^oS{1N&Jfgs8>-Ud5qeY4Vm7yx%7TuZ)|(-3j#J5)vy1?=Hlj&+vnAKO&?n zyl3dH)03qFkwwbUidHLskEggVz8T%00^Ld9}e2 zurUByywX&fQQn^@lMFqkqtE*jOC3dqB=YX1f8h#`mM#By$o)HGZaiECV`qnDXV1xn zzgJY;^k;-$HE;egv;y?7g8#<_2tN9tgV%(-OY==uzFz|Mm7ztak0-b&?d(`IW=yIF z6x?TLvflMKi;}*iVNTyn^Qc%j0#4GJrHKr~lau%jW0SRUs}_#W!qPW?zf+z;=;oD( z(1=rU+Gie{m;hQwl4lM;g0Vba&!M4|YE_qd^!cUHY zTMdDL&$;>XPh##q_`vg_IwK@IFKS>5qW(wEB*d0Qo%2+3-QipFzxIegW-U)j=$SLe zZ{a1D%~i#mJ=JnxL+MBd31udaUwFsj7^C$rUqi;CR$wVtQ0uPDO>64Fa*6|7&kB;g^!u z@6O!ml)6*-SwKgjh*6Ydg@LBp0hD~?WMsVodYV|h+tg_&L2lOow}&HXRipN*iX3ts z=HcOKo=zgv4*`Cn))MmrJNz2gcT7orv{YO8DJV^p%)+tC$R9bt2dh3R{lg@wi3YDLGIXLQc$ zM2*iCwAUTr#NO|f|4!=lH38g+jKGLn0&X^s(>$2n0Bqh!e1H*3}2zM zYp#^OAdttwASllRsYj0Y@dkJhivChe8vZb^~aK%9X%O26Pi_qhP9y z=8O50D6MDgwSa2QHcjD&r!#Z<4J{(a9ZmDXd*F)~x5&(BH75ulcPM61Icq^mCg7y8 zUN71J0E%!vNWIGc-Mct%fdU*_!2bIxehF85gI$d#G4(2lZ@}&S1YjbIBznpE(cC6H&}SVG`@mIKiT|qg(_`t!L?b`Jcm&K~*opyp7v;wc2(4DN z6*;hT96dfRn)nkM`U1c(N8fX5$_WPmk_)i~XoB~Y8?kU`D0owKns8W7!gy&zqM4|HCixZCzCsqiwSpMSH1N#DNbZ(+9JFhDivyD!I3R}3x#flwvpwYt2- z0Uxdxb5VtG`!R&1Ly)k(bBu!a4zyYfDm5=!rX65)oD-f^6pbVIJKkn3u3x*+8lH|pKkoQno`WCm}N(o^#HMDsweIWR_IG_VX z&iedZrl#&IKnVBu?K;f;Q?G5nqfIGMOSqpV{Ky*P zi20ry=Z$_U^})9hQuCj^NqEMf66BiuQ*M9_#2bRv6D0nj^%)_m5H1?6i$LjB8leN; z)p`Ybo4#LLrcHEH%pKqUxcU8CHs{nNbGkZE5sQAq*{4KhJp_~WRe?6S*p`Eqe&~lV zTIF#F6s&=V$8TGmP|ywk9jU#;+7%8o7#_poX3657NH0Y<6-2y@LrmP>9{?B^sYl=h z%3w9p7s}dLjX(A>_~k6=Tu#1?2;*Qo7XO+J1p$CHH3hs(W*bOSGm|&S>t`*N>du;; zwb|^|8jZieGM$n(i1N6sij=ysg_msxGpOhgqekO;=<03gDXR3++%ivB20UU!H5|)h ziF#>m-RJFJNvjOP2jT2dYR_!~4|0ST>~&o2lo19QC5?_-cOMG6ANL)QT5}I$0f6Ja zpXfPYhW;r|HTSCRd2a%1?7FE@sEjU_Ls?yj%I{(EFWFrQAEFyLy}2OSCjVo!u8$Y?63QGT97mJUu+hr<_-7 zad4~o$zB%?;R^{8HPgl{m>dBnBsd*_A1}JCq@?5ndDl64VPT<-G2LIhr=*vr8^X17 z4#G^FlCi_yAxAh4frgAK2{xo6iy)o>ymF4U9q;$LUceud=3g_lf8TU{#fWOK()gjszaSnRv5;X&`Ghm z@}lGmD#Fa~vPbxS?36aO1eo5a>3N*IZ!4Fcp`N)Su0`M6=$n#ZqBy0FTIyN*MQvj{%~?~WOCA>@RJBXN|%6wYU?8(agCV* z7VvWOiiwTJ0;il`AUf(uPEIZlrP=_SzVwU(19^$;r+-5}qHGXl8g=-GVc_HoF3U@C zuBexQCS_;0KPdI!@_E^}w$l;*^ceqcZI3DGxEakWzm?#$W(pSz>wl4R_1?$OV(k#?p@31U0|5wj>1BW9&*+dJ-WXyrC zSEh7D{VD34<}I)1X#c$W)c98zPuo1xZxRzI4-xgLAU@n zAK#1}KirP{y5(!J{nDGy+WUnirL3f}+{ZyCOg;|n_6ZC>-e)2``>soYa{AF)kSwNv ztuA5%$`%5O{64iVOc1gnwtEQ?Sb5G(lR*Xgz`!eu5$Lv)b&jF2qE)c zUNT%)elQ;U`pOX#1Q zs9u|9WB>tu2V_KlJb85nHB&XU_hkEn>h%e86I-*{8A>o zsepG!n;=p*9wgJ)tg&thc=OG!J0qRePVjZUfw!IObaqd_N8#+d`v}r)QVouc;XFfe z{Uzlv4zlKex%vr5=?AnKP11pAb3{i2e6#~-UM`~b^R^XEn2<1-@2;b$E29)daII zJS-ZXd=Frd@vhBMijY74$3hG_6Z^;#9E31D_+rDmzIu;GGeB6S(qZ z1_vvP3!5Z;*jGu&OHsIw+BDKZB}7v{3n5dA`gm57uxwWy9)?F^Et=h=Q_eGgiw#sm z_gofTlAqc#jVq&FOl<8lj4GoKymE~)jU8iHJH8e_Y9lLu6?1M=p3SHFr+#*|k1=m* zQftI+MQ#E0Z~l}CyTII=M`rEK9_!s#2lnPEe(ZcUh8DL=3qUHw*|)`g_H!rI0`dW2 zJh6Z!$Lp{hh*RMH@d7eEBsJVM?>{dmx8Ua4W@|F1u?UEYlBvjo_Nnc^sbYF^$=eii zm0kR~&ji5o@K4G^=78`wu6GN)Oi5 z>0{l<^?r;h&J$n|P*YWfLba3kWh2XxpDByI{o3Xm>*%Fwi%79#T|Mv0K^g;VbI z>eLU0KexmH&U%^8rRGGO3N8?%K0FF+o$sV)>ud3xjzrU(V|DK2Srpx zA!r+dCQo7w8cixH&|98<72<`v#lR8n?tG~ie+)=59w>7`88fI|Ifq~U<%Y_V05}YA zUWpUqeR|LAZ+VpG??FHxE)pKjcPoNJOztDX90FM9E7S8!@$vBnm5%|9&g4!moQiF9 z+S`!Wbiz#PMM_s=XAOQ?76Y3~5|5dqMn=kNsqt=%%lz&D!+dYsakA>9y7PocDs9=f z7Gi28N7EEVN5hn29c4W&)yKf3LZ`T0$7#>i`UMPQqkTbD9C`Vy`j^Gf%s za@Kn+wJoqtcEqW7@kirTzgv9#n|kz}h8(nD$~xBRqd4fVcz=2sKKj|()!6cFW{D(` zDN>a%o8gM%a=wD0oH6o~pqj2zwBP{QR8+4;^Mq>ucX)LOqwIUh4Q0>SbCj0^c9 znmFa0FI_pQ*j>hwu7BNe>U+8jl7WD18?{1O_KS?ZOgJJ6axH8g-0vi{PY4LkC;s*I z_;HAT8+M=m`FGgogmPekj0X$v(;oRF~20`!7Kfd^! zvSr};GJ#zA0}?d_B_&AF?tgH_V)FyZM0|06l*NLDt@qX zXvYJKFJ9Km_fp%=m6Cm{){0tX$!{JJ2!} zu>R@}MD8id1Kwt%DkTV1@i)}vdK+&T&=wQN5r@p`_$NZ4?I9u-t_4z6jYV{pPqUto zy^~suD4QF|)}8pHxpz22PLB3-z$BZ2Qw7U9%n_C|4-;RoU(&8fu~{MkHit{Sw-DychH_4c zE-ZnK;J*62s^&zHjQ2^5;a5X?gRi+#Qha=Ur1dW@1{*-?k;|(zN}(M82XHL@iS<3U zCJ74JMOGg})L;LyE&k7A%@mFVAcodZ1mEeeeb+hb)gd{iAaJojkh``gz+;M1-3nwt z4ooLeN1(*i`^zB|+$a$BL0IfD_HrW^dJ=+_!!#Qp6MSASe&c6t9W3&4Iz_AY`D2A| z2QPdfTN%J)cq?XVz942jvB=h`!vL!Ca)!UbfH6{o(5ZSx6xO6SLRR>xsz%SD`rMor z)-7U4T-FJ@e&W;Ztv^M+C$ULPSlkMva;!ibgmtQGeW>br3Y0?D4y#Yw+8Qn|Q}=cm zHsa+V*-((mIZciLVPwAr%=&X(aFt1KzN$8R@#5~#uz!?|sZUq`?-lw{A8qC;nw zcqR+siqm$^CWj!;-%KY0&Q?ar5d4%U4npkaXB$ey9D5|3I6U02@@8*);7@shv&zfr zx#Y(^#-?8{Kh9HD>pB9=Xoi0rnw6=mYMN=hd~$WD@-kUxwX$As)zMn#^n>}MK*xbJ zPRJLwVz9!@bxhv1$!s0hpk&~y?wAjqFXvfp(Q&MFtAOdV&4~&rel|%27)fH{9nH3O zBQYqkD8)VE-eLG4e8etd(uI9-e7vn)WFOV%_xE-U#76mF3^N0_vt9@i-p*Sz4)#1N z(A5y!(ivz10-FkEAB__aH)G#3kNYn)PS zuNuso)61><93eSbp^gl>wH^P=FS|5c^o z2=gk;ujd$sChkdUxTU0Wpgq$0t`bg$gbOz_Oe0sn@6fx4b+%{J-9c|ZlX z`G8V<)(wb6w8p%enwldy2u~^wRN~A~%Q-e1j5@+Z(kSRPX2id0uP~`3l(0sv@M|=1 zjMn4W(v?!3|4f5O2PQ@nAT-V!3!0>yynvEQqF7gdGGLDUJkJmbHoi*A9-Bs@xR7zl zv>s#R@MSMab_vsHz1NDdV}rVFx~gtw$%x5YC*U1PV&jw#t2Zz{ia8(f0LxwuGY54( zqk z9DiS|mKs&S5+y50RA$_33KUz{r$?j!2mJg`3>^FlweyrY6X%{QQdf)qgiD#RRfkPu z=HS5IICIklADP3t;RMBKA8>ywJ&(WMQ2j*U3QR(Ud>8-vkHAawSltMF_j)FUhL6-E zY+8Uv@cpm;f#sPmc!w`-aIm}*O9VAEQW%YQ6N@SZ>;gb^lsQ-RoN>ymgMIZppJH)& zEwL*2@5Gj#^UmAql8lrxCQa-;vCS!0^`I8PfvgJ1~R2$6cb zJ8NUZ>KM6&fT}dd+#!bHIn7R7R-g^fFA7qTl^^e^9LzXjzXpV>Kb5_ynwvjl;87_^ z=r_)MmEJJVtWrG%-v5R%h_Su8VL8L-S*0eSjZ=nA4IQ~kg76ulHSvDnaWM(O>?E1vTKafvlBXrJ$TEZ)7%*xRbTVEJktHyRz z6AAlWBXK>)7GBvgYsU2|0G5dBjZ>!L0#+vF0)8s6eXQ$&K~)|PQ8YsnqH`BLmRXZc zDjPM~yz;6vre_&2+pwI;()fR{?!+9h+Q9qddJ_%iNIpg8NDW>64te9uV*7GpAB=TO z26Y;=NRUjde}x`b9FVJ6K1))aq(5Rn#?XfstYc7Ke&y!F!V23QEMk_a2>Y#@5Vg*! zwuH~X&a47ryWaydD}JIO9hUbmQ^Dkru7KL5RlA=?R*?}Ugf{I>|Df41v;6nBzy;(> zfuu5$>Q^v0J_g^7jw;|DQh`XfxG$rY0!A1NMABwz{?C|iMom)6t@K1~jOUN8(y$e) zv6;PP^X2n>5*X5w8(Uh2u@=2^ZFEgy#lQbSH2fwpA*k{?!4khhg)og)+)g@S8)7rd-bX*Ibhjqhdx>uC$lV`r+*qr7T_wcw&g9#+x)K>?8>C-136@>ym_$($HKAQ-T9iUNG&AWZytS<`%IO<1$_<|AVsCF7lKb%hf)WSzQ!+3+G zZXS4A==9K*W|j4c+`nU<$xtsA!#2o5Na-d;39|%Ytx&ftwXI`Wt#={xdNQMrqHFFf z-ZoB~kOoWW$QO}r!J1T%4hRo#8B`i!Dj9Tk-`H#t8DIt?rPVOtXZ4}}H7J8X`a&cR z%S}GPg$eUtDeu!I`n}}r@EX`JzsibQhBnWqUp}z7Y@bJq^O1goo{tH0AA2052vbiW zUI$jDwPVZVbNpaXy zcSBuk@=prMUQ#qzbNX-1+Kf7KJ90h@SqfrVDce)@#zBc?%rgAHU_g;%UJCAet{2i| zJeJ2t9V3d+1fqtXZw-1i8Q#`=oV5$*6*t&jXV}0(rE7n?S}=Y~LMdemC_7*Ppa)-g3e2|9$q0aMC|C>^fBe|OSw(|hJ?C=$D`5;C`)R!YW{$9FORAn0SE6u-l z{D-%zqqBFIG-jpdX|0>Zf-G&=y$S*|2aR|#WU*^$n(kls@znk_Fv`-g@nZF)De(l6 z0CWN)1c8p=$p*gS7*a7&Lx^;ROo)E zGZb~aLvffabH93;;f){DD>iVap`Jo1#divk=|CFem|^DyaKZH~p5VPuK@twD;C%LM z!%#e3y=2B7!^+ln56*^!8w}(=fP|ahAa)movULCnZS&XG-~xa=ZiLz~z==Oa3Y`A{19Xq6z+rYDND4Dp(;0(g+` zN^hozA(Zk;V0O-U#~d<9i%tFF)N6yvt?&n z6!UD|gcHKGoZh|#LFhYU>3l%x=>HSohal{{)#!)rgR~$&KL>C>vNIAMiy_$MbZ@q| zny8tabPlQO=)i5Oi@@m%Kz%py2i}$fGL;7qi+*19!fpz&B4J95+$(;W7BJV;M(~0x zM9s(Sh!0&qh9@YhDCwp%+<;2zr5862^81;4sx!SkG6VqcZg+-~bmg&;&$LmnaGM^8 zmrR=l#QZH1C5WV(#6w;5iGR*k0D1jHJ}p8YIw2FHlR+A)AFuIBOM<7+kE2|cqhFqq zPfu=GJtA79{00Z{_~o0UmrN?Mo;?fIa_%{B3fwPTG#33>O<+!cIA@kHT|(lkYW7{szlS zk}#!Ms=0zfE0Q>YpW|=+EQoe#)Cl273Vp^vY?U)c&?J z<5iU~6z42`JC{M+?*aOYLlWJ)dcfTTsokewio80=Dj;{3xj@jkni%8$xU2cxL!2ts z5af~nV`c+#HkcM%0Yqc6SCNp6jLZ*h3A_m#-RNJ(+~~CgmKTBth4?8HzIXZm?T;i{ zT)8fru_7_|+(`z9&6V#XciyIyaI3Qzho4jdXdY(-Nyv5NGuv{5|2d{1{e)5rr- zEa#5I`!9_)bkZ)_gB8TRe~ob&u5gQq;4JSm$*JQTc6{OMMYzX_&v3Izeh!h9hrD8{ zBmRI9UxC)3+3#wg&orGy&lC&E!@^Ou47)U$j_EF&jjnVOWc?iKm>!j;2>gKM00Vg zbn|qIov>xJqI8c*g0Z&4=$$EKg}l%E>hH#$LL?+#=PHi$)pL}-fQlXUimJoXq9s}v zI}#&(J*X;W!%p;$VCz>7+d9<19CQQgzih0dcirDpwY04#n#0OC-(?k75%OqTt}cEn zzejjr3W(Jxoe^5~=nF17bbNG+FO6{bbo;pGNc66g+aXPzsc;H|9@Wy?dh7MDu>*K! z4_f%5yI67YQu*jmLlembD9paMxj!QPbG6DxmbB(|RPDazYp6P9w050S9r?^3CAq-E zQImNKUAh#77r~1=ThnX>MS(~WOMtNqdUN#nti$^{OQGx`%b1^NI^EvrQ;^an!W0Kz zV+M&d83QB(N}Qin{@wIxVF|H}M})dtirA|Z9juBfvaul?svTp^O12VwX8|KmVn#Z? zGh{{`E_0T51rIMbdB023Rah9=QfyG(f=L0;>TGbHiG;0NhupBGQi+@f@gX)MZqbCy zl_W7GVqz?VwRM00K1ba1g4Lf45OkiP#xU@6a5lfhfR@4#%E$4^K8m_dfTLd6_vT#( z!GlcD^Ip|=6Tj9IQ7EjNeupmSqg1&j?cM7PCsx`?7a>#+hn@ted^VlbNqxg9pjMC3=CP-!s;E9`n{? zsvoG1VyUI@+=XQ|33T{Nc{9kFETh*c-=822nu_8ev-Eq2hqdB}TY>l|K(6*(`#ik^ zK#->e@gZTM!TPoil9uSP>9?le%VhiF2f*^Yj0S$v9#nf4i@m@j8zd=HGGk5>%iup+ zKrGNcI$RT7z_><^BuFWWV{7Ri-oxyCeU((?B}A!OB<6lHma+n2^&RHO;EB&3a+kGa zt%Ux@Dq2M7=ODh69#j_@teHvT#mMKV1d+%^8mJXoztA%Kh!NuS9EOquyH+ISv%+pwj)>>tMtn(-Znjm3*g~Qyva^qRWj-uaTjm;fa*2G*r zC$on$tMGFpV`C9e{j9XPTZ|0WgEFQe8XV$J2rj*$;hf^%i$R$uhYSQ7_kaVJ!+9v+ zkVbX<vNt9&h~FRWs_835Fx)rECbCp+-E)vn5N-@S!EZr~S z4oM*dzb4l#C(_`cI=rK3tgp|bPNRiX&@En8pzdz@9gwOQZoU8o1^G${J zRnQ6S?AYjO0Ee8d>&?rMB|mN^};=#Ee3|t1ro}s;+dzcjn+K88T*YSp z_AN}yA0I>gFt$h(1hzRu(0B9L#)?$sLHr3J4&HH=z@BAFIBkWAs*JuKt1Z$wH~pNs zKpCA7=C=HJqh7VK3sb<)u^gT!Ct7kHLs{!x1ROj1Zh*>?daC8LVaTV1nZ+&s*13{n zl#{>r?PQ{pi<5-PSw6mBDY$EVK{;-M2n9%141A68pdVjJHk-PqaSJDby)7=ko$bB~ z3OlU%^9n2_-uFqM1+|Vwb^h^+x5tmqRdDLt@k`oN<{sEFW+^z&>eh*olJcm?0xZ{~ zD^{Cbwm`s_M;L4N;VoCD4V?|1{A)qW%1-(VtKKp0JXI0$`JX%{s#8bp@b3*5Nik^%1A?P8KLq(kyF#;rWqGxUElOA$7rzu=}x+c^wcA z9Wqpd`aB<;VhSPQWaBnCR8NS<1sEDN>ch~260ZP84%k<0WRu+}G!kSnihwz2Vr(3^ zOfnPJd7AItBaZk%^E3OpB#&HK=IkK_)pGz+sN|u~9Q-_4X`}Z0o!=0VoqZayF7>v1 zX?d)DaZz=gGU{XL7Vs!AH8t#+}MB}AP>IaxtDBwY-`quZb?k0GD~%Yv$AfmeO! zwTL^0tUhHS?zp-dWo9{EolcSnlR8FuQq_(u=Bp=TKVLjVaMhxZjy{;2F#!ft5RM0` zK$+o!nThZJqxfh#?24)`i4tZWPGs;vzgCWbJz9fS4FbJpZWm;9b;JaUzOEw5VL! z${6f%zBy4}9Kum=+i9ow<*tU5tL>f`{sA|%SfJq6XO~by&*FE=oPUT44dZO2%0v?M z&nl!q5>0gI0^LTCu>C;Q{wPD(I2gv@&jAviOkP$ zI+c!|RAH0QTb_QihQ?JQhiPHk@3Mp_k#F?sok;;xg@6$Zp|#ZqMb*qPh@d4Z_Rhz2 z$pk}l7`p0qQ&@Vq5loOU0;7~Ty;vN%N0*Qma)-^>qCbw5f$y47fi0vp8JxxA zEd5-T`$#|0p*CZj5a}aUbv`eM5$X}kKiYKXYq;12QR{-mjh&t5ZDM#`Zk<1`D^;If zA!@{beva@4sRyw}pqI<#<6FxLZmL*v6;Ne4^CwK!?blsA^_)mw_b+*5$ScIpkAFBF zu@7>Hzykw)i`hcVp!I9E*uky)`+ES8AG{N#itQny(Ku**qj{pUY~FpnsUjt`@Bq?slZi#m(yVmjk)MbQgyNWE zJSa?2WB7Qebd96|urvo-h{#}8zGPH|q_p&2Mj6DNEx3l*cWV80pmG|N7R_J)<16w4 z8x-Vv*+M7YCy~OwOu?w&GO)xY;JFB6Qha+*2>>m!JpRAx3{;TQ<78<;2ws$zNp$H zd}al%ksN%s1*>W?>Dmba3U!c-bF^odsQlz8 zd=sQOk_1?lY4b9&GAXbMD>cBAifA*04o9fA4+jPx&AKCC+orMs38hG*#K^Nv6q z6ho=(?vXx}>?5cS22nTgkr7ORDZ*n2RqUY0TAZxdXX)$6Krt*lbc#Q&YvE`D`jz(G z-{T)xU?&*cXQ#LH^Ppdh`)_JsTkUOSE9F@7vYdh%ZbtKDq?EIB=w;Jh$bYd6%5!Lr*7a)7WF791kKAJfoAG3xC97Q4#JOuOc z$<)M_cZ*%jr(Wb*{gq6b;Kjk>*kd6C_X;JNz|l)$2yFtskwA#0`~Xg$8_S(cRE)`( zsJ=EV;pMg@ind1aD_kz7%9nNlWCCBr^D|748lIY)cj?m&9lRn;1F`fmgqVh=f7XlN zgp@s&375b;QF}iTV45)qCx%d}k|&>L*}*P`|G?8&!Nc;V zTbc)=dtDTDxmb&#$U5;r2eZ<}oDm^{-Vc8zlCy7Lr|9dW;O*KCh@j&L>E-t;c@Sjg zGtfrSa70GTs*gmayF}+A&U7QlB*iF#LPWUlCk9U!zqwZ zo}N}70_0iZ+vU}QMQ&TA^`K&HN0ZyV7oL@wetL`u4|6BidHbuz(o#~t{_JGfZr<@Poyd@kMv;mBx;8yV<&4vUz#zf46UIk zLoe}LUIX_$sTr+m@#ZsqbJW}%aa&b+6A0cTLqmmaxcMakn*L`+3MRCxovTdoQn8Fg z!at$wkMX`HU+_JAD65=zotU@*Z|Fzfe`S+%`Lhab@5je+ClTb&?d*PgBOXsg^mqc9 z?aHNo?YqAzk+*{%V`|KO?@roUjz0F(M}HA-A07MZKA&g|IgF@3?B>9DsxvO4R1hFv zn5FF+U5{{va-M@&RXr;AVF9~4#ggea`r|}4CNxYu6n&-<#=WF;jmO9#uTsv7`_vzs zo`rUH88I$pt4G*@t>YbEPH}K*B=MvyI68|tuVT}=$X-Gxt<8Xa)~l}X74wn`2Bui>C6G?uB9M%Y#Ke3 zh7fY>uq^iO$KF*f2=cassJL04q@nM|N9>G^B@qsm^-YF$(~=Yf#$op#p9Afr7Gt?F zHxXSwqg7aUv;RB#y!-LjT5fy%5bWXCEI2*uEG%3O?<0>suG?}iXR2!g2I`wPcztz^ zjUjHHlmueeRCFu*b^RC%qPE>m68OWmcy93uW-dQG@`fz&i z%y(wcM4I0&g1F>FZXu($RpB-q7jMl{vV`kL?E@a{QTn zxI;NVJ}BBroP+ zNwrnMUy_Kze;p;I=+)?6O@gY;?8C7Dzt8;nrBoMCMxKOIORlV~>8(6HNXut9taH6* zZ}ZV?>gPyPu!~6}g4SYbYf4M&l)q9WKW7O^_f8YxO>`JkhluReq!rR~%7(H2mexT< z<|&YQtmdCfwf>HKR6n`?aql{%!;3UbyhYO3$bHbvC{tG?OF`?Y+i9+!07XD{9#V!OP2d%C!qV>yGWtv%+@RO{sky`(U*II~PiceIH^>BQUr}L8@JUKWw++pRw3Tz4AOY_uv zT##S&AvirP-Wb2fU4{iK>zn8@M^Xk~)p5EVi;a_!w46;y*-RCd!DJ;>8f{WbpaE?u zh5~H5EP$uiVBv=*lO+ZWe~3ug@w)fLjxp|6u8Xs8Ed#B6L5#Dy>$9PXS9Y7urcGP@ ztE-V69UuCf^H0<5o`uBJj6x{!m}GC|4es~*9>v&k?MWG%lIux{dR|bUK&QbovF80N zlxrUx-)NB&ifi@jD~`v3i;BD1!{usIq1EkZBU{W2W0X#kXl^9N$ZQA; zzDD{u2foIqc23;E2%+(cUJm73S~>{p#Fjj9-MGcHb_a!1lqb>{=9iGkOx%i@0)Y$S zLL4YGA8T>g@ULx&{Pp}oIGR6Lf05j&{dwMgCsH zVCbcq_rbn8;LLhJoC4TIP|#>@XkW zZfsDPGL1lF`ympm6mvs&ORwrnz4A|`+FiEpYrL=fBdy%7bZ^hVDC4dczD*V6J8n|t zG#vE&lH`QIl+uWsLQGKdeRRZr@S_vH@a4~2xuILOJCPAIKlsx$^ub5})~oJlrwE}Z zV3p{XeWgXJe~p*N3;Q4-yIFK*7~p&RQ*h#$jvGDcUF7BYhNAv&Yo!Rx6%;G^Fl-PGgzW% z4)n)F33Ot{9Oh;8Z3KBnA@QECnqmXkb{A4oCU$+U9`33A?#`=YV%nR2@k%P;;^O+- z!Vhrgv=0)nr)JA!spMpmZ#}N&Z0K5@10xLHw$F6r5I&`s;m+Kph%gG#N4~Tyk(Uvm z-HjGWlab&mcGieQLb;bjr^$#9iK3?bXA(JyIn6kps{ET}lK`1S zraEW)1(tdrDA6-o`hM;7{a$X4TGHLhlEON6u7zP?UmxE%E=WFHN=bclqvO@Lp?i{EQD9SLI1V9-_uW;W zCE#f#j*?YO=fhAWU?ONRpxW6pp)bX9doFAIk(rO9F`KX1{oCoY^!x2uR$bqnWWyIo z+YCJ&h;)RqXBzh+>`)0GXLh6;B8T~n!LkZI0La{Q4(cJEeRg?+6}U%l#%#9mg=MUt z!b+K?4~2O4nO&aFK7G7!{m=BH>zgkYb>VXw9t%ug0CC)Qd=g!ss9vb51;0&5|*oup#(WxI&7 zwjmXbJjLmqh)y2dBkgIpAQ`G^2Ha&M&4y1~F7QKUq60mzjfLK1Bn2L^(Nf(sNia!U zdwsqC`bhllV!+Fj&C=^8U_j?U81}BEKt;Ia5ilQZHrbIS0j$kWz0=WgFJ9gmA3X|| zm?6jUG%B`{f=szHQFoEhb1WIqm zN9G(UV(h(OFk~poDXbQm@i0}|xV_xa$Zx;7C_O8@J7ddTGzjZqM$p;eJU$4B_&Eg} zsJMh8*k%Y=&t>m1V|eQzcbl9cYIBdxb}jbNehxbBbVd|p{aWSA5J5dJExznNvm{CA zIpaExf5kRqaxBY+}u&N4jDM z`5B?B-@N0Gyb&(1nTTN$^2i~$-{bYIfWPUVIgOJ}PBfO$zk?{}C4FaP*f*JcK}|~C zIYUh#EpZRKnQb^*^jZJL4bvM%V(8Q=N}sd3M^K>E6=+wEp}#+o-)Bk*6Ze*8P_FuI z?k_IMa=|c0Vgykl(blY+>8ZLrc(3!^^XAHDvE1u%BG)jeW5J;8vOS)s7iO;FZT{8m zb#G?)D8`)In7&J1AYaCPyRfWB88hETM!dz|thmDBSVF0#BZ)0h$;^o(i%j#&xKd2(0^+$JufSSD%liESD4Vm^?r7`KK>==BnBRzFZ^HQHo_LoNurE> za+9*57YgnwKLc>zujG1hp1yvljLft{<{(89zvN{2PO^}|dDu!_xEbkia7zrD6CF4y z6snF#ZH#gTZyNtdW;}-LzIM>5i!eS*XV%C91AL13zDTSG?_C^m6hC-1KyyoP8cNf z5gOSPGhRXBrkp68fr%K*)U}l=6V@3S#cnLCkx5`rF&5@KdMbPpmTby=9j0u@>2peQ2X(h5R5J#lq7whCdSv z{hG99P(eaW^*b-LX^)UgrmQ%wVEjyn{bnt`3yK5{Auzl6m=eKX_US<&I$&7RDE$uY zzPV{n4izDsv=3P?x%h)(yCmZhUz?0kik$&RPI4d#NOi$te%{0A6<5K`(D6t)Aq-NA zuR;}XA?BJp7TXz*N;1b3K?C=Jg*+w60s|*fSvJAxtr^6I#$Cfoma!-bV)8BQ<^N#; z7V1fPcE!B+%YdzgkCNQ^OU+j9-}R^P{+Ks_9pKzgx??|#=;oq&^yD?~mfNn(5B=Q8 z*bMZePW(?x@VvT@0duelzYi;}ILBg$&_o0qW4ZGEdKigj)c(h<8w+>R`*&5WIEEr? zAy1{rb;Tx_bV!j%L+DW!8e>0BRBg#(xMR)9JbHR)9z4x9O^A_BwTjy>)Q!@0Jt(|B zy?ZzD_*JFC6AtSu*20H}Cg@sDW3Igwp@`EAhf0s71Vcawee-Wga`=S`TuoxJPZ?KBG*#njEsNO%Y()wx^uhF zRu54;XiSOqrW`3+aZ~YlArx;R;h_v7wIPRvGydp&lapT&59$y-7-vj&1H8@c%@YM!R5Q&viAqv^zKD@D3E}U}Hzkkc`cmZQfzg@Izw|`N z=$&3j#n4t(aqnH|yZysyGJnh_Q28vL<4YkzAeo7ZdS98kklG`oeDC(R zSdK!~t#bd&TwneKE{5L^>)-hboeVtV4~?1=i{pqvzk@+u;>=xCBY$_ky{)$8Cl3)) zi-{yoHk5@=A+f*#saG`iQEpUjQ)eq?Q_to{3Y_P{o4>iC`Qj!2q2l+Glas2g1Z&-` zn6=s5b;C(oG4GF{ZkDhp4dAB?Vg~3K3bZom*qS$rhs%NNZwlzM>R3g2{#>>Ta2_Qy z+j@G+v$M~8s~VT`xJ`c@kd=n%u6V23eDg4BCN9eS%>h?b4%RP>?zJWiLJ+VqA_%3H z;ygWnhbJ6{Tb84jhw~-=JqCuj^Yic3-}LjpAin==KAK02G}e}_;W!!E^@4$Kab#n= z`qtK6gYUC*_3rMQB~DEO? z2(8qcmydM{w`DR~g3)w?2PWzSE^*Hg<;R-$vi=mVu};{?6k2rT2N zl4}xF$d=Tc`+*H{CV|d=`N0nUo_EPjH@6fL?dah0OyaH(U$*{Noy&kWQ0}06G^4P$ zst)yI07MZ&`~h#$Ygbho#}Ba)hr3 z+9l68t&D;f(9a1zs#doUX7~U!7}$^o3ka+wB_$8;af7_9YD*d-bYdRdk~XhfP%czS zfkwEm1C3wjQ6QqtxmXHuvS)pn8y1MxP_nuzd(UD5DsODdKoXo4)vp+;LxLF2999gq zOvxEgm12^WhGg+YeT?J@!Iw(nXH*ZvpEz|T%FfCa6eU|(5l{s^@R|R*sW@v~R(PKK zrZhpbvY;GNxL4brH$8nek{@t-Z2!5A)XP)P(+mBm7NX0^nOMrJG*)i(*ELq7c~@!r zMf!Mf%9V=wDM1xgo?TEDB|`3!VBE$sBm#GK~E^O+m64S z0OzU8v^E1i?vg{<4z4%kBN{mkz=<3$b*&9&gKHxM7MKm`>o-o%U{+B9HA9u9)hAws z#5V>yl=1R^WMdc{dXXf>YaDP*pz;WYL$ZHV&0NqCWaf3cHjp)&gYv(JP54p5P@0y2 zfQq|tm>&J#41h7XDG5X5d}aAN@TUlCNLfcnI{qH z>Dif9#?r-uP6g~h$AryZ{saug4Bdvk%jJc(3$=HxMtm4imAxNdLi7S5NsUxYH? z(=493(67*so`Q96MQ~9W)1k$uugwT~ve<&)1vOPuDs#5wCtZ1$PPs_cG^5tsVeO7_Z+4oP`5cXu_nj3O`DTFh`U& zkD1o78f7w4Bh0-IK>%dd5TKQK1OEbT?#5=qu-vuaUxP|-H$#hg<7Jj$C39T8c;%FG z9JY*`()0)^>3g!WNW%rx%Bw|4nuk>SeTzW65^o7H8{Agg2ceav8kR9KFYLUP?yO9T z$5yzELV8EZZX9GN1Oa@2RIUB*u(QQyTD+N*Z$Qwp254W8V?bWG5L0cnXSgB%6gcV1H!YpGGNTdiu*J)(Y_{i%{R9Ts%h1qKh zq0WOJZaj?2q$Lxj&51oCXu6s;2`Fs#O#YH*>gPSl7DxisPSSsoOr2jO$HxKtc8;2s z1EkIT)SX;6zqs;5y{b&U_|kNJjhWy1nJFAds|%^9sBXPJy#@43SEi$R^FeR11znwM zjzVA2m`Z#x57(5a*m(I0urC7Or)A%pVc~d0Lmm^dfwPfRqy!_1_#*p&|6*M6(`WSU zukfYR=zf-77#e<`gTNb}ig1`*D5B<|`hjHH5MP9TP!zWaobSV>dyPq_8MosnoAAb= zmQ}Hq*{v#D9-WU|*>SrIxp|^z@BMIraje~S?z+uKil1XgbuDu+Rycu1_m~TcbI0`^ zRg7!urN0^vEF2k)`J(;COp2vvW*e1G9*iUM~J@8 zq11fPGmS9~BE{lk$clU(Ad(*fj6>$1FE@+$0I7QX3jRO{Ne0eI85!Ar+EAS<=2N?{ z*Y~iEDwxaENPNWaTZk1yS1dWP<16L=9ChQ~*6jbQ3yrh3qA zmFaQ!+i^4%eSN{tXDJnbQtymhNx~zSuWlDu<WDIrxfy#|e2u1(ZN4 zm9bp;c|pW;JA?fkXs@49tn|f@r#mhBM~A(N;*gFlEgKPNM?C6PWGdC@aNV8D28t;X zO#!#1M05*4pzQYh@*iytg(qT&j4cCq##&3xN&b?FGiUYE>TCj}4&OsuuphE!$A8Fp z;L^jrl&3Z3>E&_aHX^(}!T~jJau$vN>Qpiw_f|gS#u*@M+18&6W7p+qYc`~C*pAHT z9+-%Ydb24r9X3hXzsOj@GUUKr^IUiHPYbVaQyWeLK7#koM=)5ZyXrp6oG+4GSU5V& zvjrDrOMEBo0*I(Ul&mh?nrzCBcm4ahqwSPApw>98`nkX}t!!dKwhhr4rN$*YBrcBsx)I>lW8p=XU4G|<_Ug=8`CGu?AyvJt^I zNOkM&(sc@3M!&z?Ev%Et^mLpu2&dCO;hOHlJ)5QDc^n)?pK3Rfu!Ku@bzbRQdApG>&KD9%oV{l8uw3=t zAf;#-u9j}Da1bK#52NYTFK6O|Z0DQrIU8Le`Qm=(I(!SWuRvPZ)d%wVSbRE`Hsl1lY{PLS?<)%*PeC|Y{MVccd(2}AEj zf@rC2I9-+Q%4+eu-ht3W&zVSnKjABqHAU&~l%Omd0|IAYBhbN`Snpe%qz17><@FbG zt~UYuA;t{eFKzve5dwJSZ`sN}u-U+EZ3uhJcxn|Ty*^Te=$9S#_KsFo-x`hhEeF33 zPZ25+!%rhAu>ymNhkv}ZgEu4GM_8>9_qFQY&q&_OnB?dp*Mgx{d|Mr=;F0GtR%Z>e z34|Bi0PpZDd0-2M_FI)T495E4cYc-u=yp9I$qdUZH}nZhNh)D7gM_gyov?@F+hnkL zQ?mPO)?sWABS}_C5V@=By4Q}sql?o|4D9WM4*z*fdhE08dS2#z_^Yu-sXK>a)ckTF zD(DDxyVf!_CbGUBoTigHGtP(Q5oRX`G}55TNEj;#Wi?5#Wi{ury$?@T z;&`W_0W{<@+{nc0QZgvA&m07Pi$!ZiiEuy2$0<|(O6sPZ!&kzTA*UPR!?d;CI-?nm zgM(j)54|@Mp^c0!w;>W0$szg)3~xj7h75GE{N8a-N7GxYs;wr?Huwoa8bE>=d8dhP zX<2+qV2Qe!i!S$5h8{nU^`7O`>E~(ULjy6K*jT!{ggP_kC$>RLjHw*(yb8 z7v&r<$%vKtI{oNoexts%u5F;iee$ zUtLlTHY=(xMqU{!XnxL~EL+j6HZstf4<1HgWBifgZbLj^Aj`1bUQUf>fhalm4>K5q znZKJE5GFfNS63Rgz`?NKdqDCbKa-L8bP>Ceu>7@WJWlRTNbBh=4-_4-(>(GT(r9Y5 z%3BWY9xf?K78T9XhH6!(>RE@G?Cs!FR5SZpvM`)6I}Q%Th~f0w*b(??&_0pp^!2cSG! zQO^$oxTBa!zgqWdFA+B@UhVEz9oL_26Mk~*Kt8a+=pz+JV9zZoN1sL)2dll6A=Ff+ z&@V|r$W0FJ2Sp!8Mz42qb8@TfQ$ZgT>59YvBhPaV;69qH=<8kK(T?>a3I3>i^|X|h z=O}r+KRig*&48e+{A-!87aW=xExC@dmM|>)xSZ`BGZ1XQC#<7v_>KuQ@U|$Tr&tiT zwFbOYx;jz9-yCjKB1Qo6q4nNBO?EKK?o;3DkQY5zmAN#z81(}M&9}ZI12SYQ+V256W zwS3~zGx}(kzqE%2G(RZ1NY95CTUBL?#}#F@m3IevV}i9%Apn+@`M3Amw}uV=l#5`L zM2!&~H6-%KwC!G$CXIIVN42+1P~)yl&F(iGwg@>Mw5;`uoMZ5|!~st*8+@c}f-8gK zy?RY(9y=c#n2+$e}dU{40WO#@mCONv{8Ii$i zQ4=QvMIxj$B~0bQ541{Bvdz~iXnX4)2R z_MX~Jz($pXsn@{0CNdOdorf<5+qaxDw%-mO5~}dH++v-k5-%80lUWg8Z)7L?k)0kD zGV9OIX?hKACv^G`f2VK=k?KCB`-sQ>cuVrYs9LE5nY1P!juc#jWWa`A(vWSkKZ@|x zcik>r7TZS~m46KQCgJPwb=_9%5QAVU)SMtY$s6K7Qa%f7U%%PNrT|O%zpLS9<}3~Of4RHnAq51HDCIBOAwt0x>vXp(qyhWbz6>r8F<#Ov zRmlGqmSI`7Gfawnn?cYRi&wB1#p)Bov;M*QFwojvK&Dudt-%t8DOs9~=krl;;pt^J zxw^Myy?)(am8zlHCCdGZ1!Lpa?zYVDwPUrrO;a;7(E0jhQ52-ErAKg>lqTICBGjT> z#chWTbV+|mE9ua1%ShtnY?`I%V)w_f$pq`UG3GzQUmt1v5U(cFL;T-dwkIT*Jnfy5 zqqd`+9g2Fc$m8kM@YO>j#jJS6slMW)Rr6Y9&&0M1#6 z!W2`Nl3eUK(tlN7?{T_z7>oGgCvNQQuOQ#J_SkYCz}wx{74lIzOI8D zZMFyahRyx27lXcTz?zN~1MSDNWejrXNYFkk_%Cju|K z)cjWj1^oBUcGGV8jx>`WPlnq7BfL7N%2&Ne=OzyvZjg>DLD! zktw=MWL$X!RX>L4H$9RveJKg@7_BaEvAiR?>8%^6^b?K!BY3EAvHN`4enm&~g>Ogt zSRR%rueuxrEx)#tQ1%PQK7X;C)MT_b_BO-4?ApH;CJln$8J6^`$s}0~X2KNsWNuDO zCAQf88#(Ct%WWYZw!vvyVJ+mkClT!IrF7!=IF5PbS*ocQOSL(O4G%E5L-F%MgE8vb zRY}GQ1u~lM7jlW2%e$6mh9hX8y1(Tw+1c|i)=L1)>EE=G(&It*vL43Ob(#$J9iR>l zlm{kmjOkdBC+~#mB<079l+cWZU|f;?XB`3C61VH|*ISrFuZg>FMBO#-^K)K)PR@=t zSClNUGq54Oz**X;+`?E=*9#M4ZfW|Q^V#&Wfsf^p%fn>6xlok1DLMDg5jUU2VDWpA zt-SbubfCnRdUMQtChH$+QReYJN}8#nmYWH%%dqHSz=hL5#eskQ=rxCyUxN1<*b#?!)KE_^*k zGDi}BnN@BNBpx!OSZ|D$FX5ndNz`rqwH*mn{uHuOvsGQ*X3(qGQl6zoEUSwg92oAD z-Bleky*=S;Kh|LVo8~tRZDs1}gA`y_$#x$|7(Em9y7kxo3Ja2rjm&I2RK=afSxr6O zhYQ6IP+Sz*k0|q(ooXs%sRCIO6r{~tn%l@`vSh9vt(%_ql@>1l`L~gUPG^DX zeiJ&?I0uqQYCf8nO+5Xp$L5_4bx(_+4pcHU5z#Hzaf?r{iEfwkWQJI#_?l3qjVy1`V`9@9Gr#@ZQ;q8xZ6 zL|+o>6P#Rf5$L;epa3_5g(ErOE+f4;QE2Ys=lUzxVqP2xo!Jf!t*SCdrhOGV1qw6qa>GG?bgbjouE4gJ;1o4wXlf6m(5c}M*#Ib0f*cJ}cL z+gm|ut_Ya@nt#8mx_>ktbjIwRPiZt%rCA;~^0eDR>Gg?2>#NjiQ;o){SlKW51EtzU zaoqCUc6)gCHOgs3-DBh-haYfIFKE0Nm%Lv-gvu2ygSs$HJJ_I`X23g1Tm~hF1ixoV zNugn^A5+n*Z{@b>(`kI3cw88Y8GW$eh(m>|Pjj6#`dF5Q91QoX((1|Ekat#^bmieV z++x4Kk(@oZ4trLm1+odbyKI86>IT)_pe&BTUVhzPxzoXN#MFf&xufWbT}S#hr%se~ zU)3d0CDrBct?%Z9*WNtoTK}AnZZgIFnfvMMakgp7Y~P=ANb~Ead%F=cYQLY;i?NA{ z7G}(T@#xXa?5xVgTW|oe|B^EeWuZ#056t-5R`oA3K$$5!e%8i(WtNJc2bN4cnzaZx zx-4T^A51g)WR=HUcHCZ{1f1=OlTeW2xOX;FMl&w9mc3OlnnLR84JnGM{TOE<3^jTX z7Hr7GaI>j@f~4qfUaT|Nf|h0xO-NjX2_czr)E~`dn%SHw6vsF39>1LB^MZsh;NCw8 z`YYn=WS`0Ww)?r*5X6rq{h4sJB$bidE6Eh(sXHxzs~F@bgU^NX?sMlSyd=0Hx&8ST zyBe%g3%UIOYTQ46_P|i_;U)JhkJVR&b!tbUYriy~to6TWUy#`6x?SA}xOCo=%InEt zOMH_e-k>WKLbd|Je+v?N@oP!0gO{&(#OG6vxO*><$R(667I7cY!i!idQqN_bq(Lrx z5nDGCsG|e>=sP=@MM1*UIkADqPkpNXD2`wkKijgYzfhS`3ZCSL5aLfNRCnBL`16CP zDNcO%v~H)}JMZxFc7SHckvCIF0~TJmC2~$`rstV1o$D29T^0G#Sl=C; z8<+g(ZAz8V2B+z#vxT3QZ;+^&lB@WL9@T@~7`BN%uVvd*bpO~*O@Xbr{`MEFVjP&Igd|7Prr*zP`aB`X_ zZ;AtR>Jl2Qf@-@@_T0ElSM3#?vdNrfmoRB6#yckngkSDj>suoF%V)2N zQWGQcU%7)kg;V74iY~=((rKxXzT~)V?-7tH=wQGJ5>9(LVGw{u_S42t;Me=#Va*{v z0;-Z-(lhQFHm6^?){>chVD(i&?r2M;Cz72Ad5H5D1#}m<6p9bqhu50q2*Mmb74kBf1s*mU0DOVC<-bU?-yIuA?)m6aK#vM6 zBU5|)&H+2<^2J&Za~KvZ;Ih4%1`;WJ*vsEh`MJ~w3dNo6Bye#SUROz%2j%T=q8qaa zVW5Fniy2SL&p9ryTUlYQ*e{nP`*l^+d+N`c%|$nPczeDuiTYBktbF_H8Ud>fi6^5o;MkN)jSI&7I+&gK~z*sa^V0Wf49 z=cAM1Xpn$V$bc7(hb_t?c=7h$#6$kO4>|DiY_Iym2k-6o6|t={1neu&;N(!@zF=}f zvo3-p6tlejVP{U`j`r&=>`OC<^{p{-PHg|mcYq^xb5+;#XR2c1E-U%S)HnU=-4cG^ zHIMW6KS`D>tI{vIa+s0!achlIuVu_Cw)}ybnzb!hD`ga(r(d z8J(l2st}%&md}Q&PE@sDja1$}&UxUUT3^Eq-A`4#4Ji-=I zWA!ke_Lw)?tHn!j5d264^@{~03hpE8qkW$jcL5zL%^Km~A%+Yl7X!W)d~8!wBg1bW zs}tE~C2c$pekD&%zIXT{LK{NZO6H|3lu=l22 zH=2o*|&35TgK**|8}yeHa>bjmgBy7CPeZDr3a%wA>;3sscDmkBUq0& zep|4H-wv0xc-Jt~r7CCPL)Jj*{qWG#bdSsEhhE%|S?sp=qDymTPo~oVdVcsp{)ifp zNk8daS)i!jtcQfS|JCLc8O=-mrJyH!c5C*Wqk(MceC@e90}}Iyd7tZ(HC-pWbB_OT zyEI}w_pybxZK_1?Rt?{90#ar78mE|Y2y2y$`l7RZZ#ix$I>On7?N{~ zCb}5BQDBk^#F$;`yQ&NL^w;@jxP`&^Jw2Y2Y4~ngj(%v)#q_=37f34`N5}76e&%@8 zD`EG?-JPOm&EoKKCnpFoKATP_y}iij>BZvvNfGy{*{NZVhad8wE-I>Z48BAh)6SOt z*SiZxv-;w>b;(Q$z_eff=M(s_ASWBtVPMoGwAuLTgsmv(PT(ux_Vx5{v)5vjapC5$ zIC(Qj-kZ%zNWX-~C6{7w9i}YKq{`0XMWxQ|&0;`5HF0!wKVy+uniLgs^O|s!Q0~Y0 z$7YeXS024k2hqnr@YZlV?9nxc;;vNNekl}bJ-PorQ)ZZKO(<~D#!>c)!q;Bk#0Z6kBnO1vN3WE8ja4uJ8xaxa=OGI%5}*Kd`*0w~36MAjNu zsUvAFVunM@xCUt+@Y-mpA%DCmU0uCaNvAEBKcg~>g-T0CC;ntxQwHRqI1zPfM9D$I zJlanp_b-pXpT*O4oSz>Ia${JL@wg)#C3HNq!WcNaKku6f7#nPi<~kl16q*P9YbX5L zx9W_*YN%`?qi-<(*Bt@UrN%Yrc?IQQao%J;3qJ{J`7&>51jB1<>a`W;T%Tf4rjD{K z#+sQ87zxc{(~0??yA0+G;iHxs8BV&f%I|;mnVs`{wK?%=2DP-dd@9X)&+8~kYCerS zefoC;PQ>saSFGg8eiCsjyIwlv>5a}N(8uPOwqAV`Yu zvQ0ox@QBVybwy@Q@;!*XkQIQ@@mN9SbAJ9DI<5ie5m#4NQ@*_v0XDaJNsFogrSbXf z+P3W(uIa^X`NX&m0*yDlS&ah>kw2e3(^-2XTp(6B@lfnGSeo>}sD; zl_zm)fBTN=Cg618xl+(6s{`k#nM=TFhSzi_*?7*dh zcXaG>whzImJr(h-Y{LkaAPHrH7-IJbWDPP5a|AX^F=L>0B}alSzocJgK$7a{=tx82 z`gk~75J+l%=l=@PeMyqUgsLHV9Y>j~K~R(_{RP^;ta%U9|7+kx_3Ia&K(*zpgU;@S zj3%9bqn1vXW=xb{Ui?vOM*d>ml!%vvLT0G^Z$m8er56~uuU4Ehm9P3^ke4{b8j&JI z!z!+8Ea-x>sXoqu@6@Yz%}(05t)C9DUz-Yp;B2J!teDyDP@qJ3Y!@@>S?Y*$)XI ztoHcv$>GqGxgJ1dv%h6}+q}33XcTK|v=H~(qTL^cqU>SB%NC&JVvB0(O8+*-I*)4g zfHn|&N5G>kW1gaRa0u*rw0PAaeQyCP7hhL(T+j}&%x zZx>q7(m*#*P=dhKbUw7N5SK_e9Dr3_bqx*E7S9)8HQDgz#>*tiUKkWh{9fuitU^`h zEk17m7EH6A*?0-`QN3{AXU zhz5UjGq#!qwBcUa>nChZzt8i8@ zrChljGw$6T$Hc_6cE1b$X^1DR2?!|taLYdeFuaKm-!vx=7` zUP_Em0?LDd$Jd5i97Eixb^!KB`4)&Xft_pLvt2;sZ^ zpR)GLiAurK&rb8*>h;zM61mnCHR*TA!e4n%@YZnuy|v*?xnW}YE7nKRj6q9ESR3bB zWHReALFj+50u?1OF&>b-F)}eRF*bg1hE};MQzAoaeQy}%fN>beS~hozLjGkh;MVsk zW7+4xpWeGo>vv39{v8@>A^mZZ>A#u?a$uTr>g_S_rdVcsqljjOCbT4(lio!BWZHk8 z_0IcCeOXi#j;db~x9HvTC}L}liSWk_U6_5BocUS`PHBrEdXcfs)Kli|zA9d8N{~llrDld=8nyxHW%B zyQAwDzwk%VBEPvuq}%Js|LvG)FuG^~Et4S-@X|&$;<7-+U+}9YF=b|C1ioJxe~kw` zS_hT%7G`Bn;S1DZKV*FbRMv?JDppg_YEJn`nE*o*?Or2`Exfw)fzN^ny$X6$g!!o4 zjGB{;HV@#VVC_x-OAQwnufD6GP!JIc0V*4?T4bC5+H-H=$%1?*Dt}_sE6fN_k|II> zKN*Y*_m{EVN%;O*2ApJx=0 zCBO&vb%K_nu=I|VNa^IrlT#@$1q}&Y;43iQzkgtoQeS*Ag~&y}^FJE;29v?TNqA)7 zSaa*uaY;iq>ytZdnVqT){505-2SRrFeuo1W7tQZo%N#TLLi-b3Sd_fSP|s6km5FEQ zRb(c-qX?I7u$vKC1gT6o^2NAHP{=IWzlV`z>??)Y%fq~xgD!uEG6Sc;B1uvZ?=_P6 zATWX`0Ut*%lx0$Ah}X`8o*M0$kwp{u=e-RPTttYMJ;X?hLH5|NKqkjV(+QoxRoc1m z`vyK1I=(mw1S4Mf&e2D|%VNojq?GzCkJd$s8+izSFjyPAsb7z2mzx*c{e`Y9?_nD> zjESWL%y|b*lc<)72XOkKib+;tv@$PWf>p}A6jg+fda3?fR#kW?kWU4V_169(24oxn zb1UdHx8ws+%j;|#%6Arjn0SAu3ro;gGatk8woyYQDPR3^5vLegxfoGeq!0|{I}Jh=9*7-Y!dzrE*dbSY(7jOxT92-!-@C3D9A9YN z`=het@LL|m9pK;q0_R19VuehPDr;Tl(8b?=-JJ7T$7-pXqb_W^r;fMFbT@?*sh!Rl z6XI9yOJp(F@8kcl{+2d-$gw>#jwg2=p%{7JK6BqEnE9=}2sL5H`Tu@UaGc;%21EFF zWM%=OlM1sGy|>%z!w%m5>l(zhMZEEV~s+XYBqsXJEfv6C7Ih|Qu2(a=``L;DUrN>fC z0RbgZYQiJ2fTyOYL6Z9tXyCD@3hfovUSQmOAm6K%q}Nmi&URoxNp}Z2DhZQ0gt5)p zf0Nj>%!-l?_I*x@=&VB^?#rQuOH$Qe5R%ojwbA%^GVX|f<#N$1d1G4mt*fHr?^?DU z?-D~gmub8IwFql~_|?7)1AfknJ=jEh z5rs;8_YHXLEwsIV&&uLgUS8CT7RtjBNVNY-v|m}b~gENd$e-g88% z8i=M*}JGj@ja!1}a;PQvhz&lBw zU)$=lm&j%jwH%k%{-xi8ywdJH9>W{2*Exo22J65_9^o>beFjv<>Vrk&cA*LrTOnO2 zsUjogr78)#AOF051 zDRAgPuic*74x*DegOcxX!Qpy+<-nGl^UA@~^H~|l9-c}o1{ZiNHHb&Wba$BqrA-A% z(l7n^@gpNIPd)(UD{vlC?14GxZx`S+5>tmtuVvwmW|%7nuxJ|H-%nfnM*2_ilAs3| zo3!40US6dUJz?2`8ii>B^2|7orb3uBu@PYfsl4#ec=0S;xVHpxFcG}<{MYHPUuI5K zOi7aT@sI8E3u3z&Pb4F?uINUtm9o^II#y0jIXIG9woXOsgc(}MKEa?t(}t%21(BsT zti&?9RPFa?_SaH5JD%y-Ar(LvCdRU_++=UuUj_qB3gga{;mV4UVmL_Q~> znJoD!cXoHX(*hl6D>hIraQtxDywSvPU@v69@^8er&|Kku3fxe-_RoLEOpG4o*IDn* zo$+(_l@0gPF_EV&i#25tl=k(Ul3?M^kWn2q7ehxhzXBS2HVI_uo8cqA6{ zb7@wdSh%s*U_#L?@MMYh<=>>O-oBr($YZxmVj7>KbZltof;p-JK^XVN?Ds<4|G>RVPU&R&4{9X)N*Zvx3|c*=IkmN_AyK9r8 zJ7(Iy4z>B1m4E^A#=hO%-QT~NSl@gkb(dp3jE%rpQKZ!PVtws`uaCfVCC=-%D)jG& zm&X`%UPwY?Ij_@N}zk5(qs-sU?|J z*6Q^%#wtX+n(1NeT#GBY5bnV04UG_B@U@LA|NaZmbaPhK9DEkjF^zzjx;kxKoR|Vt zFEJ1Tsp*-d#zbWEFa~Ap*kZEkrRbqz<4;XZHNL-eb0fjK8WEOdpqGlBh49m)O5=D- z1pUJE?uye=>{)gJO2GW+Dd=2)q(&O?XlLiOiX)KVfrT;5!3dfXdC1~{08uc{Cv*JX z;==_Y?8XP@$B-WMc zI=M^&Y92{tOf^63@twwb1-ow)eqX;%TFT*-7mffbIfz-qETKe}u=vLWaBoxARQsLS z_bHo(&sZNIwgOu3p2|bvA(x`PfNhxsWovEZVHs-E-q>|=_7ycY5x~Rq z^0EBld)x7*&vfW$5N269$eRz2_&VvWj}!fq+Nq~hu`}c}lf}`o+Tnjt{mY|aXdeDG zX_m`<5UH>PO45`~w$)TNnU990hG!o<;2iJlJyr+5CNrNLA2VLpg7b)ggm4y8gnfoS zA-&&VCaA1p7tRA(0?g##vOwuLK7>G68^}j9Vz9zso?E=>edGlmf&OS(m}Rk@lAk_( zS~7l9L{wJ8O?hn(QHZOVvOuZ$q{ocY+9jYw|Ae=}b%wWcyuA!Ni)KCeOxf`nRiI4e zm7uauN$gq4nH|Rx5hLy7&d;N>-KJz_XYGmE0JdoTZ~RZQnWL0+(wPK?UZ%}(e77(E zelM30u~l>$rkU_$`BUrk$c_XhX*sTu^dy(6G>dg?<$!h{j9l75l@_fCh!*{5N_e-L z%C4`TulG#@3ZbR>*WZvKB|>%)%ILge!UtdMHsB~zVV&GM@rLq}O~>&Vq!o^pV(`<} z#P(>K$drXJVNi2Z6SBG!d%B<)v^DrD=%*&4% zX3s_hBD`TFAI`Yh*-PqqGTlwyYqLf$7&(@BWMuyRamhC17S>xOrl|5#s<03&2NKGS@^1--_LW=jq##nyRM1$z zaQuO?t!r1ZSK_5D=1}Q`Cs6UFGwpsW*|Hsh+@16O-8l*7xoN2fp%@^e60e`4qM};3 zbov}4P4@`XszP|(j+*TOsbz@UAPW_$Oq>gHZSCRc^G{P`azWde>p2ak>_e7gr{L|A zB){v;NU#P9GyDxo7Rgo}ae?w^{?ZT+DW|q+2tZo+IyX!qR_oQv2g3^DwBUA@PF6Dw zCVQ5HulahPisrs!ou_iL_uxKv=pZt!{S5q38k17m10ULN6E8*JO43=o*`)nxfj21f zROUVrqDsUEVL+WL{oFOcmD1u`iK2nvovfx>**d1V7ES{eNfi+tSn zkRJvc+Y*yfCqHOZd$aMWNq#dV|C(6jjnibM6r7*HBmzW#)RJUvXT)U`lU~aN^IQs# zss5#t4y;n3NcN6D{=7szi&xBXSt@qR9hzWmkfv7BSl{j}u+~PrK4)s&{2RoNtyrx) zjj6ZqHFWZ=?Mp2WjhLgtvxSxTRi~^{C7%W2;~+|;66&Xrz9{OXALNMOW_G$yLZbYW zve=$hCSUM;e{jrUgwHz{3 zsJrHQZYb=0nHkHf^kCn7805@bTNE-Ge#+yh2>bKVIIJx}^0_Suf{ z?fbAf$S_6;+8U2tn?!5BFP=ratlY04n?=zm~c|Y&x{VtnY z*L2LbH?JCA!8+SFME{=)a6Tm0dNwa;@+{{d*wu4*bQohnKkr&_V^e6f;1qEUi{7xK(FD=SL_G6@@u&bG}nK=gmh!Za@^AedmT6KzY ztX7}AU*EnLFr>6oj%U=?d)8gYbpI;jA20`6^TqcHL(evUbD;V7w{!_Wi{n-V&4p0 z7#-^3$ZoTEjv{7V5Fl}6su9?DVwN2(@ZOv*HS!O-n_>IfwT-2wMHMPAF1a`;xI zs*m2Z&#ez3Z6vF99y#VL|HS)^@#`}x8(l=)n7FgEPZSCPr?>(TLzhTJUbY{El3MCS zzAv+DDFLj)Q4L`E2B0X(LasvFrIA*|5Yc<>?caNEHgXlKGP)GvAM`I0$xe zaq;oVAbw1~L>Ke*VH!$VJslNotFeqi#dV9N*?~anLzNnNhnZ@r$#^2*FgVduF4F1Y zQbf^Vh9&T?lU-JMVP{C!7NfiyJws7PX;?*Q(3khyaejg&G^LAMw~_)BlYZYP&S(afI}bsS#|Ns?c5%sXGd zo|+4?9o@?!ud$Gi_|aPtmLtTY7RP)YRGL^w{lisQB1-=ldHUK6KPZ_{G)DCYrKfdS+_h%x<0jz&NDIB1Z119 z6B944Mb-h#ReoScK1PL+pNr|C`n0ougl#!w^qsd3QzJ8$h+l7u`o{>)$FWUt?CrwY zNBe&*=dXgvbleLJ@y&Ru9G&YtS^0}64&Kxfe02Awfa+2Id7$cVn+4$;Z}eHxx6%T2 z6OseubZGSta880;arnMLQdc4l;UkJg3&lUcf$2F*vhi+j2Gzb(JN;c>w`}l;dhL$@ z0tv4xzTL>6OI3F!E2NYony|R{9`^MQT28O74(jLB!B9CQEU9C@1lt9Is2NpO7oT~! zxoh5J;QabDh9gwzeAl=ce&yDO6*{!i{f<4sUEU8}4VrL(!& zM!0sY;A^9Nm2)TYjmy9h)FH;(pf!s%OBx^w9xlAs4Nn<`;zmE0=uTzanQPJ+t zDQ6J9`2}ks5x8(T6C==be0J_G!;*;BPEF2?L9_CefH<)+^+|Kck+X|6= z{(FEr8!wu|`lgfvcQwRbdEAM=&mYmaFCWU0{HHt8x>mmq!$67#H$`|1J}wS~rE7$} zgE{e8e`P_D7F`FZUI^s2Ri~DT;_q}RWE+9#!2Z5ezTL}o;BNq|Ox6TrQ<@IOCM2RZ zWJgF&yDbihH*J25+a(y}PBqqHq{hm2u-*NmH4==+^r&%0 zsC6mgwCnGuQL zcZoTJXma~gRSs$66G3L@gNPS(({5akTrJQ4zQ4%OMX(dtnoD)C<2^eaqxiwZ@eeu` zUAdHR)$C9E5pgeBn&5M^1s{!;F}3t-;gIvntHj9YV%n|#rAZ7Z)_qFFr*ha zgg6~HGP{3XuKIXz@p79Rf8m-9@v6$;7J+A?lT-=C`Moj1@!<6}P0_!+aJaYuIe{7n z;0>#VT?X45rg}MI8yxDui3=2X$btX}zLHtPUd88UoIe_;T)}G4LCF;XCk1B&23kYM zyDOllagzSw=CxHl1c!Di^2^Hb6%lx)BwP~(s~NLir6BEdmn)dlr+V6tmwwTa3AzZv zz;k@eqK4DmRk@K1Q`n(KmF)um>(ie|N5{RtA8y=;xl40c5rU{MJ1a}xd1JacJ;u+g zTCPSV;WEB?2zf5{=(=Uot5=ADdQn0`wtqSGZd1lZGE@jw;{T@in#@~PaTE+sLg}Vb zKpP2UA}?Xm72mr{r$;+hN8Pvjb7j@QK$&JJkyhYDnP{nH zwq|zCO=2q6CjWBrSV=w~Rb}a~r`s79_>^v_tKlh3rcg)-_5)o1-ts>~X6ON%JroA$7LPV^%h)fux?s&BE_qHQ90&XRLS&{V4BAPP|cj`z~pQ(5s2? zgoq&@!|CGVnF~>Z$_PVE<&6P(J0)nq&tmWhwr-7uN$(wkI!Gcg0qNr zh{VhF1a!V*(C&<7P4143`1i}_Pb%Ly!yV`I1N>79XA5^iwNQ@xo;wqJYZpIOym$%1 z7IRA-C;mP8{sQ#Z*r_%}cb-5?$|(6b%|;#U@X1Kn!Yh~9%xTUz;7j{{;hyp7Hx7I5 zctRF(!I-||63xEIM74qJCWrV8tbv~W;lxFN9`jyRHk&~fQKBg^z@Rjg!Luh~oj6<4 z%ER4Q*e}XKp-c?q%r*BOXP2g>rS&(=fG;w|mQ4?@hN<{>D|P3fWvfPf5rU%$faGAx z`@~Zzi#F`7?j&9k@Rdpd=3LM#uW4Q#c;6GTsk=8?Wk49&lW~!PLcbK_)T6W@mRO1H z!fRGxJzmV^T7>k#>rGNo-@d5Ue579uKMy{Dl!Tb!dyx2kcDo13;f%)SR`5T9FL_Oc z|8(O{UPe?B*gqcY-EaNMvhEY%=%HvBrQ4a)d;{7QJvCnaQ$W~ShJ{W8O0H}lQBh%7 z$gLgD3PZ^`W`{EVY z!Yu-#n_e?5j|4YDvClRRkhvy5%PW-sv;|m6)2SjFxdpT9Xn6gzf&&pP`?kD`j65gX zf2>7-m zo~|McI1>YT&?yEkPyGHn^1?k-j_um1%54mgKiN={fxQB(LfOGQxteV@x2j^Rr4=2ohO5myulp^rJWxGrlD+ zvsaB@AvSoDIu2^@QeK_x7Qc`$OhTp;_YUh)n`)O0I9e?asZes0RaK&w}CAGoflUd z0v@;32pH)W*D83gj!aIn^l4r7Z;e9R8nI(qa|ik13%OPFV?l_HfQTBFNL6RHa49q} zlv_J+`)Xggnry=fVJFBHv0mmsdd_zd<_ckB>buKHh);?6x3k1^zF@^JVQg0NhHT9E zOZNV>FI%c@KF6lE?sNo^!!9xwH6pL_j!%0Cj)DKQ$@v>FMcoVG>nqN z5k0GBW_o&hfJX5g$7f;J{laI>)ZZY`(_ItETv$;7nzEa#`I<~=kF(<4x-AQePVdZE z9DXk_=IbiOW%dts`w!KkMrfjkN)_rTZ z>=V#-dvVY&Tb@9*goQrgT}*4|r_Fs$5WyVL_D@2OZ!ya`Yq_pGt}WC z7c1ObEr+LLeeWOAzrAZT7Ea`ABjWgdB>uIvOK4nHN{r!0M6G8_g#?YJSxL9YOv_!f zHd#4=$}x@#@Zhy{G1gM5ZDWJl|H-j#<8fKje)%Dr;kC{^&!!ks%?Oi&CFt z_eUjCPeBYku$*}g!LN;1ryD#q6;FC^J(unncY$x4Q~UiqFc_RP2HZgcIsR1+)6teB zMpCHKo~{{6X~vCf#DeRVGM=Hh8 zL)gUEJB;=3VtL$IVRJ+I7|gHVT+U+A$xMisGTP;!JCpK#S}no0UY3K3X;i*#{0zPn zM60^cOj1Z($QfwZYuFY-&#U~xsU{_NW5Bq^vKB`Q7^$@wb=bDtIB@@-#Sg*KDIADi&r!|Fl zxQ!**XmkCOxYF@Z^cdQ?s*djl%~vfAL^9&v`gu4o>-%8Yzo&X2*d$pm6{kpyLG?w9 zE(;v*Zq^6yKiZ)GEV60H)mcbxunGEU5u&VwCezIMv#S7?Dy}e|j;Wa(xKj|Us&G2$ zXBE!Ciysa7(Ar0IvXPB1=zOeJRhOm@vMs~Q*K!yWa&StNQNRkQq6>)O|Gw_-?p~{E z3itRR&?C@exNhRa(1n-597g0mN>=%%c(QX;tHQQ2>NDeeL&soVp`UAetyhaigC-%B zWAl*Q{yeI?WZv7hPyS8Z21f5C>7x_;3#uXkq2r z27+iqUn@T=e=FHrDa;&^Vv#lWi1bfQ7wf)Q3q-{C?=fc@Gzg3q?h>JqmlK@O{=JC3 zUvr2;))Ij$K4kA!h{m4J3p-QyuNk_wp$JHBw;^;kg)=SB(^PpUuDss&<8OS?)+W<# z;rZauMPCzrBdvtUoTQrvY6u>KC&E^&4wbbZ_IgcBJQ+&r_~Y+X3wUM?79z;7i!1iN zBCu(iM9-3lI3?u$`k?JUy;Z>)b-r4u*k+wn>|K#)532Q2WQoMBJqXf@a`AF?k zM|Xb5FiwAn2Pgt@dvB_7JqkM`SN2A7jA_Yr)+tQ5gzXW{;Ha{%46j(x(U09nUV&cb zC8i<4!OjmJw9H8BWFc!0rY$yD0BXa)@Rsb($jpHL+lPhIGv#R`>*DY+wR!_urw_{g zk*&hP$%2OCzJJdmTEqd4l7s`KrNaNH1#UaGvt$Pm0Ad=G{K?<@xJ-Kto<>M`Yg0~EB(a5mVXGgJzBqO6w7`Cd$v7`8-oNQ-vy|K`kN(0_hBuFrS) zYQ;_hU7V_&ElF*9B{Y=OzE6Ny;&epzmfS5rtAeml*6;%%_yYtjnVy_Xn$QT5bBmN< zeX%CnkB^4zzBM@5%Tk?ukyo69Mcx<@0p3JcPp^4@!g=?aY-nLe7+Yuu3*~*~Bl2Mw zZMOp#yJ#XaQCA~GTtX6FI|jlMS)@RZgEeK6P-zEje^Bct&7`_Tb?ra^Y@=EF0?aKk z_snsWBU?q&$GT7MI9Bj-2zgMdU%_*##NHcJ=J9ys84l%CNiWc5aQ`i12WDzKA3Sgr z0kgLo2lFo|b6VwzvYmX?#khiG;R`I31Y#(ejUEDp)+a^-s+A6JDVH=x)RbB4j8$G0 z;x^MIL?p%Ofnu{b^CU}kJVCPE2^=jU^TCGn%9n%jBc;4A+Z zBhrdoHfPGFCtu?SwB*h!U?4)XA99Shj7lcSLLaCPK}X!Nwh#rlljLT6egdJES%lp$ zhWEgXtG-^V-v*=6%99L}A-RVTVSHqAr2hwQ2E5t~E_TbVC(k%nI^C!>p!&v)Z^R6h zRInr`g%&*1F(KBdxvEb!d7piSl6)GIcP~Hl_Ub|1L5Iagvp8C1&}`|AY{?sAR`F-b z6kWLxFz{H@ucB#cc+h$x78&kRoCq=54kDuVRYd@MF+10zL|8AWC{$+@x(R@?HGi7KW%!50r& z8~M7TtEg{&RLiw}iX@U-4eL?*R5M8^c$>&K>D|~UX`6GU$VwgEm48XB#40wX)Y)8J z3J|D!|2uOqxKTi+At)Wr92QOQcW%{$iCT58Ou=A+>t{3pwvTJm1Qb$CP-S=6rM$(( z8<6PqYAB+%%ATpzz8%Ooedj@uB&MC9g&)bNX=b+IXGw$ai*Rx!zDIDMfjlNzoI^6J zDDSZd0`DWAXEQYe%)p1cCG12tSia#&C87}6p4-&zk4^g}pM|da(j2fWIfP0)*JyWl zcsTrtG+Nm->^E(B+&fW8?@zz)tsFFqJ_p9<-I+SC;I|0OlxcE}b@=dX9-l3%x~G?t zN*bMM6>%v}@Q&ocZvi=xTz70DZ(VckZfwi*|9995f6>LNX2c0*c8G#Y?p+5UVFS9x zLb%2|hg?AbC6jR#S-l(UpN|2JPqVf&T}zOs?Z~r{$NW)6S2Ouja)9=KLR>jbZ-NEe zEv_%hl#ggeLbvmlq0&eIaI`P<1Z8)ye6@qxgN{PXWj5e?|)V`B_U3W%%+_760my_?$N z7|8YQpj72PxM7r>Lf?DYvV*dMvB)r%Ud70F3^>sE@~$q*DtuC|6!tq?ZyuM@{hS51 z$3qaqzl31qK+n<^c!yp)lXy!L7;38Ajw~PPuzMW%!tSS-hw?_MNgy2n8)(I3G;03_PxJaBoSaFed^a9L<9Rxc&uYstL zlbf5HgZtdMdlywhlM<GrDA4oYod zd|@f@>?b;|a1r>eB!v=Im>-3_kI1!!=N21YtfS+`?7m``T?^#3!QSjQ6p9+^bAylU z!TZU;dj80JLefJQ^NlGJCg@x6E4JSezCLHibEhvDL7S6?x5XrS9Ed-rsHLnCC~jY{ zZ)Hp&gX#DYvlV1u*LJ5*M$J6`O&B`At{bw@Gw=aJLZY&=+Col`)Jek(9+YgA0?$>@ z%h}gt3-SUO3YdZT=uh@hnp85y4sg$tC~>n~YE95tNk z>FfaP7n{&xccAufX8lHPO_7WD({t6vgKx$3EkLUq7gIf6U4?@6+JyL zBmQAwp6-xWFjNT0o*_}H3TWG3+Q`7_)kn-Be8s~CB#XrIUYriyXK$dC>KcH26z#uy ztU?OS=CpL5_cCTH^nW%%Sr47GHKN&68@?g4q{Mr|1x}gfgeRYc*(aoSZd$u>kM@pp*cBsIT_rKO^e>*@aQ0YLDbIbDv6Z^q^9v83qzR1(({t70G?clO z)#u0a=(1s1|J~)?T`$k<)xs>IKGY(~jT^()uiyB3zoM=(L|2bW%S(NeP?MHYt(ASG z!u1L-_tot;R}$WazxH2sko`XwApeW`xPE?ctd-jT_-;~jhTkZcC{m8Kf`p!eK5r5} zXdS##Zo8i#ciiDWNtHojO=i3H^MVjOzp?eSto zq8FiZ3C9F4_sUdr#gh20CQ@ib;e};WlvjfSK9Qqn?Q5?H18FN^x^YCC^@9iD8Gr4} zfuimDN?Crib9ic|pDmP!s6NDlN9{^vC$Qc7@FBVoZOHQ2jF#RcMJzr>)MQtTRW_%4 zXHwQ@<;PX$e{*wlfBx8-_>6c7Y?3YpP*dmk4&>jl8t~;QoQ|CnY`EfgQ8rC3AyBtS z^pb6go^QyDt7I_n_J-GfKPISa1}qQcGLecQjyY#%OtzK`E5KLAAJA)*cg-3A?EH5K zf8wvt9Qg9)dL2|Ly&(`5?X=i}E1UzOnGh|Q*=+gt!-o&80=K?Be@^R=duYhbbg%mk zvHX)ngU1>^bKte6fBgc)FAS9=wZrB$MK)vf<7=>NNYfJ1F|BqC$JFS#cI)kJXI$$m zn^SRw*O=w;%Fsj2XS(a_LJ4TPX}c1tk~gAq@T&C66QV+lUgXFhVnO_kVlx&mhE1Lv z%`z1`)6tuY_m;-!=-Gy(jsAP4C>r0Lu{(>6vuoo@;Q9!snJ(L2o9C~ZA(E6nveagw zEr_T9^A`nhTcg$=iv1;VvwI!i`0L8CoN^)p@1@SC z{(Fi+7Tiok@FXOT1frfsySaic5~e~}5V4Yy9tDdthH@twlj%J`IVpy6AVaiLBT0!& zZHK)FuVHmi78pWN22uiFT9in--BF@j;5;yomauxhB%7Qa`-zgXfpUqoeCpGbkN_iS zOQTxzTZzyTM>HDp4V1nIp-D>dzOd;iV<#|t2v*kKo_kYjJ&0NyV}- zGqW`>^kV|LSVB)l9;iQ`&w-ag9hdbJ=bi%P?!}u|ufaGetK*YuWU}ev8yPiKRU+kNn6~j6Rr~KbyL_I> z&&=eFp9`2dnI0OJZA4Azh7B$U%h;4M}EUgF1=oNib%{Qjhxt9 z=~rDtQn(LuGG`|lt;8>)f6qX_l7Up{USn-_b!a^i>i~-+b!er)CmBg^kAUl8Cq<=- zbXBh<_x$t_ID#{An6D+RYLPe5`mHj~zs_k+&xb~b%c3~IO^gRH<`y{n=e9zXo|6Z+ zW60xB=h!6Xv@aOghv;Z<$p7gs+N_O_9vv?H!cHWHVASh0^4 z_uV+y-v@>-7sp_EUT%hwK@{ih*MApw*foZ1GRkX|K6L)q-QC^aPp&6jM4VjKx6RGX07^~; zp2Y8(u57`n1~wNw-=qw0%TkiQDKOC^bq&25_=9Q7%<~XAXvThIf|%_};Q|f$_9vL7 z^6htj1|B~5@KN`yHM0G(829KaHG`6S>L&!zdSK!Q-afQcRsi4xOb!wRHs zCBKcP`>UO5N`t=`Z#)Y+8gA_BeonUyW2hYc{J^~bqMNlzsSQYEC-P2^oYJritu5`+ z(|c*eUAPh0>eYc9)Stmve?;=FEjf%hoKtWTrS~UthJc0M&V0Jb&-2NX7qFGC{8lB# z-0hQZ->88R#k0WEyq9|NQ0I4;NK;ovGfMyal@y25^5d zU$!qW1uXc2)Y)I3k?Y;Ug?{?zud}}L{WWiRi4#~fS{N$pheZshwF@3e{v_fx2S!2M zlwjOQ*2IXWfN(nCuS!5ztwMRitHLcXv^6wnEJFC^I88jvp5<}ym%d@jYX$l+Cx1jf z@+0Z?*AuGAI^70GqbJN+nOt1zyFZNjnTD8~B!pVty%SYXAj1s)MH#N4`MkXyR}Lp8 zMtpUP3@UMCg7=1!ieblYkIiNXxS5WSQm(xKwbUZ1 zh1|$m60ppG0-eh2MfF4CTa8@C3{s&$EIVBTRbSR_H!{}WFyvtRV!=T|H3ag3a02_? z*BFh=W`Cb>WP2%a%9gQsmp(YOyzlGuMBpml0*nzkTP1?Zn($S{D-XFC+wqne>t(T1}uTbErkwWylp)P+1>vAVecPX5mHU&_zLZ%E1P! zqb!dt!*fW%EJJA|ZB04|ct~Fg7a`wm`JRG@9?VvlBKQ^CMxDLjn@)9wOzE4q13#rV zEf`E!D}ZVq>hhAw)jTw$2>bnt!j3QHXWS>QLw&g*XXhRUaRr4wZP;fN25Q_-(j+>HEJ=n0aRh&UpiU6B3$y+qs$hap$+0<*k}o7wrn!|MHy>9-f2j9#rl)jszkTPHg!#(3^~B7U@vuUkFX_m%3sAs(OY8Y z)f={B_}yeO`5YP=A`PSsm`!U;szQ6)3kZE9h6HZ)OKf_833GGyY$9h$@mW$RR_I}1 z0w_gIOiW_-k%yX4jJxf_rLO*GqfC`7?vhO2jUO8=%tj6C0jSA(nKw1Qqa=Sq>d=^? zVqFwKzmRw=l~@LC6B(9ZP~gPs61g0%N8W08 zV^{P?aN||irYHSi*4aQ;S6!NolJ(IeU4xl_dy76#mKOj;s_eI5(iObCYw<+_#OjKG zv){>fIf3q3ZX}LQlp_Tb^Fd$_tk2Co@D$9g2r=EU-R!G*B+r^Q!CI{E7)<#SOgV@9 zFp|Y@`RejBi7{_VshXJ$C>*eSe}PrN(#3YMgEn8)oM$sqbGQikIIb&{a)`9Cq}*gn zw(5(sKWlwQ-po*3?kTo-@u1a;my?v)#N=g!|6$CA&)tW5&7dN@K7PRm1WY~Xe)exdJI~Uf?vUP z-qF$V<%_E6w{3Tb2y~<%aFh30Ol+(iQDz9!FDl-2vYYpGRieB=ItylA7gOc+80Wam zi%Sm5V~{SM2CBmgEG3nXzZsceyvke3&1;5Tq|NRCYKvSh1F&$AU^+WpQc8*?1hoM- zH@D%MW)*Cc@*R$o^r^A2o1(z}DcD;imzU}Kjq|`MN+mR|fe4CkkR<@pNs0&o3Yvu4 zD6DhhKWihy8bjFS!h@p?=%bkLgQ=P~czKbQRh`!fhN{^|CIO-3Bu?9BL>_-*O{L$S z^}*m@efQTAc~o|}8gQ)2StPD|2ZTBXk;!@P8{z3a5bXJX=gMye$Kg%}6WZd?hj>5g*s! zbqPNJ#)ZxRGFS{}*--dG4SLcXP%8GH_Z_DxbwX@Ny{UMu8hD9y7z%2FU0f1_@#|zf z{vfhgd{d?b)^i-B2oKTXK3P`Dzgf%alHPQj8sCL^@k$p+eF52&Rmj=iLyTYa$u$u# z$$_1?%TGf?1JDM@%E~e+)1Ly4z(6m@%F3$D$mr{A_3+B(xw)gK}mf*hhud|!L^cR;PtSSn?yR6r}w^TFCg7`cz8HvTd`tsrH=FW;}KmMiBhZ~p~$^to;;%o zCgFqc_kzk}V>?kc1KZo%~MLK-KRZ`m-Itk2BOKHeQRxYz?) zozu+$I((7$hkwtK!5ep8;XZsiO^c5Rg#}S6|Jy0VQw*LoeiW?g%wSS52aKy!0dK3* z!z~HDJWoFik9O*kpPAX1g#}F~yJ;^$2^Hf6iYZvfTh>dMAr_t{!I!@L2H;khLiC@o zdBb_Jj2V^*<{O(<09cv&fPcY)DZav;;{%s0@KZtF^!5$KQhSoIuIL$!39>S}G-283U~)iDh+PA=kDdh)@9( zL`h#Kl>%mLZgGJ`jV3kc*+AioIWXRq*%m><#0@X(UewDNHl3V`{!oWj~)n{CJ7=3!9ciqm&(>!?}&OD z=5~l{G_c@qQ@kuPFPkFD7{#uuksy&41R?5HmE}Ei^TO|Cj@d;Pdc$54Od4&yrfWMT z{%><)Sb?s{67cd4l%c4c99|ikke{ORq1rjiSEGeY^Tr&$9GyA8L9MD7wk__w~)nO`qgnoGu-naz%@Xi|@=m6;9pf zBTjEEtE|&cRR>h(LAuKzbqqZVbFVH@j_YZswylU(9(>?X={8vp5~8WKJuoH013hXt zs)juO+hqEUVEhP2;coOI>U4i7!sz+^Bl0mG|C^&`g=I_*s_;9ngHqqkc>9X&T>|+B z5&Q0-#su73uuSd)1fSV6&a9c6NjBljd97{O*$%sIksF;Js@YezMon(S|9M zxdP*px6V2b0mCIch7i{;OL0C37k9s_PSEKvb*@~|Nv zX%$RgrEoHVeEHx6&`oF8c2i^-z8x%;J)fOiy!~VOFr*mCMs4Akf-!k&U)*{nx<&vn zC%{mr+s>?Ny;eJQJx3V*?k-&c7RC$(qHvjD?pHBj|INWU5dYfkNU;e5n>bZ)E2H$Q z`&JQe`wMW~@h`)st-Qz{x*a-*mXUalqi)b@r%rzIaRcfhpjJQ*M(|tHIc1l2nLpj` z@~saW^9R2GcSQ2a&QZk>$o2ZT(uBfp4sWd$k`Y=)?c^C9;_V(ILZ2E>9~yEwajCa9 zOt~HaJsdeQAUZkF*IlbZA7hiVj_iX!!tS*5B=~7ITW)~LiX##zn51`nE9z0PCEedz zymS6>=PC};z9g8$cF^H}5NAr}zX>=eHxMXJpt9ukX$m(Tz!MRK$(vCNSs}B=NS^d_g*-q>*iWY1YAL6_$5Hj#Hpx=cm2CMR!em^H!vc{G#7E zPslcpgSz^>9vjV%Uiy>bKdXuz7@p&0_u;rE{!$ZRT;P;LHy`tLwxff9 z@!?T#a0PbdSi=YqSP9M{O#y==zjn~@ZzxSq)f`2_^b;VxVP`&f>*cR5v3#&$)&)W^m+Sv z6;`m=1Zo2*lc?o^c|+<|<8*s7H6w?i&nK%t;v zWNRMn!EzJpz%W$!g#!~ur~SN$pRpvwh^8GGUsT{BKc}irRZjtJqkK4k$;-}GC17## zS6oe>wl=Y&3CjF~1_}a2GpqpFxOMa9+q(_n1Jr4y?m_T(8m3NQgOi+ag5xU;|KCjr zW4<$z8#3`%7W{Cmm~mbsoU>#EL}Vo(Xyf|vh7+f0uQ~w|(V8*fSZjphRQ=wcakL}v zCP#f}e!9zB%OOYlo8e*P8okE5ckfb4`EIVsCeA|LZSS!g0Jh-!_wRF?3-Uvs=)B~b zBO?pGRr@oEtC+DAuFh+CgJWO^7{t1{xXeq6bl`;9dx~?x|Sh124^l=pSwLfV2%xE8YcI^ECal1O^ ze!+JrxgJEO_Iqo75drM2!9-yZFS?jgUHvBnO!D~33z3675~CEND8{Nht9GEx`C3i0 z#^bzo#xy+|O>NIH#~Jbk0JN*C{JUE6{aJFdBQGeU!SzA@10tUme6t7p-o#rD3^G0rI*4E*KQfQ)OVk&3T0qBo|Wd%fa+=)GmU@36a zM^=KM?2qFxKkUzKE84>)D)XI57gIB5S7_HpkO+?6fdL?&c{&g5Dge;a!J=Wx!F0wb zm}{~JruG{e8{>zxtq~A{bM-u^;%WMN)|#J|FpW2!)_A)%Ot|mp)BN-TN*nNviv?mA z1r^G}21ish(&K!1d>dg)9EZx_DuVDjSz(Pg@6R-P-vCop|C6n%W;0Z3V+kZ4?0vxw zP)7&p#l^+xfDM59bapxbr<1?H^-dW0Lw*Httz~fpkEz+-Vvd_72=n0D=Usc1rW_^k zef>zlw4WNlX$g*95p4Ip}k8ic63Yl_=x&lU0iXLp*6|Q8XVXQPbQK z|EnV27r>i#fVz%^^8r$}sW=#RAZ=2?r1bGsSoQ??z zNQqU}3Yeu97THa!(rn9D04j3wG;Rea`0*9 zY?dO#7lf4>;k5OxfX~&{o8X^RR#k?<@+s&aa;q0iC#K0z)YUPwP$0%)nju1qrxPmk$dz0g{kbGL^cPAp<{rf39xaG6!63E7~RE z3sFPB=Vm95?QB^SRE|w)ttSLP;%w%4?Bm$jSn%1JRRlj$EjIc>y=Tc{jf7rE{^E3} zBNG(BTlhnphB9#8m8|Q;<@JOHvDrkeU^ZF{)`hN3X3G-F1qt=Mes*Q3nx^2EP0>H@ z3~X%fFLt95gMy@MJz@+Qe!A^@YvWIg4vT}YfLS0l96f@0==4_dMNh0?JpENP2Z;qp z(l-IpBEL6c()Z1cSOJR;2iQHc($RMVu;<#yV)-|9{2xEwx(+mRCoVs@oGN|(HY~{_ zykTUi`}s9oO=Ty_$ZV+gwLIC5u~r%~aGzZm8dWg#(}YxJ0>rM(FhXytSa1Zq!7N*8 z;IgL$^wcQ^eRVVCRW4q^zKsc^|fA|kP%mhcx<(R)x# zTo+ML2m-$GrnzQjh0&#~uxA`*6y0MVXM#_FVo|GBFiXM@mLaIj4~tLL)z$U&hhIp9 zfmaXMRZD<%PDa1(xu7uB8^acS2was?-NJlWD=Kt`CA6s|s2x;!84!-%oT;q~Xt1sh zT%r1#1YHqYUqDB4_wm*u!4QU*IMFK2ghW5M^%G}wD74tFQ`Tx$S@)2epK`-Un4wT{I-2n0%6pBVTZF~90=YQ*Cn2d z5}^N=Yzw-%Twr_wHv!aiz!q})ZpmHM#|ThT9MoG zJl`nCnYOsNzENt0d#(eKD|RA@khnDXbWN)_Fl^14IHp-00@(zc7 zc>ME@TeHR)oM~Cx1^)K!?AMe0pnda=vtREYey_-K=`!y>09Mo6me0< zCg(9joKdTJn0a}~$Oaf-^|igMhSv`WRS|?MVQ=HYZV^AQ6V3y5vbRjgx%@98!@gkw zu3frVL2HiO*Uq_~8%;ZaJr)>BrPNJd>yqgjIpKy}b%_eOW{wKK*)8IK8579#F@R<*tKGBu zN07S&8E0#F+lCR7jhFfC_;hFB;t!8fm?3M%LfW}sVu1BBl=&d8JF}{QE8O-XM+$q+9AHl zr@90QH3F|A*b9wl+R$#A1Q=qtmEvV(ixQovI;rDsFp|;YAh*N4!qzt&rujJgR_`*; zrnMw%Sa0WP3=)Lt8Na1Gwu{3~8T`B9!lP-y1oPKl74ZBPl0}whK}ZQAh8!dS5x>C* zh(L)$JM4DhT{f+wdg=jh?|mZJS3Qk+MAUv;rt7D&4+CXH*ON(Gk`w@k{9!)iY)!fHJ*kp|*6AcjT>|t1~EclO(x$c(_(b$j*7TTX`Z?^MTl9 zolO3Uc4M*pz>(y4hAVMT%2yZox%#OccsvGMsiVK%$Iasdft7a-9Srh6YB?+BKYsWi zWYzMhQUeZW%vh<^xN+Wo=h>C((bF2)rAF5mRLJ1L_^dQnD2Z4imZOV!WfUOyu@Z3u z_9YZ|!Or`R+j;272;J84>w7963bH=qYFP+CX^eCr8HXlydP#x4lveLG)1YMlcQ^$% zA&8R_G6)5@&|2A-j3r{t_Rt=WnKF?&aHMd6G{Poj+4W0E!9s z9(l75<}A=*Z=;z|jkkx2dnJ}=^R=WVt3ubHZqkTyfwIFY&!9{x_nCV?SY==mKgu+aT{) z$E8SpeR^;2I??sjw(+Tqps|h*ezGQY77sbt*w{EZ0rf9BVPXszTlU9qa=Q5E7V>-J z;CqaoDEZxMqX`3!dl)^J2HyQ6^8#s5)=nU*?}P#}%`dO(?);LV zgu_!f`TalKGP`sYB&yjbWh7NZ2F0ctR;YQfDT{oa^= zU`Oc;cwqhhe0Il+HTxCJRC`C#1NQ3)*EZ5@pdJev+@P=FHWQ7{XpmBtrTKZ54@0c! zb(KjxKJOMVoAg;{>Gs*B-hAR)9D$ail%X#&VD6-*W{*a?*myXjMCTse7hyoCfmyrs z%dbvLg+}wL2(_m=Q6wvv_<>Xwm>Bi=!Ja%gl22VQw1CAz|Dk3?;_od#lWD{1N0ckO z8AqudNQ{ribqwyJbmA8O!8`#99})Bj7;Q8te1*bV1H5y@7fu5@7*Je;L@8 zlL_H>B);j{A0~Br@wfSR+TCB?iwBj>2KKbXiD)xPp+s&A6iL&vE8pPA=G^@oD6Nz! zmcI6Obq9$jKZ6;5zeJs|ZC+q~nh)D3o>kkN79>BySCg`P>{Y00=0Tb>SN|z&6^-{u z!Zi!ubYU;I`32k9^mQK$e9)&rXst6oA>vKNo8Aih(WCy4Eqg0|9~MLRZc~5t_s{D= z?)ER`hn(jCDi>}-%7enVRK90`@aY%!kO!D)KBZE5&2i5lg|4#kU)o(v>{U|T_uMLw z9*uJOGtR!s2i$txX)HemtLkfOUm7_E{kf~teE6r1MKFmL{NjhP0~ynExeD5Oat=^* zW~Ny)#86Qab*QMDLCd;S@VtJUEySjrPt|ZsewATJpBF8ODJWO%ia_V-^JEmPXnT?i zEv3x|Mk&&>KJD@xQ25x=GQGC9t#N!h+Eennl6p-nrn-KyJTP*bDmeJ`1@}-)pD@o- zWsgL7BeJBKopb!{Jy5RZ$`Ktg8wcZgUZ`Ozx*tE=zCKAs^+hh$_&{YCF5`?*?Vs?QfA5CafCFC>{-c98NavB_wm!CfA8M!d%wo>^?E&Duh-3t zS9e3JUc_@{?qAy+D&n`9RCT(nw&Gc_D-)mh2`pUD%agMr6Wu-1WNWOfwEUd^BCq|C zePDsOyD_3XBi7g}Zeg0soOI71&=SQPy1`26wK`6{SGBpA z`a%mZY;HNTjm&Aj_Aa@DJdVE(_%Zj?MjiLeMByI+N%}AqUa0RO}2UaNAB*djH1 zzZT1c;eJ!zN`2B7S!W z=Z~=9jUCs_iI>G;*i7P#?K5bVnz4JO7e8Fj#Se%6+f=EIB&E%Z+iNQlu4SX{{_=T! zqiqw^oTe#vQ`bhMye;RF7_W)zBtcKLniQiv_DRz+E|RI|U-M2gq+#|M<{3v;Ghu%f zuw#{YcX7;ea)jI(2v)6Y0RdL_Nj)pefL??BiwBHKuwUQXpC0|11@)JP8L}rHvfGcY z%CAK|Nmu9YfByP@K3hd;Xt1fbpA^nxYpQy|<4?djx6WPV)H> z;XLO?Dyv9OP$eUi9w{t)Re5EoAk+26a&!?!ExERTO=1z#k{pHIZEZv3$p#&cmuOw& zQgWk`%|9p~c(XOPmp6P?mw%1n7OHDvo&obOsike$u|PiWEP{$%)EiYamj zcQe6;Ree%pY#}Tn#y+iBX%6oq-6>2%1h{@886Xv_TUNAI8u+y3t0+}?w!_rkKg`b} zYsH6m)Z~#*-K{Ik*{E0iOh`PUW9 z8)E{!{YYtEc|UMCuwfgfNY8X(aA1}F7fCeNJ;%vbtS33$q!-cUHcWlNYXDvLzhL`Z z@kIQ}kV%34XD{rN_m!2|{hwN%=17hc=X&KhwJBJCZa{z$m$CA|)PcNm*64Czj?hb)Lz-;SW%b|r+>+-ZH~<5bDk}g0E43fa(RGy0X*}#py`g+u+}_YrF|%YWC_bJy z04B(TPn64LYqMqgM|ELQaj}}D8iTlOjRENbdg|3@EPcc_pprkjb3M* zGr}vNRQz4u#Bg9+)>i5VzF(E_UF>hre}6AvA)@{KAFw|ZL%!v)lm+!vh*CHMBZq*H z(8KQTX%Nv?=snT=83B@_7o&|AfE%Z@xBsWZu>zn{w}i=3ySe#rmtFC ztKw9o+>K34J_HOJDOW4p-soHYsfu0O0LKQEU@-0d+~9opa`%_A3%kLM!jgN?pgo(_ zak0rtZI7KOfrOKRY^bB7+Lb1(Oj+*6X3DPDKDQAARkFnkFWXm@BnR+G3-Y~eu&M+k zeuh>$vFqhNbPRbvZ_I?>$&`}UEt@cq^Blojrtfa9O0oD9A{6vAe&L3O|9wW`Vw(0HL%=-;Fx@ylOzzFTv&!nJf zA8Zu9dS{P*P$r+)FlN)K%}+~`2vpL(SiOF7cGP~ahSKD<&D~*+wCK%V#&Kp7b8~Y; z7^;Z}Y+pJ}$~$==WkfoEG4486sO=BfB>x#WwxGR{TUxi1^DK@_qSqbe|C!Z(mU()1 zGCn@;BxY`H{mbv23unEG(pG`_sFAn=-}5oCkxwsyis!Dtsh7%affd9jU$fVJ_v|qx zV)-Fpho%cCi9dsMgZ%`6f?xJV6>F~gy=1jxch{@sI2pgIT6BlXi!V68X_I|9MecYr zz{I3|hoyZ7{F>z^)^~EX)1a_t=w$!YPxrw}zRrCW(}uln6c9 z04YTu!s+iQdHMvlv)@rt(FUp+d)_S6WVLO7H-QtrXnbIPo|>BaT3z3QlksIr-S&ww z+g<2Ku@M{LFQCIiw~X!l#jNnNCsEO)OUT4-vKIS{7@ixNN9%6td3OIdE{($g>6 z1~2cKIS)eKznT8&aBU*+GuVFu>b9e4Eb*;J;O*`K#>#~h<#=Bh%r`b;xj3*Zp`on? z4@%3RvnqPPMtF=LG#};Q{018WtL%wSr+)tUaZ%U~u`=tt@r) z+reG&ZpQXMz3uXtV}@fcsM#*<`~mJ`(}BBMA&mDq$Z~;(n2$~m zHXd{f(}Qz{-uO#~{+p(~`n~)W%`Q}bK?3+9qIBId5MszZ`RgMWJsPH18@opJGmtpg zbL1)ZFuO#Fz+OL$6j?HWh^1VgGyfCO_U4T4e*qlRpB zUL&vywEvy(+|4=}nmvq5^+lEfCG6M%wRj-`0ol|2iNAmtQzT0iXl5l;zxB7Mbyc46 zMmc5xdfb?O?9AbRka>Ec;yS`>B?{HSD^pbl!K_c@q?B^lP+PbYUklA8kg5IlZ1ue< zqa+?fH9@UE9Db<1 zCo+-hmYAm+ED$)Jm#2z-N^XlmZ2$VTdBxpCgeB6J`@i#)-J+#HdkE4)Iulb1(Y;rP z{DIMp2h(nL`dISL_R9_?8>fH9sFzKEk&({M8WWeKQAXD7qh(!E4cQj742eO7?&*mn_T2PQdo|b8ilM=&WrN7;g9NO~M3~$kkVyw@W8FNt z*`IzUyyfa+NX14TbBEhndk==@>Z@`xOF#15$gwxf(N7h|q_S1nGC_&{d(*WkZk)DZ3$%vCn)-v2XSH>_j`9MQTHihlpXW5km_SxFXz1#L& zRs;;DAny$jL>h2tMHR=GY=^YlVm+48<&Wma-E`-_=E-(TcHrP3FXac|BIvt#{$(@5 z?)89fiDVL8AV4b>!pFR7}%ohzxR}61-5L1g0#dw5$Skln@W5yD> zqxdm+5quCR843vrZ5=D3ohuzr>;sy#xth*0M5&VoaiCh4wmlaSw;Kze zzfJBjj3jyE$hl@Ls!yJ0Ze~#NdmB(!B$&$c;@6(;)*I4rVSc+j;p?yJ2YdkV2UHs@ zc>Imt-!lPDK%B~y{;81p~h)`?C^n|DbnB~w7@5ST;^tqu~#F?R6>z< zn7MovrU8^1@Lqs34$it0&{|(V`O{A(CoXPr`Ks(OKPIm#4Xp^<9SoeJ<5lwW^OM7F zrAk6+uflt%*YX8JhsYc#6mOxLlb`;b92zPUv_!522Q2k9bk2jQ=4L?tz4wph0L+eh z{`Uf90w~`O>Z1OOJx;#jwOr$-IcXh@*`!Zyzh&D1J($=JMyaIOHtr8h-eAA3(*+Fh zSkJ?1>X1wI45Kl5s!js(;yD2LvRr?55fj&(e@>dm1SiGDh-+l)g?-rDetiAC7%N$L zXSGEWK%wzdB`fz>*%wu^$?IzsaLVO)cB`P@m9p7;gwW$ALbj)h;#5&JD>(Q1^5EdNOw69PiOE;J^xlT; z87yc6Bs@O5SdAjBT{1gprn~M|6Z0Ww3T-D#5ow$JpGOsA(;=+nS6itb6EJ}fmQ*7> znSRfK<$&8qAl3p~_-fFKLUk`O1EPPif7AxMkoUSkkKzCFVaNAfu2S?4#9i4z!#&Y- zVayDLGJ2mlJO~wQ3d=cH@=4mTtJJY4tKTy5t>Ub0H<_i-&=VU+u7^ygF@cYB*Cz;d z`KD)??baH^L;*jV3pB0jR@xM#eVQ1=F=#;tzXtxs^fWudJzh5jro6BPt zsdM&6|)0<7mBYYSJNZif_>^z)5Y^N-N>}>}}M%L`1xWsy$aOjc66WFql>1 zVaiDpUm3!;=9+8|YDAyNVyWfDL8Ju#&qOmSE~gp@>nL{#QbfLP8t8jYy#yCQyihAj z_)7tt;ae(hQ_6Box;AHEA0|T^FdH6-IHzRVyR51f)6u>c&U;K@cZhXMh#^Jm6^9bR z@VbX(wVUG2Ra6ln$S#x*(N#zaC3Ql_4DsD!+e4Sg)#v3Klu>+dQ3pEy^2+S@s5~oO zVr+b@H#5^@QXG^7&0_C;NX=u8tP275qC?RPQ7oTeYfX(SM4|fWTxSM^X#`rHVKIm; z*-XPR?|VPZgI~ZJj()sZAYA9PLlcMLt>Zu64g28u37v98-nl{HKVeMR$aot}&BaBG zzPy*{{oLK?>dxCxdZ+ZI7?XSw$(JMv(iQYWrZOs)fpzfc>$@s}QYxc6*E`T_ZM!M0 z|4i-$Al!K0%wqS|VUgVh&snbh&pvo89~b5`&I2nZgj2lBq$&cyxc=t@=-EsVAK&cG zm)KYMTt6@wZXF)lf=168k;Z$II(d_<+*S=NtGQ$2r@(<8wmDQ`C5d)23H?ja#gA5e z^vPvxt-xdqjg`rwuT)T3{3~&Ad0)~w-7=pO{p~c{pRWQl##8Zl)JaSv!iGupB3=x= zam1%}Q=dITcWlcOmdhbb-5nqno|1C#ksB}RrVighH{c!b;Tyq)V8nIe zlD=Gu0AAfRmWD`pi>vQaRR{r6ajd^}zw|1BRJ(!2y^UAounQl;eW*zSm)bemtAy60 z3aY?7#C)k$kvs(zz;hi89tB}v)PFj=NkN*xc`2ENHU*01sXXg-Enyti7N%aBy#|JR zEEBHRW)OFj5OBzGVgC>&O-@6Kf}cah7U4c4PJ!HI<|H1>O8Q0laEi?5Q*~&(7_&Ip zWKVi&!|gutj>AeO)+_Oag3?%~cbj?jE=}1p4@G z7AKs%{5Ees&+d?I@YH}xm@U(G%D?_N0Xf84d)JAoi?oqn2-#` z8!L<%*Q?(slyZiNZMd8phu_fK$Aa4*{dfB}nMKP?lM0t`=qTh~1BKm$TBL2O|F0a`cYjy22tiOWbWfG?`B=fz z>u4_;m0Y}v82j^N^O|hsA=Y=SB2zz=nM*V!NTMgv@Q*k#XTD+@krl1$%(;Sx*H?7h zyeWx2RJ2BA%c%4+%*vu)XT*(-%ZKJ88*Az4~); z<}}x@fiuXA80r0FmGN`I91?mDiqJj$1X|JT8??ey36fwgry)|&U!YF?HvKrZm4;q? zBk-yEo)+r-+xWwCd*8=@>8%3HORll&a)u;l=@F~#?=!Z=n@Xkl629K@Abj%8`Tj|4 z1SD%dv`PKHdq-!G-gh!fe(|AxE_sqi8XiNmx!P6#L8 z@br>YyhIdh>^Lf+Q}kNJjdaa&Ld*<|x7sBb8IecYVwf*b5j$*UHQg)cko3-N&VpC8 za-P0x_a2{*meCbGHFBMq!{UdNyxd3m96!mrr!;|A6A4I!s zNQL*Z@~}o>3L(tXM@>tw#_3sZN!Z!E>WfH-hIUJy3`AdP(#<>TnSFPh`F<5HmNXxl zc}+#T2PKK-1frMRHI)2qWS7%OcI=Fd@2m1>@tacyZA)6CS%{k-l_W2d;!{~)jnpX_grw6|` z;eQ+t+Jhp3ch0+o&aa(`6XgeQn%20Tym-p_sUievoqqQyc>Uhc7%6I@qkzId{*^}( zPNn;VKek2?=5^q0D(;F8`6)Av%qMnnwG_&RUV%k=HmB#xd}g7ZQoC`PJIULHC!nxG zy_JHO!1@{Yz!)t4Kl8xb5B#S9$*YCCiS+=VoEC9RMFwf*eQvnwnl*aejP_ zAcYq8$KzVicC?(8*~;dsllXuJ62o1|B1)7wRH3_yt!T&ofPuF#9}$-OVU1*Ue;`qt ztbzXI>l?oIvn^h-Z11ni+Uv2xVPUmlj$gM)@2q{_Y#4sYpR#C0kv-KAJ8S%{1_ zyUT%#$4Qe?*fQU}yOx}uQ8sMziP}<>N((O6Plsb+82EILx2LjLD^GjaGYCwlP<*>r}8VT(*76Wt zueqzbkas59@O)z3*6}TUHPOc^DsiNRrQz`%p%DxDi6Pfx8C731v%d7Qv6CZ&D(831 zci3{Gl=ROP?UlvY_RA^g*gf#8-Ea7H#Mm4b3px+0e|}jP)>tH#Xner*@5L3aUzW}B zzF~3OKG_g&Gm9^wB zQorG=qMi!+GUyoS;uz_BQG{4kMiiU`I`wo@F%>=|ocH{OHjDvAt^LYVJQ~VkA@Yn1 z7!7|x%lQv!FM`0 zvVCia7*V29IdKo)?w3oP9rPX@73arX+b7d`kH#b=w`D_FEA)|SG}OB)N+g~ha6Gvb ziQ*$Ek5-EklDq0Sc4-*;N21L-=d^8vnIw`lCN!!8B?Bv<;YAd>syFc>9GXf3{@4S< zQ74oS9?ZIV%(CtA%s=yDWp;(z?1a#krEIb^-!b)5QmYtdz0rmu1&&bl8vl%HUEX3P z%SV~}AzCXVX7`0V?j6Te)xNug&3`erb>Qdk@7p#&544EwBBjyh@c#3^+Qg_=Bu=m} z%`md`b#9NhPpPRx4GhVtC)0oYwSsNu_%C9xYJ^THPZ~mt&lW3H_(ChB_gry)pjUc) zpYaY-rN@T6hl+^v&R3*v4;Yo$&Mh2k{)IdtZ>lZ ziSJJ((GmuhLyzcae?lhjSljz}*J$oxOb4w%w6V(Y4}7b76giLW484W^8=d%ATJ8~z zz9Xr_OMI5GR4ijZs41*FvNzb`d4t||>A-ToT^rnCGvcwZfM(A*B76)S@_JIK!; zSZ}|xu-NLL9Q#Bt$k)|z&i>`8aQPW{wh5m1kiLUr`5&eqQtq4j@|jA(wtJ+!5OWE@ zx*~<74kDn1EU=~tb9Mzx%1JKN2HEf<&C3<2f{)zZ%v_Xc`MqGD zGfevF&uMJk2FQ;y2=s3;1ANDJfobGcyiIFPejOh2Hkt0z z#HR;OTMmkz`V9+6-NQZ|mRYmxKOT}*#V z!*p{Y9|cv?l<^pc>E^-0k@5TpCg=Bbi2?a=ZhV?5GZ{4IotcTe%1(#k=Qj?Wa9C#7 zV{WcA0{!Ab8iEH=zt))z?GAt$>&XiUwR&vHpY?-9lpJes(N=}uT4DwuS7~XnXlT!! z1|QjbFRY|hnfVNJ;EZe>79kUl4XUglWT+WSbLPi~Z;0Ys!{{#1+hZI+(}y>{&&-^t zwtv5r8bT9a_KdTGJsQV(OtJLfh8X@`m=`Ti$n3j!?t?8uEpgs+;6EXO>-!GruGURJvu~`u_b1#I3TqAb_UKt2kn&V1J_>=KLWyay0VEVu zQklTx++0Q$zD9kcdF#fbL7t<(7z0t7hri`PSv^3|Ta8wpg}X#D1v!OD^o;Q1*%9o( zhrF%qH^6u>TZpW63L`X*7=vvC&d=6AnZA&@h1!fUR!I?*A+a113_^1);#+x1Ww%Fl zhBpG0%)&~klDTi^HK;G#vHCvur6c-^-k}Lgq^A!kME#I4M)5;Y& zuMj3B>mVvmN~r}U;J0z|tuj6z;xHQuw7z&&sqJikm1W+w>>`?$n!OY*wVI{Yy-E(t zmB;<@029G#pXD4~4QO#Q!ogJe?ohGEt$;7~yx; zWu{t0wYNw%(jV3Tg-eHaUd~*{c-YF}*qO$&9LnFE3ujrntoDY-35ZARjhTOP$$%~m z7|EWBwf&Cx_qo>JeP%4MKhFDlA(?)|JRV8n_K!p;=Q*+Da*&_^>gL`l$T{FcWPX4F!k^Ym~ zQdFm+&`zjAE;o!c!0>*kw1%)TxcWegZZZQw=1JO?q#D8h2|Y|M8hYj$~!Aj0Gf0>U4|_ zw$NDzrJ&2qpH4Lv#Y|$G-zGdIdid_)R_odF*$t6r{hCK7*lhWB@6*5I&sqA3IX9*I z(cjj`;S_JU#)(pjUn%NdRohZvuaUPSGXNm9tmaV`21LRX0K|P!J2_lkz4h;uW=x~O zN!nga&_^lh7u#?Ud7xqq>n)NFBZ?yujD9F`@!_qBf0csFJGA<-!el~=MQy*`E^ zqeGpEXmtJgHbTM>Y9mC%@kQe#6mk!!(1OmstnBNjo(qYk*H=Yh!`@VBlOE~QQ_SgE z(CDaf?3dX->q)nVx2C52KJTwRTQq!ih)M9`%xHbg&& zAxNaE2i6*~zH@%cV`KU+3TZu$OmTY7yf5U(KrJ{c9e=||LB*JsHQU?6<9b=ch>Lj7 zF~EcK_Hul0yfR<2Bt7~o%?=g=T8&Q^YX-OiXKXn@2Cj?2EN@%cySJgW;nn zY9kM9orZe<^Ru#hWPv>=^$M%x3h_MW#FeudInbps~h;7E&!Zh-yil#B-1map@*q%Y2Nl zgDUzUyj+><*ma>v#YoVRb#cuMByh)5|F{vK0{8S$Uy{spH7xP0k z$B_{3DY>3453@Om)+1{6KX03!_3gDTvW(7`B9-#&0#;x==yJF4Ap|58xkmjZZV4Uy zqtRzkG=diBUz!l}pCo$66Vu_`T%IjH-rja&9@<`y`tXIxHmLr(-YGHWs@0_fxI-e6 z4+`}mg2Hq>4;meL*qZHZ zC{X$~(XyWW&JG%nVgs9hD5=N8!)hEyZfMgzINEy$^FwH3n4k>j`x60wopX{baoS8w z0IC6)h|#zc^dI~+L$1ME7zk>cCF0vcqHsx4$$Dw|+30h<7+G?^$gsKP< zzb!Yc6yGK{$qM##Q_d#_47i62)hnjRg&^BJ5HmjnX!uQx-@*;FnvLIxJyKMuhNeWrv-lVQbAo5tM7V%*D{~HMZ&hc&Ss1|5B%mR4IF@g_;AOI<+^ejq6$NKkcTJ}$TuUcXew^sqRk z08+*&%AFAGPJB+(pdV)2zk@PFiFX;r(JtJ(jMUZdT`0-8w-8gWtflnet8jazxHK%# zf@7_dYe&CVwt9t7a#-gr$9%u zY4}071g4xyk(Il?Kh?`inhzTHx}YMfB{Ax?h4c}I)L_q67gH|+<3xb>0qIkK3NXZA zS@-wv-=r@~=2Ph#l23>|6w{!zHT)sM%r%1CGa$W6k@k7&m%Hm@qKMz*2wsHWYOivp zO3Zz&z3HUIVZ%n`c(wkwM&n`rPR8lfarvTv-=Z&V8PcbQAyT``((Y4N%Ah=ZaDToP zsgmR2@R%sGCb8ZFO?&0+Iio&AepcSlFk~@sO0sd;t_{^DMjXBnv%t|bwx__#E-cyH z5vP3B!32i2c&NUrY-B83%ux-4!$Mme7P_$HREwRB0w52`)Q16JLn2?F{O>4{rM1Po<1VTfKRJ@6qNunSdH~+gN!p9=RW2X} zrYxcfo)e`xKmH{#>$yO0Jj6f(?W4Tq>fmgEku>FG0~O@7{qVe4S(P1qhti5KQ!#cL zd=6UXj*qaegT2*N-$XAfP_bbi&oq*{MHSr@5+DhQ-s_qwzgDbI;~ZR3;81!E?m&x& zzg+Y&=IJke6Yn%l!}B};Lz>^y;G^K?(a^O+8BOUimh%JdvsK5Zi5eswYRIeK1)0XAO-caZe^}C?i%x$x~Ntc z4TmJH9i%d989%RA)wg0%4H|518Ve z{T2PPd)QAsN$ahjMy6zAaSrU!k2cghx}2!2h=4B^7XMR;XOL)+Qn|S^{Mhho$wHw% ztC;ijhVZ8n9YZ!HEf!&gj+KT6|HJn{prehS2bS}BQj&+2;o{U&0j8K;=ScmukYf*c*Rm{gL z?}SrESFt&~Oy#bz8FzOkp`ZvA6P^9`h8-=1lDz_>4?=`#1*J9{2%&4t6Vo%|yftGN zQF?;*=LOu+Mr%N+$&q)1-Z5E-{Pz++f-YVny!Mg%S=s5Cr~(&9%9faunC`9(wNnRD z@0!j8-rzX(AKY4go^pY9_)=+}Ig^D~x;G-et@^7*e&Jeyy1#5(lTPDBVrJbrnSj%1Mvk8M-OA?~U7-+F# zeR>9G{ULvEB6Ju7J$20Q2$pE4Z!QlcN2O|i;OCY7ENtaa+N~`=+?Ohs)}tJM>sLD} zNaO=%Mr%6N4}c(`+W#&RcKw7ViCgU-xBvO@QrS>yk3UHGMjjkId z!V#U_*->+^K7ZeOX|sOoRPOJ`TkD*k9d3%wYLu!N{1d(cTX89U{opMfT0NWQ$+t<|>sW>}e^_YN(pIbgxRdJBkGqs8N0PU7)XhY3wtZ@MjNf@kKPd&anCv)ESajDN(~@y zto(FQG}{H>OwPLPearDk@I7U6lOZ;}B(eb+y#pKaA0*vS9$f3sN#fet>RHJ^@FrEY zRkcgRTnX#P+b)uS=(|qfi>jimL~G45TNtht#4~tvz-sP(%G`rp9m$TG z+!JncsUX*A8jhM;Hk@k}y8=spAv@-}U}z?;qtfDHe#9@ew%^V*`-W6SnbWZ}iF$?3Wby%6`rWlS zI{Tk{zc9Kl5D}r@Q=*CY?tWIMql5bupFlMTvIQq zYuSSE0ZjV`&1`?4Y(n-H3+N%iaz7Q`9CPf@oksBsywVrRsUjSf_>&FRD zL=QnsXg~UOXk%1XI&KQj;_gzLrfN5xM463te`N}AiiV1PX=}KC{#~T6&w|AOqwQ(? z;GFH|1!keYxK!+;NAA{|Mye)tbH+y*aj{mazLY5H*q^F~q;z7XtyCvVP+nsR^D4HW zTWg`?UkpEB1Jb>?A1)aVc4zO+$JBAO&tsNPwSreAhKHeg0@EndUIEHTsnLQZU|M6K z=$OkBi+hAAk;D9ib;;`F9_4*D){UpJZyQb8Z-2xhmjgHMieIKx7ffYP&xgM(wX%Fi z4}mck5EfBFu5O6TR05Qa9furM-9akWoDG>cgM7&__To+EL@$mX@m;X=nRH0;4@Cms zEoZln#b4|v*&{k4Fd;m+{@$YOC`{wz{y#xPQIOM4KrQOJ#N`K6KR6k^?XBm&w^&0H1vSmhXMXh7h>#7^9?=~CnRsBY-6=!7}1C3NH zrX_X#J`=Y%{U4;-Q3qy=P4@e@nUkNv?MWEY+-+k7B)ejNLn$JoBd+?;dO=x8yOPLuMxt?sU%(IF9n~ zZ0H)&Zz?r^?cyNmb*mo4j+KXBS+jg5J)8}_es^dP8goPYIH)9(Sh^0^?B>jgP^s@$ zME+RSTI?vG421}Bd=05DOEE$JEpX9Tybf;`SLQu#u(+qCkUGE*2y;f+= z?EN9lZVV86@OQxdc@N+Ktrq4-d*pZ0-P&Usl3nz-w5GY zK~l-Wbe!BQVkR`7_vA(yVor8HnXPtSJVKvAuS(cXf@k69e{)k)89vurc*($GhNO-S zf^@a?bq-X5GP$~egAVU`Pw6un=54vg{a3@?t?Eu$Fs#YTI00u3%Y-_D!G_e%{Azz{ z- zN+K^~j8FxOp%KyCtE}cGFb#>G%UYETtfF*K;O`~JaqY05`7os{!k@6vg3u2wW~IY zm0>O^pnT#>;#7z48d>~mYJF-QRFeQ1N$c78l33P=`|W+%lNaF=%)`lsx9qoHQ(Wnp z>6$7u31mnSgo%mjXka>4ayOd2HIC{xza-YUlq_SM2J4GSaUHjX$ULnzV6R<~WceuP z>a?jZ_3@;Xye!Qhq$}y&piih!NF3*!>Rthby?NjrI@3G7IXMSC8G9GK5!@gad`w!! z1uM{8v0~QA9qvyq8&v*siHs-vcL$sV(iHlk6dp&mec$9E0mDzsO#(AhPu|n|n-F50 z_;PV5U1hG)II`?RBJ{eg7sy#%w?@ZEMY)uszs-)D{0msc^a$w8wG`T#=RkMf+VX5W z`z|il1Ixc_@s6Da&tfhvoU^Z76Eks86&f!2v9cM7`qN=k9YY0NJ#cf)2GL0GAoDc_ zK@LW{)Kmc2?zQqxL=1P+v&jF41U-pBT=DoW2xYh3+;TM2o;*n;eY;%GlQ<+DD8}tY z9xFjYOdRmU?PuwylIz$xdy|($#t#rqwyqV_+G(#*JTWbGCB4HC+RB#P4c6k^O9(Gr zY2UuyKoGd`oW}7fXkQT@ktk)$$dA&H|HZPeMpOUq!v<{-HSQze=<#hcRn%+qG+E5 zz2gGsikCpmjaNQa^Pinf#ejByVzbzr;?RwCVJF#axWOcKAe@$*V!V+<;MoURPwC3y zB&}l!b(>K|64UIXdI_g6Qij~Ak4`FOIy z*CNYbB9tBWM&y0amG_63^1b=Qdf&Ya=uv)MNu>wK&lkj`xRgxmGxUx0r5fJM{ziqA z+%89}y*a4*8V2Cu1CRr>t6A$T`vPg|?fxMk19RRRANE$*W%Y8iWT4eOdh?n=4gf#) zuQXzBuG`@|MrX=1~jDN)+7 z4Y!LXE2d)WE9pNqPz#{6=!;*|o@my)+s2@|>a*)yx7vxS>#U}S%z7pl^#R6~Eo%KM~m@iUzcVp}; zBJ|$8QWpRsxHj=+oPN4ntZ~w&sEPJz8L9V$6v|0n+^Var*7A6?u_=#-UWtKh$!CWB zny~t`?v`B}e$9F(bj#Bi}= zB3)S++^WI&5Nt@E8LR9a7yL%0^NEzkmgCh@sXGaj(|waZU_PG!(QBz-aW1|l&Oa=^ zmz-h7Op$~{kK@hRL{eYowent}rPF>TJ4dh*V3Aq9!1%2&;54_hYTex1vME#EX`r06 zv82ch3X*43FkABga(itv`|b-tY+JBhB<@Jb;WHp3Z`}IX`s8Xq6HMk`1 zN@#SJ^8|G!oJ59Z3BC#E49)14bi#*~4bKbHkSy@TlIxi<+d5R-4zrYfYSKXJ;;PrU zR9nEzBEv$y!UERq+g~A(8mNKC+GgWBTdB&z zG~|qT9Jvx0g=N}adtZ`6Jko0_YA3TPAy<7D#U0gKS5hU5@wv%I-ackpF;Mzx$Es%caN-$PlU09dgLLV=4Su_-Ij2cr5MO&%s0fU#*4# zG-5&shQLx2iQ#Bym$vY7M0JI2phRQxBiWVgZhm&FtM|3qn5=p4!+N_)ME2m*h)M7G zyFx$b?Ub_#HwI^NrzBg9#dd&io6 zu!|Z>Dq{-Z9v^>G83hEDVr9AB-7r%}(18EhM2B*NW#~fo%gUICoO+gTGHFqy6~)(X z&8$e;(T{6RapD=tw&d=RMU}wWh09i|O7)tjIYLQ*PAaH3aRWElQ2j=OraR z3}L(1%A}2AQcLt_vp~D*v7r&>L8&L*y~-6g%`d~+m@HhRV1kqsYnGVb&aONe)Y6mt zHm74Tvde+anIk;CksD&|$>Pe%a5;)-8V&eoPaF04A(O7fv?u9gH5t5=bgxKlots0| z%EQ|>;UrhK-0!$$F$nn@O^Ar=T*>UJi2}I$Qu%EdyB6Dw7sd>~*y}*z>hh;-pg2FmARO-gWZ80C6h}v?m9UZ;Lc8!$o0c z0`=KZh5`>z34IxMHg8?i4?(uEH+SRki(!jj#gAwsiUiS#J@;-`UFSNFK-6CR1dXTL z%T4GSd0iVbapp7wIhJI89vP1`X+rDewvrNuc21%k`b2QIk;Bif3VY`xtv*6H`{p{_G|yU$u_Oq&*jaFRQmZwAB24^?5urr%N79iY9IfjlotOzP^201qAE7T5(gDfl@Ln-f)V8+-rgmsHliXJd(k0*abUP@b0l+imHRu+EN z-xb7c5jfw-acf(O-~FM^YsILvA;C>En{SM66Z`WW-L9@0RBT>)*=1iFr|t|Y-+V>? zV$cA&#!7)*iylmR5w7RaL%;MT)N%zMO+uUCt^4NVU6Rc&j$GCxVe#u7bo=NiL3iH} zwWr^np2({KW**lC!Hc-+F!1~Aw?KvgL|A25srn5k5>ya*I6Goed4MuB(S`{kUuUHn zxub$Ta?`T6F=r{A?aIp2(|u>>I(U@;xv-7{m}dH{J6}PXawS45xMmaOuiK=#*m|@) zpz%y5Xzfi0{K4@5Uno zqmjJxOu!&Umj4?~n^U@<$OrY}u$H?#Ii=~VAbb&B|6(Y_t0HmM=CP#&Ob4@6COb-k&yzQ7;YHwjVx| z+D%U2B~6=wTo+^JjDROfd9X2EMTGI=Qixj}e4Rl9KQ?*q_p8L_!e7<1zxC&oKR(8D zc<$*&NK=2r|K5=#@Svn%!48T&uOnz^lU^3q%|G6>9mttbcPYrKBAbnwEO}c2x|2K} zNnX>=RO}YlivO}#I2yyYD+`F?lEom)=TNRBnYKA@xeMPk4v%Myjj$q0x{ihZ(VMPHG73+I<^JWUpxEe%41&J94r?cM^qM6!#h% z2}HAEil2G%ZO0x>l8Mp)2}H?G7S8p;R0xtnOtXf#|JcHG*Yw0eE*-#o)si6d2- zp;usIBKhr4;mkCZ*Ko$B%b^?rcsw4bF@JLpzr@5bF8+d<@s8_x1#m&26M@WnX6A9- zcli{`6stti3Hm#N(3r#V#tG*HW5Ew8zBwO3YCh}Y+XC2O-iW|%>!-D~Tz^kXzpFjv zL`Z80)Z4)jKX;0gQyI8AW?HXEku2^S31pBdXM1#~(?#sflK0M#RiX0-SL@xE8S$y^){NVo9RzCubhXL6CKk?pM32q0;%S;Sm7s(DZKnV=l`p&cWi0CjR&)xNz z&=-zd-NFby@X?DH>Y&rkumGa`G}R#!EfZVGVv>P|_YI79fSg8ps@zQQQ28IEsf~U1 zf5km{Jk;ISUrP)LGa(Y1p=l->OR`R4GQwjIEfSNaC?ac?MV+;h%7Up?r91VAx^qM5cZvdUosvAUJV{Dsou{kY)6&wiUR6yH&>~<_ zS21sU--Ok_4QjRnl940K%GtoEADk&RYyiiBJ>kUG$mW(+hhQQ=VB||1 zY$G@E{l$}k5oEGWaG{()PP!QI4HD8oFgzY!b2ac11*i0@QrES#T_%>4U4>>qg5{&# zh=9J+dOVAErImy6BWRmpv`EB3&-OTKF2Y$Cg&Eq3u+BZ&%Qm!pDD{V`zA~lopHTdB0z(B7WU_a2{(z!!`JSnzf z!y-51JenS%-H+*(?a8&jq=wVvi=MXS!Qtsnz~EeiEda3Yhd+I8s;v$X7>C&+R4rXW z{hE@PIb$nX0&TtJZbMCAKb+kOBSU!za6eJnv*KM_(}`u+NbW{tk8B_57g7UUB(!xt ztsUpj24^xD4SUcCxWq5mMSTWk|C3aZbozU%)i;Gxk#+gO6rd0MO0pWtX zMz$EUDevKc4u>0b?J|u)HrWUjYI^Zc^0X{;Y23Ww#m{?em)L3wfyjFtSRZeb+ z3o8a*`cH)^Nhg|>f)VIA=?ydwikzvsOHOTBDrt2^TXc>C86bx3!P9dW{7N}B9Gj9| z*ItyB^jqc6%kyquGF+eRU9x)YU*mu%(0jtnXZF4sD4I0dV8fdf3vxxkh0G)Y5_G9q zd6ViZ$4mcEdqFMHN4hRa;-Xfb8A^buglePZJj*r;ak57QzjNpR_T^n`+b{AZf~Akh zw@1j)A_SzjZ_hOIpqGei7QO*W1jkCQR`&uATKolzY%^xx{~!wvMxR$4cI*SY`~*11 z3!9-Qc_Xv7XG$J;MakLoo6_o<`Tr-KfcqhCg!kk@buOzV;Bq$7Xfw8&3ksUTt6s*2we(quWfEKiwtZNFSnJghG6q z>QOag%u}BKUe@G`*+i)!D!Q zS$ee(fWy^5V!0#2lBHp{i^AH>;Z-x&V&_CDjAUs_$g{nE5wVRIixP!^lU^YYpIu~w zcx{pbab6S>Ee@D4{o_?scB6(W{~?{odvuCvFZXDj@90uZZ5Py+VuEK8&Fm26R!(*O9wQs0oR^-8)T= zN+TeGlilkzikw%%q83%xRF{MNcvqp>Y$UdjftBOt=FH{Tth1*lOZHPwtV%MaQ5gW^ zUHadI6~5&{29`3Gu)8ibFYx}>yDwXPkX`$c0?pRiT5X_)?8k#A*BVU*Stw2JCjb}A z8}1oICbNd6#jqMmGEIlvhQe7I!sLTTbg8#NV5>Ez`eiPhQvqIFo{d5)SN{M9zmH3D z-Il_cvH1A0Q*oDIl`U~mbW=5v|2IiPfx`Gf@e!{&EA&4fXaik6y`*0Vp3qvR#>z8NbUt6CK8hBX(o3E%;#B;m=XW;@ z#Rb;WJx)&dpb@Wp^pyxRjg6$udsum1`Pn(*C&FKudeM2{pvoHNZ7TpB<`_790A)Q! z6CUR^2u5&{4Bf9~+~n*(jCK!`VFYabs2*gAUZan+0;mmPodN_)!PCnla}G5G5o)AI z@rnT=d0@Iw+vC%Q>QsIj#MAbB5@LWqx5H8eo59bM68T8c_+qtgBgN}ixn0Wqcy{}1 z>+=C#Q=M%Bzx0!u0jOJ$E?p$vi4}{uhALoc*?clgi+FtT@>cRT(je78*lX%9$sNF; zgV9m|rie8h%7D)%JQ;bh?66c{CcAxuniUn1y&PM4ny(tk>jT=rm9^G*Z=V}xSO~rn zqV43=l}9!qm|fHZ$s?Tytb{3I(h&3ZfN8XmBIDnA%VAOS+Gjl4O;^C(Mjk5xlCyoj z$KlFFv;~tiw5&yaDRdAv2G$UQft3O4ee=C{K>(bUXt(=8Bz?s9_R;HF_~|F|7YQ1e zq0b;k;{P^LaIt2z>rs=K?Uob!Z1{})9%pM(?Kh$6Dkyuj&QSiDGqwLBga>16+{vI} z!qqIpdGqVDZ9#c8Nm7b7P@rMIwC1H*byv*rIUf(d`CJex^hI3zDoz4sg%S$u@xZ+- zVM8g2${QH5YVRC9|GezUnxN@`6!0&-%fO=O_}=tKoQLVO5$=Q`@SiTxD0AX<;zHES zIeFL&`Bw-O#IPt3x38#Qw!6orZM(^v<4#JEpd$1fZ>O@`pI#&yejS6p%(lkF{ayn% zu){rk)C0t_)&{}3{Ro!>3PhttXnR~$W!9VO@w7g8CjY;9^&t?3ct(EcT~%-I3(9zY z7tL%-=HE8?&L$gt_68&7ZaSO%yb!un<@E5dfX|n-zuoQxn$4&q%g3`SgUT(moM{a= z$yq_o8@3J!kFQHo#??kVAfPrivkUEy&{?mrsENJif08EWFML=zWHB~w(Z^us%~mWB z_4KaoY~4&<;w;^rugOM?3G+a-F_IE7bmi2kd-Xxw{m6c#(|`>7_)a0mL>pt31}78F zSq(}+Y(h`dsa0UI644C?c6KT_`uVM&-V}Gw`4aH7#rP7vOgYDNa$~VL1f4%-%&uDa zURCw>?VY8TX|jofv7GJxCwEE_Q-?^?;q@&0a8FT6Kr4ktbVV@&@YIUp442$4=;cd(of?LFuZAGoB@zNGpWw zmpikmLFwfo{U0^oVUE9%Q@wo(F|`ze4g>dDZ^7tH8?$$n@1RdbrA>=aUNP=ZF!HCq z%w;(hG#=77bZ=N87q=qd*%f0@O{Em=%jI$va<+lq>PK$LVRNP*den+h1_xA*jNbp6 zGbgwTsEBGxZecQAGSX|f8huxA4QP6vEIB1$n@vz{ETO^k{ABpE)82jiVPNHLsPsYA ztMPB8pDt0PjozcX_8qQ+$Go5#C3+z@XZWIYySWrsd(D zXPOS?#m*j8x1`zzwy@_?kNNh6W04nXZDb%?92%AW9 zqM}=ZOtW+6)N#?&PHLwUzPhU8eKpB+pxn1=vB&p;&bvQhJTD=Iu7757I2o4M*84{1 zJ~{5*;;7nmD4D98D%szk=x5vG;4H>EnP7Lv!s|Q8)X)yM@lQ*@V3FK`rU4v31Zl;Z z)|Kds$!ltRztTRNw6X#!rAXenLp9b-lhPe~U6NuIQ?#R_64!C#`PSp|6-WCoci%EP zRO)bcOk9E&f@DpVj<$Df->zL$^!hb^X>o4w*xTLmHuin3H z7e!5^O668FW^nHm&dTsW<%P!V+&8%BJQYw!ey&)ez?a}hVC9+O?RMA|VcH2|S^eSN z{=3?XH>Gz3f^c~Z*&?58?qELZf24CPxPFVKrB&e*FNAS44s+bA z-WQpOG1x46PlxE=fq-b1SQKG2_gO*j>&G3`bSqF<9v9s^Na!=w*&F{+Q&q~gC($m^ z?~YmNINLSgWBH1u6bXX4(eH!-q=ra*y|}9Cu0@NkB@&LA*d&TN$=P!CpRD$7p}WG z_lEcAn;#FWgQ9^aJ8HkPtOZ62`LJa;9~RX!rb@(!uIV?+9ka8=+0Wt?7Zn#VMNty! zaRqny=+p;e$P0UjjXHV_6JzTjT0Sfp Date: Mon, 29 Jul 2024 01:18:08 -0400 Subject: [PATCH 123/169] update include files according to include-what-you-use testing --- tools/lammps-gui/chartviewer.cpp | 6 ++++++ tools/lammps-gui/chartviewer.h | 6 ++++-- tools/lammps-gui/codeeditor.cpp | 7 +++++++ tools/lammps-gui/codeeditor.h | 12 ++++++++++-- tools/lammps-gui/fileviewer.cpp | 2 -- tools/lammps-gui/imageviewer.cpp | 14 +++++++------- tools/lammps-gui/lammpsgui.cpp | 6 ++---- tools/lammps-gui/lammpsgui.h | 1 + tools/lammps-gui/logwindow.cpp | 1 - tools/lammps-gui/main.cpp | 2 +- tools/lammps-gui/preferences.cpp | 3 ++- tools/lammps-gui/setvariables.cpp | 1 - tools/lammps-gui/slideshow.cpp | 1 - 13 files changed, 40 insertions(+), 22 deletions(-) diff --git a/tools/lammps-gui/chartviewer.cpp b/tools/lammps-gui/chartviewer.cpp index 38ea9d1f0d..afdcd2f667 100644 --- a/tools/lammps-gui/chartviewer.cpp +++ b/tools/lammps-gui/chartviewer.cpp @@ -17,6 +17,10 @@ #include #include +#include +#include +#include +#include #include #include #include @@ -29,6 +33,8 @@ #include #include #include +#include +#include #include #include diff --git a/tools/lammps-gui/chartviewer.h b/tools/lammps-gui/chartviewer.h index 42afe0a9b8..e45f64b775 100644 --- a/tools/lammps-gui/chartviewer.h +++ b/tools/lammps-gui/chartviewer.h @@ -20,6 +20,8 @@ #include class QAction; +class QCloseEvent; +class QEvent; class QMenuBar; class QMenu; namespace QtCharts { @@ -71,10 +73,10 @@ private: /* -------------------------------------------------------------------- */ -#include #include #include -#include +class QChart; +class QValueAxis; namespace QtCharts { class ChartViewer : public QChartView { diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index 37e6820452..36a811b92d 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -24,20 +24,27 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include #include #include #include #include +#include #include #include +#include +#include +#include +#include #include #include diff --git a/tools/lammps-gui/codeeditor.h b/tools/lammps-gui/codeeditor.h index 978dc41d3b..873b13e302 100644 --- a/tools/lammps-gui/codeeditor.h +++ b/tools/lammps-gui/codeeditor.h @@ -14,15 +14,23 @@ #ifndef CODEEDITOR_H #define CODEEDITOR_H -#include #include #include #include #include class QCompleter; -class QStringListModel; +class QContextMenuEvent; +class QDragEnterEvent; +class QDropEvent; +class QFont; +class QKeyEvent; +class QMimeData; +class QPaintEvent; +class QRect; +class QResizeEvent; class QShortcut; +class QWidget; class CodeEditor : public QPlainTextEdit { Q_OBJECT diff --git a/tools/lammps-gui/fileviewer.cpp b/tools/lammps-gui/fileviewer.cpp index f93039d809..e0c08c4e69 100644 --- a/tools/lammps-gui/fileviewer.cpp +++ b/tools/lammps-gui/fileviewer.cpp @@ -15,9 +15,7 @@ #include "lammpsgui.h" -#include #include -#include #include #include #include diff --git a/tools/lammps-gui/imageviewer.cpp b/tools/lammps-gui/imageviewer.cpp index 012a8681a5..5c1773a584 100644 --- a/tools/lammps-gui/imageviewer.cpp +++ b/tools/lammps-gui/imageviewer.cpp @@ -20,27 +20,27 @@ #include #include #include +#include #include +#include #include +#include #include #include #include #include -#include +#include #include -#include #include -#include +#include #include -#include #include #include #include +#include #include -#include +#include #include -#include -#include #include diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 18d4e67a2d..d42d59bca2 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -36,8 +36,6 @@ #include #include #include -#include -#include #include #include #include @@ -46,15 +44,15 @@ #include #include #include -#include #include #include +#include +#include #include #include #if defined(_OPENMP) -#include #include #endif diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index eb8618125b..29372efc1c 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "lammpswrapper.h" diff --git a/tools/lammps-gui/logwindow.cpp b/tools/lammps-gui/logwindow.cpp index 56dce35179..4527bcb0dd 100644 --- a/tools/lammps-gui/logwindow.cpp +++ b/tools/lammps-gui/logwindow.cpp @@ -17,7 +17,6 @@ #include #include -#include #include #include #include diff --git a/tools/lammps-gui/main.cpp b/tools/lammps-gui/main.cpp index d70e9d3e46..2d4b846025 100644 --- a/tools/lammps-gui/main.cpp +++ b/tools/lammps-gui/main.cpp @@ -13,8 +13,8 @@ #include "lammpsgui.h" +#include #include -#include #include #include diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index 207b68cb66..b601a9995f 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -40,7 +39,9 @@ #include #include #include +#if defined(_OPENMP) #include +#endif #include #if defined(_OPENMP) diff --git a/tools/lammps-gui/setvariables.cpp b/tools/lammps-gui/setvariables.cpp index db5eb1cdea..6716429632 100644 --- a/tools/lammps-gui/setvariables.cpp +++ b/tools/lammps-gui/setvariables.cpp @@ -14,7 +14,6 @@ #include "setvariables.h" #include -#include #include #include #include diff --git a/tools/lammps-gui/slideshow.cpp b/tools/lammps-gui/slideshow.cpp index dcc85fc34a..08b854becd 100644 --- a/tools/lammps-gui/slideshow.cpp +++ b/tools/lammps-gui/slideshow.cpp @@ -32,7 +32,6 @@ #include #include #include -#include #include #include #include From 8a13db457aaf97eb9f2134e638c94d0020a356e6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 01:22:03 -0400 Subject: [PATCH 124/169] small fix --- tools/lammps-gui/setvariables.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/lammps-gui/setvariables.cpp b/tools/lammps-gui/setvariables.cpp index 6716429632..1b2a54df8a 100644 --- a/tools/lammps-gui/setvariables.cpp +++ b/tools/lammps-gui/setvariables.cpp @@ -19,6 +19,7 @@ #include #include #include +#include SetVariables::SetVariables(QList> &_vars, QWidget *parent) : QDialog(parent), vars(_vars), layout(new QVBoxLayout) From 20a1fc6a78642a6281ee855c8bb9c9ea1b83062d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 01:25:12 -0400 Subject: [PATCH 125/169] apply clang-format --- tools/lammps-gui/chartviewer.cpp | 8 ++++---- tools/lammps-gui/imageviewer.cpp | 2 +- tools/lammps-gui/main.cpp | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/lammps-gui/chartviewer.cpp b/tools/lammps-gui/chartviewer.cpp index afdcd2f667..2bbe029ebf 100644 --- a/tools/lammps-gui/chartviewer.cpp +++ b/tools/lammps-gui/chartviewer.cpp @@ -33,18 +33,18 @@ #include #include #include +#include #include #include -#include #include using namespace QtCharts; ChartWindow::ChartWindow(const QString &_filename, QWidget *parent) : - QWidget(parent), menu(new QMenuBar), file(new QMenu("&File")), - saveAsAct(nullptr), exportCsvAct(nullptr), exportDatAct(nullptr), exportYamlAct(nullptr), - closeAct(nullptr), stopAct(nullptr), quitAct(nullptr), filename(_filename) + QWidget(parent), menu(new QMenuBar), file(new QMenu("&File")), saveAsAct(nullptr), + exportCsvAct(nullptr), exportDatAct(nullptr), exportYamlAct(nullptr), closeAct(nullptr), + stopAct(nullptr), quitAct(nullptr), filename(_filename) { auto *top = new QHBoxLayout; menu->addMenu(file); diff --git a/tools/lammps-gui/imageviewer.cpp b/tools/lammps-gui/imageviewer.cpp index 5c1773a584..0894855a02 100644 --- a/tools/lammps-gui/imageviewer.cpp +++ b/tools/lammps-gui/imageviewer.cpp @@ -39,8 +39,8 @@ #include #include #include -#include #include +#include #include diff --git a/tools/lammps-gui/main.cpp b/tools/lammps-gui/main.cpp index 2d4b846025..d7e8e66764 100644 --- a/tools/lammps-gui/main.cpp +++ b/tools/lammps-gui/main.cpp @@ -13,8 +13,8 @@ #include "lammpsgui.h" -#include #include +#include #include #include From 204fc79211e38113db41a04c2c1f151d41e35613 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 29 Jul 2024 09:27:09 -0600 Subject: [PATCH 126/169] Remove unused var --- src/ML-UF3/pair_uf3.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index a952403287..1f91f25f5b 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -120,7 +120,6 @@ void PairUF3::settings(int narg, char **arg) "Invalid number of arguments for pair_style uf3" " Are you using a 2-body or 2 & 3-body UF potential?"); nbody_flag = utils::numeric(FLERR, arg[0], true, lmp); - const int num_of_elements = atom->ntypes; if (nbody_flag == 2) { pot_3b = false; manybody_flag = 0; From 2ff43fc8bdcea65c0bf4edb5ee8937e1c292c386 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 29 Jul 2024 09:27:28 -0600 Subject: [PATCH 127/169] Fix compile issue --- src/KOKKOS/pair_uf3_kokkos.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/KOKKOS/pair_uf3_kokkos.h b/src/KOKKOS/pair_uf3_kokkos.h index 15c2832da1..ccdf543d5f 100644 --- a/src/KOKKOS/pair_uf3_kokkos.h +++ b/src/KOKKOS/pair_uf3_kokkos.h @@ -22,6 +22,7 @@ // clang-format off PairStyle(uf3/kk,PairUF3Kokkos) PairStyle(uf3/kk/device,PairUF3Kokkos) +PairStyle(uf3/kk/host,PairUF3Kokkos) // clang-format on #else @@ -117,9 +118,11 @@ template class PairUF3Kokkos : public PairUF3 { std::vector get_dncoefficients(const double *knots, const double coefficient) const; template + KOKKOS_INLINE_FUNCTION void twobody(const int itype, const int jtype, const F_FLOAT r, F_FLOAT &evdwl, F_FLOAT &fpair) const; template + KOKKOS_INLINE_FUNCTION void threebody(const int itype, const int jtype, const int ktype, const F_FLOAT value_rij, const F_FLOAT value_rik, const F_FLOAT value_rjk, F_FLOAT &evdwl3, F_FLOAT (&fforce)[3]) const; From a4ad184d37ff4f745827940f99ed9461de0b78c1 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 29 Jul 2024 09:29:11 -0600 Subject: [PATCH 128/169] Fix Makefile build for UF3 with KOKKOS --- src/Depend.sh | 4 ++++ src/KOKKOS/Install.sh | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/Depend.sh b/src/Depend.sh index e55b100975..85542b21c0 100755 --- a/src/Depend.sh +++ b/src/Depend.sh @@ -195,6 +195,10 @@ if (test $1 = "ML-SNAP") then depend INTEL fi +if (test $1 = "ML-UF3") then + depend KOKKOS +fi + if (test $1 = "CG-SPICA") then depend GPU depend KOKKOS diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index 94effc5d68..31359d4e4a 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -391,6 +391,8 @@ action pair_tersoff_mod_kokkos.cpp pair_tersoff_mod.cpp action pair_tersoff_mod_kokkos.h pair_tersoff_mod.h action pair_tersoff_zbl_kokkos.cpp pair_tersoff_zbl.cpp action pair_tersoff_zbl_kokkos.h pair_tersoff_zbl.h +action pair_uf3_kokkos.cpp pair_uf3.cpp +action pair_uf3_kokkos.h pair_uf3.h action pair_vashishta_kokkos.cpp pair_vashishta.cpp action pair_vashishta_kokkos.h pair_vashishta.h action pair_yukawa_kokkos.cpp From d81bf66fe1f33cde34437677beaebd4333d02244 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 29 Jul 2024 09:29:40 -0600 Subject: [PATCH 129/169] Fix issues with new KOKKOS hybrid topo styles --- src/KOKKOS/dihedral_hybrid_kokkos.h | 12 ++++++------ src/KOKKOS/improper_hybrid_kokkos.h | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.h b/src/KOKKOS/dihedral_hybrid_kokkos.h index 29a3d29689..6deb190f8f 100644 --- a/src/KOKKOS/dihedral_hybrid_kokkos.h +++ b/src/KOKKOS/dihedral_hybrid_kokkos.h @@ -11,7 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -#ifdef BOND_CLASS +#ifdef DIHEDRAL_CLASS // clang-format off DihedralStyle(hybrid/kk,DihedralHybridKokkos); DihedralStyle(hybrid/kk/device,DihedralHybridKokkos); @@ -20,8 +20,8 @@ DihedralStyle(hybrid/kk/host,DihedralHybridKokkos); #else // clang-format off -#ifndef LMP_BOND_HYBRID_KOKKOS_H -#define LMP_BOND_HYBRID_KOKKOS_H +#ifndef LMP_DIHEDRAL_HYBRID_KOKKOS_H +#define LMP_DIHEDRAL_HYBRID_KOKKOS_H #include "dihedral_hybrid.h" #include "kokkos_type.h" @@ -40,13 +40,13 @@ class DihedralHybridKokkos : public DihedralHybrid { double memory_usage() override; private: - int maxbond_all; + int maxdihedral_all; class NeighborKokkos *neighborKK; DAT::tdual_int_1d k_map; // which style each bond type points to - DAT::tdual_int_1d k_nbondlist; // # of bonds in sub-style bondlists - DAT::tdual_int_3d k_bondlist; // bondlist for each sub-style + DAT::tdual_int_1d k_ndihedrallist; // # of bonds in sub-style bondlists + DAT::tdual_int_3d k_dihedrallist; // bondlist for each sub-style void allocate() override; void deallocate() override; diff --git a/src/KOKKOS/improper_hybrid_kokkos.h b/src/KOKKOS/improper_hybrid_kokkos.h index f2a80f6a0c..78bafe5df6 100644 --- a/src/KOKKOS/improper_hybrid_kokkos.h +++ b/src/KOKKOS/improper_hybrid_kokkos.h @@ -11,7 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -#ifdef BOND_CLASS +#ifdef IMPROPER_CLASS // clang-format off ImproperStyle(hybrid/kk,ImproperHybridKokkos); ImproperStyle(hybrid/kk/device,ImproperHybridKokkos); @@ -20,8 +20,8 @@ ImproperStyle(hybrid/kk/host,ImproperHybridKokkos); #else // clang-format off -#ifndef LMP_BOND_HYBRID_KOKKOS_H -#define LMP_BOND_HYBRID_KOKKOS_H +#ifndef LMP_IMPROPER_HYBRID_KOKKOS_H +#define LMP_IMPROPER_HYBRID_KOKKOS_H #include "improper_hybrid.h" #include "kokkos_type.h" From b773c122842065a9909991a099b53273245770cf Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 29 Jul 2024 11:46:11 -0400 Subject: [PATCH 130/169] Tweak comment --- src/KOKKOS/dihedral_hybrid_kokkos.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/KOKKOS/dihedral_hybrid_kokkos.h b/src/KOKKOS/dihedral_hybrid_kokkos.h index 6deb190f8f..63a59505af 100644 --- a/src/KOKKOS/dihedral_hybrid_kokkos.h +++ b/src/KOKKOS/dihedral_hybrid_kokkos.h @@ -44,9 +44,9 @@ class DihedralHybridKokkos : public DihedralHybrid { class NeighborKokkos *neighborKK; - DAT::tdual_int_1d k_map; // which style each bond type points to - DAT::tdual_int_1d k_ndihedrallist; // # of bonds in sub-style bondlists - DAT::tdual_int_3d k_dihedrallist; // bondlist for each sub-style + DAT::tdual_int_1d k_map; // which style each dihedral type points to + DAT::tdual_int_1d k_ndihedrallist; // # of dihedrals in sub-style dihedrallists + DAT::tdual_int_3d k_dihedrallist; // dihedrallist for each sub-style void allocate() override; void deallocate() override; From abb19890f93c69190ef18b56e2c34f0c344b95e5 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 29 Jul 2024 11:46:22 -0400 Subject: [PATCH 131/169] Fix another compiler warning --- src/KOKKOS/pair_uf3_kokkos.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.h b/src/KOKKOS/pair_uf3_kokkos.h index ccdf543d5f..952e2aba25 100644 --- a/src/KOKKOS/pair_uf3_kokkos.h +++ b/src/KOKKOS/pair_uf3_kokkos.h @@ -45,7 +45,7 @@ template class PairUF3Kokkos : public PairUF3 { void compute(int, int) override; void settings(int, char **) override; void coeff(int, char **) override; - void allocate(); + void allocate() override; void init_style() override; void init_list(int, class NeighList *) override; // needed for ptr to full neigh list double init_one(int, int) override; // needed for cutoff radius for neighbour list From eeaa1eadebe85ce1d0d7604b58c6ef70fb3e5f3e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 11:57:09 -0400 Subject: [PATCH 132/169] add test for value tokenizer to check limits --- unittest/utils/test_tokenizer.cpp | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/unittest/utils/test_tokenizer.cpp b/unittest/utils/test_tokenizer.cpp index 6db4a5fe5e..6b4e182cdb 100644 --- a/unittest/utils/test_tokenizer.cpp +++ b/unittest/utils/test_tokenizer.cpp @@ -11,11 +11,14 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "fmt/format.h" #include "lmptype.h" #include "tokenizer.h" #include "gmock/gmock.h" #include "gtest/gtest.h" +#include + using namespace LAMMPS_NS; using ::testing::Eq; @@ -348,32 +351,47 @@ TEST(ValueTokenizer, bad_double) TEST(ValueTokenizer, valid_int) { - ValueTokenizer values("10"); + ValueTokenizer values(fmt::format("10 -{} {}", MAXSMALLINT, MAXSMALLINT)); ASSERT_EQ(values.next_int(), 10); + ASSERT_EQ(values.next_int(), -MAXSMALLINT); + ASSERT_EQ(values.next_int(), MAXSMALLINT); } TEST(ValueTokenizer, valid_tagint) { - ValueTokenizer values("42"); + ValueTokenizer values(fmt::format("42 -{} {} -{} {}", MAXSMALLINT, MAXSMALLINT, MAXTAGINT, MAXTAGINT)); ASSERT_EQ(values.next_tagint(), 42); + ASSERT_EQ(values.next_tagint(), -MAXSMALLINT); + ASSERT_EQ(values.next_tagint(), MAXSMALLINT); + ASSERT_EQ(values.next_tagint(), -MAXTAGINT); + ASSERT_EQ(values.next_tagint(), MAXTAGINT); } TEST(ValueTokenizer, valid_bigint) { - ValueTokenizer values("42"); + ValueTokenizer values(fmt::format("42 -{} {} -{} {}", MAXSMALLINT, MAXSMALLINT, MAXBIGINT, MAXBIGINT)); ASSERT_EQ(values.next_bigint(), 42); + ASSERT_EQ(values.next_bigint(), -MAXSMALLINT); + ASSERT_EQ(values.next_bigint(), MAXSMALLINT); + ASSERT_EQ(values.next_bigint(), -MAXBIGINT); + ASSERT_EQ(values.next_bigint(), MAXBIGINT); } TEST(ValueTokenizer, valid_double) { - ValueTokenizer values("3.14"); + ValueTokenizer values("3.14 -0.00002 .1 " + std::to_string(MAXBIGINT)); ASSERT_DOUBLE_EQ(values.next_double(), 3.14); + ASSERT_DOUBLE_EQ(values.next_double(), -0.00002); + ASSERT_DOUBLE_EQ(values.next_double(), 0.1); + ASSERT_DOUBLE_EQ(values.next_double(), MAXBIGINT); } TEST(ValueTokenizer, valid_double_with_exponential) { - ValueTokenizer values("3.14e22"); + ValueTokenizer values(fmt::format("3.14e22 {} {}", DBL_MAX, DBL_MIN)); ASSERT_DOUBLE_EQ(values.next_double(), 3.14e22); + ASSERT_DOUBLE_EQ(values.next_double(), DBL_MAX); + ASSERT_DOUBLE_EQ(values.next_double(), DBL_MIN); } TEST(ValueTokenizer, contains) From d84b12ea63ef7c601bcc402844d16dbc6ce38c6a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 11:57:46 -0400 Subject: [PATCH 133/169] define EPSILON consistently as static constexp --- unittest/commands/test_groups.cpp | 2 +- unittest/formats/test_atom_styles.cpp | 2 +- unittest/formats/test_molecule_file.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/unittest/commands/test_groups.cpp b/unittest/commands/test_groups.cpp index efeb00f685..4035a4a4d4 100644 --- a/unittest/commands/test_groups.cpp +++ b/unittest/commands/test_groups.cpp @@ -314,7 +314,7 @@ TEST_F(GroupTest, Dynamic) command("group ramp variable grow");); } -constexpr double EPSILON = 1.0e-13; +static constexpr double EPSILON = 1.0e-13; TEST_F(GroupTest, VariableFunctions) { diff --git a/unittest/formats/test_atom_styles.cpp b/unittest/formats/test_atom_styles.cpp index 68bc0a4437..921d469e31 100644 --- a/unittest/formats/test_atom_styles.cpp +++ b/unittest/formats/test_atom_styles.cpp @@ -88,7 +88,7 @@ static void create_molecule_files(const std::string &h2o_filename, const std::st // whether to print verbose output (i.e. not capturing LAMMPS screen output). bool verbose = false; -const double EPSILON = 5.0e-14; +static const double EPSILON = 5.0e-14; namespace LAMMPS_NS { using ::testing::Eq; diff --git a/unittest/formats/test_molecule_file.cpp b/unittest/formats/test_molecule_file.cpp index 743a8fbbfa..e11a8ea4f1 100644 --- a/unittest/formats/test_molecule_file.cpp +++ b/unittest/formats/test_molecule_file.cpp @@ -32,7 +32,7 @@ using testing::StrEq; using utils::split_words; -const double EPSILON = 5.0e-14; +static constexpr double EPSILON = 5.0e-14; #define test_name test_info_->name() From 9c937113fd074b47a7e22eb9eb23c0400b8a5927 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 14:45:43 -0400 Subject: [PATCH 134/169] use strtoll() and strtod() instead of atoi(), atol(), atoll() and atof() --- src/tokenizer.cpp | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp index 6b87f0c421..2db7f1dd41 100644 --- a/src/tokenizer.cpp +++ b/src/tokenizer.cpp @@ -288,7 +288,14 @@ int ValueTokenizer::next_int() { std::string current = tokens.next(); if (!utils::is_integer(current)) { throw InvalidIntegerException(current); } - return atoi(current.c_str()); + const char *str = current.c_str(); + char *end = nullptr; + auto val = std::strtoll(str, &end, 10); + // only partially converted + if ((str + current.size()) != end) { throw InvalidIntegerException(current); } + // out of range + if ((val < -MAXSMALLINT) || (val > MAXSMALLINT)) { throw InvalidIntegerException(current); } + return (int) val; } /*! Retrieve next token and convert to bigint @@ -298,7 +305,14 @@ bigint ValueTokenizer::next_bigint() { std::string current = tokens.next(); if (!utils::is_integer(current)) { throw InvalidIntegerException(current); } - return ATOBIGINT(current.c_str()); + const char *str = current.c_str(); + char *end = nullptr; + auto val = std::strtoll(str, &end, 10); + // only partially converted + if ((str + current.size()) != end) { throw InvalidIntegerException(current); } + // out of range + if ((val < -MAXBIGINT) || (val > MAXBIGINT)) { throw InvalidIntegerException(current); } + return (bigint) val; } /*! Retrieve next token and convert to tagint @@ -308,7 +322,14 @@ tagint ValueTokenizer::next_tagint() { std::string current = tokens.next(); if (!utils::is_integer(current)) { throw InvalidIntegerException(current); } - return ATOTAGINT(current.c_str()); + const char *str = current.c_str(); + char *end = nullptr; + auto val = std::strtoll(str, &end, 10); + // only partially converted + if ((str + current.size()) != end) { throw InvalidIntegerException(current); } + // out of range + if ((val < -MAXTAGINT) || (val > MAXTAGINT)) { throw InvalidIntegerException(current); } + return (tagint) val; } /*! Retrieve next token and convert to double @@ -318,7 +339,12 @@ double ValueTokenizer::next_double() { std::string current = tokens.next(); if (!utils::is_double(current)) { throw InvalidFloatException(current); } - return atof(current.c_str()); + const char *str = current.c_str(); + char *end = nullptr; + double val = std::strtod(str, &end); + // only partially converted + if ((str + current.size()) != end) { throw InvalidFloatException(current); } + return val; } /*! Skip over a given number of tokens From 490f3e6890ef3bc271cc64ce50ea083c73cfeafc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 15:07:51 -0400 Subject: [PATCH 135/169] fix compilation --- tools/lammps-gui/chartviewer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lammps-gui/chartviewer.h b/tools/lammps-gui/chartviewer.h index e45f64b775..37a26c8b57 100644 --- a/tools/lammps-gui/chartviewer.h +++ b/tools/lammps-gui/chartviewer.h @@ -75,8 +75,8 @@ private: #include #include +#include class QChart; -class QValueAxis; namespace QtCharts { class ChartViewer : public QChartView { From 36bec29736cd88ec6a1602ec72aedba56e6f9362 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 15:08:52 -0400 Subject: [PATCH 136/169] Revert "temporarily remove non-compiling KOKKOS sources" This reverts commit 4a2901bd5e866e9330766bca68256ab8c2c4a117. --- src/KOKKOS/pair_uf3_kokkos.cpp | 1661 ++++++++++++++++++++++++++++++++ src/KOKKOS/pair_uf3_kokkos.h | 188 ++++ 2 files changed, 1849 insertions(+) create mode 100644 src/KOKKOS/pair_uf3_kokkos.cpp create mode 100644 src/KOKKOS/pair_uf3_kokkos.h diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp new file mode 100644 index 0000000000..59112ddab0 --- /dev/null +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -0,0 +1,1661 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Ajinkya Hire (Univ. of Florida), + Hendrik Kraß (Univ. of Constance), + Matthias Rupp (Luxembourg Institute of Science and Technology), + Richard Hennig (Univ of Florida) +---------------------------------------------------------------------- */ + +#include "pair_uf3.h" +#include "pair_uf3_kokkos.h" + +#include "atom_kokkos.h" +#include "atom_masks.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "kokkos.h" +#include "kokkos_type.h" +#include "math_const.h" +#include "math_special_kokkos.h" +#include "memory.h" +#include "memory_kokkos.h" +#include "neigh_list_kokkos.h" +#include "neigh_request.h" +#include "neighbor.h" +#include "pair_kokkos.h" +#include "text_file_reader.h" + +#include +#include +#include + +using namespace LAMMPS_NS; +using namespace MathConst; +using MathSpecialKokkos::cube; +using MathSpecialKokkos::square; + +template PairUF3Kokkos::PairUF3Kokkos(LAMMPS *lmp) : PairUF3(lmp) +{ + respa_enable = 0; + + //kokkosable = 1; + atomKK = (AtomKokkos *) atom; + execution_space = ExecutionSpaceFromDevice::space; + datamask_read = X_MASK | F_MASK | TAG_MASK | TYPE_MASK | ENERGY_MASK | VIRIAL_MASK; + datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; + +} + +template PairUF3Kokkos::~PairUF3Kokkos() +{ + if (!copymode) { + memoryKK->destroy_kokkos(k_eatom, eatom); //destory eatom from host, set it to nullptr + //Also set k_eatom to empty View + memoryKK->destroy_kokkos(k_vatom, vatom); + memoryKK->destroy_kokkos(k_cutsq,cutsq); + destroy_3d(k_cut_3b,cut_3b); + destroy_4d(k_min_cut_3b,min_cut_3b); + eatom = NULL; + vatom = NULL; + cvatom = NULL; + } +} + +template +template +void PairUF3Kokkos::destroy_3d(TYPE data, typename TYPE::value_type*** &array) +{ + if (array == nullptr) return; + data = TYPE(); + memory->sfree(array); + array = nullptr; +} + +template +template +void PairUF3Kokkos::destroy_4d(TYPE data, typename TYPE::value_type**** &array) +{ + if (array == nullptr) return; + data = TYPE(); + memory->sfree(array); + array = nullptr; +} + +/* ---------------------------------------------------------------------- + * global settings + * ---------------------------------------------------------------------- */ + +template void PairUF3Kokkos::settings(int narg, char **arg) +{ + PairUF3::settings(narg, arg); + //1. Determines whether the simulation is 2-body or 2 and 3-body + //2. Set nbody_flag, num_of_elements, pot_3b +} + +/* ---------------------------------------------------------------------- + * set coeffs for one or more type pairs + * ---------------------------------------------------------------------- */ +template void PairUF3Kokkos::coeff(int narg, char **arg) +{ + PairUF3::coeff(narg,arg); + //Also calls allocate internally + //Grows arrays to the right dimensions --> setflag, cutsq, cut, knot_spacing_type_2b, + //knot_spacing_2b, n2b_knots_array_size, n2b_coeff_array_size, setflag_3b, + //cut_3b, cut_3b_list, min_cut_3b, knot_spacing_type_3b, knot_spacing_3b, + //tot_interaction_count_3b, map_3b, n3b_knots_array_size, n3b_coeff_array_size, + //neighshort + // + //Also reads the pot_files_internally + +} + +template +void PairUF3Kokkos::allocate() +{ + if (!allocated) PairUF3::allocate(); + int n = atom->ntypes; + memory->destroy(cutsq); //Why are we destroying cutsq? cutsq is allocated when + //PairUF3::coeff or PairUF3::allocate is called; in the next step when k_cutsq + //is created cutsq is set to point to the host array of k_cutsq + //memory->destroy(cut_3b); + + memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); + d_cutsq = k_cutsq.template view(); //assignment; get the device + //view of k_cutsq and assign it to d_cutsq; in the header file we just + //decleared d_cutsq's type + memoryKK->create_kokkos(k_cut_3b,n+1,n+1,n+1,"threebody:cut"); + memoryKK->create_kokkos(k_min_cut_3b,n+1,n+1,n+1,3,"threebody:cut"); + d_cut_3b = k_cut_3b.template view(); + d_min_cut_3b = k_min_cut_3b.template view(); +} + + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +template void PairUF3Kokkos::init_style() +{ + + PairUF3::init_style(); + + neighflag = lmp->kokkos->neighflag; + + auto request = neighbor->find_request(this); + request->set_kokkos_host(std::is_same::value && + !std::is_same::value); + request->set_kokkos_device(std::is_same::value); + + request->enable_full(); + request->enable_ghost(); +} + +/* ---------------------------------------------------------------------- + init list sets the pointer to full neighbour list requested in previous function +------------------------------------------------------------------------- */ + +template +void PairUF3Kokkos::init_list(int /*id*/, class NeighList *ptr) +{ + list = ptr; +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ +template double PairUF3Kokkos::init_one(int i, int j) +{ + double cutone = PairUF3::init_one(i, j); + + if (!coefficients_created) create_coefficients(); + + k_cutsq.h_view(i,j) = k_cutsq.h_view(j,i) = cutone*cutone; //Update the k_cutsq's + //host memory + k_cutsq.template modify(); //Record that k_cutsq's host memory has + //been modified + + return cutone; +} + +template void PairUF3Kokkos::create_coefficients() +{ + const int num_of_elements = atom->ntypes; + coefficients_created = 1; + + if (pot_3b) { + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = 1; k < num_of_elements + 1; k++) { + k_cut_3b.h_view(i,j,k) = cut_3b[i][j][k]; + + // Notice the order of min_cut_3b[i][j][k] + //In min_cut_3b[i][j][k], + //min_cut_3b[i][j][k][0] is the knot_vector along jk, + //min_cut_3b[i][j][k][1] is the knot_vector along ik, + //min_cut_3b[i][j][k][2] is the knot_vector along ij, + //see pair_uf3.cpp for more details + k_min_cut_3b.h_view(i,j,k,0) = min_cut_3b[i][j][k][0]; + k_min_cut_3b.h_view(i,j,k,1) = min_cut_3b[i][j][k][1]; + k_min_cut_3b.h_view(i,j,k,2) = min_cut_3b[i][j][k][2]; + } + } + } + k_cut_3b.template modify(); + k_min_cut_3b.template modify(); + } + + //No allocation on device for --> setflag, cut, knot_spacing_type_2b, + //n2b_knot, n2b_coeff, n2b_knot[i], n2b_coeff[i], setflag_3b, cut_3b, + //cut_3b_list, min_cut_3b, knot_spacing_type_3b, cut_3b_list, n3b_knot_matrix, + //neighshort + + //UFBS2b and UFBS3b are array of objects. Bad idea to use kokkos view(array) + //for it + create_2b_coefficients(); + if (pot_3b) create_3b_coefficients(); + +} + +template void PairUF3Kokkos::create_2b_coefficients() +{ + const int num_of_elements = atom->ntypes; + + // Setup interaction pair map + //TODO: Instead of using map2b and map3b use simple indexing + Kokkos::realloc(map2b, num_of_elements + 1, num_of_elements + 1); + auto map2b_view = Kokkos::create_mirror(map2b); + + int interaction_count = 0; + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + map2b_view(i, j) = interaction_count; + map2b_view(j, i) = interaction_count++; + } + } + Kokkos::deep_copy(map2b, map2b_view); + + // Count max knots for array size + + int max_knots = max_num_knots_2b; + + // Copy coefficients to view + + Kokkos::realloc(d_coefficients_2b, interaction_count, max_knots - 4); + auto d_coefficients_2b_view = Kokkos::create_mirror(d_coefficients_2b); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + for (int k = 0; k < max_num_coeff_2b; k++) { + d_coefficients_2b_view(map2b_view(i, j), k) = n2b_coeff_array[i][j][k]; + } + } + } + Kokkos::deep_copy(d_coefficients_2b, d_coefficients_2b_view); + + // Copy knots from array to view + + Kokkos::realloc(d_n2b_knot, interaction_count, max_knots); + Kokkos::realloc(d_n2b_knot_spacings, interaction_count); + auto d_n2b_knot_view = Kokkos::create_mirror(d_n2b_knot); + auto d_n2b_knot_spacings_view = Kokkos::create_mirror(d_n2b_knot_spacings); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + for (int k = 0; k < max_num_knots_2b; k++) { + d_n2b_knot_view(map2b_view(i, j), k) = n2b_knots_array[i][j][k]; + } + d_n2b_knot_spacings_view(map2b_view(i, j)) = n2b_knots_array[i][j][4] - n2b_knots_array[i][j][3]; + } + } + + Kokkos::deep_copy(d_n2b_knot, d_n2b_knot_view); + Kokkos::deep_copy(d_n2b_knot_spacings, d_n2b_knot_spacings_view); + // Set spline constants + + Kokkos::realloc(constants_2b, interaction_count, max_knots - 4); + auto constants_2b_view = Kokkos::create_mirror(constants_2b); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + for (int l = 0; l < n2b_knots_array_size[i][j] - 4; l++) { + //n2b_knot[i][j].size() - 4; l++) { + auto c = get_constants(&n2b_knots_array[i][j][l], n2b_coeff_array[i][j][l]); + for (int k = 0; k < 16; k++) + constants_2b_view(map2b_view(i, j), l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 + : c[k]; + } + } + } + Kokkos::deep_copy(constants_2b, constants_2b_view); + + Kokkos::realloc(dnconstants_2b, interaction_count, max_knots - 5); + auto dnconstants_2b_view = Kokkos::create_mirror(dnconstants_2b); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + for (int l = 0; l < n2b_knots_array_size[i][j] - 5; l++) { + double dntemp4 = 3 / (n2b_knots_array[i][j][l + 4] - n2b_knots_array[i][j][l + 1]); + double coeff = (n2b_coeff_array[i][j][l + 1] - n2b_coeff_array[i][j][l]) * dntemp4; + auto c = get_dnconstants(&n2b_knots_array[i][j][l + 1], coeff); + for (int k = 0; k < 9; k++) + dnconstants_2b_view(map2b_view(i, j), l, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + } + } + Kokkos::deep_copy(dnconstants_2b, dnconstants_2b_view); +} + +template void PairUF3Kokkos::create_3b_coefficients() +{ + const int num_of_elements = atom->ntypes; + // Init interaction map for 3B + + Kokkos::realloc(map3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); + auto map3b_view = Kokkos::create_mirror(map3b); + + int interaction_count = 0; + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = 1; k < num_of_elements + 1; k++) { + map3b_view(i, j, k) = interaction_count; + interaction_count++; + } + } + } + Kokkos::deep_copy(map3b, map3b_view); + + // Count max knots for view + + int max_knots = max_num_knots_3b; + //In n3b_knot_matrix[i][j][k], + //n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, + //n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, + //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, + //see pair_uf3.cpp for more details + + + // Init knot matrix view + + Kokkos::realloc(d_n3b_knot_matrix, interaction_count, 3, max_knots); + Kokkos::realloc(d_n3b_knot_matrix_spacings, interaction_count, 3); + auto d_n3b_knot_matrix_view = Kokkos::create_mirror(d_n3b_knot_matrix); + auto d_n3b_knot_matrix_spacings_view = Kokkos::create_mirror(d_n3b_knot_matrix_spacings); + + for (int i = 1; i < num_of_elements + 1; i++) + for (int j = 1; j < num_of_elements + 1; j++) + for (int k = 1; k < num_of_elements + 1; k++) { + for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][0]; m++) + d_n3b_knot_matrix_view(map3b_view(i, j, k), 0, m) = + n3b_knots_array[map_3b[i][j][k]][0][m]; + for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][1]; m++) + d_n3b_knot_matrix_view(map3b_view(i, j, k), 1, m) = + n3b_knots_array[map_3b[i][j][k]][1][m]; + for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][2]; m++) + d_n3b_knot_matrix_view(map3b_view(i, j, k), 2, m) = + n3b_knots_array[map_3b[i][j][k]][2][m]; + + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),2) = + n3b_knots_array[map_3b[i][j][k]][2][4] - n3b_knots_array[map_3b[i][j][k]][2][3]; + + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),1) = + n3b_knots_array[map_3b[i][j][k]][1][4] - n3b_knots_array[map_3b[i][j][k]][1][3]; + + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),0) = + n3b_knots_array[map_3b[i][j][k]][0][4] - n3b_knots_array[map_3b[i][j][k]][0][3]; + } + Kokkos::deep_copy(d_n3b_knot_matrix, d_n3b_knot_matrix_view); + Kokkos::deep_copy(d_n3b_knot_matrix_spacings, d_n3b_knot_matrix_spacings_view); + + // Set knots spacings + + Kokkos::realloc(d_n3b_knot_spacings, interaction_count, 3); + auto d_n3b_knot_spacings_view = Kokkos::create_mirror(d_n3b_knot_spacings); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = 1; k < num_of_elements + 1; k++) { + d_n3b_knot_spacings_view(map3b_view(i, j, k), 0) = + 1 / (n3b_knots_array[map_3b[i][j][k]][0][5] - n3b_knots_array[map_3b[i][j][k]][0][4]); + + d_n3b_knot_spacings_view(map3b_view(i, j, k), 1) = + 1 / (n3b_knots_array[map_3b[i][j][k]][1][5] - n3b_knots_array[map_3b[i][j][k]][1][4]); + + d_n3b_knot_spacings_view(map3b_view(i, j, k), 2) = + 1 / (n3b_knots_array[map_3b[i][j][k]][2][5] - n3b_knots_array[map_3b[i][j][k]][2][4]); + } + } + } + Kokkos::deep_copy(d_n3b_knot_spacings, d_n3b_knot_spacings_view); + + // Copy coefficients + + Kokkos::realloc(d_coefficients_3b, interaction_count, max_knots - 4, max_knots - 4, + max_knots - 4); + auto d_coefficients_3b_view = Kokkos::create_mirror(d_coefficients_3b); + + for (int n = 1; n < num_of_elements + 1; n++) { + for (int m = 1; m < num_of_elements + 1; m++) { + for (int o = 1; o < num_of_elements + 1; o++) { + for (int i = 0; i < n3b_coeff_array_size[map_3b[n][m][o]][0]; i++) { + for (int j = 0; j < n3b_coeff_array_size[map_3b[n][m][o]][1]; j++) { + for (int k = 0; k < n3b_coeff_array_size[map_3b[n][m][o]][2]; k++) { + d_coefficients_3b_view(map3b_view(n, m, o), i, j, k) = + n3b_coeff_array[map_3b[n][m][o]][i][j][k]; + } + } + } + } + } + } + Kokkos::deep_copy(d_coefficients_3b, d_coefficients_3b_view); + // + // Create derivative coefficients + + // TODO: Shrink size + Kokkos::realloc(d_dncoefficients_3b, interaction_count, 3, max_knots - 4, max_knots - 4, + max_knots - 4); + auto d_dncoefficients_3b_view = Kokkos::create_mirror(d_dncoefficients_3b); + + //Notice the order for d_dncoefficients_3b_view(map3b_view(n, m, o), X, i, j, k) + //d_dncoefficients_3b_view(map3b_view(n, m, o), 2, i, j, k) --> coeff for rjk + //d_dncoefficients_3b_view(map3b_view(n, m, o), 1, i, j, k) --> coeff for rik + //d_dncoefficients_3b_view(map3b_view(n, m, o), 0, i, j, k) --> coeff for rij + // + //This is because- + //In n3b_knot_matrix[i][j][k], + //n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, + //n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, + //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, + //see pair_uf3.cpp for more details + + for (int n = 1; n < num_of_elements + 1; n++) { + for (int m = 1; m < num_of_elements + 1; m++) { + for (int o = 1; o < num_of_elements + 1; o++) { + int coeff_dim1 = n3b_coeff_array_size[map_3b[n][m][o]][0]; + int coeff_dim2 = n3b_coeff_array_size[map_3b[n][m][o]][1]; + int coeff_dim3 = n3b_coeff_array_size[map_3b[n][m][o]][2]; + for (int i = 0; i < coeff_dim1; i++) { + for (int j = 0; j < coeff_dim2; j++) { + for (int k = 0; k < coeff_dim3; k++) { + F_FLOAT dntemp4 = + 3 / (n3b_knots_array[map_3b[n][m][o]][0][k + 4] - n3b_knots_array[map_3b[n][m][o]][0][k + 1]); + + d_dncoefficients_3b_view(map3b_view(n, m, o), 2, i, j, k) = + (n3b_coeff_array[map_3b[n][m][o]][i][j][k + 1] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; + } + } + } + + for (int i = 0; i < coeff_dim1; i++) { + std::vector> dncoeff_vect2; + for (int j = 0; j < coeff_dim2; j++) { + F_FLOAT dntemp4 = + 3 / (n3b_knots_array[map_3b[n][m][o]][1][j + 4] - n3b_knots_array[map_3b[n][m][o]][1][j + 1]); + + std::vector dncoeff_vect; + for (int k = 0; k < coeff_dim3; k++) { + d_dncoefficients_3b_view(map3b_view(n, m, o), 1, i, j, k) = + (n3b_coeff_array[map_3b[n][m][o]][i][j + 1][k] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; + } + } + } + + for (int i = 0; i < coeff_dim1; i++) { + F_FLOAT dntemp4 = + 3 / (n3b_knots_array[map_3b[n][m][o]][2][i + 4] - n3b_knots_array[map_3b[n][m][o]][2][i + 1]); + for (int j = 0; j < coeff_dim2; j++) { + for (int k = 0; k < coeff_dim3; k++) { + d_dncoefficients_3b_view(map3b_view(n, m, o), 0, i, j, k) = + (n3b_coeff_array[map_3b[n][m][o]][i + 1][j][k] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; + } + } + } + } + } + } + Kokkos::deep_copy(d_dncoefficients_3b, d_dncoefficients_3b_view); + + // Set spline constants + + Kokkos::realloc(constants_3b, interaction_count, 3, max_knots - 4); + auto constants_3b_view = Kokkos::create_mirror(constants_3b); + + //In n3b_knot_matrix[i][j][k], + //n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, + //n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, + //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, + //see pair_uf3.cpp for more details + for (int n = 1; n < num_of_elements + 1; n++) { + for (int m = 1; m < num_of_elements + 1; m++) { + for (int o = 1; o < num_of_elements + 1; o++) { + for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][2] - 4; l++) { + auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][2][l], 1); + for (int k = 0; k < 16; k++) + constants_3b_view(map3b_view(n, m, o), 0, l, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][1] - 4; l++) { + auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][1][l], 1); + for (int k = 0; k < 16; k++) + constants_3b_view(map3b_view(n, m, o), 1, l, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][0] -4; l++) { + auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][0][l], 1); + for (int k = 0; k < 16; k++) + constants_3b_view(map3b_view(n, m, o), 2, l, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + } + } + } + Kokkos::deep_copy(constants_3b, constants_3b_view); + + Kokkos::realloc(dnconstants_3b, interaction_count, 3, max_knots - 6); + auto dnconstants_3b_view = Kokkos::create_mirror(dnconstants_3b); + + for (int n = 1; n < num_of_elements + 1; n++) { + for (int m = 1; m < num_of_elements + 1; m++) { + for (int o = 1; o < num_of_elements + 1; o++) { + for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][2] - 5; l++) { + auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][2][l], 1); + for (int k = 0; k < 9; k++) + dnconstants_3b_view(map3b_view(n, m, o), 0, l - 1, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][1] - 5; l++) { + auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][1][l], 1); + for (int k = 0; k < 9; k++) + dnconstants_3b_view(map3b_view(n, m, o), 1, l - 1, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][0] - 5; l++) { + auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][0][l], 1); + for (int k = 0; k < 9; k++) + dnconstants_3b_view(map3b_view(n, m, o), 2, l - 1, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + } + } + } + Kokkos::deep_copy(dnconstants_3b, dnconstants_3b_view); +} + +template +template +KOKKOS_INLINE_FUNCTION void PairUF3Kokkos::twobody(const int itype, const int jtype, + const F_FLOAT r, F_FLOAT &evdwl, + F_FLOAT &fpair) const +{ + + // Find knot starting position + int interaction_id = map2b(itype, jtype); + int start_index = 3; + while (r > d_n2b_knot(interaction_id, start_index + 1)) start_index++; + //int start_index = 3+(int)((r-d_n2b_knot(interaction_id,0))/d_n2b_knot_spacings(interaction_id)); + + F_FLOAT r_values[4]; + r_values[0] = 1; + r_values[1] = r; + r_values[2] = r_values[1] * r_values[1]; + + if (EVFLAG) { + r_values[3] = r_values[2] * r_values[1]; + // Calculate energy + evdwl = constants_2b(interaction_id, start_index, 0); + evdwl += r_values[1] * constants_2b(interaction_id, start_index, 1); + evdwl += r_values[2] * constants_2b(interaction_id, start_index, 2); + evdwl += r_values[3] * constants_2b(interaction_id, start_index, 3); + evdwl += constants_2b(interaction_id, start_index - 1, 4); + evdwl += r_values[1] * constants_2b(interaction_id, start_index - 1, 5); + evdwl += r_values[2] * constants_2b(interaction_id, start_index - 1, 6); + evdwl += r_values[3] * constants_2b(interaction_id, start_index - 1, 7); + evdwl += constants_2b(interaction_id, start_index - 2, 8); + evdwl += r_values[1] * constants_2b(interaction_id, start_index - 2, 9); + evdwl += r_values[2] * constants_2b(interaction_id, start_index - 2, 10); + evdwl += r_values[3] * constants_2b(interaction_id, start_index - 2, 11); + evdwl += constants_2b(interaction_id, start_index - 3, 12); + evdwl += r_values[1] * constants_2b(interaction_id, start_index - 3, 13); + evdwl += r_values[2] * constants_2b(interaction_id, start_index - 3, 14); + evdwl += r_values[3] * constants_2b(interaction_id, start_index - 3, 15); + } + + // Calculate force + fpair = dnconstants_2b(interaction_id, start_index - 1, 0); + fpair += r_values[1] * dnconstants_2b(interaction_id, start_index - 1, 1); + fpair += r_values[2] * dnconstants_2b(interaction_id, start_index - 1, 2); + fpair += dnconstants_2b(interaction_id, start_index - 2, 3); + fpair += r_values[1] * dnconstants_2b(interaction_id, start_index - 2, 4); + fpair += r_values[2] * dnconstants_2b(interaction_id, start_index - 2, 5); + fpair += dnconstants_2b(interaction_id, start_index - 3, 6); + fpair += r_values[1] * dnconstants_2b(interaction_id, start_index - 3, 7); + fpair += r_values[2] * dnconstants_2b(interaction_id, start_index - 3, 8); +} + +template +template +KOKKOS_INLINE_FUNCTION void PairUF3Kokkos::threebody( + const int itype, const int jtype, const int ktype, const F_FLOAT value_rij, + const F_FLOAT value_rik, const F_FLOAT value_rjk, F_FLOAT &evdwl, F_FLOAT (&fforce)[3]) const +{ + evdwl = 0; + fforce[0] = 0; + fforce[1] = 0; + fforce[2] = 0; + + F_FLOAT evals[3][4]; + F_FLOAT dnevals[3][4]; + int start_indices[3]; + F_FLOAT r[3] = {value_rij, value_rik, value_rjk}; + int interaction_id = map3b(itype, jtype, ktype); + + auto coefficients = + Kokkos::subview(d_coefficients_3b, interaction_id, Kokkos::ALL, Kokkos::ALL, Kokkos::ALL); + auto dncoefficients = Kokkos::subview(d_dncoefficients_3b, interaction_id, Kokkos::ALL, + Kokkos::ALL, Kokkos::ALL, Kokkos::ALL); + //Notice the 2-d in d_n3b_knot_matrix + // + //In d_n3b_knot_matrix[i][j][k], + //d_n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, + //d_n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, + //d_n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, + // + //and r[0] = rij, r[1] = rik and r[2] = rjk + //see n3b_knot_matrix and pair_uf3.cpp for more details + for (int d = 0; d < 3; d++) { + start_indices[d] = 3; + while (r[d] > d_n3b_knot_matrix(interaction_id, 2-d, start_indices[d] + 1)) start_indices[d]++; + //start_indices[d] = 3+(int)((r[d]-d_n3b_knot_matrix(interaction_id, 2-d, 0))/d_n3b_knot_matrix_spacings(interaction_id, 2-d)); + + F_FLOAT r_values[4]; + r_values[0] = 1; + r_values[1] = r[d]; + r_values[2] = r_values[1] * r_values[1]; + + r_values[3] = r_values[2] * r_values[1]; + + // Calculate energy + evals[d][0] = constants_3b(interaction_id, d, start_indices[d], 0); + evals[d][0] += r_values[1] * constants_3b(interaction_id, d, start_indices[d], 1); + evals[d][0] += r_values[2] * constants_3b(interaction_id, d, start_indices[d], 2); + evals[d][0] += r_values[3] * constants_3b(interaction_id, d, start_indices[d], 3); + evals[d][1] = constants_3b(interaction_id, d, start_indices[d] - 1, 4); + evals[d][1] += r_values[1] * constants_3b(interaction_id, d, start_indices[d] - 1, 5); + evals[d][1] += r_values[2] * constants_3b(interaction_id, d, start_indices[d] - 1, 6); + evals[d][1] += r_values[3] * constants_3b(interaction_id, d, start_indices[d] - 1, 7); + evals[d][2] = constants_3b(interaction_id, d, start_indices[d] - 2, 8); + evals[d][2] += r_values[1] * constants_3b(interaction_id, d, start_indices[d] - 2, 9); + evals[d][2] += r_values[2] * constants_3b(interaction_id, d, start_indices[d] - 2, 10); + evals[d][2] += r_values[3] * constants_3b(interaction_id, d, start_indices[d] - 2, 11); + evals[d][3] = constants_3b(interaction_id, d, start_indices[d] - 3, 12); + evals[d][3] += r_values[1] * constants_3b(interaction_id, d, start_indices[d] - 3, 13); + evals[d][3] += r_values[2] * constants_3b(interaction_id, d, start_indices[d] - 3, 14); + evals[d][3] += r_values[3] * constants_3b(interaction_id, d, start_indices[d] - 3, 15); + + dnevals[d][0] = dnconstants_3b(interaction_id, d, start_indices[d] - 1, 0); + dnevals[d][0] += r_values[1] * dnconstants_3b(interaction_id, d, start_indices[d] - 1, 1); + dnevals[d][0] += r_values[2] * dnconstants_3b(interaction_id, d, start_indices[d] - 1, 2); + dnevals[d][1] = dnconstants_3b(interaction_id, d, start_indices[d] - 2, 3); + dnevals[d][1] += r_values[1] * dnconstants_3b(interaction_id, d, start_indices[d] - 2, 4); + dnevals[d][1] += r_values[2] * dnconstants_3b(interaction_id, d, start_indices[d] - 2, 5); + dnevals[d][2] = dnconstants_3b(interaction_id, d, start_indices[d] - 3, 6); + dnevals[d][2] += r_values[1] * dnconstants_3b(interaction_id, d, start_indices[d] - 3, 7); + dnevals[d][2] += r_values[2] * dnconstants_3b(interaction_id, d, start_indices[d] - 3, 8); + dnevals[d][3] = 0; + } + + if (EVFLAG) { + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + for (int k = 0; k < 4; k++) { + evdwl += coefficients(start_indices[0] - i, start_indices[1] - j, start_indices[2] - k) * + evals[0][i] * evals[1][j] * evals[2][k]; + } + } + } + } + + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 4; j++) { + for (int k = 0; k < 4; k++) { + fforce[0] += dncoefficients(0, start_indices[0] - 3 + i, start_indices[1] - 3 + j, + start_indices[2] - 3 + k) * + dnevals[0][2 - i] * evals[1][3 - j] * evals[2][3 - k]; + } + } + } + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 3; j++) { + for (int k = 0; k < 4; k++) { + fforce[1] += dncoefficients(1, start_indices[0] - 3 + i, start_indices[1] - 3 + j, + start_indices[2] - 3 + k) * + evals[0][3 - i] * dnevals[1][2 - j] * evals[2][3 - k]; + } + } + } + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + for (int k = 0; k < 3; k++) { + fforce[2] += dncoefficients(2, start_indices[0] - 3 + i, start_indices[1] - 3 + j, + start_indices[2] - 3 + k) * + evals[0][3 - i] * evals[1][3 - j] * dnevals[2][2 - k]; + } + } + } +} + +template void PairUF3Kokkos::compute(int eflag_in, int vflag_in) +{ + eflag = eflag_in; + vflag = vflag_in; + + if (neighflag == FULL) no_virial_fdotr_compute = 1; + + ev_init(eflag, vflag, 0); + + // reallocate per-atom arrays if necessary + + if (eflag_atom) { + memoryKK->destroy_kokkos(k_eatom, eatom); + memoryKK->create_kokkos(k_eatom, eatom, maxeatom, "pair:eatom"); + d_eatom = k_eatom.view(); + } + if (vflag_atom) { + memoryKK->destroy_kokkos(k_vatom, vatom); + memoryKK->create_kokkos(k_vatom, vatom, maxvatom, "pair:vatom"); + d_vatom = k_vatom.view(); + } + + atomKK->sync(execution_space, datamask_read); + if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); + else atomKK->modified(execution_space,F_MASK); + + x = atomKK->k_x.template view(); + f = atomKK->k_f.template view(); + tag = atomKK->k_tag.template view(); + type = atomKK->k_type.template view(); + nlocal = atom->nlocal; + newton_pair = force->newton_pair; + nall = atom->nlocal + atom->nghost; + k_cutsq.template sync(); //Sync the device memory of k_cutsq with + //the array from the host memory; this updates d_cutsq also + k_cut_3b.template sync(); + k_min_cut_3b.template sync(); + + inum = list->inum; + const int ignum = inum + list->gnum; + NeighListKokkos *k_list = static_cast *>(list); + d_ilist = k_list->d_ilist; + d_numneigh = k_list->d_numneigh; + d_neighbors = k_list->d_neighbors; + + copymode = 1; + + escatter = ScatterEType(d_eatom); + fscatter = ScatterFType(f); + vscatter = ScatterVType(d_vatom); + //cvscatter = ScatterCVType(d_cvatom); + + EV_FLOAT ev; + EV_FLOAT ev_all; + + // build short neighbor list + + int max_neighs = d_neighbors.extent(1); + + if (((int)d_neighbors_short.extent(1) != max_neighs) || + ((int)d_neighbors_short.extent(0) != ignum)) { + d_neighbors_short = Kokkos::View("UF3::neighbors_short", ignum, max_neighs); + } + if (d_numneigh_short.extent(0) != ignum) + d_numneigh_short = Kokkos::View("UF3::numneighs_short", ignum); + Kokkos::parallel_for( + Kokkos::RangePolicy(0, ignum), *this); + + // loop over neighbor list of my atoms + + if (evflag) { + Kokkos::parallel_reduce( + Kokkos::RangePolicy>(0, inum), *this, ev); + } + else{ + Kokkos::parallel_for( + Kokkos::RangePolicy>(0, inum), *this); + } + ev_all += ev; + + Kokkos::Experimental::contribute(d_eatom, escatter); + Kokkos::Experimental::contribute(d_vatom, vscatter); + //Kokkos::Experimental::contribute(d_cvatom, cvscatter); + Kokkos::Experimental::contribute(f, fscatter); + + if (eflag_global) eng_vdwl += ev_all.evdwl; + if (vflag_global) { + virial[0] += ev_all.v[0]; + virial[1] += ev_all.v[1]; + virial[2] += ev_all.v[2]; + virial[3] += ev_all.v[3]; + virial[4] += ev_all.v[4]; + virial[5] += ev_all.v[5]; + } + + if (eflag_atom) { + k_eatom.template modify(); + k_eatom.template sync(); + } + + if (vflag_atom) { + k_vatom.template modify(); + k_vatom.template sync(); + } + + if (cvflag_atom) { + //k_cvatom.template modify(); + //k_cvatom.template sync(); + } + + if (vflag_fdotr) pair_virial_fdotr_compute(this); + + copymode = 0; +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION void PairUF3Kokkos::operator()(TagPairUF3ComputeShortNeigh, + const int &ii) const +{ + const int i = d_ilist[ii]; + const X_FLOAT xtmp = x(i, 0); + const X_FLOAT ytmp = x(i, 1); + const X_FLOAT ztmp = x(i, 2); + + const int jnum = d_numneigh[i]; + int inside = 0; + for (int jj = 0; jj < jnum; jj++) { + int j = d_neighbors(i, jj); + j &= NEIGHMASK; + + const X_FLOAT delx = xtmp - x(j, 0); + const X_FLOAT dely = ytmp - x(j, 1); + const X_FLOAT delz = ztmp - x(j, 2); + const F_FLOAT rsq = delx * delx + dely * dely + delz * delz; + + const int itype = type[i]; + const int jtype = type[j]; + + if (rsq <= d_cutsq(itype, jtype)) { + d_neighbors_short(i, inside) = j; + inside++; + } + } + d_numneigh_short(i) = inside; +} + +/* ---------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION void +PairUF3Kokkos::operator()(TagPairUF3ComputeFullA, const int &ii, + EV_FLOAT &ev) const +{ + // The f array is duplicated for OpenMP, atomic for CUDA, and neither for Serial + + auto v_f = vscatter.access(); + auto a_f = fscatter.access(); + auto a_cvatom = cvscatter.access(); + + F_FLOAT del_rji[3], del_rki[3], del_rkj[3], triangle_eval[3]; + F_FLOAT fij[3], fik[3], fjk[3]; + F_FLOAT fji[3], fki[3], fkj[3]; + F_FLOAT Fj[3], Fk[3]; + F_FLOAT evdwl = 0, evdwl3 = 0; + F_FLOAT fpair = 0; + + const int i = d_ilist[ii]; + const int itype = type[i]; + const X_FLOAT xtmp = x(i, 0); + const X_FLOAT ytmp = x(i, 1); + const X_FLOAT ztmp = x(i, 2); + + // two-body interactions + + const int jnum = d_numneigh_short[i]; + + F_FLOAT fxtmpi = 0.0; + F_FLOAT fytmpi = 0.0; + F_FLOAT fztmpi = 0.0; + + for (int jj = 0; jj < jnum; jj++) { + int j = d_neighbors_short(i, jj); + j &= NEIGHMASK; + const int jtype = type[j]; + + const X_FLOAT delx = xtmp - x(j, 0); + const X_FLOAT dely = ytmp - x(j, 1); + const X_FLOAT delz = ztmp - x(j, 2); + const F_FLOAT rsq = delx * delx + dely * dely + delz * delz; + + if (rsq >= d_cutsq(itype, jtype)) continue; + + const F_FLOAT rij = sqrt(rsq); + this->template twobody(itype, jtype, rij, evdwl, fpair); + + fpair = -fpair / rij; + + fxtmpi += delx * fpair; + fytmpi += dely * fpair; + fztmpi += delz * fpair; + a_f(j, 0) -= delx * fpair; + a_f(j, 1) -= dely * fpair; + a_f(j, 2) -= delz * fpair; + + if (EVFLAG) { + if (eflag) ev.evdwl += evdwl; + if (vflag_either || eflag_atom) + this->template ev_tally(ev, i, j, evdwl, fpair, delx, dely, delz); + } + } + + // 3-body interaction + // jth atom + const int jnumm1 = jnum - 1; + for (int jj = 0; jj < jnumm1; jj++) { + int j = d_neighbors_short(i, jj); + j &= NEIGHMASK; + const int jtype = type[j]; + del_rji[0] = x(j, 0) - xtmp; + del_rji[1] = x(j, 1) - ytmp; + del_rji[2] = x(j, 2) - ztmp; + F_FLOAT rij = sqrt(del_rji[0] * del_rji[0] + del_rji[1] * del_rji[1] + del_rji[2] * del_rji[2]); + + F_FLOAT fxtmpj = 0.0; + F_FLOAT fytmpj = 0.0; + F_FLOAT fztmpj = 0.0; + + for (int kk = jj + 1; kk < jnum; kk++) { + int k = d_neighbors_short(i, kk); + k &= NEIGHMASK; + const int ktype = type[k]; + + // Notice the order of d_min_cut_3b[i][j][k] + //In d_min_cut_3b[i][j][k], + //d_min_cut_3b[i][j][k][0] is the knot_vector along jk, + //d_min_cut_3b[i][j][k][1] is the knot_vector along ik, + //d_min_cut_3b[i][j][k][2] is the knot_vector along ij, + //see pair_uf3.cpp for more details + if (rij < d_min_cut_3b(itype, jtype, ktype, 2)) continue; + if (rij > d_cut_3b(itype, jtype, ktype)) continue; + + del_rki[0] = x(k, 0) - xtmp; + del_rki[1] = x(k, 1) - ytmp; + del_rki[2] = x(k, 2) - ztmp; + F_FLOAT rik = + sqrt(del_rki[0] * del_rki[0] + del_rki[1] * del_rki[1] + del_rki[2] * del_rki[2]); + + if (rik < d_min_cut_3b(itype, jtype, ktype, 1)) continue; + if (rik > d_cut_3b(itype, ktype, jtype)) continue; + + del_rkj[0] = x(k, 0) - x(j, 0); + del_rkj[1] = x(k, 1) - x(j, 1); + del_rkj[2] = x(k, 2) - x(j, 2); + F_FLOAT rjk = + sqrt(del_rkj[0] * del_rkj[0] + del_rkj[1] * del_rkj[1] + del_rkj[2] * del_rkj[2]); + if (rjk < d_min_cut_3b(itype, jtype, ktype, 0)) continue; + this->template threebody(itype, jtype, ktype, rij, rik, rjk, evdwl3, triangle_eval); + + fij[0] = *(triangle_eval + 0) * (del_rji[0] / rij); + fji[0] = -fij[0]; + fik[0] = *(triangle_eval + 1) * (del_rki[0] / rik); + fki[0] = -fik[0]; + fjk[0] = *(triangle_eval + 2) * (del_rkj[0] / rjk); + fkj[0] = -fjk[0]; + + fij[1] = *(triangle_eval + 0) * (del_rji[1] / rij); + fji[1] = -fij[1]; + fik[1] = *(triangle_eval + 1) * (del_rki[1] / rik); + fki[1] = -fik[1]; + fjk[1] = *(triangle_eval + 2) * (del_rkj[1] / rjk); + fkj[1] = -fjk[1]; + + fij[2] = *(triangle_eval + 0) * (del_rji[2] / rij); + fji[2] = -fij[2]; + fik[2] = *(triangle_eval + 1) * (del_rki[2] / rik); + fki[2] = -fik[2]; + fjk[2] = *(triangle_eval + 2) * (del_rkj[2] / rjk); + fkj[2] = -fjk[2]; + + Fj[0] = fji[0] + fjk[0]; + Fj[1] = fji[1] + fjk[1]; + Fj[2] = fji[2] + fjk[2]; + + Fk[0] = fki[0] + fkj[0]; + Fk[1] = fki[1] + fkj[1]; + Fk[2] = fki[2] + fkj[2]; + + fxtmpi += (fij[0] + fik[0]); + fytmpi += (fij[1] + fik[1]); + fztmpi += (fij[2] + fik[2]); + fxtmpj += Fj[0]; + fytmpj += Fj[1]; + fztmpj += Fj[2]; + a_f(k, 0) += Fk[0]; + a_f(k, 1) += Fk[1]; + a_f(k, 2) += Fk[2]; + + if (EVFLAG) { + if (eflag) { ev.evdwl += evdwl3; } + if (vflag_either || eflag_atom) { + this->template ev_tally3(ev, i, j, k, evdwl3, 0.0, Fj, Fk, del_rji, del_rki); + if (cvflag_atom) { + + F_FLOAT ric[3]; + ric[0] = THIRD * (-del_rji[0] - del_rki[0]); + ric[1] = THIRD * (-del_rji[1] - del_rki[1]); + ric[2] = THIRD * (-del_rji[2] - del_rki[2]); + a_cvatom(i, 0) += ric[0] * (-Fj[0] - Fk[0]); + a_cvatom(i, 1) += ric[1] * (-Fj[1] - Fk[1]); + a_cvatom(i, 2) += ric[2] * (-Fj[2] - Fk[2]); + a_cvatom(i, 3) += ric[0] * (-Fj[1] - Fk[1]); + a_cvatom(i, 4) += ric[0] * (-Fj[2] - Fk[2]); + a_cvatom(i, 5) += ric[1] * (-Fj[2] - Fk[2]); + a_cvatom(i, 6) += ric[1] * (-Fj[0] - Fk[0]); + a_cvatom(i, 7) += ric[2] * (-Fj[0] - Fk[0]); + a_cvatom(i, 8) += ric[2] * (-Fj[1] - Fk[1]); + + double rjc[3]; + rjc[0] = THIRD * (del_rji[0] - del_rkj[0]); + rjc[1] = THIRD * (del_rji[1] - del_rkj[1]); + rjc[2] = THIRD * (del_rji[2] - del_rkj[2]); + + a_cvatom(j, 0) += rjc[0] * Fj[0]; + a_cvatom(j, 1) += rjc[1] * Fj[1]; + a_cvatom(j, 2) += rjc[2] * Fj[2]; + a_cvatom(j, 3) += rjc[0] * Fj[1]; + a_cvatom(j, 4) += rjc[0] * Fj[2]; + a_cvatom(j, 5) += rjc[1] * Fj[2]; + a_cvatom(j, 6) += rjc[1] * Fj[0]; + a_cvatom(j, 7) += rjc[2] * Fj[0]; + a_cvatom(j, 8) += rjc[2] * Fj[1]; + + double rkc[3]; + rkc[0] = THIRD * (del_rki[0] + del_rkj[0]); + rkc[1] = THIRD * (del_rki[1] + del_rkj[1]); + rkc[2] = THIRD * (del_rki[2] + del_rkj[2]); + + a_cvatom(k, 0) += rkc[0] * Fk[0]; + a_cvatom(k, 1) += rkc[1] * Fk[1]; + a_cvatom(k, 2) += rkc[2] * Fk[2]; + a_cvatom(k, 3) += rkc[0] * Fk[1]; + a_cvatom(k, 4) += rkc[0] * Fk[2]; + a_cvatom(k, 5) += rkc[1] * Fk[2]; + a_cvatom(k, 6) += rkc[1] * Fk[0]; + a_cvatom(k, 7) += rkc[2] * Fk[0]; + a_cvatom(k, 8) += rkc[2] * Fk[1]; + } + } + } + } + a_f(j, 0) += fxtmpj; + a_f(j, 1) += fytmpj; + a_f(j, 2) += fztmpj; + } + + a_f(i, 0) += fxtmpi; + a_f(i, 1) += fytmpi; + a_f(i, 2) += fztmpi; +} + +template +template +KOKKOS_INLINE_FUNCTION void +PairUF3Kokkos::operator()(TagPairUF3ComputeFullA, + const int &ii) const +{ + EV_FLOAT ev; + this->template operator()(TagPairUF3ComputeFullA(), ii, ev); +} + +/* ---------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION void +PairUF3Kokkos::ev_tally(EV_FLOAT &ev, const int &i, const int &j, const F_FLOAT &epair, + const F_FLOAT &fpair, const F_FLOAT &delx, const F_FLOAT &dely, + const F_FLOAT &delz) const +{ + + // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, + // and neither for Serial + + auto a_eatom = escatter.access(); + auto a_vatom = vscatter.access(); + auto a_cvatom = cvscatter.access(); + + if (eflag_atom) { + const E_FLOAT epairhalf = 0.5 * epair; + a_eatom[i] += epairhalf; + a_eatom[j] += epairhalf; + } + + if (vflag_either) { + const E_FLOAT v0 = delx * delx * fpair; + const E_FLOAT v1 = dely * dely * fpair; + const E_FLOAT v2 = delz * delz * fpair; + const E_FLOAT v3 = delx * dely * fpair; + const E_FLOAT v4 = delx * delz * fpair; + const E_FLOAT v5 = dely * delz * fpair; + + if (vflag_global) { + ev.v[0] += v0; + ev.v[1] += v1; + ev.v[2] += v2; + ev.v[3] += v3; + ev.v[4] += v4; + ev.v[5] += v5; + } + + if (vflag_atom) { + a_vatom(i, 0) += 0.5 * v0; + a_vatom(i, 1) += 0.5 * v1; + a_vatom(i, 2) += 0.5 * v2; + a_vatom(i, 3) += 0.5 * v3; + a_vatom(i, 4) += 0.5 * v4; + a_vatom(i, 5) += 0.5 * v5; + + a_vatom(j, 0) += 0.5 * v0; + a_vatom(j, 1) += 0.5 * v1; + a_vatom(j, 2) += 0.5 * v2; + a_vatom(j, 3) += 0.5 * v3; + a_vatom(j, 4) += 0.5 * v4; + a_vatom(j, 5) += 0.5 * v5; + } + + if (cvflag_atom) { + a_cvatom(i, 0) += 0.5 * v0; + a_cvatom(i, 1) += 0.5 * v1; + a_cvatom(i, 2) += 0.5 * v2; + a_cvatom(i, 3) += 0.5 * v3; + a_cvatom(i, 4) += 0.5 * v4; + a_cvatom(i, 5) += 0.5 * v5; + a_cvatom(i, 6) += 0.5 * v3; + a_cvatom(i, 7) += 0.5 * v4; + a_cvatom(i, 8) += 0.5 * v5; + a_cvatom(j, 0) += 0.5 * v0; + a_cvatom(j, 1) += 0.5 * v1; + a_cvatom(j, 2) += 0.5 * v2; + a_cvatom(j, 3) += 0.5 * v3; + a_cvatom(j, 4) += 0.5 * v4; + a_cvatom(j, 5) += 0.5 * v5; + a_cvatom(j, 6) += 0.5 * v3; + a_cvatom(j, 7) += 0.5 * v4; + a_cvatom(j, 8) += 0.5 * v5; + } + } +} + +/* ---------------------------------------------------------------------- + tally eng_vdwl and virial into global and per-atom accumulators + called by SW and hbond potentials, newton_pair is always on + virial = riFi + rjFj + rkFk = (rj-ri) Fj + (rk-ri) Fk = drji*fj + drki*fk + ------------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION void +PairUF3Kokkos::ev_tally3(EV_FLOAT &ev, const int &i, const int &j, int &k, + const F_FLOAT &evdwl, const F_FLOAT &ecoul, F_FLOAT *fj, + F_FLOAT *fk, F_FLOAT *drji, F_FLOAT *drki) const +{ + F_FLOAT epairthird, v[6]; + + // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, + // and neither for Serial + + auto a_eatom = escatter.access(); + auto a_vatom = vscatter.access(); + + if (eflag_atom) { + epairthird = THIRD * (evdwl + ecoul); + a_eatom[i] += epairthird; + a_eatom[j] += epairthird; + a_eatom[k] += epairthird; + } + + if (vflag_either) { + v[0] = drji[0] * fj[0] + drki[0] * fk[0]; + v[1] = drji[1] * fj[1] + drki[1] * fk[1]; + v[2] = drji[2] * fj[2] + drki[2] * fk[2]; + v[3] = drji[0] * fj[1] + drki[0] * fk[1]; + v[4] = drji[0] * fj[2] + drki[0] * fk[2]; + v[5] = drji[1] * fj[2] + drki[1] * fk[2]; + + if (vflag_global) { + ev.v[0] += v[0]; + ev.v[1] += v[1]; + ev.v[2] += v[2]; + ev.v[3] += v[3]; + ev.v[4] += v[4]; + ev.v[5] += v[5]; + } + + if (vflag_atom) { + a_vatom(i, 0) += THIRD * v[0]; + a_vatom(i, 1) += THIRD * v[1]; + a_vatom(i, 2) += THIRD * v[2]; + a_vatom(i, 3) += THIRD * v[3]; + a_vatom(i, 4) += THIRD * v[4]; + a_vatom(i, 5) += THIRD * v[5]; + + a_vatom(j, 0) += THIRD * v[0]; + a_vatom(j, 1) += THIRD * v[1]; + a_vatom(j, 2) += THIRD * v[2]; + a_vatom(j, 3) += THIRD * v[3]; + a_vatom(j, 4) += THIRD * v[4]; + a_vatom(j, 5) += THIRD * v[5]; + + a_vatom(k, 0) += THIRD * v[0]; + a_vatom(k, 1) += THIRD * v[1]; + a_vatom(k, 2) += THIRD * v[2]; + a_vatom(k, 3) += THIRD * v[3]; + a_vatom(k, 4) += THIRD * v[4]; + a_vatom(k, 5) += THIRD * v[5]; + } + } +} + +/* ---------------------------------------------------------------------- + tally eng_vdwl and virial into global and per-atom accumulators + called by SW and hbond potentials, newton_pair is always on + virial = riFi + rjFj + rkFk = (rj-ri) Fj + (rk-ri) Fk = drji*fj + drki*fk + ------------------------------------------------------------------------- */ + +template +template +void PairUF3Kokkos::copy_2d(V &d, T **h, int m, int n) +{ + Kokkos::View tmp("pair::tmp", m, n); //Create tmp view(array) on + //device memory + + //auto h_view = Kokkos::create_mirror_view(tmp); + auto h_view = Kokkos::create_mirror(tmp); //Create a mirror of the device + //view(array) tmp, as deep_copy is only possible for mirror views + + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) { + h_view(i, j) = h[i][j]; //fill mirror + } + //views with data from normal array 'h' which always lives on host memory + } + + Kokkos::deep_copy(tmp, h_view); //Deepcopy data from h_view(host) to tmp(device) + + d = tmp; +} + +template +template +void PairUF3Kokkos::copy_3d(V &d, T ***h, int m, int n, int o) +{ + Kokkos::View tmp("pair::tmp", m, n, o); //Create tmp view(array) on + //device memory + + //auto h_view = Kokkos::create_mirror_view(tmp); //create_mirror always copies + //the data. create_mirror_view only copies data if the host cannot access the + //data + auto h_view = Kokkos::create_mirror(tmp); //Create a mirror of the device + //view(array) tmp, as deep_copy is only possible for mirror views + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) { + for (int k = 0; k < o; k++) { h_view(i, j, k) = h[i][j][k]; } //fill mirror + //views with data from normal array 'h' which always lives on host memory + } + } + + Kokkos::deep_copy(tmp, h_view); //Deepcopy data from h_view(host) to tmp(device) + + d = tmp; +} + +template +std::vector PairUF3Kokkos::get_constants(double *knots, double coefficient) +{ + + std::vector constants(16); + + constants[0] = coefficient * + (-cube(knots[0]) / + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + constants[1] = coefficient * + (3 * square(knots[0]) / + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + constants[2] = coefficient * + (-3 * knots[0] / + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + constants[3] = coefficient * + (1 / + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + constants[4] = coefficient * + (square(knots[1]) * knots[4] / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) + + square(knots[0]) * knots[2] / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + + knots[0] * knots[1] * knots[3] / + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); + constants[5] = coefficient * + (-square(knots[1]) / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) - + 2 * knots[1] * knots[4] / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) - + square(knots[0]) / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - + 2 * knots[0] * knots[2] / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - + knots[0] * knots[1] / + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) - + knots[0] * knots[3] / + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) - + knots[1] * knots[3] / + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); + constants[6] = coefficient * + (2 * knots[1] / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) + + knots[4] / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) + + 2 * knots[0] / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + + knots[2] / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + + knots[0] / + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) + + knots[1] / + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) + + knots[3] / + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); + constants[7] = coefficient * + (-1 / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) - + 1 / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - + 1 / + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); + constants[8] = coefficient * + (-knots[0] * square(knots[3]) / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) - + knots[1] * knots[3] * knots[4] / + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - + knots[2] * square(knots[4]) / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); + constants[9] = coefficient * + (2 * knots[0] * knots[3] / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) + + square(knots[3]) / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) + + knots[1] * knots[3] / + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + + knots[1] * knots[4] / + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + + knots[3] * knots[4] / + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + + 2 * knots[2] * knots[4] / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4])) + + square(knots[4]) / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); + constants[10] = coefficient * + (-knots[0] / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) - + 2 * knots[3] / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) - + knots[1] / + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - + knots[3] / + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - + knots[4] / + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - + knots[2] / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4])) - + 2 * knots[4] / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); + constants[11] = coefficient * + (1 / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) + + 1 / + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + + 1 / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); + constants[12] = coefficient * + (cube(knots[4]) / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); + constants[13] = coefficient * + (-3 * square(knots[4]) / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); + constants[14] = coefficient * + (3 * knots[4] / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); + constants[15] = coefficient * + (-1 / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); + + return constants; +} + +template +std::vector PairUF3Kokkos::get_dnconstants(double *knots, double coefficient) +{ + std::vector constants(9); + + constants[0] = coefficient * + (square(knots[0]) / + (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + constants[1] = coefficient * + (-2 * knots[0] / + (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + constants[2] = coefficient * + (1 / (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + constants[3] = coefficient * + (-knots[1] * knots[3] / + (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - + knots[0] * knots[2] / + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); + constants[4] = coefficient * + (knots[1] / + (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + + knots[3] / + (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + + knots[0] / + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2])) + + knots[2] / + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); + constants[5] = coefficient * + (-1 / (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - + 1 / (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); + constants[6] = coefficient * + (square(knots[3]) / + (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); + constants[7] = coefficient * + (-2 * knots[3] / + (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); + constants[8] = coefficient * + (1 / (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); + + return constants; +} + +template +double PairUF3Kokkos::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) +{ + double value = 0.0; + double r = sqrt(rsq); + int interaction_id = map2b(itype, jtype); + int start_index = 3; + while (r > d_n2b_knot(interaction_id, start_index + 1)) start_index++; + + if (r < d_cutsq(itype, jtype)) { + F_FLOAT r_values[4]; + r_values[0] = 1; + r_values[1] = r; + r_values[2] = r_values[1] * r_values[1]; + r_values[3] = r_values[2] * r_values[1]; + + // Calculate energy + value = constants_2b(interaction_id, start_index, 0); + value += r_values[1] * constants_2b(interaction_id, start_index, 1); + value += r_values[2] * constants_2b(interaction_id, start_index, 2); + value += r_values[3] * constants_2b(interaction_id, start_index, 3); + value += constants_2b(interaction_id, start_index - 1, 4); + value += r_values[1] * constants_2b(interaction_id, start_index - 1, 5); + value += r_values[2] * constants_2b(interaction_id, start_index - 1, 6); + value += r_values[3] * constants_2b(interaction_id, start_index - 1, 7); + value += constants_2b(interaction_id, start_index - 2, 8); + value += r_values[1] * constants_2b(interaction_id, start_index - 2, 9); + value += r_values[2] * constants_2b(interaction_id, start_index - 2, 10); + value += r_values[3] * constants_2b(interaction_id, start_index - 2, 11); + value += constants_2b(interaction_id, start_index - 3, 12); + value += r_values[1] * constants_2b(interaction_id, start_index - 3, 13); + value += r_values[2] * constants_2b(interaction_id, start_index - 3, 14); + value += r_values[3] * constants_2b(interaction_id, start_index - 3, 15); + + // Calculate force + fforce = dnconstants_2b(interaction_id, start_index - 1, 0); + fforce += r_values[1] * dnconstants_2b(interaction_id, start_index - 1, 1); + fforce += r_values[2] * dnconstants_2b(interaction_id, start_index - 1, 2); + fforce += dnconstants_2b(interaction_id, start_index - 2, 3); + fforce += r_values[1] * dnconstants_2b(interaction_id, start_index - 2, 4); + fforce += r_values[2] * dnconstants_2b(interaction_id, start_index - 2, 5); + fforce += dnconstants_2b(interaction_id, start_index - 3, 6); + fforce += r_values[1] * dnconstants_2b(interaction_id, start_index - 3, 7); + fforce += r_values[2] * dnconstants_2b(interaction_id, start_index - 3, 8); + } + + return factor_lj * value; +} + +namespace LAMMPS_NS { +template class PairUF3Kokkos; +#ifdef KOKKOS_ENABLE_GPU +template class PairUF3Kokkos; +#endif +} // namespace LAMMPS_NS diff --git a/src/KOKKOS/pair_uf3_kokkos.h b/src/KOKKOS/pair_uf3_kokkos.h new file mode 100644 index 0000000000..9fedfcc3de --- /dev/null +++ b/src/KOKKOS/pair_uf3_kokkos.h @@ -0,0 +1,188 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Ajinkya Hire (Univ. of Florida), + Hendrik Kraß (Univ. of Constance), + Matthias Rupp (Luxembourg Institute of Science and Technology), + Richard Hennig (Univ of Florida) +---------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS +// clang-format off +PairStyle(uf3/kk,PairUF3Kokkos) +PairStyle(uf3/kk/device,PairUF3Kokkos) +PairStyle(uf3/kk/host,PairUF3Kokkos) +// clang-format on +#else + +#ifndef LMP_PAIR_UF3_KOKKOS_H +#define LMP_PAIR_UF3_KOKKOS_H + +#include "kokkos.h" +#include "pair_kokkos.h" +#include "pair_uf3.h" + +template struct TagPairUF3ComputeFullA {}; +struct TagPairUF3ComputeShortNeigh {}; + +namespace LAMMPS_NS { + +template class PairUF3Kokkos : public PairUF3 { + public: + PairUF3Kokkos(class LAMMPS *); + ~PairUF3Kokkos() override; + void compute(int, int) override; + void settings(int, char **) override; + void coeff(int, char **) override; + void allocate() override; + void init_style() override; + void init_list(int, class NeighList *) override; // needed for ptr to full neigh list + double init_one(int, int) override; // needed for cutoff radius for neighbour list + double single(int, int, int, int, double, double, double, double &) override; + + template void copy_2d(V &d, T **h, int m, int n); + template void copy_3d(V &d, T ***h, int m, int n, int o); + + template + KOKKOS_INLINE_FUNCTION void operator()(TagPairUF3ComputeFullA, const int &, + EV_FLOAT &) const; + + template + KOKKOS_INLINE_FUNCTION void operator()(TagPairUF3ComputeFullA, + const int &) const; + + KOKKOS_INLINE_FUNCTION + void operator()(TagPairUF3ComputeShortNeigh, const int &) const; + + enum { EnabledNeighFlags = FULL }; + enum { COUL_FLAG = 0 }; + typedef DeviceType device_type; + typedef ArrayTypes AT; + typedef EV_FLOAT value_type; + + protected: + typename AT::tdual_ffloat_2d k_cutsq;//Create a DualView, defination of tdual_ffloat_2d in kokkos_type.h + typename AT::t_ffloat_2d d_cutsq; //t_ffloat_2d = t_dev ==> Creates a new View d_cutsq + //the type of d_cutsq is decided by the Device(not host) type for the DualView k_cutsq + //Meaning the memory location of d_cutsq is the same as the Device(not host) memory location of + //k_cutsq + typedef Kokkos::DualView tdual_ffloat_3d; + typedef Kokkos::DualView tdual_ffloat_4d; + tdual_ffloat_3d k_cut_3b; + tdual_ffloat_4d k_min_cut_3b; + typename tdual_ffloat_3d::t_dev d_cut_3b; + typename tdual_ffloat_4d::t_dev d_min_cut_3b; + template void destroy_3d(TYPE data, typename TYPE::value_type*** &array); + template void destroy_4d(TYPE data, typename TYPE::value_type**** &array); + Kokkos::View /*d_cutsq,*/ d_cut_3b_list; + //Kokkos::View d_cut_3b; + + Kokkos::View d_coefficients_2b; + Kokkos::View d_dncoefficients_2b; + Kokkos::View d_n2b_knot; + Kokkos::View d_n2b_knot_spacings; + Kokkos::View map2b; + Kokkos::View constants; + Kokkos::View dnconstants; + Kokkos::View d_n3b_knot_matrix; + Kokkos::View d_coefficients_3b; + Kokkos::View d_dncoefficients_3b; + Kokkos::View d_n3b_knot_spacings; + Kokkos::View d_n3b_knot_matrix_spacings; + Kokkos::View map3b; + + Kokkos::View constants_2b; + Kokkos::View dnconstants_2b; + Kokkos::View constants_3b; + Kokkos::View dnconstants_3b; + + std::vector get_constants(double *knots, double coefficient); + std::vector get_dnconstants(double *knots, double coefficient); + + int coefficients_created = 0; + void create_coefficients(); + void create_3b_coefficients(); + void create_2b_coefficients(); + std::vector get_coefficients(const double *knots, const double coefficient) const; + std::vector get_dncoefficients(const double *knots, const double coefficient) const; + + template + void twobody(const int itype, const int jtype, const F_FLOAT r, F_FLOAT &evdwl, + F_FLOAT &fpair) const; + template + void threebody(const int itype, const int jtype, const int ktype, const F_FLOAT value_rij, + const F_FLOAT value_rik, const F_FLOAT value_rjk, F_FLOAT &evdwl3, + F_FLOAT (&fforce)[3]) const; + + template + KOKKOS_INLINE_FUNCTION void + ev_tally(EV_FLOAT &ev, const int &i, const int &j, const F_FLOAT &epair, const F_FLOAT &fpair, + const F_FLOAT &delx, const F_FLOAT &dely, const F_FLOAT &delz) const; + + template + KOKKOS_INLINE_FUNCTION void ev_tally3(EV_FLOAT &ev, const int &i, const int &j, int &k, + const F_FLOAT &evdwl, const F_FLOAT &ecoul, F_FLOAT *fj, + F_FLOAT *fk, F_FLOAT *drji, F_FLOAT *drki) const; + + typename AT::t_x_array_randomread x; + typename AT::t_f_array f; + typename AT::t_tagint_1d tag; + typename AT::t_int_1d_randomread type; + + DAT::tdual_efloat_1d k_eatom; + DAT::tdual_virial_array k_vatom; + typename AT::t_efloat_1d d_eatom; + typename AT::t_virial_array d_vatom; + + using ScatterFType = Kokkos::Experimental::ScatterView; + ScatterFType fscatter; + using ScatterVType = Kokkos::Experimental::ScatterView; + ScatterVType vscatter; + using ScatterCVType = Kokkos::Experimental::ScatterView; + ScatterCVType cvscatter; + using ScatterEType = Kokkos::Experimental::ScatterView; + ScatterEType escatter; + + typename AT::t_neighbors_2d d_neighbors; + typename AT::t_int_1d_randomread d_ilist; + typename AT::t_int_1d_randomread d_numneigh; + + int neighflag, newton_pair; + int nlocal, nall, eflag, vflag; + + int inum; + Kokkos::View d_neighbors_short; + Kokkos::View d_numneigh_short; + + friend void pair_virial_fdotr_compute(PairUF3Kokkos *); +}; + +KOKKOS_INLINE_FUNCTION int min(int i, int j) +{ + return i < j ? i : j; +} +KOKKOS_INLINE_FUNCTION int max(int i, int j) +{ + return i > j ? i : j; +} + +} // namespace LAMMPS_NS + +#endif +#endif + From a00b39615913db3c5a91ea10a8c53a45ab2fd7e2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 15:12:16 -0400 Subject: [PATCH 137/169] re-enabled unit test --- unittest/force-styles/tests/dihedral-hybrid.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittest/force-styles/tests/dihedral-hybrid.yaml b/unittest/force-styles/tests/dihedral-hybrid.yaml index bf17a7fbf4..4c499a8511 100644 --- a/unittest/force-styles/tests/dihedral-hybrid.yaml +++ b/unittest/force-styles/tests/dihedral-hybrid.yaml @@ -2,7 +2,7 @@ lammps_version: 17 Feb 2022 date_generated: Fri Mar 18 22:18:02 2022 epsilon: 2.5e-13 -skip_tests: kokkos_omp +skip_tests: prerequisites: ! | atom full dihedral harmonic From 2f2412bd95adde03d93ecdb2fdda3edfa8bc880c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 15:24:05 -0400 Subject: [PATCH 138/169] correctly use versionchanged command --- doc/src/fix_meso_move.rst | 2 +- doc/src/fix_mvv_dpd.rst | 2 +- doc/src/fix_rigid_meso.rst | 2 +- doc/src/fix_smd_integrate_tlsph.rst | 2 +- doc/src/fix_smd_integrate_ulsph.rst | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/fix_meso_move.rst b/doc/src/fix_meso_move.rst index 281a405ab0..64b451b7f1 100644 --- a/doc/src/fix_meso_move.rst +++ b/doc/src/fix_meso_move.rst @@ -247,7 +247,7 @@ defined by the :doc:`atom_style sph ` command. All particles in the group must be mesoscopic SPH/SDPD particles. -versionchanged:: TBD +.. versionchanged:: TBD This fix is incompatible with deformation controls that remap velocity, for instance the *remap v* option of :doc:`fix deform `. diff --git a/doc/src/fix_mvv_dpd.rst b/doc/src/fix_mvv_dpd.rst index 740785d562..e64a162bf4 100644 --- a/doc/src/fix_mvv_dpd.rst +++ b/doc/src/fix_mvv_dpd.rst @@ -97,7 +97,7 @@ These fixes are part of the DPD-MESO package. They are only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. -versionchanged:: TBD +.. versionchanged:: TBD This fix is incompatible with deformation controls that remap velocity, for instance the *remap v* option of :doc:`fix deform `. diff --git a/doc/src/fix_rigid_meso.rst b/doc/src/fix_rigid_meso.rst index 933369788e..3f734e3fef 100644 --- a/doc/src/fix_rigid_meso.rst +++ b/doc/src/fix_rigid_meso.rst @@ -353,7 +353,7 @@ defined by the :doc:`atom_style sph ` command. All particles in the group must be mesoscopic SPH/SDPD particles. -versionchanged:: TBD +.. versionchanged:: TBD This fix is incompatible with deformation controls that remap velocity, for instance the *remap v* option of :doc:`fix deform `. diff --git a/doc/src/fix_smd_integrate_tlsph.rst b/doc/src/fix_smd_integrate_tlsph.rst index e714c91a17..44d4bab3a5 100644 --- a/doc/src/fix_smd_integrate_tlsph.rst +++ b/doc/src/fix_smd_integrate_tlsph.rst @@ -53,7 +53,7 @@ Restrictions This fix is part of the MACHDYN package. It is only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. -versionchanged:: TBD +.. versionchanged:: TBD This fix is incompatible with deformation controls that remap velocity, for instance the *remap v* option of :doc:`fix deform `. diff --git a/doc/src/fix_smd_integrate_ulsph.rst b/doc/src/fix_smd_integrate_ulsph.rst index 60c185db5f..6b1e070763 100644 --- a/doc/src/fix_smd_integrate_ulsph.rst +++ b/doc/src/fix_smd_integrate_ulsph.rst @@ -61,7 +61,7 @@ Restrictions This fix is part of the MACHDYN package. It is only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. -versionchanged:: TBD +.. versionchanged:: TBD This fix is incompatible with deformation controls that remap velocity, for instance the *remap v* option of :doc:`fix deform `. From 41254b26c77860853ce6ce37c1dc153771174448 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 17:01:34 -0400 Subject: [PATCH 139/169] backward compatibility not needed --- lib/kokkos/cmake/kokkos_arch.cmake | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lib/kokkos/cmake/kokkos_arch.cmake b/lib/kokkos/cmake/kokkos_arch.cmake index 816a532950..df11c76cc3 100644 --- a/lib/kokkos/cmake/kokkos_arch.cmake +++ b/lib/kokkos/cmake/kokkos_arch.cmake @@ -1045,12 +1045,6 @@ FOREACH(ARCH IN LISTS SUPPORTED_AMD_ARCHS) SET(KOKKOS_ARCH_NAVI1100 ON) BREAK() ENDIF() - STRING(REGEX MATCH "1103" IS_1103 ${ARCH}) - IF(IS_1103) - SET(KOKKOS_ARCH_AMD_GFX1103 ON) - SET(KOKKOS_ARCH_NAVI ON) - BREAK() - ENDIF() STRING(REGEX MATCH "1030" IS_1030 ${ARCH}) IF(IS_1030) SET(KOKKOS_ARCH_AMD_GFX1030 ON) From e1f17cec7d709fecbd133540f0098491f9b829f6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 17:11:51 -0400 Subject: [PATCH 140/169] update list of supported devices --- doc/src/Build_extras.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index 4802c67420..eae247d66a 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -639,6 +639,9 @@ They must be specified in uppercase. * - AMD_GFX1100 - GPU - AMD GPU RX7900XTX + * - AMD_GFX1103 + - GPU + - AMD Phoenix APU with Radeon 740M/760M/780M/880M/890M * - INTEL_GEN - GPU - SPIR64-based devices, e.g. Intel GPUs, using JIT From 6eb367946839ba0d9a20fe30a02c5e2423c27ee0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 19:59:22 -0400 Subject: [PATCH 141/169] add commented out commands for visualization with LAMMPS-GUI --- examples/charmmfsw/data.charmmfsw.gz | Bin 764185 -> 764462 bytes examples/charmmfsw/in.charmmfsw | 11 ++++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/examples/charmmfsw/data.charmmfsw.gz b/examples/charmmfsw/data.charmmfsw.gz index 0fe7d2df0b12f2f669aa1f69bb92269561da39e6..8d5741d0f9c8e0dee62f6d557a691d4f28fb59b1 100644 GIT binary patch delta 753608 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%0De?*(CaX%VJ=IFZewl2eb5^uq!w$vnDUapRe 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 m#)K{9=sEY=sjX zBX3NjvluwS5@RA=h$jd|| z)YO`ace@axJpmPu?7mq2bjbU&HpHwWGOQ&{T$P{LD@IU;h;d4kqq?{|iwM7aL^Wst ze`N47&5MW!Vbi;)ZS@|*wv`yx*`h}pwCW!ZFT`(u)Qjr*k15a!E9DoMWE52_Ln2u8 zY~+LgFOZP1lNKxb@s-S*FWe#%8tG$+_$9*jyX!|rry=E--zWq6z?FkDqiDXJdwX0L zPnr6r_P!D^?SNoaf*l1ErUcolCpO{<#3V**vC7B1 zFgB@w{xj(4*m+6KZ`+J>C*2b7cZd^a&@#aAp8Ga7yGo)7 z<};lPLQ*fkInmY{vm+vkF);UQp6Em3&*p4*ex=-J6gig}0$+^3%XvZf*O@)mo+G)k z>o{-`rSa7CMa)!ou7XEa!ACn+C%7M9&pk1JP|hA_;>#-)Xd2rN?YhQ>5Tq+#Sp|2c z_eqdkY(p$eC7HawD?2w;kLKAmG#&Ymo4BN%uy}sF^ZoG>q_`&@g6FN^94~r0OQ>4} zqXRj)u}T9l6d#qmO8D$r$#0J~-jWJaU# z#No!6<_KqXIxEJce6<%n*lA-A z-#COA`r>M8sl#=JWz^&?H^n^q)UC09JffFZ96j{TOSo$s{&nkmoq~7NABlj%-hMiC^us?a55_HUZpqP)~`L^Y&KiK#6^7e{y zLlZ{s@i)#6lBWA9A>E<%ASow?LJ^y-GHgikf{_LOq zmL3U-kz@9Ubh&WMDb z`IP-Rj3#%%R=3{=Bz6qPfGf6Ti0n9=QHyZCkGrV_0n@+Odj7#c6+`BB(VNxmV0|N0 z5GwaUX-CoQoYMai(BJd7bs~P^-#+kRIef0#N2!2REx^ArhE#wXbUPVT4hw<_CZ%hxV0OBt@p=F6QkZQbiw7Mr&!}X6gNlElY}QM2Q8m<_*9_J==T^YOr^yN6`}tmSILSfN z-0ITeP%zp_$x2PShm#&cIicmCG;{5)@3lL#OdFX>J^YkCS~5R}6v{xCYn17_)E|QI zHt)7}=;LWTLyEej=fK)!e}MpAlfiWjAOVL>fG!Eb+8=ECeo~relr&=dSvep$)7^t? zy5!Zc-+yv0FX6*~c2rp2xr}Ku9_JI_OjW)cLhqp!8$k8{sN6bCrz16Q90Dy8B#?U;ae$Q0oT;Vm-WRN|&nLbo3}hAhZrVkzuT6A+ZjGuuHC<-5e0_zc`2KvY zU#gX-UMtF9n9BYW@y6}kmE7nWwMT-dJXEsfD%gb>h2OU>p?+UC*D4S#nRTN&c2ho(%V#Kmjy(6z}eRe82$ON&R1{(0R{J+6X>AE<8ID_t?RLfGd1I-Jb zx#0JY7g}I{m1m^#%n-dSaU>fxtf>zVf4P;m(VSh&*9DK)1vh>=RFJj=;KhVT-as+J z=ioDr#N!1w%V65soHYcIqSrDCkeM7p)^Kp+F68H4cD=4kkEk1KKK$$e=PvE_7h$zHmhB)&Jh7hFu#7={|wGo1y|z)tMgo$k!X9LmMlNIPTfJ z;x(@LQ1!wxYvLrQIu0~SUNhkYehQXi^+s<(Kt_nlJaGiq>?v~P zXSJDo>}Kr$pXbr!5{w7phs_s}gb=|%}V!;dk}2#bCVZ$4Dq92K}~vv?dc8%f#w z{<@&3Yq-BqO-5>{ijwY(Co8g1x)5@IS~h%5q{SIE@K05AKZGiCLP7c=7_^-IS_r$n z#KA~yd6c$jVevG`)TcRIwY{vbSqn4?tG__{w4YBAo{D2gvDhZP!uFYWGxWoFEz1>~>E!%tQ#)o=?l#N@;3@4FKdM16F7Be$TXqp&F9 zHaR#3*HesePDj?rb&PRSDQ^+3{r;HSpC8jE5~nh%uT4HfKK&(LackswtsQ}ctBEx? zx+uSXfn)du9+-=0n~v~mMnIjDwKaj}PFT!3e$1;yWpptJZJ%*}X{;XRV$Z<{@%&n{ z`fNG5|6r=daJd>=L{x2~rq>fjSN8T5;@!sWc~0QzvbKyMX~4Hnl9-Lr;VGlL2x{#S3n47d{d zy+pitGUm&%@J5KpIk3SLIWMO}mtzO7Y|Df8d%Lgq?T(byxavsEj?FuBEd;p=AkaQ_ zzk?@H`QD~~G~iU9YZkn}w9_QFe^L!cfDvowRx=Q7*Eol9;(D8wkxu&iJFb6zN0L5e zyvCb@f3kc~D(L)@^Lm{hHMBfj!Y|9)F|WCdYrZ7gf-r4qVtzLmC;YeYd{PL30R&X-(D-TR zh*K7ofK$CsBR9C-y1#N-9WOZFn=bM>SlpDRH5qx0IVv@;CCD%V=D*zONHqx@%S$aP z&Sw{Y5EPbjGV7P*O0*q=;%J|QMu%!XyK9+e|0UAXxBgT|nA}SP0F%_DjpDyA!4(1| zR}?{TNQe&`;0x!z{KrNP!RPBO!y%Yim*XYju@PkX;0I)&)&#gt)SCvu*ma+GXQWgc zc^aZp$!2x$YquuYv5mgn8S=+vr#NQJlr>|2`?F>sh*9-qm%N50zMl}Z=P5b1!N`H- zJwu@fdcL*BkSXg6nX>#OHP5e};+}S5SuzbE^?AR5xcw_E4q%CzI+QEpW!0qIG8(<4f&*Leb~f##RQ)@ z$m2KMKnY%sAW@(1_%4rtLw7CVf&{yNX@ZMWt<^kETM<;rNIm!K24}B4&&T>q`Qw)u z@jkNX%yGn*_LCCI?oL_$(Q~cnze$$Zx4Yd{6B@Xj?YRNPJ%1*CmtDLvF60c; zzq2fhfXD9ei+y;cUn6$eF@grcbcO{|CgD2r9w=WwAvkB`Ll>pVoYojgwr8x5*$lU- zX`k{1pu+rSjRG6~b*uwxszOeGP_OPp`UqtSE7De_9b8sc$FJZeq?>49?L_s+a3{-JnCHv5pzPNlEc9s=UR21n+2)BYrG> z!ysO!FL&qexsEr-UeU5rQE?7`blvPcBn6+i6LXO^f{!qS_9^}Fs+}+R_!g0+@VDgn zDyk!a)@t5Jq+^`9sN}CG?b`e$_bBMkm#k@zaqr+Dtugj9z4jN}Jd!YPAKQe{%t46+ zbuvXr{Zg;5jXcb(=m$f8=}qD>$05;*S^lw&!Bu2fRNn5=ObXJsUSId7@^uTY_Q;%U z@E6rBqKy+c*L7|;?P5tv^FA$Sr@=)o`4G`42Mj699sA}WcYJ~J0|~k~{{HvdSGa=Z zIQD55a^m@OYn(Pv6~eR3M~weN$B$2D1c)HVz;+ZT)EO{;B@MNIy{HOXLTvh?>R~tr zVxQ;5@fS0 z)HEj2A%a*yk`&t7zS3{q&e!J6L)Q|y?$3u~sS!erwu5qi?L!}9CDr^M-2ItM?9*K@ z&7vqBoDhm<9yl*|ZuEu3it(436&ZI)lLH#=D?hpZxn{<`i~s6C=R%>DXO06+W6*cP zZ5tX_Tnxe_3YPCo=5<{26+@%9-IAnX@5)lCiN2izv};`BjzBP()gnqbem|FISmCel zZdZ;KR{{lp+1(iui**yuCG7`YA^HXe;^_cAvg}^ZG}!oE_Oxj{!)T9vRl{5gN0}Wd zvbI7dx21tq>eoly{^KL!>uAnf^hnwf38g9wu!ix3xxKdAa%kETAiJfG`mT17#=E-*nlD99n-yrZ1@=bs z4Sl!K!!BRd6-4#xiv8b(zP8C!t<~VXZ5On;o&r`l7=sefmWN2<-n`;IuK4mx$q6Z@ zBrUQJN3ue`D5fE7tzoMXK zt7o2nv>9Zys)UYL?JL&~Lms>tC00KjtTM;_L?#VZ$8MU(7t*flOAWe@lHm2#nOAC9 zgf(F6NFBsX_T4rUpUljIW$~o1Uq+!dyY1VBlk*3x?V)Rvj36bMag(29JBGuB?np6` znaKWCxg38gmjyQ?p3EqHmn@eF=8ym^=wcs#B9(1bYaX(6&vh0B*(R3fT#$K~W)*+> zj2_4Eu|*+4$BF0xU%HiY?snH*lRgj@IdnY$>iTW7tcZr6kBU09x?{m#&Mb z*?GxxT=M%_S2FkKOG>EUZ#?Vh3WrKiSZwOllpS2G)XS5$o^$RrQs-qd5SY#=F0L-f$s4yE$<3eHm&qM2!1=4s7k9 z{}Sf=EL=7$s(v6dUrW4^J?1>P^4B`(P5u69FQY^B#j1S;eFRB*9`A!F31cW2HMZaW z<}lxz_2c5!b%cs*RWBowr+#sG`aAP~Cv_8wZ%?B6RY&Tvm|dvjh!_JZF&@5@Rbou( znJ1_fudzNe%{heiB9E{zQcEX^f^+B;OBS^$zNaLs8cOe%o6E9=TJ?A&vEr8ge|%14 z0%QB|`kpMO}F;*O$lAN#_dOdZ(z~$07uY*bk0-!U zEYpCYx7={sjrqu$XzTIwB>i9yuw=g@YmF!0m!zL-W10&3T0?y6%XYuMT&@j|^?!qI zVZY@!TFx)ALwPF`60*ua>lsRaXTpqd%M-45>otjd0b3SI=!%Q<_c1@Rm_IEXT1mpF zd@B>mzE|?ZZ=rD;UFW??+QN~DpyO6|IOdKEK1TJ_z-)>K7mzROkEn`jX?%uz%loLKC{`gFu%!%nf}_uw6y^GLaI%Rm=bO}j+PFvAv9HW6 zgoAL*!dWHZAVVEvfW$l)&`n^eKFYejSfGyoK(Ypl(1dY}>RYzO@@n4=M0X3Nr9a?F zv7eu^jZgXgts7!ats^@69GPr}FghEHtv94*W%UxiH>dx+;Q7AbNszRuqr+Ys^uaA% zwT4cf)@);^O#~06`}CQAPz(J_-}wb9>opL!EZz*u8*4|vl|WsEI&Z|K)>uN!l(yU8 z+mBl1FX_cTlT=!*ioTXLwzUH^5yN6wkmFs&%T{?_Q)_hfkJp|Xc3%=#4vV@*gwvnJ zs{3#N!+Y*CzB|=@TO!2J=H~U5T<>wCNwxSwuN=`YicS$}5ZD5L=+0qv)g9@-h&}d8 zEwch7JU?MgPeNW%e{iHd1v7c39N$rFNDIcj>w6`uVsJt;l0lJDme-b$XTsFKETacs zOzlqL+gB_Jc57geBmVa&D*2NK(T#fI}l>Qznp=X z2cX8dy$p>jw*$waTKJe#yP9ESc{2YU7~o4=LMo5ZLj?HQ0#1{b-G-Tp2-HM5`hk63 zb063Ie#rYhHMbyx4*8&j__`*XiAwCO!%PcF%fNZa)tk!dWhkp3FJjY_^C}(*mSNFK zk{WeXlgc}P;F_6;S!*`~gLPiByw%#)6;yZ9Sp6~{t(YUZuaAJvhMZ5&ZYQafk^S{s z9`EmMy*E#5X-D)Ea=!S%ZpZ6wkbaGyvOiZ%=a;ARZbB1k9NP>3KB%Mhj5T?TlGoAD zKF^Ty;_Ma`TqGf^U#LlZ+t=lYSeJ&%uWhhxvk@En2jbL2 z?(JMD)WHLZ+TTkDc|rYuaBqJ-usfbne;1vkW{h>h?B2jmj{+@!g$^?+ch=nYC9zxj z7~`r#3|BqNy4UWtK7>8Ov}w?O>(QSyi*WfSD8n!pFN+wrX* zB~Q(NjNROa;XWk_2&8Z;$FQLi(UZlgpw!j}o|kNYe@F!R9X~-m+&`n$kOp{{)8Z=* zj^k-iO=P^aIbO2wM`-$e_UNa5^7bS-#}2I>S+wSyn{ua(P4?`I% z(a7dYTQFMB(fK)~w#cGwme{x&H{rZj;JOok(>^+6PvlVU%pQBdN(?+^(j1`pD5+-m z@pGTBx+`SKatpsjpS)MdUJL8bivYRwdD{LFv&crkpQ{Oas?6Vq<7b+)$30ftM-Xs( z^;8yTLRh!M(v#YZn%qmb>QfHWwakenuzd^FoXoC?{5)QHFp*_S3hPC4N#{Kbt*Zrp zPh!@V_z-Y!!B=D=)6E0S`2w^3&{rp(Cb{V~zvVgLW_I0cP^*Zcj<{U#-e&sPa*aFw z{UNt4OXEQXvqQb>#ge?iB49is>i+g8|ADY92RY-E5V*%tGJ8 zOV~57HY7+hY@G?1Nl@Hhy#HqP?NtVJ(>mf=J*!KoZ)<$idTAFLz?!cAgm>*36YP&< z?5GsU`b1WqHOf@b)hqM5MQxgYnxL)uBKl$4@^^RwLejYHPZg=Gy%zFJ;@1J@2-C)H zkv>7J+qOK`Iefh9_pXlww)MpWOQO>n2zm{Ik?BC-kHV|u6AbE0JvP4&zq z0LhSJdM)GStRp$M#_Vqb!wDbh0PPYaxgmY2_Yy})Glor1xgMxW=obrruX?WPJui*( zd5=9Ua?=b%iQfTSZXveLgCGATECg@HwhfZ(V+aSum*Sm`GK$&~S2In)HM0RZwB9J{ zw6X(}**F3uTK2=qweHG$v-)K~4wFr~=;TxqgZrWfh@tlUOB$v3btL?cv3HCMEO?82 z3h=|B`ac8z7MJ&RKv6P(j%z*yTtIE!N)gtW>t0KlXD0w&`w&)yt#X8ioxRR9$ixvn zJO}P4)!0P~t|5~2Po{w=nfm8ih9ysR(j zIk~6?d4DSV>zHhRW5pmS?lE#0vYX~4sN7J9Z?h|VjIQjnQ=s{W)^d4{DGm+FsO|e| zfOt^{3ShD68MT>W-aw%eO^8YW5cLWxPeenzVJtdj0q1Tj8S@?T@%{s36T;QT!R*=(IBrOl$ zp+zfuhEBM1)H-(nE&8oz(#~dl_we4~Q1#zw6)1`jJ(!s~1&vm01r85tzdr>1Fn?u& zb>0mpbE#1wJohw~Nul-YKH^>=Y&;$C4Obx2{pSJL;A?kwuJiokTfIJHM7X0DkVN1F zRl&_~8AY&v#jH7(@_9KFnH$cei+ZN{Qr|3Ga7{{K`6g`)U-)2#?C$eZHmae>UAD=8 zJ8Lq5%Ugymtn*4AG911Ubz6{8)ajgBgGb3P;$}(OnTJzahUXiU{m*%`gz#I(p(-$X z3wR_N5yKUEJm}{AjhOdlImZQ`+F`VUv=T)M94R<|q@Twx42zI72~W2TK#02pv=R>BTz}&$B)qrUV%o3@yVZc_y-`=3ue4 zOjFmqJBy>g_6z;$GGzqo@dxZeW_D&CU*e6oNf6?$$%(x5J;zI1 zR>FRNIOFYvxH#jSiR~mxH4h^27$QI&D769x=>U*^vMaqjTYYi9jSt1!UdFb09ruie zOaw2C=QP}?850mIk8UnSyp)5B7bBv1G;}{j;fiA!a!NDyrG-PhIzQ&0%vO0w+YFPU zY+j$U4L9OUs-AgY4KxgVNDp0$-+A;HfqDXe9&s-tc>4M!xBvLkuqmwI`e0@uM59U} zvIb4%2!+^Sj`XZcKGt0X?}>nV2}w8Y>?0vnunWmr+-Qnyx&lAaG3D1v)uxy|wz~+v z%z>Wee=#iJBq6vZdC0rd%Xh1V?@Ce?U)Y&h(UB>~-Dcdg$T;c0)yPd_`;h1yIhHAZ z3_G@_)O8LkE31j#I^uatM)4gsZc(qxOYLwO#hioYxz-FC#jab9`<))FxQtl)_mCIP zCv(o_twwuaUP$2PV9tqoZD$@0`}_18Xu7ho(R7ojaN zxk#6fSG~g9ev)ncHj4KVOn&>^@de_4_58l+f-f-Og>$6s1taOe8++%TU(?Jr4lBRT z4!&D{e@i(Wk+nZl)^Rw>IQ?8BchSi~zI=bRh*XC)f(y)YM0PfpObguW{=}HXy)TRM z7?K&~POp=M4B6nc$}P8%Ye=TDh%08v1$ zzgwH>VX%{eQ0|-FZFnjJ*_dgu{@J5rbn-<%KcsB?C^Ao0w3e3SPZ-K_g8Q#N{5ln- zNbvw@bKTP|fuH}%OV!iY)#(#QY)d%)KG$^@8(SC$ub@qs;}ivqct*-+>UA@DZpH@V zT8G)$_z$d1#_wZ zI%&y;@~}@sE4td)EMDds<~y>7rd^ja8s8(i(1z-|wJ~2aZ5PXaMNj`*t9z2)A~sz{ zxkhMHmoJ-dk5$Y+1qQii-DrE%f0tKQ_-#ACwzc|aTZ5Y46G?2hZ088%+Z;wcnHlzF zRH`XuX0Q!=@W;Edw?E3JqyS(AK(4Q!LReJf68URz5$P7eVwW^bfogtlJhkb+^~FNI z;7@=J9Z{F?v48l#k;K@LYl!DbYI2T*MWC1Z^@X1`nJ&vKY-^9)UMGlgeGxe z%D5a4k*81nH=2jJb}$_0im$zwm7Y<*!U>F+@Kb~cf25p@Va3#h&%T?p`sayPAtzbKhKS3JCDBWV|HgIKBm3Xs1*FV|AO0$a}nw$@h^ z8lH8dpD}{U%I>U~T3Epr_MNpg=<+SOZS(e|uU4M>&zdOSE9KR34sRM+2G2!5>KJA> zjb|MXYe(Df(WY3=@fjaarTk6<_lwfxqX9i&U4fI5Y?oyi()mmRe`37>zeXDUm)zd# z21S&6agxlW7S>(CxUW&VjDdSHl}+aWsOK9V_vya93fH(P&JiOI2^^oRr(WBI8gMv^ zu-#YD<8=5l%lwol`?@`s&TJSDI}h5DVi-9^(kP$n_~w>69EZ>ar;~$M@83u{dg$Bx z4@C}9MeK|g=T9Vof3oWYG7jGk$~qe>VZt^AwR)Jj<`eUdWF*953*2K|k|9ey2XvJ8 z2M(gI&8qNv%v*k~f3CRy#3oP-ef!hAju>v<>%M~Kg6D8@^gXR5^~w<9ocDbFbAPt5 zWI4iE?4FxTL=4eeB4G7-!! zM2#^AfIeDvx9LUismc~!IUC$}i(RLT3v+}X9;q@NbP0jnqLCkTpxD-!k*%Y@U%mf* z&+omYyFr~>Qf8)id$y5ZMoql6PmaOSPlr0pEOvKrG>}MrI-@Hu*>WV(s=tGupHim8 z&elvIRz4+We}>*B3nLnAtZf12zrVCq^2&E1*2w)X$l5x$ZpqMr7N(zQXoGGZ0Pc$pDd>6x9xri$4j{Lq^Kbe|)$^E;LG4}o|Z~L|r^e}Zn^5?9z#=f05 z&)IB9YQbBRscZ(>rUP}0CVPK@3%zyrlPy%{l$eSse+9Dut|4j(bJAiw82XOa=jjW()8_Uc-#&Cwf zhT3W4RU4b~=3;C9zw@5RZN;c-eI&R>q7X)Btd2_}7?$wfD!Cd@_*Sj)T;wPi+mbT=Zvz zf20|^gUKEm2`x7310aulBYsu@ru&wc&>60$hM_;;d(557agMOK1?n|eN^TvXg#K?E z3eZS0ACze@I44*f$1r^htk(57&7)6^R)>q(vKQXVIBRudN&n5&HghFT~C`rGoI&Dw( zvWLpHok68v`qecJYw_5+m5my7nEf2YX=1(ULs~TZTQvrUrw_4_CfcO9~&>t%q5lKQGCeNMR966JpiQTI`M42LIH`dE{9?r*fk| znCEyfANoFr$D*Xx{~Z7cKi3(zE1q(;GEcwhBy4P%da9aU$hE(;ZcO^n%%|1s$}mpj zH{7>NArFz3u>?Od`213phr7va6m4m>2 zXJUeXxwMJ{XA@(E4jTCn#QQ<*Y-b#*G^%gQqB+WJloTRb@68LNCZ1)b7DP`NgPwj{ z`M}We&kuAKJ6PBm6n?uEel1F=r%8)vQp}6i+$STo{|zmZ}Oq8(oXg;%34 z9Gu|nYewU=Ce{F%*Iu11h?gd@y%xy;u55u$1t7>g$Gy1LSI6wGBP@;QzIjMx1>W3h z)Sc~#==w1e?z?Rnt;03i^uinotf04=vf<(((Ibi!e9CiJ#&gL>e@W@*qF78bG+`<# zDWTy)d)15sLJEwP;q!slG>2PsU-(MPI z-m*-)=n)~}1Mkrf2m-oT;ibd3oEkmXkqXO@%4S;=U@HkuaLl}5siU6$UWIT6o=T)*2njR3zzws$-<>7$1G=7E<6n zMnC?c!5Au@_2WOD^=ilRR0^>2sK*%JBvNb`+Cfe_J>-`L{=aJs7UdDA_jDw}TFJyb z2KjL_l`wEO9==9>-YbzHG6V569=LaJWlP)skWhs*6zpL+e+_ZSg!>aQP0U{Tn~f0U z(4Js^znk}}{F{(_p(Kf$vZ%GVNaSgHi+5fGpn(tWyAswLj0%{(P9hcmH;p zAV#9YW~3fhO(*`dd?KA?OB>hNm~~M*nj`tMGJk^$-EceBkS(9ys2?$ zA)whczIO>w*jiP`j-%m>aM>9hLwW0C0PSwAnsJEl*I{m<_S+hP$Uky+2tav@;$S~-IqpMk`cWL_|@^8<&>LL@45 zdkN+U>Q~KLC)i6ohI%z$pVD^RcWNlv!%COFfAmfEZTipGTlj)%B^18D3r-Xv&u~P= zg4uV;ZQP_#Ac(urT9)67RwnXxK2vGP`4%wUD>K$aB+`s-^ z_Tz&6Yfn20VA??;X=Jy3re8mXZHx$uNGM7tv+k?oy#;bJcnkU>9V8>wFn>{3T ztXPC-4w%;@-|lHI94{7~=mn%9kVY$46tO{o6>@8)?*9e3Yrw1hdI))#C1yr3ZxWP) z=N@d2sge#P?4K->8*l>U|4!nADDEJ4@36x-T=kE48YAeg2eFl7a}$G=3p?xP9@zO=bPF}G{-Kr%kG85UlM~X?{rNg_}?)o*L{6~GHx?b zPPy>9AX9H+)59=vNa_{0iuI&bx`;v~;BnZS+Te1Odo!m!|L2_gN1pI;I=MxRza={fZ)Oc8%0CE{jyUSxgjD$d>TgF56Mj09Sf%aX6Z$PH<=1Gf5JVZCE1k5 z47!5*P2rBhpe#?v5Ria~NuZc|5pUx5d0r6a}SR? zO;}tCTb;u5`nx;$4tj^)hn6TJ9E9K^qES0 zz0BYf@R6`m;d#NKIwtQ<7b;{?6C8$ZdQ;^MKR@9?>uLWZgH`oW{%BE(`!30?*7D$J z>Z=CL#{C>7SZOU!D-TaV3{f$A5$wzUK_lXQs1>!jmy}WG8u>S$G!g@ zo2b_&J;dfvX8h?gF8I{It~=}s)+e>%k#&{0$uF@I)cDe7Mp``j{4?od!2(#9?Uj}Y z05+-x3|j_7ji~gz%yZXrllL}= z^S>i!z~G4xDm4@KI$}6mqH0tBZ}8#q#oV{L{Ku`P-9JZBe|27=#SvxFx}4FG3OB3i zgBRRWs=S%|69RF24Zbx~;x1BD31aT0j55XVdP(RI?Q)?ihy?9B`d1bqM~R-w%Lx@2 zWqdL8$N#o5u*d1L$tah9yiq999(fXoeZDj0&s!*ZWvltCgEO@(hQr61=8&Jrtf0Wz z<9FGr>jW=*e`Suh9)kjJk*jQ+Bw(ysBNU6Csmnxy=3|MKZ<__r#nw#@``lLh`HIqX zjc)0TP(@QDy*BQwBd+AWRS5%PbSLz>Uzw;Jp2x*7e*~!pI^)CjM_fPN@zo3zbd0h| z#D}L;oa8ShCAEHeL(5^qk^$raqF4GCa$`xfG~HeXe=$1s!c3f_op&ZDF5=JEHXRz` zZq%pX&Q^j)L>jWMOI2=D4=~N>LeXtZcbab1lYO9=2V>Zh2<@jvtI-sydouJ2I=~iV z%yDKnza=frL5wE!d1n>^3;;8)Agy$!-UNSqUvQrx4v1t5NlKl1+_M6T#Qp*Iw@IK_ z2CRpMf4xe%_}@7_;IEfOMqcpdke;2*u> zezz`j)kU?t&J^{Ga?78Xoht_mJfI>cGA~Ucg0);WvCMhOcdQEB+H>Y8`f>hau~^U( z;N&d0^Vwoa zhHhM&#}(qVD~irsMwxMja4AzVOx0NRCXmbHp}c)P<}qv&IQUwh<2yO?#cU)%DLRS; ze+)>}cKrg$#}EFHf_ZH=BXioDXl1XTB#Rf09ngc13?Fuv@P(duK0EuLXQ%NR@NS>B z!YeC<$=U_CSBUwW#KXkwHEt9u+AO5JV&!-{%yDfmLo*ojfr(u~hZ!SduY{k?SOG+zM)YWauFCiKX&KorO6Wv*1mKGk1ZseQ5|&oLFG`pK?=Z zPMos@D8b}xHZx_2p0jUIsE2N8nH!UD9N!O&Zp$HFnnwF!4Nae`|w1ogJ=q z9antXNi<-EG3mhcvf9wysG|@y=zFSz^4H4a?l02UgQ#q@i9O~vDM)&aQkR%h6a<@S z9s<_>c&hW6=J)8;uWMq&1IvDWW3}v3;zP1lt&RyFQY3e8>$RMJV(ZaPjOqKBH{}>N z<@pnq;RcoT<<-Yy2fj<4e;@u3}! zt}_EW;M%;;4)AySbbqGW^3pM!qj-YE+p(z?iC#qAbZ!dZ832V!V7s$fAuN8ljhuan=-Ui z`G8JuDobhU>u0V#K4HlxeCWzCoQ@B>;mUp1eZgAtT3^Ayz>Gz* z>{v{*Or9{Wc>LE#e`M?N+}7*{Ddz>j+n_($zfSMOXqnQ?lOW|Nnb>Q+!3i)Zpy5)( zY+2Kq{-{9|8J%qO0)!bZbf>n>e!N0cNe*~o?5qPin@02;x_g(}F z1_?J_Xr*y|KGU8h4bMb|T`!yO4;Zx-ne1~A$!*QFCOn?9$=_XO3K$ zw*4y#!S8qdaWO>$OjcZ3oYTUx8_OW9UduBz31eH~EX`nMUh@2p4;ce(yr;zIEp5jB zBg7c!K(wZ8f9e|mm?!PqzRjGs%h>RrWmwY-t4zV%7QXYAcum%~ z{{2=jknFaTxrNa3D+VDdzU$54mVK5lBjY#e)!Avhe{;ON>tMvuhb%$U-^8&iaE0xB z`A7S|bI4%F*-<}aw3^&|ee^TBOAE%4PSH8hQ&-SF+xh%_`Ue1JSs7h#7v=yc?0^8;nKE@Y*eZc;JhCEqwMe@H*9|36tTaiwMK;DifC& z%=_zge?3mB$L%C9%x4z8 zqQ%#L>=|P%g_H8(72gA|xmippUP_YV<>(^9Ey;XusZoRq_svI6MVphxtPk&xD5WJe zZ=_XqG|M8Gr!q zjLuQb8ThyNM5sdXyS&sCOGcJJ4MQ@tz|9i`#%fX!pGAR!kReOAsh&P$H9f^#W-o37 z?}u2-kx~VlQ=JeNHQv9l2BD56g3G1+a>};I?VcTF2o?x|{_u&l*O(W{S|RaQLcko# ze~Al3P7#)TIxxmLC6n6M3thKNU24hcG&?-`xFfK1yf(hI)Xps;v7_GowskD9+eg!M zCCl2Hasfmi+2jOuZaT_dp5o;rc!HT&WT8$GTWDz%8v#)?s zP(spiGAz`C;A9Do?ehV*?|afR-c<#KSm;mwXr?aeel7o$%E95f`JzM;0+w$~~J@D=Ju9!=8xUzB-8FN&`Cu`5orwhjfnq88U!V$(L}nWP@rlA?ex+ z3>x@OWpSTL#Ssv_E?;-I{>R-F0! zYVJb0l&IYNy-o5>f1Pp7?-gO_)8?H8gA|jRd}eEO<5FJYbIJJohgNaTLwM9AY2LL$ z5_F#KTs>C;;Q;?=Du3|Z{rNQ!KXAFnVP->3IuVdZo~rA5+FKl=A*QrBfAj(DX-5=? zU~^7ip%6P|Xj)zh#|d2EKH6V>*xjmOn77hbXebq-3puZk)G5{l+PuRV@0@I>Fy{XC z6`G+nVgM9QDeQ^HUgPbs=k(32-xG8}osqm?mt4m3l@}if-gtyRhPD25B*lp5ev9U# z@`0VPM%R*NZq*G5zFBhLe^-}gf8U7n$Fb(px(zFK$yqjU7#-&o3a%Z#U|~BMXz$;L zV*$upRJ|jrQIpf!6J~41gUWIRD`99xhz_tG8Vb`HvJ_NXYkvYXTB1lexg5`a!WvGf zQIggEjpl>QvsEnCt+5OS_+Mn~YfQhg-qqS`d_E!>h2XH0EP9xIf1%6(w*O!>L;5Yp z)P@;q8mjz^gv*+ckizyaOm)kj>@^l2wI$My@Z;phoWCc#be_1>&Hsi1{4B#0yCr!< zqT&d2rbRUiJ>s&i4# z7meYTQS#P8rF{Hnf0*!767#3!cZGm@h|*Ljp0V$4D(z&ZgMA0_<(-fTG%uz-FH`Af zfPwq(G0INpOa?aH$u)MVyaq@I>8Do4V`&Z7a!+&AcjID9elzZ2b7brI9=H0B+<+Dd z0wSnik-5_6rf28g_<(Q*eNQire=i6P- zR@&cxbs3qk`OStHUm#Qxd_AFlZqhrTOYf`TQF~b|PIF;XoNF<^+$eoJ6HMDR3#BNJ0g_% zqT_A1s7ZQb;ew@e@Cq57)LsT044Dpl#-P|4) z!jM?N3FCB-Vice|K#xS3cM8{%IICQZu)~E&Lby zwbYLwdm_I|`cRFAlsJEyB~942$H8t)Jm}ve6s?|7A|DpDm=e=mM@J-l&-CV~Uu>o0 z?*%1+u%73E(5w&Nw;{gt&G1S~(vZEh=ycj#($3$tc8h)AYo6!|S-a=>$y;{F?1NiY zOu#3;e-I<{hwbpWUV)KPx+!JGYQK?5JUQBCHNK8?wIf7ykoY|BKwrYZAE zJHqtDrs093H#fH|2~3aqBXqs^4g8E=bq4GEk}X`42T$nq@+mMJa|s!HxweDCGN>?Q zq^)U@>V>m>f-+-#_t7%io)S92z{FD~4t=Hgf0vOkKN4vX=6Ke&E2wb(uD;CQqf5KL z$<2LU$mzftNKTf+K=fo0HxfNbz0_X((ftGluhLOwW2;3sxRqz@k8~HKW90?5(P^AW zzuRwVP_#oMDm@xh2PApJU((NsZhXULfd7oEh2D6J*b3dtx4^8OA!dnQ ze^xcV6%+k%AdrO%WvBjPZ5N;yQnzQKf_U^N>rfWNBzl*Z`zSA;Sxg!?tJUaJb^r$W zpM!--d=z_)934c=G7F^hyL4bzPZ&afu%L)b#Pk8-8e$j+8@^DuojiNG7q=s>ubO>3 zA3l&Qn@bRvkx^|~2X)Uq*Xd&h3xR#te{i$V*|DPMj=FuXo5@OJV>JdlKl_%7ja*qw z#-R&MIZ2_V%it(eW@5lUc%6U0pDe))ESS=yjBahHt#CXRgt}}FoUcp>MFF;awTQ0& zXc4V(0v`deWheQGP}%xP`je)St|IC5kr1ZYHgFPYub2SIQ9I`;4P-VLAj;%^e+I1; zZyObS$%E)1@>$t+HprG=TZJGs*~9$>KtW@6`JonTG4!IajE%amc(i@!ChnWzDcO(V z8OnSqVD!_hh4<16V39+SN+5U5PA%K;5(j5_zn?i~#eY~LPs&{l87+CuN?RztzEht$ zs)x(Rr1K81Da{6XWa4Ban|LiK17(#&9}f&#lHH~y zHftqNa6u(PT0?!|I_|KlqCB6wwv{M_e)4Z>jON)f%J|KXGj~FLw{Mkjf2GdhN+Jfz ziw$C*=tsT&SOof^$2PLMeRYSz9PS|kas8a0jyaaIRrNCXnf&0k8BfIAMS79dMxOwa z!gMdGWIC2vci^xNhwOXHwX5+wJr?;b&c$&y*~_43^#ypbF|J7#$Q2K4*){E^F`XNB zg$yHJ^tn7Q73&+UTUSwXn>L}VKBdMU7{iS-}L-JeNR3-#+34* zqOZCqy&PkbQXq@eRBJT;=6%AhG`sb~>PuN^Mhy9E1KB^G;Df9L5oSrW0pl>`Za-y3 zUHPl6+|N)*A4W;{m}0@CwPvI?obN5Lcuu(LIr4p3fRT^~YqK#@ThewB3?DycX8wnlLD?pPk1t`1?IYJHCxN zLHT*yXev&+e}0gcFc64o1Dm0%O^Ts7KL@-sP*F_+?*k{CA;hnQ7%O~S?@5{8l6b1@ zITz{gfN?&LkGV$re*^o*C+XN%x2cOu6`h7DhSe92yFy2MSz601) zh*3sCx{gip4E3Zv?QPJOzYjHDmt5|7OOALHEZL$XwcO1Ye^^FZ5)0EPq%W?dl6of7 zrQN^oKY?1FB=`^dQ8Gbfjr>7$WrzJe9c3jBptflXRela^pWp8I^V>PyO7J`qiGX8) zBC8|dNO)-7slL{@f5^Hfgg`W^>G<;UQ`pcYGxcSA8}jm&xeM#p$&qTv-+#;gJlm}5 zodfMh8W((8f8!Xy^goGho&=fbD65=Hh*Sv| z{UFaqdZNf)nZG9_!`X{{VVk%2`j4lDjBiy^Mk<@&xv-%@In;`4Tw(oj(Lj*YG&N1A z>qFE0lhquL&9 zj6GXCDbGm#(R4qxuElu#w#~^g`ZE8_cweKexByyQkV+PuyH}QrJ}ZA>MEmCDXTmVA zueaDq(8&GymT;hH)1LY5^C$vhsNl#{IDrpD6)kq&A&BSOR;k5U+dDB}j|xiYT02Kx znmsDae|$Ovx4Pf5M*U>hy&HW@C*vbN)t<~G7NxHJy>48Fpu(8)|XoG9OeYlcSzW= zMf*_BDCFoBSS)bFmc&T}v86U)eI5D-&4D8;w{!jFIM+9b zf3E<@%wb+Jl??mpF+S8Q?wWH9IFso?)}-Yqvv4W7W&P+Ho%Z}WyQ^2 zOhk-zI6h-v9?fsd;E#U&lGlHEDxmE9TZjY#qUsqEq#bhtbE~Ohqh?`kFvj}6H}yY$ z$WweTC#hroo`UR1uTjf4&ZtA96-JcYf1B9k?l}@bw)zf340*{9fA~F=Ic2zwu?de6 zaNxLZ$_lShe+ygeQ$tiGGObe!pP+`W_z}>fA{6Q zZHZ96)F%oa+M;dlu>I}$k5`clF4H{a$*#oHDuIQ*`e++l>2&E~nq z(lIdb3!zk?6AAa%eaSv)0&f7nQ8|ILm_FP^N_FyGmX}uwjy$-5@R5R)I}JS-K`)0+ zu{dNz1VAMVz?VnkdLKHt*es6%e+sRHIdfPi)Szf`OD3*;MW(_Eoa%P~e`*;K2)&AA z&b15Tfxx7Bz8A?|=HrdZ?j*C|+>0lrFVV+s4+~H9da@9NY&m-$A<*+bD?+JK)USQ< zNmWW=19x)7Uvu{(fN0A4lH?|Nd?+_s2Iq9rEfD3g7$)*)l>!9NNi1?df8Hlc@B2%` z*MkRYT=XwCR1280WLUkH@-c+Y8}I9nLDb(Rg~n-a%CiFKXDlLQCl2dvu9!rxoY>dI zdBUXOZE>M#i`=J;OTO~{%vWBM;#BQb#_z}>Vx^%VRu52R300z6@s13~YD6c$C!*zj zA_}?-AUn0qmh>EiM9*Qxf3>WU;bH5N85R{=DYt#LL2v%?XT(s)59~a+V^nN398A4S zK*(kb{bxOSCrtM4#ZiFyzy6CqlL1bggT?Aoe_NH3l3{LNlPb47sz@t^k(2kkFJT$%Ges6>c8Z71nNUZUQRQUg z;BB7{am9Uk7WZkFXq}rW(QpI{#c-1WIV@-f+Zz#Y8dmYoe_eC?^D%ju?QkLK*JT|0 zGltAzRRi9roT1&@Pyd}e_#4sZ#8Cf4A&_OR5yZ3LsGn<)f2dbvx>xuB98F%u(5J4i z)W2g~@+lI;IrH^el%AzzHlj7BwmtK1>ve(0U?rZ*OeVCs)+Y^M4^}scTx7KCxMH#N zIdz+&(G}zPW(4N^G{=Smhy4hNO$xB=iO_H&BP15ngTj5LjIW5DLs^1|lcC z=1nZ9op5zVVknZhk7VGmg|jG-erXYNJjCAr`m;?875y?N!`UTtUGQ?$x} zEV>l^DeT`uJF_2GCLkx7_Rknw?$k9FCTSx>!{=Td%(J}Bh2m%<3)wTn?&ZvN$C8|T zR+&NYa!O z%+5iy1)+%Tf&)Y_QfKf((8Le=UTgip{K5ov-9}l@<+t=Y5t?R!3^?eby zR^F0K*sx#2=~Jf9xK*p_OFgcEoG;VAI$)4~e*!NLh%DE_5=}7Sd_;R!c;B;s7B9#v zUCiX}w3?gf5|3!l$Jx*_1|9sJ%kpuUtYgTp^J|~~@l1~OFA|3>BrD4e^?f+;{b?;( z$y>l7Quvbl{`ubcUhjfM;n_b@Nl=7?lD}1~8Z|BEf60gBMY~82{h0eTe@Q{BSA8Xi zf2dXzPqIPwtQQ1d;!J(Y2xEAFvoT60K%Se|E{lh+Tg$VmpKh{o0{;Y!N&dBPH2d?B=qL z38GbV2yWMT7(s2OF@9-Lx#GzK0YePB(dV^-D#hmI%`XmmFktA?iuUde~IMY zf4+kW;FurKm9AHsFn%@Ol4V6I(3<-BlJ|$zzK_5hxZfl|n1Hwa%cgq$dBB~?v)0D7 z=<(8xR6IvPbc`NxkV7ch12Q%n+3L4H1PBN#e|N%9_c4ew`QahJB%wHfBpLcdf$?qT zJ*@lnr^@fog+X|ep@5sD*rn)@e~UzVvIUNSU$qm<7!9wtn!LXe*H|gup5%oQ7i;3rG@P8UAOlMx&Z!IJpyURmlnAF z9Gk&L{Y&t~OXV-`%t^zKzhp)0^%ZP5OP_OIeEq8sByg|onqu1ZDY8q%f1nA?7ACBY zqb61|dRoTbTC^q4wy|8DdZO*GfU36mPoZZh=_A>5LCjZtsx6-G!`FtM!eqOr|0aaX z@kDFNNTrfa%1pdM9;K2fH?qkRBl{LTLEm1TRA$k9QqXUYc-l(#h7rS5RFcP%-p4|K z$3m3WurjZou8HFfX6sa+e>}y*m{H)ik)f?=w-Qm1z#vrx07(sQGwbz1u-sFf6xiwY zj7^~AXpub{az&^kl5THN#J1qXje^gdZH^!t>U{T3mt)a;=}wUauOQc=<##%Q7U8Wu zj`%L>Kqb|Llga$Muc#rrKZ4B&Clf(Y1Ch3{lV(SLf|F*c)=SyYf7ja}S=NcrqLI%P z9~%8j`4tweR`Ql*5v>S^ij8g`l#YCJ^jq@EY1*V{y`I@w5`ohu+zmC$IJ@qGvFR$5 zW?F>_M5F{L@g(0DY|FUdgFft;r_0=UWwVB9;}NnQ!boex_5F$IzpAHfdgW>?T#w5! ze455amtjWlt}xINe`sMN*?zY$jlfE{f7q<$k!SR1IDY&2z~YKmg5~U{6Bw3#*wr(E@>Cn=)vh3^}pq$8;_qj ztV^>x4fA82e*)xl8z1re#vp{}<``BU>A;;Z3rI|+y4nw-vv40dPZPv^I~XCKw#SCQ zM#SnAtv0toY$D@6nrt@n5_O&f05R-WG8K;9W4{$bUSo<&-p9v ze}6?wy4f$TiokFOjeffqQbuC3I1ZKE>}@gROkT(qk@-MYe=Xfa2V>Tu8JeR;|2QoX zR>HP&j5FVnx*_IzyNgdR<+v};NP{)7vg8b@)^Y{&gb7Y0&5oo8rFfA_Pvyq`s$lw_Stw&Tyux#dipseqRn z7??>JU4jnrG2QkjlVm>PYnYclApB5Y^mAGbGV zOIiwG3%oP$=7#F!4qqg&W%!Y{5*-^utt5f_Gb&8B$1y{Y&xu=>f7Rz{S^E3p9aNFG zf6ev~SeJ>)H4`hg?C0x?)SG{;Ux0*ZOHeY*iqJ$%()4x030srNsd;iAtyt>y@s^i7 zzIu~MfwkYRl%G~Jbf0AGU3wlkYlL(N4quB-$p7_W6+bZ;E`9u(h~wO6hl7<1AcL(4 zT7l#_YctV3<^`Ac1&^c;N;i+fA-T&Uf3wS(GNr(ao`zVMr6Ftt1IdTUO1|e$GXIw2K zarO82=R9Wkkh%BsMkCV%M#!Mlw>d$Q66|qIHI=2sL`J84yj-%j`i1l^L3%%9f89wL zRNUE$5_Mv@vkvZB9piQBE?E9J;&NdGQr$y)a{-Gm^ z^y)7=r)u6mqoXa?m)cZQ=&YmHf5lF)PxMMgFjsk{p(6bR;YdLr-fG{LEG$F}OC)v9 z)JqVYx`Oq()#SlnqAx%DSP>*ctkmS360rGWQLlxw{i8$b;7+T*AM-%YKQ?&yFVcD? z_#zo8;eHAu99lCJh!OXIO~Ut0GorV9_miWwdhGkrZt18>KCA0M%xl9te^PG|`h`+u zJgSUbj|^Xa$>=TV9M`jAj5~k~T+4W5V`4gUxe`BYBW|mpB75l=h`-hy)zhCC0O;7A z3zY~ZPl{T>0nXz>yOqEW!!qcr5VPkb#tX2&D6{?GlzP74QGD_{aULPUS4sq(HsTHe z9w{yE82c!_w(?5eVbF7Mf9ij{49vOl(V6gsF>Ay_D8UzlFFoIW+!FmWG|ZO*g?U~FUzK;HWqJIh-AIAgi?wnb zV?=)`V0EguIIG8<3G3snf@X^AD=RhF89)jdKxPDXTOEkdv}kioe|6Sl*4_%!f0^_? zf+@@ycq5ESl30`o;Eg7`9Z6Y_-l%VByFoeL#5(H}rS1NJXQ9z+*J&|@XeMmay4XL@ znNv^z(WYNkqD$PmDzC@Z?%L z5G8WKe&+29hZfQr0mkQXyu7vbjo-XXbsXF{{LjSN_Z6;hC+g!Qh6IWqpts4~+V`^U zZd&RqyuWuAA7?zFprA2{4-U>JerIf{nlNqvp1|kN`gN{X9P8e+DxE^qBEGbfc%+bmJ5M~WEGC9a55f0{?+Z@3;U zmad6eGQ`g{pRpMhK1NralXV+u-fO%Gg{k>p7~mp#xD$D~zT6!!h|BBtBmz)&xdZtY zZ(bOP3h#1tG;7k78K7izS%hD6}4zm{yl{_J4Bp~O9T5% z8jNVMNc4^X8UBq(;MfW?{`kuDwi-TNg+lQxq9fF*1P3Q;r&84Q)zXVJcH!e=AMH2i zS9R6z576y!KR#v^RKYs_TSgt(d-U7Akde9sziPwlkfF}m($~k?I0}c?D`K?X<>X$1)0v~^M{*vWCe#tFuiK;W0 zwzR5J$0pX>v&5Gp9@9poxZwwxc7+$K`8+bv5P7w&NtRfLlP9S_jua-4 z%XS-aiQ4{+NzV5{jPJsE2$+>Y-Vf1#G>1B-M8x3>flWba0H)rYJH%p#IA3x~H`&T? z4$Q0{Qdu;NBnE%RBvLG75T3w)>;6@`aCPURPkLpEGMWjaM7`?OtQ2wwW6qX))1>Wg z&Qh2^>s_*CNZFUr*P<2;JQ%^oCO(dgx=d#>;rsoDCs;B;)Tb&A7`K>W+uOM2vne81 z3e0=czD=lE#hI=AVL*5OWtrwnG~Lau`nu%#=aM__YL0&mNf_E)@st~O8R=>+ZsCfg zrO_C6sbB7=@~~8w^`*gHoU<0@KmkexVy!hO!6l()0|>1raU~q!Sii%5PngY@l&fV% zm7d{wM6G>r$+x3UZbErR4Pj8}T7vVAsV&?DH4g&2@K8Fp= z0s%4A@|cSp)wJnfFIf{bm2CvQaX^)NHxlW@@g82u&ik5*MI_9gz;DQsy^h>X$hWce zqDu7FHt|rmN@GbI=#j6~h8;6l9lmLjoUvsWc`uVqeerJ}&qQzu1R2=gf@f z8fRs3N}hD8k0UJtu#cp7oo$}J)vZ?Z*BW$DRSdY^7B|vznAsv}9W=nfBVlBkB+8SS zHqdn$*L&&Cdo2bjQvpq`R2RK)0lW|v%`dybYATWfoHeMH~%Qd~T@p;^3?I>bQi#&nUXR2^lbk%l!iwX;|~uPgR%1UYyR zRpx{I8>euVLIQ5{Dp*`yrUO@8xzXm0Io>zMC^vrIzRsj3PxV}5FqK$nqjkl;a7TGU zXIbX;wsF0Of|QU#GYH9|e2y@^noh!h{8e*S6WWycot0{-E%VXQgeWf(LJ_LC4#T-< zi5P`oSn!CPX^x=zb!Zp5`y3p;9`Ew!@dlphXTBz;i6%FVar%#Hr z;#6LjNk#%OIMpT~mkKWv@Ghf3X;%1#RoXQ9XT~^ksiwmChWHFtd~(o0wptBbJ%@f z(gb)#FcpBb)Q>klu16!;C0TEYs)3%%*myqOZ9LuIiv%=*z-%LSf^8*v`rwzTM**& z3!Sm~fQzQ~t+Ox)+8%prUsf=2~E+?IEv9wht(Cmy1 z_@w^Wb|Ch7E{f1DkdnR zzCgEB^atugwDFOt=6vmy^suliG`L0q)_mIgT}R1O8$zeY*LLtP3C3vk6F;F0D+w1o zk~czb&!@43wUxE));i^RJ)S;|0<`TkxHHae(kLFWsG%sw)ln& zc9ZQ3u6KG}xTenfh12#(?oVe$2wBMBi33gx1!bxwayFl${RH4Hw(OXWLc9F9+T#QI z!D{eNM?yTZYgyI$TcrOOtWpG#BF~UizJIO=OZonM)BOstV1Us7 zz>w$Y4o5+3!WR<~v4O)VvfW&54@c7H1)J90l8iwqLszB=!Y`xdD(ddYedv);WMq_n z)jRBjk2&tnX-=ZI#aG2Nbo>Oy(toV9qP#4&XL4aILQH3K^=@PJewcjN>I&KWWmug` z^i1dvV&Mp*WjxQ+y(O~a%i^<*5BPKq!4huO13sqV)Ro~nKug9>2VjJv-mak4XGmFG z70<8Szn>_v%F4243`DWg^cC~q)MQyytW+JPRkG1kLIwu-*i!X6nJ<%n>6kpJSklC2dJgrjkP1#T((k%)n(Y|$ZR3B<($c&3Mz zPIpOn2dxImt%VQ^_XcVERZ-!sqr!WNRE@TG0o(zve|8rDeRgdEh<}4oa;Dy~|KA;+ z;euLU>Y4aD(FgbehE9xuhW?5?%Gj5EmZZOi9z*?cFA_O*uaEKsEgJ1ovi!N1o=pND zTs@EZ84W>fKK&(fSED~3QEI1Qj^41Y|8WDyujpg0mvaHOIt@(Y^Mvi_?sNTYX-1}5 z7E!1}Qgk|Zliu@AmiD-y-w^ueio-sAQ*_c6sPGZqOvD+;RQhM+6_*)K0z7|IHH?M% zo*8{4o=?vw-I1Y|$S)Y-H7+ruu2V0?tS5!uN;AhCpV|J@0Prlv#OIM> zuND2brcf>G=%mRz6*d8i{WZAOA66c}MISt2E99uZHUU>8fTl%9(o@1Ekxjs>OEWcr zWM`<<>(h+I4{#a^_fzg3N6k;w*jpo>&qy*B9YVi4YL)xUB~saVw7e%nbL+BX$W`z{ zKuvJt_b^H7F|=&`nLZMDYeF*ZnmP47SdGU|#J87vPXcd$tV(1ihCGn^&q45MTJ0%7 z)_T7;26E$yPv?fkOmV1dD05f)vj4k>S7uK#ZR|>WU-0Ty_K_vlHvpX!kV9`UmR&5y>LNj!o=$ ze}33~?|oK(>9ej6Tu4#{3RpzEdLm6Uy?QMklob9*8=bv1!CuwfK7a2_A#%Bvcb|gd z=E6_0BOZYhEh9)zB;|DuI@y9Yuq0x)%(zXo)juDSuDN=85?Zn*jZwRY7y*<(A=sBv z=Xo@22}}2fJVM=k-)!SrIcH2Tbc@LtBZgGO_@Rb>CJw4mCEmB6yTuN(Hoo;k>tRqU zH<{YN&^!d_Rf;wldN@9PQ%WlZ`!x`n8BOa>zv0|ELy20nqh4_XQ2hq&DX3~4M7Ct> zSc$hU7ieNh)+cL5FJ{5)RMvkyG2*cEf?I%Ng;xsB#=Xy zLKL_G6pli*N}(Z4IYUyPJ>hK(Gaoi0)@D(9jhL#0qYM&4bI$#+B{2*z3!7C{)E6rVJis2-gmo7hz*r2bPS7HvljdRlDJ# z)aEH%o~_)4*gQbSd`8L{TStif? zg!F69ba*c&hr8gi^5v^NQWpJxxnK?1rN3zw^CiBaH37;AhMqI2?E+Ha+THC&^*#6^+ zOu|B$oH+M=B+shE`r~{JV^%)mx+J^;y} z&3ny4T=Uo>GW^=_qVHQD?shwL4C954j@*xRchjT+b_Ev6$*#gxB?eS^cFyScM6oQd z5VvK48j@8&`eh)4l*%1{X>OV!lyPq~d<=M=^<#eRbA0Vrc!AB6*wrZ433$=3!0l-v zT!xR#MBaaCknLz&KkJ!!3G>?1+E#<1@SMc83XmG0!Wz%ek!GSC%-tDQOKFl$G(aBy zWVO$l3uUBca3dcQ`n0WLW`l>=Ur;-1SgYxY=ZXvkvc|HhG)_5;cgW z8cO3{atgn^41y)N(BG=`9Jl7F4I^smKjIP4z;3CKLlR9JIZdDr+_r*mk`C}Cy*fg4 zqrZ9z0r`5B0MV?)qHyfte{Um>96gxmT5HAf6K)o6k;!LX zxq+dz5k(e%&cOPp2HFe1YRGP^2dQKh(BJf8r@k1^) z^xQx~l5>YOcDLG(#O^HHi^jQUz}An^d_D;g5FSRiuR`gOtm?+2uW z^Y*)%I5`M^KZD5DpGvK^oM-I1y{PXG;d1N2?Z)G=c?y{gt}Ev&qf}sm31+Slb;lCA zWrY{l*wKu;00{%%WBx;Yaj%Di+b651qzay3CQ661Ml*?FHp}CPLX!7F$egMly`pW@J z7E=yOaXJI{`G`R335L~9SjhU#`Y9>HJXEim%5X_tgWN_syvrK&-0b_TPr_n3U-*>% z@0X%i0z7|eL<;T2GgVW|-#Dcc;@0U;F5&jH!TIFl3ptKUuT1hzzhWI%e6C?c9z>i7 z*8H_UOEOVlsju?k8Tn&6N&RJBws}HuBK-3a56uG!?>qlww5%om1%#pk%K6t`-+w5oEvnS$FCwH7V{n7i6VAOUU0O%HCNm<@U)i`ccwhA^{X4a zBu?pk#XgAj<(M-$BjViBGR$n%vE}p;1)MKY2s$9#?=$#X{>(!}x!c!hzt-sd4x1hVmCUa&9& zNlqMqVK67_(G`2)Hh;r1F8KU}#P@s?^lg75s++M4;aDqT4T}8Oqp4JKFW0?0r!n{D zP!nDoy!aL4gg{^0U>f>U9yJgIGA8;a-osdC&Imb~9L8RXwMK9pXXgM|hALkn|*sD6GK?mnd!m;^H zC;14Ga^o$OsJxgn8?cvY4k}ywb9{j`rYbP0#%7KRDk3HZ+Lrj;kq}t*Zc*x%iIPYF z-JjbHz^7txlg(PJLrJ0VM-9x<;L(3wxrU#h9QQMxJfdxXoeUg%)V`!&L-1G=fP>4B z2#9r%zj5$6mIjCkRtsco{T5AmqXC%V2h$!V5e5t`QZGACzA#YHn;TV6sHaMn9 zW8yVlbJAt+;o>WGsP%tu%Ya!PZ#sh}8vrWhDGqjS!!GXAb8c)IohN%ZxIK8|Hk)~z z?(KYK(hDi)PN2oxGmzOFZz=su@YmcL$79q_Qo9?WDd^+lu}B;f!H_kU{|JklC}ep|}J7GZIwqUkDY{%uZb&c1o~ ztU;-zc06y<-4vbzXn&{PX#CXP&0= zZ9#)7!weM3B%q+ykttA10!`s#_OH!qx3@egWE=A^IwaQs(IoCI$GSPFR>w&DOmcDw zBxjkulKwIJD*F%+Ldu}w(GF^6Ma1i9?-*l1krc-RfV8iiSf%T|yLe>QJTlj_=k3T@ z0pue%H1;%trv%aX)S`c7`Bx@KlxbMK%`!)$}7e|GP z(2s#gU%k$wP`>f`A{}^X*8z0eGTOxc>#ud+Zp_%0F$&eBOPCoATKT%<`X84JS@1X$ zu$hw(7mE{hbq3r9{dtM%bfuNKz6d}`W4N9?>gtryKh&DoOx>5%TmnRYaij?6UO>&! z@J2|G0(rEV5=z*mGI=(}1Q3a0P_HgvaJ2Zuyj<&OaM__la^El!uWkDBcNuffUEs{L z<&28Qjx};>f#%e-M^3z|A^M4GrmjN2zi}@w&DEaf0i!@x_jF+C8%`iWY(f^B3?j0u zVPB2`=Q%}SM!U!QQdUcUy$|e}P%^1}&D$t&46!L)R`i!Mi<9^0UL{6s`TCN7t6Ftb zfGD?NT9u$8Wx}8_p&7$EnDCmuL@ew2b;<4Z8F4Fg&z<(JjKod<4rctYq|(Vo8u1x{ z0E|}4*GhK0S29$aQ~aVHU6!%bN@V&HH@0;U@qLf}2I(Z!uiH|8$8C8$+lV=`AAHP_n@|VN5)P)(0_)_L&kop^a7qPkrQ7zEw&?4=NXc^)NY`N#>Pe%# zo5S&CmJog&P}`-3fV{+5(YOHzM;%t08;g{840%Cvb>m^0`&xk+*&d;tM+Ii#LhrhDPc`k zo)#+TG2s2`iAw36@@ExZ1_peu;Z7U1yg9`i9bW`z+cD%IcBfwS0p@I(y7hm5IT_~5 zF;qD7g8QEf!iMy_%^Byskzg6!SYeU+tY>2E@wZ6rlbBZK_3F6Z^S?w6}$a4Q><^nnD4oy z8CE}U^nz+I86Nsk-Rql9w1SnK|yms@vP19Umw$U8=Sxv6@qBPSa% z215A26&X^cHTu>#s`Y=@?}t*AdL6HP@B|FjrRXMw0=Uh@oM%<2$o%2)_ zpZN7&B^K$;0%pXz{YKsiKs&`9MKo=w<^J_Ws3uByGPBi=&r+|9J>j%^x8nl_y%Hr? z1*D#tnM*!~F4g#%VH8*3bFT}s9e6S_FqU zh)Rg-6EoA$BE*H?H*x#(CQ?di;KQ`%t94=jHmYKM7uQKlpXa4%cpTSHrC+&Jhd*CAuUs1HKk$n&D zD264eyYQ8{|Dzs_D?VSu^u{qDDU)_5ndQ>~K;5t7c_bmah=%)*vD7&YWFLNgNP%i+ z;-bzB?Ch+2n%+e?gIJ~1xN_1PTH4(BOZ`k_%1Ja&#f*XV;^Zi1I@~ z9@@s`b>CX~T6NcPub*{~&Mxc#!u2sS)H!;BNjQ(eD1c;fpw{G zrJE%oDM{R>qej-*K)NHjU)Pa>w1~{`x*Mj?Z@!Li{s$cmWlkW;_6m;y% zgwsVJs?2?CvSDBnm;_HeDltO|ipFa&qO@-5T-aDBjMv{!i5NF946g`bZoHGliCHpU zsQz}K6scw4{vz^}Sr5|}x#ApOwn$@N4vfC2j^kzEviaeEEIxD$M;r)wb>ia9@11<4 zTU>qpxnhZyNZD)@@gk!+vN_l=O#I3$O8L~*w@NMUK z*?f#gBaWNs6U(I6_K=p7GL~QRrGP3AQcE+CZRxv^HAsQuQ-Y)hLp{kw~>Yk#4jE()X6HR9PdFyy=etCXl%q-okyGHydHx zta{Z2icCaQuWg2!ZaOi~^rPxCEz{Q0{~wxLo7l*bE*?w><5S#AmmI_eWvrjOu;jK| zXnQ73=H*HRYw`F&Au@QSGTF?TSAPrNx0~NabUXNe?K%~r27l}F%r753gT>Rx$vMQE z++@|lUX$rLddxAW=>o0aBB<8JC7&S6^kdo@HgZyPg4fsb(KuR;e}PYjY;nL86`k}qKl|mk7SlGc5iW$_OHBtDVDBlT<|G~ z-GjeKFA&M%WXaO{+?N;x#<;^Oc}b#!;M(StCpO6^3C##t>vGXh2&zMs>v$QB3lMJ} z_!iv*GBbWunRMD~T=FS4?e_%j`(m_iL(74~rWysgFjZD()OfW;Pg{`Y$6Wq=Ohsvb zThspELL3^M4~qUP*4A;w>M%#;Di&#W_tqfbwio#I7;W%`(klw}cj(+n=*^L~UWx^AG`cvNi<0&_B|d9#1Hwxg0ll+l9Vy>&X4PqB@@`3r;dPs(`cz9 z&MWKJHQS$?V+OpyPdDI}HuOb~!o}*CqU;#07ORJnlmz^)D*6LvT=9C!%|&er8jRO4 zG~$KyxAVeME-739z-TG)!@nkly~4}|pRc0tp$qER`MDy<5kp28HXp5LkZD(7n)6Le zqUp817PYWiLPDUZhf1TI-zLK4&&NyzYMg3jLQvC$fNu81AKPERA=NLQK>9B~`Rsz^ zQ?|F}$hfgDF(kJwkIU{xT!SNGj2bZOJ%bk#*Vv z?%E6wuY7M#TJnv)ij4P=*T=jxS>a^#UdJRyS^ zP!2|gYotQ{E|cXymPz_weG`pF9WuY$l4y5*pfmP9>ztw703Mea%~{rzYUkT@Bf54? z{zOS6DVbT&R6J0B0cK?;xyB8#q|-3B+O>>pK5mZ~d2+_Xo3f5L>G=B^(Tv25Y>cXy z#QgOaetz-Ga{d?}s-iSD5^=g6WgLS^hDmeJ3_c?3b+71|gVmfDY~zA&U(k+?1+La& zKHC#sJHk)(2x>qS)rp>F?D~Rb%Rv7785gjL%Luc7osUI-YmJ76))NLc2&l40Uy>o` z*AEF~`l>J%Uwcb7Q?cL%=z;f8BT^84ou77R?9^)8x35yo7hTIUNXl7(h=Yq!j#eFM z%@}sZ;{*e#FzM#Z?$V*3NRJqZUGjk_)Gl6>ln|cBXJ)V1k@5+gmZl_c4peH1fM{NE z|9iz)zV!Wn2|L!T7h8&ORMZ-@FN|XKQwB)3ekBc(DV8S?Hi<7Kw9Ynklxy<5qw7Ui zONW4Bh(%{i8t>zX;LCPAlZ!KB44Pz<&XmCvgCktAI(le_ot|5yMeUr%mi|)ufa~+N zm}Bd<_BFD9o6+Wxo1nv#FpXMH4-TMFXqFjo7Ju-79IS2v3HV0?Bgr)m63be5A(a~G!*zWw7q%kT(2 zu}wB!$bZ!+6AcB@Ar~x!r+R9OBmTVLIxhGSB3;s`rSb{V+Xj9!XIdoLn&xC4#J=}P zdxN)so3#3***=uaCunqo+FcnQM64w;)yN9k8a`@ZErLa=N5J88=ZdsqZ}04}_$y5y z)Ks4od!SnAusyyNa(%t2eNgDnSxiOrvbX2DvnT#Uwz;)uxONZ0uE!Ar*P7L_#XIEh z+`{d@mon<1XGiX%$!wSbqFqOu1_JkrNNi1iG1OlJ8BZhvxi@uQvW!c<;z2HI$#bxw z13b$TPEWr(@Sklc?g_GX^M;gh_qkIUu)WA|LSF!BkTCnr)D^H+axg4GN1lBTR`&M) zEa#zqh3a4^KD!Lf0inSX+h!8NL{bE8NE6t~*jx3cJA?IcPp4;gYv_r8@O{fjt2 z?jtWVrqXo{jmfb`%n$kJaC~ppgb>SrQzp&4#RzSr)t^b4PErQ`t^Q$%a>tAzvF8O# zIjqt9$vMW8^SENpKD}C9O!oREIH6Xf@O9*&wP7gm5;CuxwN9D`wFpSlLyqe~%r5VJ z*weE1r1bruvJRB|6Nf@z7>{SUA%#bl=j#Cn1F?oOR&ik&r+>0(#a%Typ;1bIYihvu zIdVM=VS%2r-afAw`z19l!Ww{%4noF#q>Dl7>`8&3Os-$UslzU~JOe&^y)zEZ$(t}a zqEA_&@reo|i^xsM*6K$Z++sE}DdltqS`8#usO;k3z&(_OW3f!{{2f&{BN-AyFS!M^PnqfBi7w7^v&`2u5j=o38ol-jA1Ne1^c1W zHm9iw+ZJ=FEN`=uk|XZ>(H6^NK}Ik(a`x^8g_Tut8%|^LxYpvzSihv}Y4N+@Luj|r zfA`zuKn4GR~!*%)8p5#fN%HH`ruoZ zZu5E$?g$R+JZ~^$mhI(m*}_d?f!YFjCo#*8h~lRGADuLM#ct_rFEiUzNV8R@W89QpxZ1wgt4({f8>hZbNm54q;oX5 zw8K4=8T!p$VLIZkOUgLXuciZwm!h9w-KP>8>J?LH8GY0mVo@!V-K6 zyCX<3%+3qealwZa8U4)<*~|d45~{OOZwC5qx%A@e0g#ff^ZC}t{__bXjjFwbJ-3j1 zVy`zPMLtRPt%MbRN+(WdXBD>U}tC9|905I5^j&P%rUXB1&@YRY1Hu6dTl_CmNOintuViokvvO5V)bCbI3c z4X^v7!VCC+UUKDbP?AnZU#=-Z&z$mWgjSL0^uiMHcY)oUS3KWWJi&+@Kv~O-N^&CK zQrd*L$>Wor&uQ4pvZ&{|&P(p&l8;TnA%96qT^TGOmprNV`*Z5-lBUlo6@a5&K=l+$ z*%R7xPe_bNbz;5}W9Z!P<&hO`6Zq{q9+ss9boFO{a&Fe`{CmK(Ef+tTYVXSDDPYIC z=zHK5IUrOae>{(EvWO^%0b8H#ydPxt_yARiq33UD2rnU!3Y=#-2V6ClGd!OY@%V|i zhb40bg}M@%W1Mrep}aBGC3&NUjcT}YVA*l08RqrQ_w}?0q7Dn=^cZ+>Qc?mC85SOt zOE_kKiyA(do%=WB>S2C<)F*0C7cg2LpnCOT1nBg=#9fys_M`Q&Xsq~a-0}V})x<|BsO|FsdM}k`11L#*~9L zDYnO9-Z^8|32Lq0ui2Isi)K7c{azv!(o@``CQ;I2Zlp68dAc%sW{gINyu2OJ)Osj? zV=?7~k$qBl>z{EUU--g#(3?e`LQsCAUX)qiYZaD^wVuj}(; zzeyySmyC$?xq2JK8!$_e8AaQV*1;*pF%Xv+>=h6e+P(pt=T|)K>O{Z1XQNlx+FqKZ z(LXA!Uyk?RzID!5=J;+^vQhG6R8S=Xk zYoH!qPH`?6jiIq-Kg;d+<0zkkD`k7RQq~|PPe%&VlSG5yf`AaT80(#uvhB)$)ip1_ zwe|wSf{lE_4b$*cj7sSVz*AJ4ch;+(MnH)=PPwZBymvu`=KF&1A~hoo4$+Z=>I||i z!O3Zhn28=n^`>N#*kZd8thztNy(hb5!jTftZna%9rKs#i4v>i4@!vQ(ElZipj(2an z-e_!GHzy7uWKnm%-U%&EE^TdD0 zV{L3nG-!f;=z8`rF_%a%4=D7KdY$6R-_Vy@%8J{CdnV2D6=!Mw4Zga6vc+ySAP11U zJ#jrc>|=tUG48B{@_d`F&d|1AS0pGrP}LZaudrk_X3RvzsKb+8KL{SHvoAtMJEpGp zc&p((c<3F_<{2bshXT((XsebhlN6`)Bf9=A%E(F3Pq2EeFRx1iD&Yd;&qWph_3laL z;Kt@F%`7 z>?2H&FW|~}x$bkBfas~uhA8*iKz|lK{t&)@vLPfpTK_s7|9(S%%#-B0T@$0ARXiS_ zC(W9(U<=2hzslp0L}_mc!~M*^HB}P)xLv_eZ?|tKvf1PH2rVH~I&`cfgys0joLN{A z8qmP3cz~=)vU#uXV6c5$@_EOj@K1-gltd~*{hb3d2F^RM9;~IbA304OGv!bShDG;f zMN-Jcft3`cSVvWVvVGTHmTP3yUP)bHLBFPM){yf*zIO;r1fR*@jgcg7diMir;208! z{+~|5$bQiHN_MtmKU#2O)MoWb4qXPt=${vJ@P%C(5$lgbI}jl@+;M9YERxrMY=#V7 z6qrI)sOPOo0Ocq>7nWcf8cmbiy&vh5o_g(l`x?*!E)SfXh z5^BYc#YVi&BKL@CzPt=MhC`g?+9qv;(`3v=?I%-4RUo#NGo;rsTjIGs+fACMwUn0@ zMO(-+l%&@yQ6tPANfNeBdhF9Im0EARm>Qua{kQYArs-UI45DsWhM}-U65hXjU+Ip0 zq@>Z2SlKLpCFiV4VOO612fGWp27qYQ(HwCRe3fkaTFA*~6a%cgCQIXP3O8fdyjU-D zr3;p1lx^W55$plT3oqY4Yk8oA8J9&v_ItAn^Fx1=ULFm`aFjsxVfLFAeEcz<^x;EZ zc_LAfj{DhhavC-1^HwibT>H}Y8w>8ivo`b(y$rm6aerFz`j$aUo#!~A#cV~-9$e56 z8(p-4Ul`tc;3=GHR$T;b-G(DRm1ANKtD`{DO}^t*IVLok-0LtJG9m4Ygx2Vl$McYU zN8=!NWg@6rhzjq(pUPcWjH~1J>J>L>D+1DhYl0;M>yQu2IymRyXc-5Erou2`=t>=G2>3n z7N+h0bv+g^uCj&SlOH#sa{cQ4L0UcRH9}@zE)rUZvvbP-w|!jkHTTAVRAw@ASj0@u z>`&T;Fu2t08jWknfW2{YV|T51l$LCb@m8qoL&66D1!Tn9Y7A5iaOE z7OlvHgfnlVM{U*o*f4UiSzi!|$ZnpW5>4DA0jp*vI(BN$o#}rWTmW(=berfluKg=t zJ=%$NSbqzy(}(C)aX?AK>?l3BzvZyQ>xZ$h#dZk?SigduBc{F97bP>Q7M=LM)ocTD z1Snf9L*xZ59bCV_pkMYiYCh&U3)kn?Dq;f+#Mw6p_{46lsU4`P>X$!z0%#}eFh9C2 zgwlO;gwC3`X8&_*a<>6qsrw=?qI5O-KGUa)c+w#eAGepzdjdxze_Szyk4uhR-*3)3 zk}^4~Y=#OzCz_b9ataAh^ELo1e;&t|ID7(be>IJT>OV6ggQMGEsd06~NapwD&Z={$ z{G*f=+${)-PLP##489p049=)xhgE(D{zrU7B)=!FWU2r77hfp!peP2?DRRyv0cw62 zr(_Nhu`D^Q^JRh`@0UA_{quF60gfcO02&v3n0#>S<(532{sf*wvgl-wjW2AmU0)a7 zGyZ(g(Ac@)<5&tmhpN24@T7W;a(GOEu5^4)9o(}aI!*eTN2N2XUh+&d05-M@iMd!VRA z-iaI75;oy5Z^b;#8{>bEKZ8@>D9rBo6)~@NUSBdZ>Uu-^J=4*YEZW}*<1W|mu@iHx zY3FWVNz{gn@0W3qwflm&qStPLkEt7X*-IR2yMOd{kEwNvQbpRuJzW^c*!6nVk`yQ6 zMd+1cqok0MRB-5+))0J)SJp%8kateahnnbpN$Lr>o`(LtkE|Wyc=r4Lhqoo}P58b& zC9(YIue7X|AM&+iI3_t&Y3ubOEWq#BTNB&ouUW5Y$UnVq$%?P>h*?|x~9>VI64EOEou118ElkT>2_>Ok1)5QSslJMCm< zc~1l)Xnt+(IK!Dm&~ej+cwNI66) zWE|j>G&XX)=9muUwxTmwRaoIRc*gEkN|_ceTIo(nfl*v414L zWUX^NY)=|X#Y4a*de1qg|B80Kj6fuBpv(C@l?NQlHjg(<=>O{SJQTCXf`cE5 z=+)|z4yy8;DF#|HCD9(rSyKyS@c27r&*NR5598`hGWM?t`*o^D8ov^EILHrL3OBamtVPkRB>j0|ksBM>zzZfh*!M=CS|Q@*{K+E$kjfC3zU6=12B-(*4n zZq8{H+yj$Z6@ml_=3EI`_82Dt^`e#;k7obj4Jx5P&yisInHnaH z63nF?L+U_NPWa^?=z6ALC*q&E-tC?1EdoZvIuuQ2xb1fVCl@UV5*!1*zVjwEBr)~( zD9K6fdWx>N=L&sM{}thX0zHYlAMs>mahfpf;?&iZ4d;eqAMX4N9MSj93H}jH2sP%h?k@tzR;nK8d*@5mUj#o)x+VZa z!sl22S~Ib>*GW#x43iUa9m7ptwhwel&|LgC0ZEu=D_!WMu6f0O>)l2&)Fib{rzRSz zzI0o8H=$k8bZD77)|vW5ayM^F8@J`rHdC~y!CP!hQ3+bbG#&}$dXeI=NjVHfws0qx zI~x5m#C_iB17cf^XNkTttl*(gL{svfODIPD;WE759dUjAAldbpsit+~6 z9+!NqIq@W1P}f*^fxZ0jbt5vSNjfyD&Njp*`+AL7r%%5=1oBsHYX$9}NN>KF82Xf? zbZyC=kG5vN+G5$*GeEmf!v{~sb4N}3m$zSI<_Pz(r7IwIWy$v(8b$4P>}8C}buNq^ z#?qehXffx1WD_)gquGN;p1~^vRz%%r4Q(OG)Ki!lW$7P<6s=$Xw+l~Al%ACTR%$4^ zgr7#Pr}wAtp!ac0DbC0mwr6NEQCLd!?LY;M)$st?UA5(|b$}JGxNx+4$6tF_pfSKb zN%LG)nu2@af%%AoB@k}8X>*!|At{rCEM?|*^^drJ|NV&RCm*B*B{ZI}*Afza<&!Vx z@Lq2r1SZdHl3X}aa>eHkc(P2N0NOs-z!HhMQ4!08J4Y%}lOw@}dYv;g!qs!D9~#Ay zu=sv2op|>_8)u5vI*@@oe0y-OPW7ZX%U3CXyno2utlPjq+*i6^{T*(J>mhKt+TaQF zN0{Y*YLjv}C5o_#|JM3!H~*lvs+9VID`4{&#|`V+N|CI;oJ;P&Fap)%e7`^9Ha_BG zLnvW@nX^lx7@ZjoHb?cdEMu5?pgfY7>T~a3pK*PEM*43yt(8GBoyD9lLmZ?6(PtlQ zhMMsW=zHdx^P0=J=EDF0Hq-Yxt@UIR=bOuaR}@ZAuh;=e=KGn6LOSEW`}r|%+MfD{ zpA_s!1c&iPW^gDa-jZz#-YwndE#2{E@4w2|70>q-m!AMOynv*$2~WRL+13ocjaNsn zCx~HW#4Ewww^;G|D^`>@)hpD>{9A_y`Wkg}%!5>f@!)KUE-&pXG|E0XKI21?x|r|{ z7y$D2CyDe2+~NvidY7++0wjMbyJI5UU}4X>RQUXV7F_boGD6x?kDcc4BZ#Bb@%ikG zjk8p3InTbkOzmgY=qzCaJ)wL8bBaa*ii%s7`Ew9cz&wQWKpW1L$C2)}Q*Tr`H%{9luo)6!PRK zh{zPkD<#U%E{LbJ4Az+(bTWP&$F zDdBj5MNhJk?hvsWLqg@-ina^*0?2+dD?RT_(1e0NdvD&6Euz9;lTAQ>>Np)BgnBoZ zQKLp(>z7UXkUy*lUW$#^(79& z8&Qu^LW_eulRIWz2UKc<lbP+cboYIUuP=E2mP!Od+s#J&yi@MlIH9Wr>Cfn{zI-`f!kGQ`Fb%!+t0w( zqoVec2pbv~A3Kr^4)BtUpZx&AO$G)1^+SIie}2gR#w;AoXDH3GM{)n+lt*A@fULMrmN!@K97H) zY9kZedkvy5xzFZ@1j6+dhwgjhsCguh@Pais!v*X&XbsjYhi)A?C+~eKy3oAG1s}JD z!4I97Iy5nnkPd{i2O(x8qzkTwJqtFx%r(3}b@_<A<<=*j)5DuxG1 zj8X$a4L~={F;v9FZ@DMk-kyMvUip8}XyoDRr+C}<8tc(HdKbX9#d@dVG&N`aCEH)$ zdBettHj}Y1n{`4~Jo#zNYu+aYNkmYP*mpKgN(!&;cN-1|Sm#=j>T0Vbv{Oy?=evLD zYb5Ykht~KNJWW$ffjF0+@x|*~lcOW*L0co%7A+-qkVe(wZy`=zrO^T~pYwlPANkhL zM@JkL_E(Ok1{~Br08v1$zp>Ja-x)undoKGE@M@Wfioz322%nt_d%Py45Wv!s>Uj{H z^|gc3@k)4owEK=IJeqwcnDM%Z0Pn{~vX{wDT100K%RlMtu+Ap-v3??0E%Zy`M{k{! z=)zGtKN0>ViNtL7>?w9fByWof*<%}j-l>2zR-K>yD^lWUqq=|Inmo%~cGnvARHEEL z?@s54rr-=Hu&ohYPlbXM*?;S6cZD_O&P&KusC8j^Qe<$zB`J=?p8I8`t!#M!?~ID& zKMo+KjZ4nr0=5N85FV2jUO>Avlv?CCT@+HKeZSWG@h6P>h{(#y&>xu82rJKAkkdK+ zden;I_*lz|X!+|a+}dW`9?wqP&%K~CoR!HKA1^qKh>5m`sy8w$@U&uinG#L@!)vS) zk3nH!_7fUdSwLufzikYa zT>tKjO+lR@|D7}H#6*q~<@9)>JbZGQ-Rfs9b45`?%n*)tjJ6w4Sdg41w)74UZuz4oC^fVWRUQDJ2EeWXU7j-@mm+LwGh~BJ! zZ)s#YD|ruB^oM;Ymw$?B>%WA>Y_@9_gSJf8MXY4Bd*I|!ax660xFTc@O-JT9U+m|j{5cTw+UyC8a({ZOGB2A!pQQz-qYS~b z@Y=wO)^u5J85cDoef&dxqzGY_4@GH zK*P0M%@-BB=SWuQM>tS>TAaS!#N3XpK`_vNMd0dtYse;=Xv}ZrgPkRX&YqxJap6u> za@0(`R1$hgU?Kw0@qLw?U}fUNT=69ZOq6%NCYKbyOu| z_fFH2T^Q7t<({LqE)T^A%E;gpu12-Rf%DR>+Kel$ z7}l3Hjshfqb+jE5)uECQn(=GEFUiLx+q;FImg4@MA6$1vU%!p$2Yr||yY>p>f-I}_ z-Lse*iTA&msCKKf=p$1+U(a|Fg~;m=7EbsnSvIar!bf!v!_v(B;%B>^3t*dn`X4Vh#G1M53LEW=nh0{83K52< zV8fwaOt#IQw4`PBk+x-A@hR%Qq!L9)UlY?_k%V>MV#Ha>M?t-bqrH+oe>WFY?f>@Y z54rxZ4H;NpBahkR!!rh$ffjpZaFduAjX$7`ubl5>yuGmn3*jc3gfU~x8eOY z0Hpdp7;NrGXB(+^PbuzVe-^T)qZLTZIZlFq+M&smq)&+|kaMrV+6affuX>~@6q5Y6 z2ATZ9#F>S;S7rSA(MauyE<^~iu3vx`OI#<%HHS3_a&>(w6+g!q665{@=2YFkLL2fo zQ_7DTQgxVULZJ5FqkH&p@5*A$Ih$PH!pGp6Cn_46WGd~~KpDjBjvsP;MbBRLuadhoaSqjyq50voSArB$)3$3N3TlnlP1P=Ega_{2O$lhoNoB8ts{+S^FVikIoqg z;yA`Kjvu;){$eGV7hJ{#A4=)8yk$L$g{?ztGkL($vKD zF{Sr9cSn{wZrr6~CmrdZ_d8N@Uh|5XSrkCdB^SulHR7NxX~qrO-Ql`#lk%B{>GJkh zc#+q%TU!pDxwcj|&+}G?vQ6n~I9oHB`n8lA6z}z2n#x&J({6@KzsUzy;{I2E83FZm z62hrE1c-WVvBv$zyPxBkeCnE$vuyZ?fhbqo(dNu(iRpZp+EoVnsU(uuOdZ@t>frM; z;-mD>h?*Qn>k{cG(j4*MN~xfe0d#tv5m#Mz7N$n^_EPU{ORvk&^z1D3Q1Bd>SxBD} zK*!j#&>U{qq~|t8!?b;UWgV)2)II;(s4GE3VJz4UNh)#@l{&1q#17=d0QphoD2eLq zRY(D61YLkzz&7CbKe-^~xGzyMX@5G$$*159+`lTbbzJcA2A0sGy)ZkgdW!p$DU7Ma z7C9~qTuvoPIq!EGU*>O>awXI2Otx2(?B)DN3>bz=ThoKA5!y6k{xW}mzj!6v{;c%? z59QvQB}E+p`kA`%(t+DP5S4a@nVxi$>+4-%-@mSR-i21q5P!4?TiZ`^l{9y*C8$N} z!j$Fk3)?mG=Pi6L_^c?xq^GHMx{fK8{)AJ0O_0yXuLkyLQZ?%I`d);%f3IkWBw4O6 zd}E+eIBB=URkzX8WG^*;nV_@11qS;2@72N4Ri5@0FIzfL$TkAX1t|npD2Pt2lhlPa zImOo&O~vxExbTbb_Q*krd4_$;0q$Rjmtr55 z`h*VFFcFOhVyxYhNMA#Qx*g|zpDsid56PLAPq`Y(f zycPpgDYs)uqi~ZhA-n1NN{Yw1yk3>BJ z4g%JIkrEIu!51sOqII$; zXg{-x-{%exc_^x<9tViBf29$SS@jAlrGdj0V&Cu?HgAE)GpgFJ+kJnI+x__74ycLq z-nBeCE*J154j7KD`^xpg^uIa;#3WkxglH*iPw;z z^6dj;x*&dxvQ#3D?5czMkVo>ugf@f^^LT zrh|zF$}32_1)x=;O<&Ucru35vA*ZN^rAsnbbL_8M z!n0J55%6l3mV!2y4)oML)Fi~U*DFIDab*~4ZglF_u1By`_NaetSf?G0WS++aa(uPy z*Yn+HCdKGCc?~lJJFI-nLYz?%yW|K%F0>`2RXsgXK*0e%AtWI%Xro)ieQ`*SBR4uQ zpMG=N0ObWgZv1fEd%tAaf9umtNS?{u(q9+D@O_Lu%%`onYuKUbw)T5+ST(C+dYxA+ zvrm8M`j7q$oeM*w!S-N5Xs2w^U(b!}R6s4)le~hy7sCA+NThcf4Kc;Y z5^LV*F?-1Bp+sn3zv4N5#fLatd<=zzVfuNUV@7()B9pV%ykRESIQV7Qd)D^#8L#(e z>`xy^@`zdYgr{33qw|cjTy8_E7A;XTisU2g^NQ!V;^TjLEXjW%0c)d4VDB1+Cd~eE zV|oqIOS2jS(7jprio=7rFR!_tb0p=B){`y^Jsc^m%8}z7N9ZT#8%HsY^J799BJ_Jc zKFn*H1=&KPY1TCiyHHB#)#4+81U%zpI!a9azl)i#eI8F*amJQp7bJ0u_gYDYsc_~9 z{n=iz6zG35m6fx3oAvv-ROsGWHAM&Y#j5YpmI}cS6hGFZoNx6{SHDgp__)4fv{9Ph zRRyluCjd=^gtAGPIl_W~@^~CV&pIMuM;^SXA>15Pd*|~#JmQHN#x$&H2@qO_GQ>#W zB6K0PV}|R0!9H96nUFqXKIJ}IrIJT=a%}q{QG|bry?GbzJ-9JkDAvbqzn305!JM=n zo&PP>*%cKSdWMZzH;~_xv0|8#hV`@RMXp~bEu@`4-TiBLik_3!p0wCYM=im$kh zI^W(~k7P`5lLm}xR-RFFKgpwHOpmT$;5ecbz9d{Ma?)}@XGB#Ml%p<_`o!&u+|uD(@J)CRQBFn!Sy?~OSS82N`OHc$vAUKo0rFAP zct78A5BGt_kvc;}?5HVV%$Mvxc@4LmgSFGnuZU`6B}BI;%ngHRSu-JB5_MtiKE$nu zsy8TmYlawxop;)!@BfxFv1pjKCij2&xDthPBzvMs=3BS1`S+y&T3D;3%{gmMPJc9E zn=YylPtLDB8Z(SF1djeWhh?2jNcY#nu-$Dkh{=CB#63EfxHNTOEI5Jld-WTRID%Ha znV|<7i^X}w);67w{mv)H^}Sgye7KJG)I6C(m?>!co-IJ=I16@gdS38RdUkQYbi-=cUqZvvyxn@ z>oI1I|DWo!DDrEVS&TmIOpHymzk&43w__+01P=$ULU&T#T{kpO=Xphh4}y75)S z0I}~dwjD+mI$|MX%}Fz*UwgA>Tim#EbdNARL+NQBN^IY(hkv?g-P!q#Y)dI7|7NB7|#9>KcXF%pJA?LM3n zli^)Et_3ACqbc`s#rJ>fW5vP<(GScmCmOF*wUPn{P6Es)9)CWT89sAmxP82OrP`$Z z`C*)^V{EUwu(4{-rznH*PJsNHn4jgAbZsrB(&f2cq8=O0JJNmlL~CQ$2njOVbaZF> zO)+-wWfH{N@*h{s>Oip&QbY9rR^&LJPaig$80@2gvom9zxha1^JzmTCdLg9>xB#Mi z9?M?HAL9FLd;9QVq0{H^h1qsZwp*B}uS$*8+@8Q!w6@QP3lv-bRzY!$BUm}BWnKo@ zyf^(rF5^Q!@x^4AWVpSW9bM~4_F;!0>?mGFZgEp?>HzY0&1cJaC7G8d<6SPGd5w{*Y=GE#e)xYCIoUs=uL|_yIr|zX>wTt?UkuX&$?z~j zv@j1jxmp>f>;C_)S00wWJhYEl*Bd0P={jbzgdfSa_zpO?12{(`Iwe^Mey%^{y7ZKF z!%?D6Yol$Dkejxu$R`e& z<2K0Nkg9)uL;>>vIa@LVaxUh^)5Ah~DPO;29lzx3;h_bQWDYgB#Tw2|LWNJie;vPG z2y9x3my=9-ga~>)8oHjey@Yin!!`Az<98tYDXWs!*peyNABa6bn{RDa54%c<_s*wy5V;@BmRXwNr4p(HgAYu;=PoF!Zdv$4e5qZMfIyCsqu4Q60BTars~iw?q|;&~wlyr8$h3m%c9d5%w@*WhNbfiD z7EWzKmc=VDTw8IY0-y=5%S=b0ZvFEv?mslwjuvTk)C>zNBp_`Qw#}ftE2@b?A&r*r zcW3*v3h}x`s-?XfC2+6a1fKvj*h+amh6fR`nq~YVwPy1pCI2w+6FJFzN_HHcIpN#%d z*P6-g=qqJDiV%E89PXgHBOKQLT+)o+9I;rlYI&7uJOCgsJMzGXMbe8R1tE;fu=7zD zP-~Rs{vDO43gUl!#wYP)VFG~`tZ7&#%;*#d1S3Yw7=0YkfkjT7^OW(i_U+e89f$6~ zZfLC1tG%S`?u@8c-2NY>A-NmM;!(e(O)DeR@l1QMg3*!jpiX|LueL7(^9%pZ-#DI$U2;UzVlU1-%>kS$TB!Y(yll zqJoWt5Z!-L2dFC6IEl~M^9s578FIeoJg2>hNSy+%qz&e*V4RkmHgtMJr5rlH(wnZd zE3Y@*UJhCMJN?VESYC1s1$^|Q>%js!aPrdUPtr}Y;F)n=|06aXt*T(q3Tj-&vBvb6 z@2US~`^daOn_?7M`q5#%rg5q+e?BBrz3w5AbESWgS4Z}>fkkHr^IJw8xu>&#hNCy} zp(W$Kzv*8`lD_<+zndY04umLQ?RkBG&icjIKx^FXka(@?`oeVSjbr8Y1NRXH2F0V) zp^QY1%trN}ZMCvV&T(8A0){y2UQk3ya}FCs&OXwxUR^*WX^ico>+UpR22fe704f}9K#vKw;v z2t;BgB{WnOuQZEb>zs(Q&Ik8*$!A3cF{p7^MNW=g8>5q{7DRj>B8K=ano8j-+)vL< z!}Eo;9lSk5W@w;M=R4`p!%GA^_YZ_gat8e{qu#t^8JB#1N;6_^p3FR2x+%qyI~E&_aAlq4%Wz;de}k~$E!yqtkuSAbGsO#BLC_@T#_lLbcVE6T&+C7D>up#T zh0SjPbF)BaDGz!oU#ssIc}8PinrFIxYs!D!ZS`VbQ=@Q+SH<2(Rd@x4aSo^xGBUAm zX|p1~hzXsoUQUpjI{?N9NuQEl9j<>*rT*W7O``fOnoNvh)0V9zkxM@G$Tq)3FKdB7y>-;*T5+1e6akWi@+7T2`P^>#!skD9rry{C`(t5F?QN*z_o z<3MxqiXaXZsKwBa)rdP?m~5`>T{*#B*JZh@>ZwWTWsI}nI0qT{cZ zkv>AAX#Mu6)bZl|VX^DR@$`S_*f$9B%)pL}KY|upc$Qiyve%uCnE3bio2XODKlRHF*dc8SNR}V6Jqq*FcZv)=Ct~;~R$!LAx*wUX!Od8y<(2;(QacZ+@ zYn;>|MUos)xk8wKXEUKMv!3pkt=a$>dBAH9w+3#r4v4{R}|8RuA}f&0=d+rSx>#ZsTQ9kE{3{jiyA^IduGx z4`|%Ajk^-5@x`e@-h@0L`xJIX;Y4?_Cf}-m^?RIh5^HRK+f&3Run|FIjTSf4v+x4t zY@Y-n+raUiZgqt`J?8bUzt>w63miIA&2$#HsxMbauHr*R-Xv)e5^vuLlXv^MVl$`M zo^uK#tTR1N=c~P>1II2Ok^$v3OdDIdvq3-Y3h*X4x%4nz9 zyJMi?JMasCUWt3%CeNP7=Yb?Q!MYNG*>7OY5w+rffZ6wLUe-+=0Qo3FcE+iRs^)FZ z@AzyR9U&Elv^K(DG#*Q4F}fV<5V=S1N|n#+dm}KB(B7}1c~27dVnf2aJS4DduAY&e zEk{go9)Ik6672Jf+_=Y5@-!EU&fKBljtto|SYRW6q=l6#GDa1e6jm4bc$9fTLj=o4y}L;tL*|# zb};QU9}9yVe&YJY21-oli>~lPo#%wMh)D}rjZQkw;~i1EeA49YUc(W1-jyw4EJ?g?ks-0` z4$1&V&7s47l{tY7%;@#roc(u;6X)!!S_=}4ELCHS?3-eDa4G_Nl|W1Y^_2rr|Gqb= zwpnBXdj6c%flALYlQ=>}8a6(BK;)%KfLIWJAYLmZF3b)GT$1$_s3H`2f7bz!&JiTL zg7`^E)bW{SHWI~g%?Iw>d|Hgi6;fo~})0kq{<(YU& zc;8P|QX&>2%;W*|XS$b5OD1zsPhmyH?S;1dB~;~JehMP}kYcO*4xocMl7Q6zFu%Qj zc3#hPX7+4G7N}^GW?^>zd#Wl<;C?L~ij2*`su}jsLnI@Rv?c?EGYd}@%yUh_uWm-7 zKOc*3Uv8bXTBw@WKr@J6yjqS-HHWQ`J1qFC(24o%WUY7xvMS3qJu|-1eW0XyN*(8L zjLZJ<4a1_+ew6(ymE=6fU3sx>&#-`h={~RW*$&MZSRWDxl@0a`Sl$`m4>~_(qFA22 zLenP1A;Y6Ajro}I%7{EZnna+m=Z9P7DQ<_WEREa3~ve4FlT=Fs1 zWU4Hw8>4B;6$RLwDECX!PXvL%(I{zlX0Ith<2k+dKftO}dYnqBS6@#5CH8|sU|a@W zifjs0O+he^!u|1ne?ov_vZb0<;F7!wo#GI&>Cdi#KxeG<`Ety<-|D)K)$HN1=%0;Y zUHnm9J``J&qEkwozVC1c5U<#m+o}Q_WYlYk_(kh%c07!?Un@@rO<;nK#4UmzJ&I#X zn@B-5KpGT${mFFrYF~0G=HOQ?u5(Tx5% zO|V7alf!ynXx;OqXE^IZ+8^}Y8XluX{t>;#w0pgUVP>cPVC<~1y8ZMggy0??b{(_Z z{s_lygW0_8_k3atORkq$tO7!RH74it`37RaSQP@kl6aD0ZxPx6ktIZD{bU-VD&+4C zJnyDdwLjdeni^?gbuzC+#xi)8FUm69U-v9M=uKQeex3cRAT_REUod*v2WzBNSXq0b z8g@{xzF-sNrp&N%ETk3Cnsc((?5(A~c!QYHTgC=`Lux4?#5rI*Bzt~;gmfA47{FDM z?`xjg)3JU=p3qJ33l8qYha+i#N2PE@{5i_U9UY&s%uIWpy3*Rao}x3}p?o3|?`!}y ziD3>gedk(7_(DqyO)G4s_(@K4xt9Xnsd7WNKG%`i=v>X$auA3QA791eT7%NN*2!%) z>FSrI5%;cld1Q*E8N& z1IzlNB45!+08pi?;fXwzg__i5L`hUR1w(c=D>)`hF zi2Ut3Bl{vKa>k{;T=%<+L{v7mu*Z8N`4zgiGgCdSw|E`0)ni$x{>!jn=rq~T^>JXA^}YJ%^&yA)@?_tn1(}50XXVLljE(o z32kHU8_eIw{njHxY0#h;-;r2Ic@ZQ;`$%3jTs-n41?N}E1#tO)XCaTnkkVM|Ge%?C z)vFdN@kkrhJ;p)5Er77w1S4!Y0=+(E|Joiwy$#QfD%;nPB0 z(uw^?bl8vAX^{8VctGyWRCtM7S`O`df2fzYu>u``s`tDP(mRLQ=jiLCB1d@AC?8dH zGBHcqYoq(Op9WR}M?sQi;Do~s-{o^AIg)lIxX2(Yu(*(oS_PnJ#~ay(6?k`T>yR7s^xZawgl52?UgaMYguSEr&pS~ zY$>6Cd2g1t7A7R8KfO4t@8nmld_?>C5+dy}Vat*4^(<&dA=7oYz2`?nfi+^WL-=`_ zs@ML|saonQ3>(by3`t@cfu&0X2MMm^?Mr#tVx4y!*5aOv4+28DUVy+B{GR2MNjy)W zbl_O$>-ph0tQq}^(2{L7%hQ;~wwGWNNSs7}QN~$BtY-Ut%??9mEB}|Sd(E00SB`Z3 z|BT|Bz|O@hNX~y^2ah>}3`D8by`-&DB{L#O0uFbx*NUiaapa){b6UU15dB%QLaslV z0af|=#e3;{?|=|K*Akw}QF8`p)&9f6$G+?1cKjd7=ODu~b?yR-QR)l>KdeucUM<3Z z0(ScOeU)nd^*C;=t~ko$g>HMXH|^!4Qi!=X(MtM4hal&v#fD7eI<4LEK9Ku=AIQnT z)CfS@*WFX|oGBDAc4C(ubL7+L?^dNj{dFKjwq{t)c%fA$1$HX}EblfxmS z0x)uL^Xb=!bkpEGVtI4fFAP65+x4Sn+taSu^S5v9Dh2K$he5mWoOI_>@uQT`cATEH z<^AUCe|}4`LF!{@zeKZtr*me;p_3xp``!(yhWAP}xV~A5Ol`}rbU4sHeoyv~wpE*| zKQp9L>y!|d{wXPO6E5uWBXXiI?g0c0FY+!sU85aTpUpaO&ZgwA;ER4hIb~Eb2F6=Rk zyg^Y8kAO8l>T^LeDj%oo7~C!IgowR70BOmjxPR=%ovRG)6 z3SbZ`1L2)`;+){A2y~OR!H(~@XZ}Clo`79uF8MPlV#(frMl?WozNY;~fs^B@JF^C=!vtoO`JqR4p|} z7~R0*02RB_3Hq@@JxA#De8jmv;V}qjua#I4(E#uB(Jt_=DQU zXP5xCN3PLXcG~V|{$iIl5YOM}03pO61bbMUxg;e3g{8L8RtgS*FyI^L&+`NQSrdEo zv$*-?i_*}N%U1SE2FC@rp|xAohyklUJt0=6@6Wk^|6iYz>e3tecrx+;k@^NIz^~YxTHyPd&+%F!tgtap$xZyoaIcv-aNa7V6vp=bKIw6 zPrg%s6aK~*!E~)*>MxHe-WGPaSb&w%+a4)8HQjxPUlLG_0nnc6yrmWWgJULf-*UJy zX#j*E7t{sX>=2;lQQZo(Ytc;v`SckI^}Y0`UtZaX^hR8ydwFv3iRN@lp}jJrgyw<$ zM*_IMOc&=>v;7g3VD5E>E3eSg+cUM8vrtBVZEDUm8#>XhILyCzn)u4j-&Pe#sA%hk z*uKPfDYw&V!+5qO3{RUcd* zWSbwBQ!k8v-c5{lI%bJ+hNHgSgF)Ttck^R9i-8WDp2Jo` zw|$LheGl98dD8o9^|wt$FHfsM87*NeAyE*h(;h3MQ@7zxx+rm)FP|vfR~>3#UoZDh zhyc@}w5Un5_XsW%Y0A;QXgm5Q=7`(Bt9z~i@Z1`XoB8@hj6gk#HzYLKLz!2l z?K}@;18WGUQ<5|K$!d~aw|==V6NJ~sxIVoQF+z(Fi>cbWw$pWDRWMMiILvrf7Zn)gXgd|kA}HacXp5AmFsVXOc4inlnEEI=IVTx&FaiBsMwdUnj7LqFT) z&WuJJhpr3t;d8?i%x<{we#9wgv5mu25y7ASzqD+)$(=Y-7ZeeHiRwdQ5f)3TtL!@g z*nV?db&AhS;HMgXRKPpFk2j9Ft-ow>F8Xosnee=y#nKRFykaxQ<_lnFUw9;aM)5h? zV{oolP3}c=_)8>G9bacg3s>KazFr&=f>R4;i5bjcI|4i1$H`!RqE^n|6TJi~ZcEZ_ z|JJk5*zy_QUy{{-3FS}tGY)bMmUZ-b-zL__{r;45LesQH+e>)zDX03B??v?!3@OA4 zPL+jz>qqc{fZik1$;V80pG9wnetkZuG06~_E^N%o(9%A2*bW-+C`Hs2>tOvYXVFaN zRM_j+=bV3jO~Fj|ZUhV9t@Dobg*D@;+N}097FRgLTn5a4c7Mn{-iiHN$aDNV0(Xj1 zZ51r$kU}9NjnWD3s4MH|QLwUqeHNXjZ;bWJ^5<;5ZrJzNOgP6E_1*n+^5!B^0d6!Pc~Xu z-9cZ2qn+P0pe?MIF_Hr{)4k#l36CU4fTd6{@yvST=@8Z=NppFU9X;!XqtDweWPgsr$3A(8@E)(K*#Z!%0YjV-mF2Kbn&q?wMF#@!K5V-}mDPTIr9e z!p*GL`qR)DS|94Z>pq)DPimCY-d0eaEdStp8DAFoGhl+ySgH#4D6N6Uv)133GpXUq zW`c+M*0W2_b;?%HLO+aW=dlJv95hE)H1MN@IbEK42xYxYDCtF>i9OA{KY zs#Td@VG1<$ehrz{JwWgGJ|reM9>FlJYdw)vUpTPMj#?wlZAtKI_~efhEFi6UIDO84 zSPACq>6aP21ms4PPf)feUooixLPV1B=|pngpYTjH&(Gc7w3=YI3Db?RDyPfDuJYa1 ztMonCZn;q#ZrSI~?9q1aZTOTplN14Fh6$KVbAExM;7Aa~Y`%?TZMc$gbrC$_()vO5~rTz1mn_{(ZO8im+EbQ>vCR-c+zNTC0 zpHH=#VeD;3I{hyEe(SBi^>^I|h_%VXobrp#_uX+|>c67o9q&8ir?V)XR-JJ_3y`zO zHoiAUssM?!nMay{KB)4N`n-TnNKEu!{VfQ3Akj!7Ux|CVBrCC%MLe!r^Z=&@6@` zK0D-_{zSoqEjn@i-oT}EgB^l@Wgc~d1fafueJvKmM2h=Zq<6sY+=hAKc#9IDRh2KL zA~9A=kSWitVVl{$1worQt0{R+B15)Xwfkdo);aUk45%&WO#LDypgoSYndj35zspit z7Kl~50MpMUk^E7U)xYySYuEXup}^^RIsVKL--?bicDG%71@!p5>K>?norxPV(5k2L z^ot#|NXN%H+E?*F@b>RE!>kF(__tbTmMThkDv6cLxJPK1U^P8TEL*I%=RCK?qc_N) zs>jEh?fk3YuHvVOmm*QuCb^?5oGvW78v0K?g?IQ<`|vTG!9eA8%$IaB3QS2O+c6>& zwm>7NBN6qVU$WfY!$DSmX9}VHQnX43Nl(7NtLXa<+&M*P=LbS2#HoMP?SbJ~*;9{y z?>2@aiG;ht^4Rb1O&grfTvR4`1d@)>*Ps5pEsw_qA-mr0?DDosnRrE@YL4}ZOv3)|oJ&7!JJ^>7>p#-I$z z7t~@>>KfABZPtk-Q8v#)9rj$(?0Z}Gv6x)rx^YAZ>?WNi(cH<8l?a@BBSdwr*8cWR zKf?re#qSDQ;)er&yO~h#jH57xzQ&8W#s{?BT7ZbyZEv$Go>~>qSg^1-2I=K|RBKQP z3i0gQQYQ(-Bik{Vb%n*}%@Itn4ui$HmwDQd8s-ycQ$goQa{w~2_{T>DGT_E=L+qb_$FZ``uHkz0XTD2HuF{H3mO`hDwGsVUFrYr*PIC*}3X@L^2b##CVr7Lgb z$?qlG-@q0E_1pAE`$vjbq#nN2#98*d0r!5_8-15-xJpyz7ta-s@rt^^PD_c7koC0R zmrU`-EPR}Q+vgd@YKYb6#VKnP{^yrG!}fAEYT+XWA$CNqg9U@Pe>a74clHEPKCkwi z=IC{ekB@+c?6HeB&<9jG!AQ$Mg&eBV{|s$Wg4*&bn5pjnj%)nl^h0wD5~RF!NKgVh z$2FOI^(JYH_qPGhEhna&8*)TkhBdP2u=Ftusu1pf^?~MnDgG60LoLRtYVeICjivp$ zsQ&IUENT%j>mi8T)&Qx6+k2w{A1Z9CUT|uaeod?K(-qjrtbVS!3-jR8=3i^meOTOs z*fX^2x1}~l^RPLrWh11|2?rP;zvb6g?_VixFX@bdz}H!!d24v5w%{G>ki6#9>)k!B z_PM5isn9S|HI0W^U3Ih<#cV~&vhidqTvD}Wo;BNR!n(X(2Q~_3){NmXYH7ZQ39BoU zkGUqy2#C~sRl}Lp=-PxxD8X~4)%72jAx06zUTh3xvqR4gYCg+H?S|px*g>ys` z?}?TMVg06&gLz`yJ81-fTPws)g&ZrXTA@;Z4vY#_LxOP5_8e)GEj)w+=Y^n@@ zY#B;{wBe0(;0Go;r1b{Nt&5Nh6RrJxf6eW`Hz+y4@!9Okv1&&4cQQG!TPR|AO;;j^ z1FEu$g8Qeuet$}c<-VR%m`%Y5-HhZjS(8lc^m{Sv*v>B@s`Fi|=E}O_IS!NC_yQ%?fNxQ>^Mtb${s>gy~ zz7*dyWq}*BeWzk3axUBv)5DqAByFo1v7p}tTKan_qVoWW5MptjZ!C6yLI;6;q92zE zqS+&1sX~>a0PVd$)V#701@yBDD_Vaj-h)I6$Dw4qJ3TYne#Yo;%{kN=x(Zy=dA#A!TZF>C?RCv0wQPZ*Zdi}^TX=*Bz6>1#da*_n&P7SG6d0(ZlR(`g zRIN0m6A%CkW;x}#dwdfvmUx!-ds4js_cYSIdoc44*^%DL_ z?1nd6`pS7^qC3kKig;LmK<{ZTNY=jAk&&0vaOet!EzeMvwB={Nxx(tR)g^0ssRhxH zTW@v4?z!&qQ&tJ<3AXBc&^dpe%D(og7CkGw16i$J%aquA!OkQub2DJ#Qk^y$L;UAMRHByf_B7f0UAc-?!#S0(4k;(6h(( z84EdKFCHorjs0KnMnvRGJcVyst8wa(qFdBMZQ*2BUH4?08}PEMMLlzmtDRAH$8y%# z&op%+Us{*%*xP{c_Ws&!Q=q#~w}u00UlPQ3*S>wT0qgN~j{TW_DkT2ap#t>w$&Qdn z*1za=?l+}oj}OIvImA}l*Cx<_{s7GZ!ksUCQ1O)|dno)*F4wg(x6iFExg9~NB=S6g`i}0Mw-1l!`RO$(TimZmGgdH|+(MlMKF<}Zf0PxFfFIOE*! zg=32NVBUgpx(n)X2MGYVE^nFudR*jA(|J9$mCj`eE1xT7MnLfHe9!4zjqS#_t#Q%j zTkg?lt{eY8mpOXE{v+3Pf+~u73nbwI5!++_ z_F+{Ict=c0q)w5BM7_LjIi_(F@9SMCBvpo6eOn)Bhd_Y8eK5*}Yp#c+dfwxctBy$K zt?&cuJufqO2`?ob}! z>`9%?$+L1K9pWkt> z-*LEqH_3uuHb7d|{VeK2()){|)w)-6dJVk%6sdfEd}#Ckm++_IGn(xRZTHuop+AJ2 z9I3t+|c zvJ9q|kREuLlgKe&ccvA8<&lHJm1$XG=Rz@m*b|45N_wuxXa9M8f~PcG=tnU+tF5+c z+B9)G?oW-KWS}qxh&v*K{X9Q*|G)Y8R${QbY5>L>7h!C5WP`j=B~byyDeKtM3#5up zc+8+`y}uz2EN2>45^kR}lAUy~R%V43`}2N3_>xQe-@V6fw7%=)UhCwrVCa+c2Rple zU$rG(SmeKuErW5G%gQXp>kx}TshLzW@o=txe`71%;~LI0PoT>|O=ishEwQg{6O z>Jd-J`*Lq}cfLO474Hc7k`8gTE1k1>-Ie;s`&tF zK$X8w;2NjS)Se;onnnm0qzL3v^Kd$PG^nhWe^(SG|7|{orhJQT>xhJKzRMv;$o~9b z7o>%msCjXH?TSled2dep-NazDNQE~Nt^Nq_pTtK=0jqx1a<9fY-JR^}M!C-}mQ>wu z=#(`mDFc_jq-=~Rc~lnyMm**p;2xpVk!iq(36?9ab;V%~iniRLGc>+Wh`3V-FA8yS ze>QJ*)@0SlY4B+}Xe2L#KwODGXHZ4Mx!)Cj-1zELF@;99=(y~MMYbv!TDmRZFXQ)4 zy~w7~Qkd@R{k-%aV+uBzgr`b4AxM*42TqagnI2H>)=Kn!z=hWkxfQ7HRxKR2bJOVbQxHY(#Omu$h=^KFY&e{7}; z&*a;o@J|b79Ix(66y$x)RRY!?wprP6vDhrqY;!Q30{g_ineukk5pUucPQm}(l+TuG zotz@+uBI1^u0B>MOn0Y%JD^3da;^8Bww%@n{eF4^oawc#O6sWXffPf`Mb_ivxV5=* zShV2ugx1f;?0>=E_o$lX3ILMyf0=V?kI)7usc#zoU|L?hWR0A8%G=dah1}qijXZiD ze@n?{OB5mf%`HC9B_QAkeyq)rJW}6)d!kh1tQ^l#^a>*C`<}-XuX@-F|CghH7K=9! zSC8X=j>sp~RMUK_`tLa{pTDPNZn^UL1Y&$E?=6pUuX&8_G^r!G-lnnBfAoCFj4{_? zpe{ASpgV{%_L#K8X6+oFF{|X2i(1wg7^cKgt*-)5(|Z42%}p%`%agCPUG2PWl4}Ub zumfur5OJ>ZMnadIx5q%V8wB;AZ5r_2%F8Ad1JQATAlISZ>5WhJpJ&?eJOU--WIPE5m zD1-FV*e`1v%cOc;gVcM1a5v1CUgwO%C)_6^Ke1$Lvx{$2l8PBqjCTIrDO#kRN|V<9 zRYy&Xa^IiP)+qrpH)p@71uFqf8#q__D9wMtK$8Z`{k_c`MXP8#D>UnfH10~llbqe_*U;3BIx#Y z8+{tvggGg-MuAhspUy5qjXcBSR=dPEPG~zPo8`^S^xk}r40urt8uA3`8m{q~2%Qx= zLs7ZhgGN9VrLl8*d*qaJf*F2_RA)d2DHe3<^m4i#c{fQ8e|2!`>>SjWNtVOoa|k{9 za&dfH0an=)+POgQ9>Pi^^HTdv9+_kR$Z=_4Qfw~gm#%R6)fLWb2pWCkvxa?wv`oag zGzAruh=$mSQKX@0z86HP*w*pINo;UqMzV^PcAKBZxn>DTzuv|EZ%j#~B*%Ld4}?eC zsAbY7>wl{=e-d^@{dxGC=4WUzr4=#-y2m?ny zinPia7AQg*9L04wsGCk?xKEqJPR8saQupguT&xz;kJ)7pwrHv8w#{eBOtt9;?#p)X zXM6b9e*#gKr|MPaJwuDn8Ss&N_BV98W$&S1Nq$LGl7^Ziry zuS|6Suoi4%6kIK4cZKzOi<=V24cxN1Fp!ZyQgzpnMjZb7R zf5wPH?tczk~HH2<$#hNcnoSJg}Q{B(CdGPQ(*EczrK@)}nj=Q+TYm0E|Bq}IkI+-#_g zX7GQ{_!o>3gZ}HQQqivd?GiVxVQ$?K%s2jF?y6tYF(%fx9IQA&qNH#+I#pj zr!`RudpI7N8|iS&;6^0G+dUlV|Mo6VDxsan^BzJ`A)>8=OuFTv=ryOny15p$e~D=8 z-YBkHWuMG%I>CfjefmHeB!B+F_cbl8zSa^K-;_IaCfiw(xbm?@?@P+BB9{lWKALlY zfxm4ZH8)zA&1eaff4VE^Bf;xHVKkdH2~YA&f2QlC{9ba+C5N#cSG-%_*O#S4J2o7a z#WQHA^_FHd-z58aKSS(aA9MT9f5)WQG1$@>S?f7E_B|C9C)|0K1$2o!CE1^jJ&#PW zKPBh4Z~|M-Zr+kL)2=!$r6}PO>R&PQtY~p7cm0xMcfPo!JywnO{rZSBa2n}v70B!- z`PycsrzTwSrlcg8j(Td{9}(Ps)CIrw!o;U!7L2#_*F+Z zd^N2H5{5JzO42{4|2D9!^vCvZ*%q&p|i z)s0uAK_POmkx|q~w&Up8e_ALIzzCn#WIsBi=40@k+be6Cu3u%4C^_D4376S$LjLU+ zhi5crY1^l%k60R4|JT`5&AombyV7p&f0}cOI;cLQX*oI0p78Y&CLenYjh3e4HFiNN z<%)y#)$cdwdr!wF#dt!n(-u3E?NnkO^H0Jy4Di>OWBF~PM+LN=e?lM=zgx|H()}gz zV7i6!j$f0KgVOzZZIokw%QlbqW(x$%3|++8UE7*P7&mQedR?KoESWXwnzvW}2A#8g zGbT_l*{&n1j+d{hTh3f79bI>sRzg71Uo+Ra!rx9B;@M@WG$+$T+k@O*A`QmniCV5bZj)!~|>2k3*6dd!@d8y=T^f z@lz^f$pr8|e+U!LdU{$ic!^1`Dxr5DfU&z`Z@)}A{h0gv(!jSnV`?!R?Iu4*-5H57 z%2_79%=x^J`;{)heYcks0oU+iA7Md|HAsu9N1Q%>If`z5_c&?6NlQHf*Y@oQkhfZi)(!!OW?$9 z;P7PT1(kUbr<}-|@!xAuF>nY}yr-dUi?u=fb9-XMxlQv}es4E@;j(XUOyyIx@0Vmf z#r_=Te^+$F4kr_x@VvgDS<{N~iopTsiN}*$GSObHFga5|C*ZeqExV~QNd7WkkLWl? zpixnmjbKY_SEhDuB>IfpYJW0f3r0$Zy|BLt|F7*S&2xA5+?}C7J)n7M9Z%-wDtdP# z97;WYyrrJ?zJFXny0JAr-@HH8KQ|ma`LJ)xf1|#e_e7mAoY0dHx#fh}_d>;o2Kf}I zYm%d;L8ulKmWf?;;IC?+25UgoyK|@B#_Bl^^F?0rw}!jl@ox%|ipOaf6hgN(k7Y3d z5=D~PQuUfRV*2*J7svl&4aE2Qj%?B~O!J95=9t!c!KE|IZh7ot>z%t`+E0oAO8pXe43_7HrWfNxXqCOE=!G+q!(GxktRSc-hFo4bHVRAU;C22)RWW-&Il7> z813YB-n_m3^?_a}YOnddUK_7>{p+ir@NJ9`X_vuN&v*u`upy3@3{`7#GaFM3JU?N- zbm+@pr&%=$wzR$ywPwE{`;wP>mUlRRf4of@1j!U@uTo!FaBj-*c&8Jd0qrqIcWEs~ zgd_>tVdbiR=F{}U^!@G)-3={7c=aGUZds^WM&f17NH(i*zy6C%a~3?JTo|RyV7-R~6y>@P4=SrAhc<$qbf5EzXTP<+D z#ej&n1PgvOJB=LWh3GT4<;DS1vgf&I`)s;TA+buD;??b`R1pTs{EYeU57oe1GZh1$Gsj=h4r@` zm+meC4LN31lhYCU6}NhJg%E%Lp0tffYOy?4jp0R|Tg*t;Sz4wYf9j#Hn!z-^1SY4u z?fPv~CcPMmTHCnBE>z}FIjj_WoyVlC9RV6x58u9sCdT)(nfI5G`H=B=u4@sxwUwqM zsBNu)S(Csq!S%D1YkBqxLvV_^X_(oiZrGQ#x{|jpq<@ZG3Yt#uRlnty&b;eNiTZSy z`ak?La{7MSgYE3Uf2G%V&I`D)ju<7Izf7O@-*Lvyyd?zd?I-qfaJ=Hx_pT*$zrL28 zA1=ljcU~+r}j5eAd6%F z(*^_g{ci>6$qC<@Kw_z|-JU(}4f4S=J3?((v$DBAOQGoUO zZ2G}GumwYktQ(Hy!P}L-%liJ9Q~j939fFutCzF?7A7nnP z8Irm3=DcNJ0xWLVxgD^{t%-~2{iAirT4Yn;DAP~!#}qfOVeIK1v}7&>brc5 zPTF{X(kj0zBfS(OQzbS3idh6IA@{IIsl8^8N4XbU!nN8vm^V?`hLAEt`2J&H)=jZj z+|41|A^z+IZB^|n=gYVU1&}6C4q5GpDWHk`y<^A=)FEP@pF`!eW{TW5PHIT-Hzp`#kAPK zls*$Yf98iaO7vP30{z5Us?p3JRJn8FfZEM`_g5(wWh^{;y8aw5|9NK;IdbrIk)PCE zhDqcrFcLm*h{bxujI)sRy+d@GgsqKLpl+Rsz?zWX0yoIl*laL?lay}wB8|6%!Q*@? zg55?tRzggrM$D#iWlNyVCwabtg)2dMiPREIf7BnRf{@%$75O2{H=Q}5#hNYF{R-Qy zRA!PlZ8RK$PEiYK(}EsrlurWYB*-E%Uy2Z39ElR)^Je&1o*(Ta||Qq}323MU^YY1}vWr z<=a=sYX499gD)ZX<)HKb#EJAreDMoT`PK!OB^|`8K|FddxaNX`Cxzu&GYBYVx^AJ3 z`en`t@VM^Rh@yfaMN98`-@xN<5H=((e}mOsbm&|IeJMBmzgCQCxp58}e>NUwtoLCQ z7P*g7_3)_z08P*Qrd^ZxRg%e8y1JaXt-V)T&Cl6^kaYVV_@?rig)v^Dm6!E%m~n77 zk_@@2V%7*)aPVTW{d{FAmQlXUxXMX;=In9n-{sC8dPjRS4F9`rr}$p`_Gt^x`CFJ9O4)X8{XRpL?f5+PWUgCNNfw3&}2i>(Nn)^8SAMpGs>I^_$ocUnL|5bb&W!gNQs~kv|)MA#!U4Cf2_=EV(Sd* zGzUG36O`a) zq1|Am_V|gp;gBA-7p$Yne|ujXar4G3&p9&)_4B7io+ZNkROD8|S@)1pR1;fTOuToN z%~NFJyu5XU_^WuVzV68x$u4p}6T|#*$C@iH5!IgcSW^OTX30RdZ{^gtk-uxu0z;43 za_3+mibWfe7Be_D(sJD{+WtuCFCt%ymVdzi{a%bpQwcv)ioiuPe<=Z=c#USe$j3Kh z+^ELbkG$dSaAIKeyL^qMPKX6^mxQL?T|LDUNh$0>MUIOCI>Rs6D<|(6(iu;^Mk53t zK|Nl5@XtLjno3XTB57c3T*R3$BIeMcCO=P)&*v~UPGsAK;V*Kk&GotjJ;(IEfz?$d z5d*<)q)LSPa69E(e_h`sP-Tq?5Y@M}BB+oZ@7P&ij^FvgXjtP-fsgqellR+lP2-JD zu=AF@NlEF$AJ(>Hy$UGtRR~rwN{W@f9GJ!E+dnLE(H!YU( zkPmKBRaAL9+lZ&~`5ozB1~PW^7@Q604t;6ayf8`8wp6YkS1LSWY)pFib9?oXR)}RJ zY%=;g?(-chf4+Q3Z==WAqrBaUhz<6GS(Y*8IS!q0Usx@JA*e<38sFa<+$4D%A##e1i_OB)wAxZv658?OmFC4V-l2k#Y+T=5&-&97tzGUY^GS4bH$=Oe|uj|%~88nE8Ij0w^?i@Eh zJ1w+DXMpgE*Tj5LC<$6l^v`yi9ydJN@TPc&o*A(=%sLiNy+&+@_Q;vqx?Z?73TzsH zc2!6BG7T)b(F3>0>UjRHj!g!)iM@K~mQe@Hf7=M>wj6xRrx#-KWS4n{uZy0^Iz(8s z$XjLjns3%>>z7J!p%c~KZkeUB+^Fu<0C|RyeJ{=>zvsE8_bTaTHEv1r z_ICT>)x3S_ld1UirH_2+_ll&2hNW~Bt0VrNn3+khz#|Tgc3Y~5BE%o)AzW{&YYqm} ze^22p=8q<-?N!9C5k)#jGfcKyx~wKTax}0GoR6DT`0}ubhb<0V?MGWe#_;o+(B!Pb z(OOHmZANJ}$MyeIJpEAgeKmv(HoVyibyVR%A7`@7J2`zAs{E@7)**y{OR_a3*>{)G zQmczZ;2Q)q%^8VG3tI1WoVGx04we;su`kJ<*m*D=J6eTswE^da{}86Z=`=Cw_C zq@Vr-lNlcNM=zH0WEsm7Z9!rWs$b5e=4&4ba1K7J%yX-N6|+jg`te^e5)aK!;6zUL_0ExuL+t<9Z&WgmK6x#0II;qllR z2-bZKVw%6!m@Evj*P0bd;%Jd9lt`M$e4*hO@3uP!Us*~*}!~w^br;0l% zKsy_QkgPBVm*ct5I{JN^9>@WhRa3iR7Ojv!=Ih8R;UzDCW4AX(fV2s(!PIB#$7;(p zzrVSu?a`|7vM!Z<0j3yKfBI61UUUHqM=F<5f3Y4#J9Wjjk5Wiu)-9zimUt;0EEg9M z4K46~S1f&FKuzn%{`GiFQ~|XAen<#}gWTv!7G1yrTO20f=0_Z3cRC2TzN75k&L_uV zfzUk$+lpOpRWNDDM^FgvJ0%j5+4B>-<&zf7*4EhSyO1A^82t zDaLox$~7sY^_fY}n$S-nkJtVjIzmtXQKqb*Gt`94C`TTag-t*+#}qs%Fq44^JVVp? z;#GY5cxSfMWf|Ja8lh8yTGy-OqRw0WHF5yFN<@+vaYm~&@Q*hjD(m0)9)dMAPAV?F1-|ffu13U^7ydG#5TWgY`j^} z0H|KIz9BzGJ%OrAMx7AyK>Xmm!YEMchXG>419YHj#PHclc5qa}pbwTpzsya_ILy!^BMq zO<=ReCs=P>;-)q@`m~PK=rj>{0D z-Dq(#0^pU2?7z3+T6q3v5C>#~70_qAUTe~f*aKDlqQ#-_BjrfGT8sC&6N zT#t4_VRe%R#@JYf6&BdI9XAMaiAf@NlUa|#b@!Yg6iwFT9z`^wli^M?JM;rj>Rw)0TF~YIdCSxclb)K|x zx#LN&j&R#1Nqy(@ENQM-R(^uqEP=k zw^3Or92#ddrQ(v&C!jSWtENN=GkRg3P2Grxe?R}#2ldap9V3Gs>UZ`+74FRmcVUHp71+yv71(kPMANAs>a}s^+^CmmnWq~G zVcFSKJ|tbw&A#UUyoU@E%}*nA_{igkf9rfWPudV~?uoRwgN^X`$`Wzd%_kfkwT={0 zg38E~H=7U3hXiR~!*UdOZzve^Bk5 zE}W7|;*I7}|07>_IE5s8| z9yb}~qkrpP`TKZ1-`?{@M9Gw-D!Z*FAwX<|l{Ze<-Z)KD-iUVs2MV+e#5QwB&BvXS zV$R`p2BHrWjKw8p#p2+}bBY1+fBM2hX?$$^C>W9Ug!dpfB!07&c3*!~9e!JBAl+^} z$zxB){fYS7&m0Yxk(5c8pK#pb{8kpnp*b_DbCUuWK=BF<$}RW!Ks5?~G%^{u_dgr1 z$a>4s`a5!vr=`nSbc9P$wsq}8w~|2diS1i&dkM`+>nE$e>Wa==neyS zN{;Zc)~WV`V&q#GmR+4f;%ZG7Xw@~%b?8cRFKbx1R!a@l`&mRM?slht&T)G}0e+C~ z(wYpwrjmK8*ZjB+aj}w?aBJBEg}%=1I}MBUc)&RYu>;#m4!*WBcR{mV$wcFasCueD zsSdhFf*-Lsp3%C|$A0|4f0v9~kz_Xgv05I?E?M#_E6W{&_*i2(H=98nl>Q1%Vv`+Vqis@i#|SQ^7C{b=mWTZYXoJww0fzT9Ea z204EAIJcg4jW_&1irHb*srSDwcNS_yhilfpPbWaP>l--L|1~&hR{h2r9{34=8$0lcz zInT?bIngBa3+Yffe-R#8lY;NO*0}wbr-O}@-xuzYtd=N%X^z0mh@w16qC_mkfy~xW zk}}tlPa5#~kbO=1o2M~)8nlX`Oe)}f)PqN~Wmu?xTP_&j+t>$oZ3B2RpB?}{r+AZxsjhIr|&%|f759Ef3To}&4hKIdK@(R3PQUM zhMH$~#}@NE8|ZyS#>FuJtdVMg-%o%Nhet>0tfz%dcLjM-OlEdVNA~M^r~9wi*UIbq ziS`rrHYwT9qa+Hbh=j^(I8TtyVt3L3-BT5x`;(V^y4X+y z^kY)R2P|kL!S8MV@&GSBR4_(1kMeXz- zekpgZzY?B}od4XO$pQn_f4cyHe0&*mg>EN6b*`+Jf2Oyve*pQCD@{7tAJ#W)a{e=J z9>lk1k0-%EWK>6v5cLnPDN=RDJf~|l@YS;Ct@`ROOp z531S#lpNMhX`z^`9(1f$$vcvagjtV!(zt($iJZH}G($d2zT-)c%mbOpl+o7}N1srD ze=2^Z07H!@^Wb={xlg~JQpVbmkmcxu* zE}xDcE6ORHC$_C6W>1~+)5#4?Oh@Zu$cDt=C6~V0zErNu&noGfKHarB&K)I6T_T=2 z#KmnXu^gz-9Cu^cy>co($GQ1G$GJe4A&QcjjGK^_y@Cmc(V(AcU{;n#vxr~) zcdX+;$-D$vYRU$fCn&%`eN>L!f32VhyVO0~A&A~<#DRXB2lQKvZbw|~D_HBa*Wf}; zJ-6VViz^eKi_{`2jOqQ-^8C)@C*|$hQwrR9?NNpI535wxH``Nj2vY?P6)|?cQR5*+ zw{LotMUb082B@~(bZ5w8LUIb*hhXcn-%dxMG*E+0z9KVTJ-*jMk02O-`nQ4zpS#> zcg6XK4{n#HA-9iy${8Jjw!BB`|2=QMnu#BFC1$BJHJ<;w3GNHXSel?4~5ZTZ-J?;f3a<)%fuvzJ|&yx zdH_UvJxMMfEuXZ=CVuRXmCb-o(|559SPE-SoNGMg8BJmRXxZt==V=)YFOH^MRdc}V zv4Xj`Yht||k8b7w-F^aZ$)TU;ysuGp92q`mKs@e(!eR=WA0}@}$`kw8eIVhfvQnO6 zUY-%On%dhqJeIBce_6{KqJFFY%cU*d&zK}EODSMbM*6kl%Q@d_NcH!F-`@T)LtiM% z4h-dfFiX|&v5M-U*8#%TW?H4AetagA`)ncF+b9sU3(tuqW28NAIs)O2p{`C;Z5xCw zu4*3f>g4mj{~j360JvprUdWQ^Dj{p7f6k))>H6_^81)ArfBrs5S01GAx95l^bBnP( zh^c>33^Q=JO?M!+3^^35{sf+BHYB8)e04TqN@Mbab82TU`7QD0 zzM7W4B240ae`*S1si6^A0>HRu1RCGeXiQ*VczvUhF}?C%NNro9J~jXEd^k)x<#n%1 zlF%UgiqRSPXNuI|zBeb)%AO6i|7Ps5hosxS1ja>DeDHZmY^AC#^*JCy!;H$%Noe@j z^k&16`4$~8<{!Wj`G~bI_Oel`*B-9g%`g|oqF#}JfBMqA`(v~Y@u&YH+E}=)_e6YG zr%)@tCG{f45|MV!E~mE1xjp=UkjKAyC?^*O5O>&o^GqV1Mq!+727wyrH*-ON7fey| zWsfIa)2U<~Y*;JAhfldp>pgv4ZyKe^ghc%~canRrOYe>ggrDXiW@{w~v!VIQ#KjRBY(}$+~q$pncUGh^dG?OQHS+ z!_oxWmf?lrFaVs?l4%u~A&*Xwy6H`sX*7y;JUQ_%@oDdaBd>C3<0t0uO1o&eIjAiU zXy0b#0Jga@G&EolPGJMDm%J_1aUFf}|FV9ge-h8;{rAC;grBtFY6+*T1#=5e`-~v? z$xuMz&NaUl9=$?s(=(v7o9I$<4~N&{!!L|}30y>0UB6zJYrLLDo}xC8_I2HE&_hV@ z{S2aXtg+u(2Z!PbP3IS4R0hW}C@m9PLmzx9@$WZ~9D;%g8GS0=&1x@eViS{>{9bX* ze-*#gpvM}}l=Rtcx&79%Ot#7@Z`X~*51*R~45{{gd~9n!A9ArXOL0v~NxP$p`blnM z(-EO{LwOuZF2d-I!S5ZgY&BpR#TM32wgVN@R{iFdlBl0{Yrol?S$1ie~2@|bMUl*cu*=9W(ay41s1%{T9q&mM> zoO8wRn?p<>hKEb&6GBRhDEQU1>Sn0~oTD#b1=`*VF5?CHUfUWeD1Xadi+Dy?f1z2K z;eRp^xG%`6bx@yULw|FRvA=6!P%h0xUI{$5O*yiV%_djt1`hErAV@d;z^_P;{cjmc zz9vl|?V3w>bGvziU;@o!b@Q9FY!u|C`Rdo_#yF=gV?sM}{DyBaE#;`(6YqKi3qUVl zKqudJvP2Suy~s)3m}MSzuD(L}f2CVoHR~-0lvg57t8cAFL>2S^(}9E#u*~z;D5SPw z6;GH-!dT6=KIk;g4+1A`=SpQ@HEQPhpun%r^33(VpG8HYc%8-Cvt1vKHwGwq)fFfw$bV&EQJ)`Q|;a1Ub1(Tg#7H^>XMdif9C5qgwNN% zWT7b2PxA1D09&;6_hVE}Do#p@?JH4SFJQTbPw3I6sO|6cmP#~oLH?|RHG3&IjDK&+ zED}L?e^oydd)JWC*q2uKG#Q%YSa-Sz=6Ek2TPV>Lo`6z1B{oet^?t@PpK1K zf1~EL9!6#38CY`P3GTR=e@iQ8mTSCyB}vZH@3%&inv&2Xtf9u4@-`Z(Ej0U0tVr%& zViNl{b3Xco<8QP>0_mg1%Yk0ndixbjOUa0kvm()FiCVP^XuBp;biU7ei)jM_qB#1fX=60sr(<;y4%{@4N{7+MB`B z-aaaY7IwErc;WxAe@rSf50e4#!<^9?ta|x7+)AQIGRm+`t~*q^HqS&%Or;|4msVI~ z!>VPTdU+P1KI|`>f0)Um`v1#vPox$_NCaAv3UY{<;w$c}Z^1u4>Qd8oEuinkd&(ed zSJvJ6+?kur{TC)8TS6ldZ%>r3kxjP!Rns41O}~kZqKQ{*pXVJ9MG)b8PYGeKl`-|$ z1f=Cj+ut8@`8jy#v+-E;uMz>)ojA3!cv+5aD)AD5U)a2}e|q5aI}*7T4`Fz1R>w(J zd4|QgIwx~%PW{I;ZBr4luY)6MXE-eOJ@*p-ywd>$Ui+dm_=5ggJt zwuJR9d)b^5f0dL+T(Y~SGnYKkpm+l{|1-mpw+V|F||JT zV-<~fX4*b<7aujY*~Q=TJ$OC}p1DMn<0M}FRa%Dr+-1$js^D(5L&?|)(I%%}m6pAxA24%0uoaV$5Ha69*7S-ob)JLi-e%k_~ zn9$bR5T$O^qlvHu(|?Nu(qu+?zcjk$$U*HExE)e+5;J{(2?3q>db>l6}pZ(>*%go$&bG z3Hu^;fvXU{t+y?OQ{dv+UkZHToRu(9by>La&m(^Qt`hSJ1IZAo^#`@e}}YUt@V zNtRT~q^@Ps_E~qh_~+$koMN=L1j?9hN(pC^UcnqHd#n0+7Lj0*NCW2ez2@=|(D%LBCG?%6lt$G^xVR(U-x*1gSEo=KP_Fr4{9MD@BvdMe{anilW`F_@Y{Rsb62g#zrbX0{+!J zb9$aQ`RDxr5pe_sFc$$7K@Tzj>}fsMe=iNl*8X!zZq*}XdXRv-fV2sKbCT-b&DI7z zo_M%(d7G^UD% zm0Q!cYL70L9-b9!{iGE;8pEPcXr1rv*>igax08HQ3pN%1lK`?|o7;G&upll6f1f}# zsR!2m9ZpHCJFjuW={piwQ6MVU?Rp_~jflh<)d@-KJ;8{yo%4IWmg^02TE_xo&4u&v z$roD_DzxT@tdLKe2yOY6?fC5q_aAZ}LvQ#Kk_f9udLNPK%ny!(bP_An5EKYCX&|eq4#?Oe+!LG2y9(Uc*0FZM$ z)8f3_&GwCuVb^+0Uhw-voMmA7^z$#igr5A* zYO%;KlQv**c}(-2VjmB*Nt#Te`Wfx(t0HS9tbUd9BqcvroRjOUK5K>Oe~Qs=!~E#` z;TeMwZKw^ByJkOM=A{Gz=f^R-gVPS1%EV)7wCYuS&WD&Fx$`$TT{dLeTh_1ZX7u+ug%YOCG2Puw`@X!i@s-&k;YHpm8caG|u|=wy zkL|9}$f4Av+9O|5z66qUe{&C?QM#>?o$TehY94%=vy#iM#vFIESvF4^subC8&PFeU zU2|}H^#x{il5|>{Z>(_tJUdnZ$Ml^X$v1F@9e@Y&{*o=f%^+`yRRS{R=CH-Yx+8Tkp!| z4b*r}>veuG+kg!cYE*>J19XlL5L=J+VoN03wUxeQ(}d}dvvW<7?UTKd5ao?p?b^OX z3l0v0Ti1;5;tT9Ae>CUxote2LY-$k&wr+R7B0G6$MBggSd2}1lTIkBk7`+n0wYoEl z#6QZX<*o(6DmA1tUqdi{WK*<09XkiSSw_-oxUL-dqQG(ZXm+8ISPd*x9&6oK{ zror%t?-g*2IL}YH-Su;S3DH>lKE2egy*RiZeMy7n+s-#@e++9LKX2qps@_2+q}k&FXC)wQlpnU$ z^z-v6xB8SLyOGrl_Q0@h|1`X&bR!);?*KfunoTXuQ+c3`1QGBg^xuySxnFcd)Y{P@I_&2NBAl95B7Zu+1pp*6NJmQ(>)W57X1D&ZD$(Z&3yXPLf}C_H}D)9V2zv@PM2uB*$gBn{sP1+W~7dfhzr24sCGdLUy+| zwb!R=BRyq0RTN>7?0rX>VCszr$pUNL};sT5kRwSZ;wpwU9J0v!57zjjwf)=8TT*|^MvaO%HL5nj zB6OOwvAtJpzgJ|K$9i9^IMelUtkNXVIIEP)S0Ac&e~eHAi|$*UQ_7e1o5|-zIg@Ly z2d1-j3+1)Hdo^Q*cBJv%&vdH+y0DVBe-T9ZIRDfGsGJlIppfgWUN96snbQ(Wbd%r2 z2K5zW_j_;cOKRDd^LbR`Gj>^o7G{JGW29Ga{q18?_JGw9*$hKW?wtGfEa*Ug^N(pD zpq9nS`zSm+5)LkV`GNW~c-{fiYx3_lL%lcC3rk`jvlO*AIh=RuvbDqkeAG*je?n#g zApqFPtS?5N61Tn@Ek`an+;Ni*v8LyG+-KT;Lh3Jh#&RX)v)ejS#LOv6@?AF0|K6S~ zW3zVWQl@86IM&2fu3Nj+Diq}tnCZ2Yr}swZlb7ci8Zh#Fxm4kr&398I9H-D|do`2p z03b(tMqBXy?^8MbK9z37qI2Oxf3<5{ZeP}#6CVg?!1Uq5X^%U{uk-xrqACIB=~p+u z>ZgXsg|h+++eBR@tK|he;GdD_3XF(S^HZDU_{M+((`OGOQ#zn!!c=z zm~7j2N4>!X^Jxv;;%STQYp(eHwNvs(+SJzl#>iL|EDXPG8uUfa4f7mj;hKugHM2m+N<&Zp_NxU^pp6MFN)L#0)J<{R@Zt^2Y z$JpKzrZX*H3tB$`Z39cMQr_@~@=R}c8FW_t0#$odT#{_^IoXObUtT8Rp}RehtT&mJ z%2;?VP3h2DcT$zUzW42-J>{f+{G~5R8u{1{dXY0)s&iP3ePp-Uf0tG~;aL3T}Xgv+<=2bcd+D=GGe~kM6{a@`=8?{p{I|{48 zp4{;of+%U3)f$G3W~EnEKaKTVMY+5e+;YKz6P@1m0_OlDUUJvd=L_qo(9;==cpAN~ zXJ7!2PG|m=WA%r`r&CT%3?CH*@6FV|*wdz|QM7edn^J%O6({ZNjn`l+67bkJkSj3j z{SMz|csxnye_%mw$A#&Mxu*z$_F9$f32hAS!j>|MrdpHge2YJE+&O-PwN07m``+P~ zV1s(vNfuRi3*zxI*ig?}y7rI2*qe34Y%yt;KMzn7RyL~TKzUX&f$*H~ zDu)Z`QlQ;>_W)l&pufHuiYwo?%HL=&ps(-dqfhA!RnD`+rE`V%bHSr)EQw&sk{iRo zlAy{XmaWfMrhg{-eyb4yO}Bv%ECN;GAoG}ZPdUQfnkD`d4VL{oa+GjxnFrk%u|cv6 z7OjP-Uv1I7#^7)|%CFj=hY7h|x9-XT?xSqiCZCoOx=pvGaK50EG6$d-ZQ^>9Oq9F4 z?HOqh9nWuq{TUtT2x`gex)4^N5`{gT5yT9g8$i~42Y*H#p@PBUx)slfQ=jzOqjl0ISka{Vx^ zX)4iqd4DbL&Dr|2XVtnt(O|<5vVMOmx`25i`?`i0KE4BUvj4h@us2?LRREu zf$rvi(z%kyC}cUarA$e9v5q?Gw)dLb@6)5{q<<4C;@W@8qq4w^#$G&$t*V2ZrhT#$ z^*`U8W@CCEguk?E{cnaHnzr>$z@2qj`o+*Xj;bn+Tv(+Om-P-O`vNz<*}@{=DUQ&q z_B$!ut?~+)RD9G8wgjh4Jh+$nw+68`JdOsps8IdJz;EA4&whs`sb_1|Ed<+Vmgat( zdw(0nJ_2y%Hv*R9m%NY&cAaTk|HjSp~wgn zUUy<3b9W02J%+uKjIRcb{HEtqq=fBw4)uhQ%%15h#AXn+E3GmH7w1lzGwle_+rw~e z$Jf%hXK5VrZuU@Y`@VXV3&{a9M}ejjRDa^`on3qKoGI{e6Z>I}%Jc zmncs20Di$ENZ1%9(TUN#hG!kC^QWT6Ox%VYCh@)(M=nS4T=S?i!#eUEj@Da9JR73z zcD5usKbPEd$?r{7R8qv)qBG9DD%q7#NeV*}HkP{v+VpSwy?N1U8aRJRtNLEYoPSG5 zU5_aMkvn)%=E)MVdsK-2*%|_HLULZWfn}tw`SrT&p!Y3ug`!XU<0|M&Tx@^p=i9-^ z8ss@Nw0$SBt>x+do=EB$U1toQ(YDspxF`3^S-NuK#Q<_OOdLyo>G!8>*xkNeJD5}p`PSAC?dQ8C{JeuZg$jp^WRR&-^jp1=JPRkmu`S#@ufYeghsjlj$?ZFPJf+^1R9I{WRdnCVw79HbS}2F%n;U zZGmOo_g83R%~f2;Tkbc{Px$6_n&#yze=j_n!&u)gwFF!7HW@uIT5NfH)oE!~IcW(w ze3r#4AMTszn5p#zgDA%$u75kQ8z)z5En`yd6NS1R+g$bSP2j5plQin4cTLdA$hyTK zMM6$rn{dwC?4`OqLrO?m$kXN7Gu|6c>3ZwEzzpzSJ+j}YbOC7bkIhkst9D4JdmV^f zcf4)uINAn8ZA4BGXf4L6^L~(n60U~hBl`&($#$nC`|Kx{(lWV74(X-XM$Tz z8AKU27cp-&IU(;u^Q1A2Z~X0AU%BLn+FFu_D5I?1lSpa1(mVQQaja|AKx^WUENJ3& zzCPvj^C`t_st&1O@sq33BbRp#dKo~jrknO&vi7KArmxlU9QXd~pN4^<))|3D6=0h% z+9N2KleExS84!c6`bmHlx~x^{wq_5!#>fgh{@# z7s}-QN8P1OGK-X2Zr{DL2q2#!9lXF%DwPoV`{5Fu@OnsXdz%0ID7}-zGlS*f<{nd> zg7;)~uhD|8TP?X{N}ls{+}rz9s=?PEStLYRvN80ouB_r{fqy&W@QHL%JN6lt1ANl4 zy>%J+#n9_ktilhK%E12fe=V>RnFp?Tu+21WKOwx28dil)pkSjIbd zVz=`Rs;CO$4vRwV>7R3g`Cg|t+^Jvv8sH7W=##yx1Gl9~oi%nR)+WB2?x_?eE>%+q z8Se?sLFqp?oPWkUJj9es`+Yo;H93=!l+99WWk$73R{QyS7~92^J-*()oZ^QLV7Xa7 z)&WQLJ#ly+$swV?Va3A+kIj4eOa1fBtbmHo-Az>YEvm$#Jem3TdgEuk9-SJ>$?I(% z(Y>wv00@A%o#VbYqBw5_5`i0gjRskj^<4UE{PWjW(|-(jZQVyHmIzFTTLi=HR%r^m zGj1156Up*vfZtz!CfMn{)v{~HPuN!)GS!2AyWPotYk0IXA=VYYKvD1vyAU-ngI=@T zzK?4~Uk#H1ge>c4uSU)7@;cI}Z(nN#mQwEXAjv+G)9E$`pMK*+lRLP@ z_?0E8KYxyVs}6ZPThx2rGM5=--Y2GHKTig%x)(-wb8>M({tCV8TL23n?6F;ly`M$5 z|BUYO-b0Z^6Ky{Dw^emt6EiluGkNiUj2R}`G2_9`@GPf87Hj14O|Y3Wz0&(=#>G@ zb$-2v^Ur(eaq(*SH1S8?saV$>O7=`ETHCDdUsR)lC0~A^BslG#?@Pw(LFw5aZQ*@s z_-g@iaTw9uik~%MNY1q1;6zT z@mR*sxX`+=JTot(*%-y9z!G?=`PLRh3yj&T5%GR$p~T;0gkGXaBrsz2f_ z5BXa*m&%L9TD}50w(Ks!#jvHd+XCeG)093;sQ0&?+EP!As{SeFUTQ*-l$jYeq*<6t z_Nn`MY*!|qI#1jAK9E};$l*Q2JZXuJTkR6}6!NHG+NEfr*88xnmeQ+UUw@Zuzt4EX zxm}6aqX^~#vI?>} z--vwY`1qIsPTDqdm!c1V@_$xhjXv0`8b6{MAGHOVCno1QdLO-=e6qfu&Rb~wmD;X+ zktZUM>?I_frP=(ED|p$!{9&YWfImfcD@~50e}B|oQuTsR1j0Sl z))!elkKA65B+!B32WSLy1;U27-+$=((H2825?>yHsm@-+C5J3K49>@iug&-?Im`E% z9Kg`bjp@?6+F&b0Hcb>S)~)1fbGZ5J}w zU**1FsGmRR1<5D?GRM$J<1IAAg1GIc>+`NdSDq)!wjSM9)qerMO{O^u|JoCCn(ZFh2L`4o~|lQ&!j1cc~6=7UUL4=CHrE0 zVgPCJT=#oo27givgK4>OAdY^?N~ceL#&WB>m&x%Uj)MkXv7@aV`$wZo=+(<8KCiik zl=G_n!{!iI`6HTd!Tx@SK9Pp)8D<$I)cHtSu@s;!ZI}5ozMyWT)HoCEa9{E?XZ?9L zkE9i?wthn39uzDx_3!--QLI;Ag5+V(YNxOQ?KZFVD07-rLqZnaux+Y;t%w#Jy1&6N zh~g9U@a1e6MmhwDJnku0F~|)P%ta?{=WBW-j6^W&7(07~_oFK78{eJ~0UgjYLxz@I z#9EcH9~K?}qoDR$V)|WL+h|UURB>^ZJxhqJHGc%&Mr$wyj*!*z41>M@?8jGY+X(OX zf>T1s#UJK$ZhE>WCX)`Y6%Vdg+h$~_%KqM0ZFu#nW}l9qgt#>xDO5wtRcs}gvZQ2` zN@vkMB(tw%YJ$L?n%B0HGG>ftNK2Ejup$dRqxv&j!tIZbZP3XvQ9;qvEUzP`@0070 z1b^UL>Pb+D>$IFV9K!8FBUc>Wnh0~U3P^mMKz4;9NublEY4r>Kt*lL8`w!%ei|2)Ll4D#IfqVsq*mGAEOygyGQiwKs- zHp0~|>FP0wmeO8zZP{|DS;#93%?A{vJ%4@XBz-SvJ4M7X%Ft;ky>sUr&r`j|bMPYk zn@6Qq&q0IX-N|`fpOLIXZ=ITk{TqE7LYDdYKD4(?t{6G0F;1~GvtB@=^p)=E$C?NJ z9>jJ&6{~5l#tfG3LlOtnbrR!ANsPZbsK-RRPup8v83pcxOh8r3`;z(3S_?sc0Dt$q zj9B(w@*q}oFz;s}HTUx6$m`3`V2%yEIn)>Ut94%Qq=H2odQRfOb?ZwtO}HlK@HgH| zZn@<5?tM;)fJC|7>r8V*p2go6{Z4foRIdHK77e~nU!QUP&jo3By^PxG)oEuv74~3o zEFH2gnNvN%vp|V=0#7cwUOy>KMt`1rc;EJiL??5r*aH>s8l7GEfmgD8_{!D-06!IwdEy}OBHh#1Icf-ZCkZ(pt2dIkdLKX& z)ZA97Q0p5)0>kphJTnGUA<}VKVxQi(dW!N<+}ardeOPm6`M9L3pI?`3xqswP`uS_G z>moy6+M_tTrsP>%wT$C>&v{)O?%o5f#Digqdi>L6M){fe>5otC)E`5#$W2+F@c>cIDa1SY(p{WLe9A)a9s@`;CnJTym3U`a1mmTnW%)47W2h)hi*53@d zz|YwB!r*T}sE(Iwdi?xF#DD5%H7DOO3+dGItrG~8q-9tI4|u!o_+8}WXgJl8G@j+a zLs};1k7Q+4sI+Z#b8hKqavZGXd4MHcrnGnE?NsIgIY=`lnQKW2r)hv03FyL&b3M5+6DEJc|AlQ$N`e;C{C2)#h|3)-3pbG=EA+7smt6(3vGA zY%%OVZJ@s19^0slOx|^Je$JRkqN}}tVGSw4vTv2Cs1NdQ1;KN65HqWTF^_v9iZP-7 z=F(fDIQsRi|BmuYTIKd)pO6f;AEw_is;sK*n1`>fa58pSB4jAacmD_TTG`c8MsQnml!K@FZH z5lT{6vjP!3i*3XqD$7*HcSgY?B(?-3y<@AS_l(-CDF%MosY`|!SPF3th!~KYa!=yZ z`)WF(gzE1l=Unouw73rJvCD;zxmru0W2t`RF--Rrg|E#O6o0=gZ^(IHbiv`i)$NBo zCkAkw)>Jn@dRI!PafZZ49S0-4*lWrFSdEF*f}M|A|l5}dgSO%&|a5y{+^;P($dU}Zw>=i8>H196gv?+dCuij&W$3^1vVV+VJtAL!yhf>eMBp#y%zrBc{gzSubjNSqn%$LaLVPr=f+2X zegREKo5js>2E@}sAZxcLi@%Rz#yRe_qD}MPHH;+%kuen;a{3Q zSTy)j<$ve*ifgX;{r-tSIiW_WO%u-44|SY!EiCV|I;rZ(a_KFvUk~J(tq8;Am_E1-lMSpI9x6rj^w>2h)OG* zppr#$wiW16)Ty&Y%eT|FeOIA<+oNdY|=^fzn`dov$t62^f=ZK}^gQGxB(1Gu_ z&wq742=ul@*xO1!PfR}@{!t4K;RZ!USxsl5}Jy zwMgf-ENM9uQBAQL^Ojd`eET55T?tj$zc2525RwlB9>5l#6FShpYW3W$nAsC=n zCP;CmfnLq5)@ZzIcD!V)fEV6Go4$4JmAdwuQV;V%%|DegLz{R{d{mm8(_JQerPSxf z+1L9xw%>Y@Mkwi}(ofUk;gMpPlV)^O@)~*m!k?Q$;}t?sy^T*JCa7~yi+_CSTqCgXH?5RV?g~!^6|Uyre*zJmQIMv%{XE z40v}xgAl^ZV0g56p8L`l-+y!Y;ogR|L^D%kZ20#Ts2z>Pz6^(wl(^Smw#c^@l4A7|Hx57d7RUuYWFiaMM0=z|4xtM$=tTltU5uRHZdO> zwbce!#;+Rb?JTJdY5L++xH-SP0MFHd;~a1m5pCuO!3oark@!tfnffm_$xjn4D$oqz zTZ-04Vrkg(gAitzJ_8aryAA>&X0s;CcRH@^v(?xk15+k8dVepu<&xht=CCBAd&>Yf zh_|GmvbWh=y=LUMG~Ux9Cz}1Ry&FowoZOfK{tgOpd+6gykmWT z%O$_%0Ao)2R6o$L8nmtQlgkx3aT%<~e0^Fdo=OZ8w&;gr;5@kf2qKLl4A8CUXP!w` zY3Jaat|Eax|9=G{y=O9Dt9_rzb$li%<553u!Qz(ceupeyV+(Ba_9-kJ)icTQqP~iL z&BtZ@-dpfTwmXr@b+Dcl(<$8?PSV$n$Sv)bl+@4N-hb}4KrN~3giWj=Yc*^gQ7xYc zR`r+%Fl7eZ zW|DHIL!lp*Me@WxK}|lE{bTW-E1{!rLbA@E$?)7C;cNQQzA`8Fy8SdknC7aSVF~FKK$WxFUVGuYiY>1;hDF#_WI;wZ&}X~ z1Mh^n8Q&eT*rg3+4vDc(duYc!Jnl}AeKFe7|9^TGiS<8=gih$0;MC=g+xnM4rwGFM z|F+L?i&d8QlMU`|gSYE<$KETxUdLlKiAg^JG^{_vK-ifkRSF|rwz`Md;H@BgvGeVT z2)cz$T-?A}sY{y}HEScfz`ER-L~{Uj{io2;c+}_pitB%_=@+1vwVHZUP}#%uJ*4bLOAy3wb0cX)acEcrkn*u-3DZIu3zvdUUM5a!8ZTw3V$*V zkhDc8o^_T(Y(KXsM)r39miTg{?Yp<}-LT<9w|OK(&X8}FG!?zmS z5)=UW`~?_Y4PMT38gIBj1H2yEi7PucWw73~JANiZne$6vlQ%$J{Ve4CS?B&!Rp>cg z&e*fVQiYdWh8qQ>sYNTx3Hn`M%74Rk+MmhH3J5WN$_2tV?!%4xBB_!8qMXutRsC1k zxAxpF4&n$4>-~^xKIE8mK))1}Q8P;XU%)DGX41k1CU3<&;W8A36LH{+%K?ULKTnWh zqq+3FSElOb7l8koJo+E_fDKVwf1lr8I923259iG@->d&<+gXiaNIvB`w|^b%+*|>a zULXc_IEd}(410~r`aEb1k6=jP@vH;cV&}O4A0kE~e%>VOD2Dq}zJ6h=i2ny`}pFxNpV>@c8s6cE!QYtE(f$Zad7X(TVe)!#RXk?%^n;J>525;GH`Y7T(wuVGx56%GZC!mWIg1RW1YW-8|9wNgh6c97 z@03HriuW+xqN_O(En2rnTpTpc#zutGR*LJ()^bw2+ z#U6A|v_oFQSA^3a&;LlILT=QJlT~{|EA+;MOw*;V_Zm)rOQcEC@Wz8_0{v9Y>2;BN zoqLv;wb+m8?hrrr&EPf&O4l`Q*Bba*9Q)dNe#rSZA-FXTh;YP zv_yT!7O=8??Oao~nL*=%*06v0PQ-4&@Azgzs=$3ocFO1H&R)(PYJQDR2f-l}2z!5yA7M|nBPs?& zfwr`}{jK8>#e|V*NngeH=%^V1w)e)&Kl^_#km9BP=Ghn3{c4Ro%RhAo35^_HA+LeLMd(E}3`K@wEcsxkg zQKSI$B|9jE_hkfK9h!fPU?tc@DfV1&`@Nv4eiB8%Oe*0yjt`XSAUuwJyLnFNU5I1s zFXtC*iTQWbj`Wvx3-Rix#OZ!ka}+Rrt6JKNj#V3?`wdrIneBX>#3yDggVxYs&F`D=#61~evYoh8zU;Jn zE;zi^M|s9u%p!lS`j3X$eLav9=XjwgTgauTxZ4+QiDK^W7*t0sO|y;b{b)7GwGTSc z<~&^egrr({eUQ{YJ>0+fZ>iA40|7!eKbV{?c3E4g zY9c;`FFbTJ_k2+Q3ixeb4T2$lxG}S_%zg~Bqm81*?i7}Nm5dyL)PHLlO*zH(tq_@i zJDk;@QGEhx`?{U_$5A6-v;#J4i||`HWnOt=5HvFx2$^|L&IGzrdmLv$R4ikL6(N;a zAwtyU?w^0}(V5c~Z8&5Fk#AwEFY(50AD%y!=bzw}amL)Yx;=t1CmwArgC6UO*^`nk zt+#(?e`7A@+J4KY*W1Iu!UuVM-|b@#kKA}a`M{MrrFTEIM7X2ZT6oPJZQh(-U#K$> zi1{1ZRg?~K@HOG)WqPZ z^(qUspA`c>PqH(h;p6@^waZWW4F;A~1P`VYTv@OERFU+yv?^y}GbyzLZtF7% zcNj}F@As5BS$BOyow+ino9}MRCRCV}OWRpN24r-+Ft(dFpPpH>4dRh4apFMxQ99ls zAcB7^Y5wN3LN5OWd?|JA3~KxlqS99pTYpb*oda}64!?Pfkcv~*Xgsc(H3VRd3!=*s z@kRT3gpQv_sPFOzr!g785vlN(v>Je3?*xZ zk@I`SBUc>qeu>GKI0x5xUGCVIP;vvuIumsLkL0XBxE}O~%|8W7NTSm>??i#3!=*2O z)mO~aLv?fIgtVQ|-Wr~QtuNFYGpg3>X{1k%C7G)SV|o7;}a_2h6g}rugKzmIz@G=Lt=R=CxvAw;CGxR|%MDo|Hg!oGdY!8gCL)^mt-qiBev zA8AR7+&0gZ&)1irGlH`XM7WinJ$w#P6U92IeA$)Ma~fIQ^3!LUWgBh#MD^NuTODY( z(nj}nQv!Kknjn+zPkANdaLBqbr<7k9F7uo>@n4hx_(gs5-O@3$4>^YA%Tbqr=wk`(*+kw)l1}C4iW8oe(SkKG_U;ON zk)YjgEn#~4unzS~1}dGep|~N@I`o=lGuY;jHCxG4*}qYPLrOcE)bqpR4wp};b-X#^RsJ(tyMj>V@_EQltgiEiK{$UW2$U`F2!ooc zf`;voXLwB!eePCHJz0~l>p2dGbvX~G1+w>r3QkYHzbGZXg0hSbgnBxE1wy;nbm!}3 zd6HR{gc=PGBrEf@rPQm)D%YdeLtf|)dQ6|eV{VpqT!1QAs`g_+Zlf{mUz`bC%=C_> zb?EhIe{|0&s-7(idAfhFQ)B@vSHM@DwvTlhJ1+sGOA4Mp-wI z%N|RUzqsC+!K9$gYq~GPXu1RCjw9$4WaXULX#p$mhU5Bt`k7m#vp;ucm({^|+0T&M zR=?x~bCP7`+F~2@5_~|ABkjq|k;C-2ejjdFJ{NVE^g^3cAs2sVoA!o=Ui82N(Q;3G zl(^aVTu7z84t);?Fx~QvVph3xr@Un7CR4(=I_0k8H@%8Zz?a)hOY`S5?p!P6@V<4c zV}gYd@1rFUI8RTuGV^s3gtuGoZvD-}y>6Jf6th4!>8RXM$D$CFe2FSZcYMp`TYtMN zB%p{Iw1C4EcN%{J7HbXG*uW~Xj)8CYKwo9#f(<<4hPBnr@9AdyDaqxuC00$1MvQ+) z#jL_o97XIZDak`{=8*zE+aIme+H1ByW2M25vQrTBr3-=XKFOY5mPtjfnp$qNDijZe z$C2Qy`}xrwUw;k`Atq??>z(J!>imQoNJ?@e3e>M!A8UU`pX>6*Oepu%MrdW4p^ zyuHX@74-wT-*=4oY#i#c%bdw!>XpR{uUxVp?juoEBV}fiH67hkSK!^T838&c_!-L; zov^RWg4gHwbUX|D`_B5C#IMOOOd`fr2U-jrDJOFMrll%VtK+4SC0Ra zb}QU%9E$hCE})PE+qmFMs;P^)okNReOTJc|yOC6oLC(rqLnG0m{`RKxY>Z1^I=>Pz z>D!b_BM%^O*L00U+*PGa9}mHH5cO>NkqpuL|9yW?E|j>wr!+;Io_;38PN_}Mpz!l{ z$5)}n$F^|hd&Mn12S~*A`qsMpnG1eTu^|$VzDTcJvuh<V8mN&o zybfQu^65wWAxy8EDOm7}$QY+ap`<3&oN=rB7Ip z^P+!Ys7>-LZ>q&01ePYh)*PL-2ef>J&UkGQ~jgf}_2Ib8C6T{p>RH=>)iV9E)HQa6A1 zV}_p9CeUh|-p-0#vG%<_Ua6)WA|uJU@;GYX%dC(O`I%lcg#UiVG3|aybWUpPKGGH^ z07j>@{(o z8_hKPW(sm`Fa@1K$fKZG+t8k%Wyo|WnX~1UA}K-CO9B|g zj%yYcuOpFB77UtkqL;UX?*DOkGLacXe>Y*iEvSdg;1>-)4vNSy%%W{c+S*>mw!Q`L zwdIO~Slq-gRS>3U9gP#GtAu|}>~Y51qAm{uQ#IzZ&vNVkB~tHO@uDh*qi3>T?>I;{ z1?n}4GUY46*O@5d*!Z7@lAl&BIl^u^20Uxn4Cmdq=x?H4ACj!_Y7gaJMt|VXV>zDq z076=cH9zG=(mrH@McSOIH&%`aMFVAged{w!=f!+$ingDr0Z}&jCKMhoG^Lk) z)5zwJsi1gs#X^u9)E^yssRXt}L8SoHAe!vQU)Ni5y#ZpqQ{c8UY2w>?j~n{OP?1ku zuGP@K9MJp@y1nlOxAA`i_M=wa-<1<(-)nr~MCPnTX@HPNKXn@M08QWlyg7tCjIexz zs8m3>uK$D_(5lbZf5E*MQ&K5fgxUOtN{cnSZ}f=I6MobaKD^oen+SH`XI~Ozo(RT; zl(D&Neeta+U#H4}-X6V%ee?INv9bVL5rBZBRmEc1<=`mh=7@hZ>tDh#`udk5zdajc zUxAKVfxh3HWCwujwV06W{>YBg8VM6C>m)jdjbk^ofBHXZO#ECD)NL{7Gq&BYJMA@7 ztg!>J(yoy(hAnRDTs9Bbz0!rem#;Gp;ER{IA@4d!gSA>F)eObz$ z;DoEcI@9QiVAX#lAqt1^tR3QRxX!>@cTr$)!qw=-*uS>1`M=v3+GYPXEsn2kzv+vV z!{J*mS=Y9IL3fk(2jcoA+dO|#;gLyZf;IxmYrpopFbBz`+PM&%iZ!9jfKhnPZ@*Xq z3ES#9L@{1Dw41JJ8-8G$J3u-1xp0)F>I5ITMax46ej9&RHF4eYbr@XDAxJnOTY*C& zQDV8T9421HJ4VWJa-mROBgy-$zbZf_*Y|TIO8m-?ca_ORS#a5P=Ezpgw2gi5lz`3o z?oAQwPeAVZ_lll26#aVNNJHJDCQE3E&R_kKIcNT95|vZ30_V%pXk z(Y#up8G%Q#{WuU=_m3o(BL;-XqC-p1-s{FKFDX=yrNH*;oVq{L{U{K|4|)DWk*0f^ z9FFE{F>w&e;9@{^y!Naw+8oZh&eU(XML!h%ZQFn7b366H6RH_=PqpBe{Z9YADyeZ5 zE_t3Y=sW$MZ)Z)o+;aUuTX8uP2|JO*R};QJ)k;{~n(kG2%29~c@N-^1i&4gR^E}A2 zu7AAq28jJ0O>1n7vK7qdw(#Kdb4af-qMW@&bA|fdxZ1v@@5^}0RnyW4HHOP_fI6O1 z$~Ax1xNa$2bg=)|dN(&Gkj6V!<0lyV{0ypmh9{!jz^J-}>|_PQ2o!S;ek zfW~qMk})Jg_vW}!%t!R@c5Co^$+a#yvWao-OsmMLOL~G1uWa|JqR%I}j%|4g=jfG*ObKY(Z@GVs zb#nDzPV~o}af~by=}%ffc{>SO*`zMh)9EXhS>QB-&bSE4D^c}G_eeGFMO;_7@2fJgiNcLn8@1J|xK0VAoCJSyQ%qs}EfGpRUtMc`|bkzLa;Yxqo`z0u?y_;wm^_*SRU47&zt{|eIS#9epoz=UdPq{l{ErY-q%D&ePUN)A&r>AD z{+k+symM3h^@%!tMGxmi2mI zA0#}nZ%k&M0C3Z>RIO_6?mc0CZY7wMmNrMg$PV}7HqRrM9Jg;0qeP@!6*to&>Lk7e zR7t{MZHuZn%J47Bu^nl=;>>xf_#gm2int!(sr$MykHn_l@JBS_>Gpq|QlC4si@6v{ zf5eapS=A$6YpCkig3|BL3?h2@j^_lk&}DpO0I;iV#}BZ-21^SeMBihU+8=cM4!XEC zLsi+!Gke*da(?-W;<$c3W8d$n?SZ}y&8F%S?3!S^lqCe6rxD`QR{SL&46lN{yOXTQxfKpsmGQ|3d zJWpq#Vfxd#DOFE{)#KqDU@`6Ih&U8M5~ejuN8wBQm!Clc8h@=VHG0X4Ul8I9pwui8 zK0DqOukY?1q5t-y*VfM8B8Q%eQ%jre3<3MhYE!~irz_Ze4!x&UkfBpM$H&~f zbBns238h}{UWF3>Ya5p!4rT=;Qy}0)(EeF?uLM=HV~k0IOE#S7C0mG#EjI>*N{xS1 z$!;ej>)nrZP=D_IA#&!>LI;rW3K^pTaVEZY3Fbrd?Ad7TW`XqLZzD|YuikzegSe5&iz9{Dj#rJqTcxG`H8*gl^YidX9hJBh0RptwWEz>DaJQ`y{&MW)Dt`W z__VyD=)UGfZ~U!Ua=4U|+G0ShN^(KeJn1mDGJj^^q8UnuEqA$HFIsgiwCb?K(hgb# zlHHYK{FRCE1l&7CzrNcyIAeJL654!S|- zFm06u@TyOjzik@9iCBeP2in*-QjM@CF*Ov?)uux@PHt1*(JXUs9`gE=hwKQps~3|h z(vCYJ%-BvoCYAUe&%S|_whe7xo1ebylz*1MU{G*^+e5RB`mEJhb=eXN9WCXO@ifl7 zsMfyXPW#cGQ4^2jFufvYrBqH=YMR#@baTeM#dQ%Mj=v)3iUYavt$g}!^tWDv9tZWu6%z!x}OC0UCEp)0gS^d2?2w{6n~j9 zjg1s?Eg{OzXLW3Uh>>Kr3yq)pP&RecUw0noH75yCb$r}LCXstnl#1kOuaINj@`VRQ z9w`?NUu2B6y@YQB*cV(#T73?=3GrD{VLo`rzUo{9;Wub}`HsX>H2OT(<$CYX{Z3L#Uqan#_J|?qaVH#^{Q)fC-{sGJhI*uegp^ zRFMJro~D%aAa!8R;T*K%N>`zc4gO| zapbnO`pRbX%yD|1uco12q+d_#9`F78zh;lRgwp7sH*J_3(%Qcx3oDUO4rBjv|7F|p z5-qQqb$%;76E6P7pzo1K_kT}jc7GZrpR;{mk#np;0HIkpioI96`qe;`{@G{j=}AQ8 z&)K7@=BQK2r{?1m&O5Dv!>WBS(u1vPSnA7v(`+x4AU(Z{T>`1c4 zrQ#?j1{h-$Hq^76dFiM?ASJu{`Ebj7C)OxwDF|luVFdsivM*N2fJ;`>J34D?At?|X_!9}9lpW8F0vBbFNA(5BSNR-SQULV=yljXBhuFAmT{%rKI z5HI!FPCAW1&+aU}e}5Iq*h{qjXbQi4DewJq-}57t4JM4P-JYTQom;Mfl*7)#V}Jn{ z-WZPubjLI8iR;@XzjqX%?h~KHQE{r}P{(A!#bAA@kyHlg;Y^{5eFe+*qOJ`H=Ot&L zjnQ-y0e}E;MK_Z*dtEXyWc)FnP`n^GqRlg@w1s&LjJrJ3*il?~*kzY7>gbCCl&=jRaNQ z9G-kRlXY^MqZvv*`nuj2et*N2h>b6M4te>q{SdW#Rn{wpNo}3kqCvR+_NC6;vP86h z0g|jO9`)rbWt?tcnxgkD5wBfl)szBn91O@kRJ zg~$+SO{*@ZO5^Y)P>L<~kA4;sZD3S@JpA<@_oL)cTtm-`44XlawG*p~GX$1*daf0A zwn)qa-&}CEzMv9~7xa5!Xo+L$rxabvdA*OLz2fbKLrBh;&RL(`a|%3&*5e5mWf1y1 zz7Y_o8h>jEE-a3*lvklf`daefXZ zT)`2$(iNOLvf}mCbuez4M&#Z>@FkCIrs~}0I)Wv8HqIzfC!xKVt>Nix?WGp#C)RevxtwdE%JDD6w~MAAcPI(@&J215P|5F0PKrz~Cky^ha4k zqeb+3lvk`*;5s&%5>L89M0?xVTk}L5bHEbYao$eV6zBd1BDqMeE_M=KQl-rNAZ_eA z*EaUKCEH40CB3>b98lA8;;H2vX|ol^{FN1m+$`rSle^igMngb)aJ$k8a>)|6b8)PbmFakD8{KwMO`d#Gbiq%%~5lD$MQ)SYCl*v zgcRN;osg=8#l;=YlqxdzgF5Q!$A6NLO1${mT3fc(@3&^+{9dz@2q6d#@KrKH1IiL#~nk ziw9Zff{yS1NP^A)jM{b-<7{JX_A>S*clp9Vp4a$H_BZwn?HZp^d$;m~alTQ7}Cuc`==ayD>U`uf_k21jFs zS^F9y?v(_*>HwZ`dF|Ts6-$?Jm#GxwM5pt6&8@Eay@^%J~oqTqlzg>(ywFo9QTL8(gLU@{(+alw!w zvhySoV&29Kjda&Dm&hV=rtSyJ<-l5=15t1od20q6jV;;YXTVZ$YA4`1BTR9SMJfZw zyS705Rvq-G_5emexxbODu}(kO=CnZ6V#i*2gDi0^sqbqHC32!rZPpC#L4SYVB%do6 z92^UM%MRRLzj)3WI#Ftg=xl2}lreg5l3?>LeSO0DKc7&SS4k*Sfwt7xOHY@~?$E=! zYN)sxW%UCn{YQK6%aQvsd_oZqQUhg>wYxXVR4X`?=>PUh;j|rLx3v8QRT-B4tUU~Y z?5)s}(^*wL3sPUQ4oJ;7eT;vl6F>)valOF^$s0TNF(cs8gk0SdT;H|$ijyZ<{FrU6 zjz+<$hUotyAkMx{438pN7o~#Mc%Aa^sb`Q4M<#29J_m{-j?4V~UBDy1Jw|${S9<4k zTczR!ndubQ{}(=m2rG(F3SHj6h`RMrEk!7uG3u~Bk{_-C1WO@XYrcP?S)%;8NWsgk z3n`%5N5nWjT3OZ-vew@UYH%$SA z%wfh1%lid8A(j2TWM6+k8blK&;B=of`v#lj7b$*cNk*v@^i7x`-qX5JzFcvz`7CZ( z-vCcR4tq@kC0QSl&h4L}fh=>yoYcYn9mlVy$LKp#WX?k1Ft;QkrIiMe0XN<4B&**+ zv=A5`cK(p}l5~!32=)n{P!NKi&|L1!z82>e5ZH;ztDU>qEM!%pF-ntERF8|B`kL#tcN|L*OM6^?tI+pm`j}-Tz zIkHnt0hQRD*RMjAn>(L!=zvK$ipf-~ppFrq%m6X3tJLQILIYD8@SVOUQxd!Xe(^=X z1U|V;!gkmE(BO&Ko093g=zogzrGWpF&*bYvdWz0bIl3iS1I7}_|4z7BwatY%uyv+e zg|oT9-OE^7UU69~aoGr9W^S6P1m@CR&z0+dWe{~kA;#3h{ePQG#`m|-Iw8zz0Hd|%rGLE@t}e7iY1~VJ zIzQE*k1*6R?Q0c2YZV@kc_GtED^Q-)#J)LvlMZ;hTJdQ%?;@t$7EA4CiHqfB8BIxR z+5yg_y2thY?BcZ#fJ0oCT(c0@N5Z{dAn}YLxlBLyoJJTfQiji<9rvSo#9!^T%w2En z&&G1t<;QxxcvUeq`+tuez{r0VT6V=6895XEo35ftr1BopRBJ7B(&cSs$mNxQ5A%JTSU$mXM6?&rG_+ z;TQ{2>ZE#{-z#oEiRdl82ktU~<7m{rGLnCErsUO2K4t`LxRu| zyx$bS-|e+yxz$nB|FY%O(BA8r?DS?s|0>*kte+To@{=n{hxD?Eh4s>w@OkH}=7)ZP z3-vy){d;3tZp`?86XBuK(f7{#EoM41u>uQB(blr(f*>)Wsf=IU_5QcdBj!+_Sm!JV z(5r-`oZrB0Q?Z|WeWn!#aVGR@ zPjgMhvk0Hs@=?>rXcj%)`D6czss#obUzucx_<7Ep9)H)80Z=aW&%0zNx{f>C%gU`{ zm#Fj1il;5F_3#O2W*!5aeM$4@`bUX0WxLs?^y+pdAGp{o_peZ41uD9R7&yMOJ&rps z*AZq#zhc_DjpArM3(~{BNoRJ5GkFvG*1zL>n4PcO()uy?SSnYWaO-J*%&gDj8EQiIxDRgLX%9_tyH?-!X7xfT!hq z-~q6O7l1FN6zk8to%2T*O};T(gsCH54AD`EkwZ7g@(t*=hwh#Uwy}eRF=oJo68(#| z%umq^N^6e|@xc@K%=&%2l zhmqnLq~`gFe9MR=$%~m#nh%MnTOvDo_Za=u;d1?6r;n-Y7w6-ho=ZBoO{N zOMhl_p0rCMc@4f~PwoyQDwYaAq`1?(v5)P~mcVpc7aV+2cF<&i9HN=4O?8s?OwsCx zcPu4_8&7tLxPccn-fQmRwc(QDDD~%^7uS1nWG67;j}2rgu`ln@q{H18-mf|(hwh)l z-RX?L1#sTB{)8V*6@Jd#vX#@BjY6@l_J4Ug@dt0^e}2h>OWM4d1V*prG{x5=_lX$a zQ|?~!C-=x-_qXzKv;VW6^$mN{-kwcT&x-C|@WA$rR!ear8-!#jnQ>2}cTe~4_%)nS zM#y)>K-uo1!VW-YqyDcG6CVwV>p>*FzGf~|#O)eW4${;!Z%``VJ699pz9uiLj(@qZ zfLD^>g}FWF?$%FE-x(Q96#dmW9pj7mTJ3gq)gmeUCKU@Q%VFbi-qw3Bltr@WUmW|}xN(vlkBMijU}CY8GFvT5^C3n{o&DO+ z;t3^eVa`rO@KgBgRrm}==^S5(!G9OXu&#b^JX4Z3b39&Xi81p70e(+5XIvS-P+}>I zo1KqwpyXYX6esb1JkmMWY+?PkR6<}v4-CU0WPG)+f62T$ULBhQX{v!8> zhgv9{6M#48)OIAtGf0q=#ecZ59_%)p{T0OYb4Zv$-y)85VjOo9Ta;9=J%}=?IsK=t zArsOrzh-~Xmg(uiA8R-e-#RbC43%wG`^t;l483hW4s3IYyU7no)h?FqZzB2}Vc@sa z5a4Tx0$1kXQILW&vKo)bI^WjWS>jl)fH>@~FH6c_gije*xFu&4w|}A{r)17$w&K)+ z2Wc9(-?K!9-z5aL=USS>f30MsVYS-;R}_;q(^sn>jn=6uoekFsxG(TaCN{6#_DaUu zulYuNW>TU<_+9c~1>+yPsDY?7Luk17E z;v=1%d9SJjY)=Xlx3z69I(;ejx?FrEZ=RzQ{X7q~x1)u*g^g)GK87QvFqwR8$Ti)+ z{>|x{?eJZ#=-?F$Vy=4ZKfxe?*i6-8XQl|sdE6ve@ItiuWq%>;c~d6=MUNG14e?<> zKG;MA7R*`q+gS^r)BTnZkM*(lEcu~>&D-{u#8DWylMHygBvj?|MbCKh zrvFn*j}A}Su7CeE^`E{-s%Ke`NNAL@SK7w4Y*FO%liEy;1eG-z^6K8Uw{x2rkCCjK+ zf7tZzfP9cdd(t?+jAp(2=}&0k3}1mC+Vs>V?9`!YaD*w#7@`XVdv`GR_1 z8v${)y2&K|MY0L8SU!q);pVi+nFB0qHNAq=QtrN=uUAy+Slu@VCr+HTiW_6p z;;@mu7qRUtK{nvs`FlHQ(VfkOBd^cGvp6pSpe%c7Dp)eMIjJ6J``S?UVMEyi(rLuz zOYWZ(0%O1A2FGF+UIMw*>gd}K`7d!dc~y@=#D7svl*p7o_UR@^YQ0}6k}bIRDbhiu zrQu_TelF)o|Ne5iv!HRpO+<)g5V(Xtsq%&O-78|7rRj)`@>{5wxA%3g;IvJFBpiF? z82uyofKf7hTCQ8m3}h`Zk(K0pbskr)_Ica@9$5`M180RHBTuXbEix49JeK%SBOm(G z>3=zz(BBR3(d^Fm!XVqtClj zp{K@qu%y0vHlgNfTMbD6j(^FTZXR2y!S#__c-2x!&+{JpP>XnCnHsP2_+m==rhoD0 z$koxmCG<5;nASpw1#NJ64jM*BjO=v&TO=ae_9l5x$Ch>cJBA8~T%5e8H$lPwh@}pA z4mkX))&X&nelvW`_4rEVUB?S5urIWcm+Axng-XCD0los z)b;Y+ucF{SmwWbfSXRH129m8Sb|0u^r zI@14=zfITvaj0)eJ>>`4OSizA!)4vyj)=>iQ1D|6m8TG+nw=2oZ!#Cb)11teR;n_ofGJ!av(-6E&_Pdg`>dHO%>dnvB#+25+ zJ?VZEvP_kVjrPn9q2Cm{LfRZ8@(av-B=1i*#x}RM5z<+5B*yu2tDOJx2+~6=!8w#| zdsgLBEA-9aCH3@risoe)Vt?wy^p6x~HB>kHduxrtHOa(6O(~pUSwD|#yg_J1$(*K{%W_0{k( z4)tZZexhi(C?zMV^)n&8iDutq;>6EIhg$x%h+LT5*6m%N+lbm&GV|k-vXfOF8C$gt znC>&WFfwvFK4_Th>uP<6_tDOKK@F@c_^th+oYV0?tA9R4A>H@K*=zF> z1NuJuem3O?XI)>I&3{en@W}55F?BEk9$P_iNv@rG!AGC)hkkz$WIkR@CBvS9f;AN~ ztKiOwi9d_Fka{mK1tN{M%Nr%pzCW6CX}ozANK}SFAxcdxCOzZsB%=6p^RTSE0lxjK zZ1r>m#E4oY=PTOpy%N~^GeC&j5ahf7g|{r6?hYNWzU5ed7Jm^ih9$2_ut>TGm`w_F zq9_eSMaxu@Xvr{#05mRv>3w>KFWcA84OIr@cAN7jd$lM;gX9y*@4AZ9W$r#DY3h1D zojlU-5DwKAN)F?|wX95vBH#0l-{f zaoU$7Wk;*|oPTG0MO<2gVQOzgTECibI2W_uF5!F&P>f-YjY+|7(6YpVmo3x4*ksC3 z^365<%R%gUvkZ}({~eyz<$e`#*82jqRRHoKIijzbF)%-DGe7lT|Fg$v`jTWZT>(XH zQ_Zgrtj80aeySA2(0-x$iP5-7+lM429OLWrC2T6W=o?OAT3In|cyiYZH>sKy|B_pK z^{t&sX?ntCx0ill0~~)|57Sra)2rL<>tz+$jWoYf3154C5)Mqk%;dAnO>ikwJ;`w| zlb1JeYs$-iw$otHa@rdL4Tw}41X9;U<2Q%Ao27NI8KUq7753r{**?^Z*s zElo#2l}i9u^)Ov&vQJzDxo=d`oJH>c?yH>Wz=&-~b$ggA5`TXe(d8;EhpbBRGConm z_44wK-In;!>)Z7%mrsLvzY3#IRihb7;KUlPm$~X6c^?J7X1*fsBV2@3hyEI+Tnnd; zpw)Ft@zeh=$b}Za(;dC;lpgYZ?ZU9{KhI#S6zdRaIfvS&csF;rVjw&I>9qHyI>^i| zR@i`)@P5-(Z*PB4OZ1g(l(3;1*ydwstg1BZY@ePfeZDGi>kLpxOJ#d`;&$65y`P=A zWH$Y+e$wq*@6Y)*Ds0{v%q+4g=Je3 zO{h=EsHWo%4L-kFWj@(`wBnPM_Xa@jIXmiOaJEYT4(@+9C-^8FNJI9w!{rm+58-Xf zahf&(mcFyh)u!!B;aL$cXW{-RW+~ySu>aD=>`Mx~@6m?FGPhK}`)w}P1Q|ioX625` zAd8>0YG)LRb$Zv*)K6ZyerdulM(`GFrBjVFkN?nr%Bi?sIgxHQOSeEU-@A9u-rqgv zBLn%flGVt*YZ`yr3Z<ibm^a z_BrExuZ9haOsTM8_k5*gzA|Ra)9w2NXGVVvNjOHEnC2iaYZaZuF~(E9>vw%hpHqt+ z7kHT4+pDD;_QfN%FBmf*X}v^`%bjyj5sS(3xm(bE&+$O_z2sLSCbNQ=V2N;VbA$qj zl_g985z$8=ko|PaORzk_TT+PsmY?LUDXFa9@F|eUqIx#F^Km4laj$z%cy8J(dli3d z{S&3LN0Tc#VFXNT(mL15^Sb?;@}5#MOIfMF=NR>!w44N=$6D9;?-+z#z#8TkXBsq9 z!S&cdK;!2-<|({9sysXBdhW03jT-;&{1z>q9C#4llT`BnZ5>}+ZaR`ayInVGY7g(l zSf42Ld;%RVfez<66dFd@YtCj&yaj)~+zrBVmeg>nFa`wKz&}@b+WVd-`D{6U69e2? z2Q6p4rEv787NBmxDvY^E&a%!dZ<2=YK9Ebg#!u{oGxDb1Ml4PdNuz{eZNj(TG~R%c zNne&LKl1tkR&RtmztOd8NNJ6>+$&S#&8e8SN8ok!$wlmWEe@sJ`Vj4U85(~Q!x+_f z2BD_-nRB3*g?kD&B$70mUCLOs5!gyd6O!_FATZSC5uzs5(#(qB@q|37z#|XjN`=(c zR>s0hYU)`|GnS8sbPrwt1u@Qhy+B)N&vO90*y%BKfKJSndG*immnU;)I{7lO5J3NV zVTbrtUASIP?Q0;;H!MSdyBvQV9q#+SC01Kg0>$IA!s(MAKTXUXnP^ze z{UEW z1z-@)#Z?hqZ> zOM@x=EFNnu9>X2#e|EA+mVTu&SX(p}1Oii}A|gcS2mJ1aUe}Wa<7pqv(TajR8!It8 z-1Hnc1GwOlOtaGtlW%`so?as9u(WP;Wz0L<_pg~aYVxuSknn9P)QUTT#;E^Yu`^q+ zb1W@(%%cPL+y3=md8G0~+w(7z$Ay~Y=M-zUSESig@03y`^cdEMZTpJ$_e?FI2P1n$wM&gyuc>W+RSS$0QgIC{N5j*E$wBIER-3-*O%| zecHBT!4Rjh&(D9+x&OnzZ64*Yrte$eds@E*CfdMv#e($0ce+<1*`f|TGPPeLhYX;k z+J8sTZ*%dmaM)Wll;(|zj)+@>M4Ds#5`L{3egC-xx2bN^a}YJ< zNPaAVrsbM_Ym&NsWs0@Glt?nOG2eib4vfq8yy zp6rA{&wRnDjyRuXVl`Ol3KGW(VOU?z3cqB~(2cca9vSSsIZCH7>ZeUam@YcTF+)H| zMuASh&J$Z$1GNnoeKT)id(OXp@xOKZNvMoSVBIq1D~oaC`=@Ed=siMtT*4O7GtIjH z610S|c@cjHv}#h;y)}8Vw_4N!!D9r8)H>)#aTk=PcG4#i#b;QKX;iY{NN4Tlr7lO~ zh3~O>7h|H>@09Gm92r2l+U%EwYbQ~g8G7!5n5bX*pVVbe8Z!JI)ld^xmTI*w(41FkH`fKdVud@nO+)XsM zS`VoPBOzxkaw}Q9C-~}s0^aYugq}Z`{LX(Rr7+`O3SW2V3JH8hPt<)C6ij_&js?5^ zhPc^f+xIprsA~#@QgqLCzt&78j9piy;n1Ff=4qQxA!I+_c>O=V@e+-I+_lQMaY_sC zk%@nu{L&ZpHev{w^)FxftB#55cd?RORrk$eRsyPulL>jGG39Tk?_tIw|53vBYXqlY z&sTnb!XxRpid-$L1TSPI>Q~b3NMd~ZbH3UcMYi0k*Al#jaWVdg!Rxhh>Rho4R{ARX z1Gi1zBmWXGx6m~8dZqt|H_3K8|MR5-!@GZ+7b3ae?hMj%)=FG!DAJ#QTAei%`O{4A zg)%rjxa2peupf-%P&A|aDFzrnB%O>O!cVE;glE|BGYtLP7t3?+`~P=x$7c6uR(D)3 zewl+dc}WD$(l;a8;e;oqyL!3$+8Mk!fmna5PKA*t1XWx6EC^XkQ&dWtK?dT|&7yyj z2(*6Ls+CY}8&UlI6uSiW&b#wjAtp%Mh5k?ha3UgPaHe~V2|2&p;9?sbmoXj0NO#+r z+=YS)nG{CD6?SXh143vE`k9H#=b8>#Nre2S9|kKd704L0qN4U3ImoW`7d&L}Qe?sr z*S`q_9{*(sX~Egfsdu3+3Fh2hEn0sztJrnM=kpIWTZL|sxR&S6EDj+1m@5~bcniYi zim@~c8FN`A5fRRN!VS<)SpoC@vckBWg^&(dY>p_{8kw!=Lv@5<7U|E=loAk;)nR5y zZpHG&6zbcB?7L+fQK8Y;)G0m@rhJ&nu+21Q)qTUlUsUEScJus3VQh7yzZHM(W(?%v zt!?`!^qE8!Co>n@f{*ZU$@2ZuVfEkr_gz`d7_$+y%0P2R2(#^<2G;v$yU<@$IkJU5 z&vqQ-`$$IR@z|#bG@&5wg;pKG6VT$G_5Kl1UXi>`=iBB7%pXR>rgGqf`W-PyRu_aG zm^kcW2>81LW=;lRp*bG_fB%1kSAD{-RS^g;XgX$#vvz{Cu0fdkHqjDovHSF!dD#&n z@W;_NQLfJ44M~Q(1e^FK`*b%Xod-7>o?VgOn4&c1Rn$0d)00R|W>v4=P(nEM^?#pC zpiZb>ZUS3Q-DZ`g44oswCy(CV6uEwvr)lhbg!{sbk`8Ze`aWC#Thl>5ty%r`zcGq<#%qvcJPy8yE!Xj4Gnsf3H?xL~KO>FZ z6(N<>&N6`Z)%uVya3!;%|4XP7{a41emFV*(3R5iZgRyoAd}iUYTo6^~ye&pKxM2~a z)6{W&k>)SaG{1)p2i1T57(OAzC`=#KZLonzAo_Tzu}S)8FFdd?h2Dm%{#15lzxpmq zj=HHHlx6@_zu~dKvKhuH|)F2 zyN&gotCs534KS*%Bs52HenU;UFQWo4qzCP!cwazU= zn89YfVM$G?S!*`2bDEe}Vs^At`eUP<<@NK0Oe1=h*#bC?!)@wbj9*ic#TNVkAIb4j*K>%@#bvDFFL9GJCORNwLSN?-rk zO(_5{`?2-geR6-c1DjXOi8}^a#%4rh+mGe#oS-W8W9g5)Lf=J_3AV>}ADjDneg$~0 zt(SlT195+&k~wwxy|wWE{2VCr*v7K%ajU@Sz^IuG4dT7^eMO|fbIe%r9Nrgt{duA1 zL|yS}>}tC-8M$nciFR*zv*rC|o{xcI4$*Jb%P~a=%UOSVWE*X1wD;8!GO7HFlxk)( z4pa7Lv7Yuvtu2JUHz=ncVu82^-?;wKo~dsY$+GCkV4THP8*Tc$nom^f_>1>yTPtJx z&&t@BrZsbEmbJ66s9e>%%%~vqmt$*;AVfcR(oQWr{Hz;H^WWr57HI+&vUez zey(`Qr5C83w8I2GB@>Z2(77OvA~JxjCIiU}{`v)>)Y>qU$7M3*O}5<40Xr}xC_$CN zHfv7}Gy3kv^ENW_lQHse{)`>R z-AaGsJ1_(tzjXS{3`iTz#W{3Sx=N0)VVg~X`;rfJjg_EesesXJR(s6ff+6SgJz<0sGY`t? zwXn{cMp&di7)j*0j`d4&e5w461H9d`-@i&AgqDT&UCo{$`1j?RmYYhf&bkX}6Ff6L zl*#?hMbQ_}0|xrN++3IY_DXxOv=NzaqZiJ4;i*$tunFc&e8y8^e*aZ7?asN!ke5Jm z0~~+RV1eeX^E7HZuTuH81`^w%gq(U!VrCNa=1q(BieFhGjTqlk27Kl4D_*(Jl;A5A z<(*N^*vIIUDuAtqCf(68()?|^zH*igu0J`;kY++=rl@w?T+5-r8LfUZ^0S&@&KrC2 z>fVxR57>D4!YT!B#g>Ee8oG%apN*K_UaWtgpDL@{x7 z@Wao5w^6p|T?U`lL5(5veAy<}t~Lzn!sJzWtQbrplI`YKOpqk>j3K@s#yz-M=YYocC|Cgw*D4fVa2~*cBte*n!qS-{cKAF z$a}Tfg3m<8Sz5Z}kri{ZPl?ssKXnd++8@fw$dZQ%-FJH9BNYDJnkjrBu|$6<7TaDV zq8e)~PYnIRReKyGcTQ?RaNsyFDA}Pb5{4D-$s5aeUmqiEMegDkP3X#B=k?& zj(`YS%}APFB3Jq~mA8fFQlB7s1jkpcv&=siRK=uU>_*B`D$?Lt`H9AFbYCmftNhsO zOzzQp>Rrq;_F>> zWYbLRezPj$k;YvW7o~r#9l@0-ChCPDrdcswag$v~Q&Y#Yt$xSUXd4LLET=q%f20N_ zQQtS#uZ?j1KNj(R?DqOeMl0tA$Ii;N=3C=4=_Vy~CBb0V^4w~Ci9dfZim@O&<^(!k zsj-t5f59&FRovRu7+4fBMz(An>BoN#l|XfWMv$X$xUVuWf9qWFb4GxZRzxp&Oo-wd zTq4pqK)D^+AMweqJ{hmLQ-CEb$L(Be<%zRFJ1Qa9Hdd=SZ34*t`D9dQM*XAe2*a1~ zFc05(#mp9C-I||*_tbyC3vPB8XbHZ)-n7&+Sd*Xk+VY)@S(uF4{gdb0PtveHhn3}D zEV33-n!hu%)VXfWT({=C`c4YGkO&BuyK4#i;9!_MlZ!HPPj=^-fZ_RkB8&62+waz8 zD@?Y=WN#^{mIYHk!g|yTA=@KstJWjK%DZ!&S6y+~Xe1y_^x%J!d0^cd!;Zch%GyQh zJ4?rWn5bXrlRQ^E|9iz%z{mvsy)0FZ8rrhD^de<7c!(a9`>B6vp-C?eo6PcOa}|9k zIW|K27Rsr*?1-Ui$EH z6LuYew?6|Xvw?qlc!tfjW#FEwrUm>S>5;SyoO;_D!UOz_*H(YvUxlm9+usD@`D}$|fyXe- ziO#LBFmnMT<}@#_e{rrSBDEjam9YJLn_${;9m3z8hH!K~2K?+=aN-G1x)-t2dLOp} zTsx;~e9w`y^+Kb+lm+T|f!){dhRtd$zvB#?W369O*2I;vBVh(iX?HSy+bf|kJ=V7 zq6r0K2ymL;<0^(~Yo8GZ4M|;ZfP4|lH*gM;imFNXn76M$JB+^6>k7z8m+J6Oo{eUz zZDB+qu3!UKQDL`Qbn%Ccl`L_4toR1YAkO-b@x_1Luv{IpH*)FmDg$@UxmI zbd)AEbmoXXRtu$lFKKe%et*Z~_jl~KcAZ1zQbJDmgt2+b*R)32V!{gu_tmT8(fB;& zEpX}mH?gh1UCG?o6~(nPcq>`b$-K;;n5UQ&#abr0Y=3e5S6y=m`!=>zCDTa zB2_q_g3~Fjg@P|7;=Zpq*A+*atrV1#r-*-drLO3Cj!Q5ZWSTvDSV5UpT*v3N(G&V> z-%pRzZ{Oy~%pG^n0%nM^m99cyo8Sg$M7el`8T!SKJXrA9-?DtS)cak~PGtr`l-rIv zF95|D84w;icd4g{`~qLPUKUieXT)ve18ICEi4R2}-+Bg^%Ir!EA=rsw$E@9QWz~P% zoMGH}KT*i&}SB%50zgqLj*TTe?y&zD}Tb|lg4 z_D)Zxnw|^~kL*yzJ>j~cZp~xXOmTm&^c+^ZS50<^8`MMR=iY1ypW42Uuu|XFfMxqS zur1eKhmb8PV-`pXf}FDZb-X#sLT1ocU`|^;UQ?c$F2r=ML9mtHxHfasjQ)jJTNneZ z70qNab^UwIwXQinLr#B5he}L&ojT>e_IdzcpG1Zk>@aDSVtMY*$K21*8-{Ynn&?QnL1kilcP0kW zzddZJ>@n?jU{5bokHNg#&Bn3zUJz^ zs*p~sB+r+5R-v_4p@GK=Uj_PkWGmcDHram-+)KWDAK~8|(ir`Ou#M}P6`mn#kCFoa z!*Xs5o9ANAP8^;)qbUfj5`~@y2}2KkyI#{&be2-Z#h$C zp~05nUwj;2VH4B&d&M)zACwD+l@g$W@%3uisYp7eTKd zFsC?@2p7yiiY`tgQ~A>jl`h_w>5N`B{rK0!D5@DwX=rzH4W*w)RIrA&iQbZ0I+_P_ zg@0Ts0sOC;IPaE5L^Yt2Sj(LE#f*qYFLc@_Fd}2ceT`a+@eVsF1v$h|1S1oNNljCH0 zP@J8C(=vClt-sFbU5{@3lneygr%r^ykJV{8hHYF3!Frx{v5N7-;_1G7ZXzGI`8T+O z_Kxit=;XFWBE==-c_8ld|0lN-2Azw`K~klum*pdkWYp<$P;CWBc{;&bsR8L zf@!-73esHkRbl^u^Sz1;y<1{qPW0%JXx(8+Xb3rPhMLUt=CwGwk&K}VMY(R8=;KJ<*A#(QDy6{U=+gJZpl#9K z^}D{3(om6H$BT;F-j61$;1qC0Gqv1~@F~bNWbtHFgmK9$Xq#P(WF87ZzrbG+Yn@2E zcl{4el9yV!llXcKZO`bmkF{!$-I-Gk=kC1fX^ zEGOtF>y#cwnh(kCs^{TG;4nWR<*3eKRPt-#MjR1aF!FkoTM;YBFWA67*ILJG8SZoQ zFY$2|Q;$ZspYH5D{epfEG_0m9T^r`(>40SjLlQJqe7#|AobY>-TTWENEsUv@e zQvwoU<%UU41)t}vuRvj8)*BRbs94V}AT7*jLS3(eL4!}G1g5mn&)kl8G~3o%F20|# zMfA)mMNF{N_Jlgo;q{+W&)3s!AhX1Dphfnsx^4auu{*}@$qg2*aE1Y!1W61Hnpb%` z(O`#}%^2n^ynIa++3c>-rXicfMsR=72QFvj=pX=6<*XtkIS4r*R}dHyz1M`_%bVx1 zGoV`WQVj`L5|TW2#vn>?o>3YMhsPtT*O~uldY9aFsW2$3Aj9gSCH6qA{mb(nB+FstWR~<(qVDKo)r^s`M#rj zjD7$pS`fv~!N%n=Z8_Jl7NCE!rC7#GbV7cgwCC}H^y-=fjOBvgirzU~xz!)ulGsSZN1xsAG}J+)SCIuAQ(m8Uj78Xko#)0{$Xi*wi)tNL$#)^h$FmoS{SJ7mXVc`|>x>(7@~JEa9m z{RE^h7X1y+YTrxw8WzUE@c|89F&ufT>(}Q0^5pL2o8NTvt}n?*?4|oqbTIC($PUR? zEbBaert>{brysoktlX192?15V`{}vY6~782t2wZWaDgqW(u85!pFZ@gD^Om?N(FkO zF9(WvAK+FG@VDtHkxPHu8j8Vsuj$ZblXN^36Oh_<=UY>1eawHO?=|NHR%m+FUU%PS z^G&@o2ZBxUD+M|(K5AU;tM~S{pWD0rtNm^>c3$G+3sO)HQ%Jv?aW^{Wl)wY_aRw%jkmr%?3 z_-7|O2!4-@)$q@<%5TA_t0gXn6pw?6i zgq%wx6}`xiB?Cv@)b|@}LhM6-vagY}uR>%bs@~C?epG*5g>cH3NX%!+fZWb{B40*! zb@q9T##goKnW)7nY|c5L#2`1d(#$4%ojp0}XkwB7KmO+ari=9$2~igvD5Y|8Y6DDT zmAFVt$lhADgHM9a1@rNG+wi2rG_0eNj9sOlcB2!FD0bx}nn<3c60DJuiG9))l5t2l z@I2pM!1jOh0*0+AE*VU4shG9KuwchCzdt?S7$Q&zEit}tQ!R7u;~T!6w6gwF@}MnR z+I94F7y~@?Ki4R=wg`iIWy!Vs7N?0)KF*&o^2)yyJ_H+l$L9$APTIQ^>_`#UV0pb- zr|#-|&F#ORa!$5f3$L!MXsGW{Z9IWionDj+@`Qg?3p@M`pwj64Cee_^T-pbK{?1K> z#*uMJN5)??MV4-TWwb!y+Fr22nI76a|FWLV5@>6-0H^$nmNwoK4at^eJ9}+kXZJcN zJ@ESuxg$D2)3LA_m#XVf)g3=T6Vt&lLe;;d)mZ!_*=UN3?&owUX|}KGi?B_waQe zL?Vn>pRc&orljTgv}HV$TNQ-6$&sj%befN5(A$S=M7_^+}qbnz5U$i zBRyyY?-u&^RJ-b&bf=vT297wLnnk38lZ}1$p|C{DaSnlzeGfJCT;iAmt}5>)9TBy` zN<(q_9hCzTcO$BP9>+6sli`xrKlm*%QDF@()$*dzTLG%jq)(OImeMQ(@adJ~JGpYuZGVm_}AX>>|e>)U#-@z#Z*Nlqg;I^UbU)y*F64Yl-9?W%oV@AJ9?usglz z1h+KrFweL=m-TC%*#5gtII5~9JQ&AO(c{|QVh2Lh&4h9n;*&>A{MDAA%g7>$5{!xa2BlC2i{NJDPl&GO}AneqI zxB{*sGzpREg^{f5k7ox))*Ud&1#YNVrxx0>Dur`AL)1mtyHO1oL%nlZ%l9^B!1c2a z;ha3S?Yh&vuLSjYLFU3*#D|K8 zRYHHfK%KrWIR9R-zp?#}un~vQkO3IMditVyWzH}l9E6fV5i`nLjYi#fEI<7J7JY`n zRLZ2gbmW!EjLy!dD|#5*O?&(UuRHR{r~FourT-VDOU6f#7C{D|qRbWzRPr{b7fRz6 zPsY(+fv7UH9b*FSQJG1-yq$k?y$CWV91I=Uc(_f(FoSd$10#AK#{^`4pI%@yB1^fc zFzxPI3RR&-AU$q*z}c-BbqT@VK_cz>&qwU*H4zt$j$Es!^^@mOBWd4*BVv__GK27Y zexoBSBFFF03#dSwN4Z&S>xt#wE8HL8U?Q$fDwSixnWUsQ|CYIPUcP^ifGgshK_2IT z?swS``qRUxyM~?RSaxN8;Zf-K`CTVAQ%2wV$B73ki%ohYq&f}!4UJJ4__QYzn;ws? z?<5D;nRyu^Y2GZu&6Y~257f)!$QUcmLY`Y#@6JCLF>oBFx}N9z^jPZH(8ebmJt2Xu z5!LKBgc`nwB<4~z*=K)BQnm-M^>tLZmMZMOcEi4dIH(k9{jPA8JsXozUud{q{>8@& zM|~w{^}XKwbG`E)&_D!@+je);W@)_MRUoXb+SUF2CYYJ9Sze#knwtOnH)QUceKP6N zjIW8`uwG467Wjh?oNJ07;;~EHUa*6aJJtII$?;>BMX}neulSq$seObAiZ_k!64{M9achW z(r1Fxmyl~zXtRGe_ggTn2xvu=`)(o49P$FDReiUy_ z76YN<+brT?nMYg&SV2E#Ahnfk{Q76?bR-O@FX=%v&lP`?u1|Zh(9Q2=ef{d@a15r5 zeTkkbdNL$}OUI-oM|KXdDd}Wv2gg@O>x`ZMr$n(tX{*bRopU`hF#%HaAk$HzIpwaM zTE+HmTJ&vglq&B$5mM5C5a`!3NSuU8qU%{T{WNh>VA{ZzUenhlTU~P4{=oz{+@k(N z)@YLYXvcq@_B)h9lJeLvq-?hDMra{B$Km}UzKsOWUETM(*IUMK=Nb3b75RtGYN$Ew zqSgLPk9ehV)<%uNmf=MIiu3)fF$t>40KZOCM>|(w(Rl607fN&AVsgKxQKC)WW3KKL zu-?5RgLdvxpqDFcI`%i+8JU#tDKlKovD7<)_U(Va+#>&OIq#~T<43#|=xI(|4o`uy z5>&sZOwpgCYf#pq=Ju(_KBbSj62b%)ANK5;;G3q>xwKUvqF={JFl@uUPJCTV07&+U zdb$2tVPMY;2b~F51TU$mJfdxS(?|81=+eGlLWGMo2!Os8T*=5&kFpsf*Hf9q4jfAv zqf&pvv3`Z_o{ssLhJ9;281|cil+vvDK=f;TEqjvT!m7R2Ocq5*AFtxu35{@XP}r_1 zz|lvKYpvMZgB#WsrIAi|h~NNkHsfJIRy|h?)^*4~xELEC(zY|n3iY*@bfk#_&mvTV z1j_xYxR2xAY0iDBOAeA3p~#bt3A}b(r>lRLL^Q>gp<#=5)u;vZYz;>LeG~Wj_hZt@ z`!-ok&!Ca!K+7Qx_CURjxc$Wk3ldTEn<^=J;!g^}k5{5UE`)-6A~NcVK9f{tWlq2g ziLRY8Oy8f7n%tdMcW1aH@`aw*oY>{Hc=U%Z>x$dY6>Xn$qyk=>DRCaLm?_n;E>(R=292yn06##$ze^Hc;5`~n$eAyqUrup-Z3t zNc&?&uw0z+LMPWjXmBq^-`;hCBgYAU5`Pj-4(`WAs(Am5h;BTyO$1aFGkFWdRA#<;#7TlDZnS#*d(zhQQ*De@_$@0lvRtg9(4`ltrSt&!SGnc*={|W5}?&NpnwwQwFZGhxX@oFBzS{eC@ z6yNA+GnOb1BYD5m`PBF9HEEtt3v&9oHI)rO`EjI4Tm2L+WywTNBKsP~4@#c_I5OY6 zKq4IFf};)})9s7~dB5ra%gO+Mb-D$I<%&A`iCO6{-T7D=dS%uABq9yP3OG}eF8c?q zhT)Wb!Bz$DH&sCn2F(I@UC!_>XFy$t)h-2$oXoS}*%=C~;s<-~I^Nm^h~y zb3QK($-;O+#doBHP`F81_g<6q3xqQIkt1e~((*2Zum0SYyfNdR0Nc8MiGN&|@&qe~ zl0vXt@sUQxj~QDq~Gc@w|dZGn+z%Cbmi~i zhjFl3G2G%7@EBWAfB)EjYmV2KPg`;ghG1Yu6{tDs73ESO=h92iiS|TVWN#B|)(%LX z5A~)mwo4oJdL|p>sb~Bpl~@Z7Bxq$(NL|Vk<6?R52rexuyra*m~8l* zCKb&_0Wr07_;vP4ABdm=Tzez~Ye^6W0bzhLf(Fw)Odr{-{Lt`-chxu8WD`;~WGwn# zaQly@L9{PNqLlG}0ImS%upy--_|mCf0rCmeHyK2am1{Y^<#cOWISFRL%lyTn*8BrQV*A6pzednD^B!2(5 zwPWdpz0$TnE1JGjDL7gJx*OPdpkT&~$C~6GclUX6kt08Uw|1%opp^agux+lK@B{jm z2)*CV>Jpe1u^8^bJidCa$;Gxi@jlUqB!;q+;M>m1J@S)JD48MyTZ|0{0kV~8p-O&K z!~He+t2FB))JF`fb}2J1WZIZ?5)J^ddw7Cl-A~ z0A~f!&eD;8@q4t-l|g{ZJRx3+r)IgnFBNDMIb@*F+g>1{7RKu=TWgcPRaW&`;#8P~ zkH{LH_;0IRH-a$iQSM!J_7yPLY|q`}q@Lo+@tetT5XjTt-SyQB?ZPPUCoa7}z=Aab z>Co7X@u^e$u65{u`~}LJBln_y-k-r4==XXj)EDf3AE0v5rUnrgvt2{Hixb)?Rk|0000IEap ze}-al2DXYHcYFw|ppj1ULkeI6S?2s}SA9Id-qi9NX>|4SRbm*iKIywDVzQz>ogL?bD5T%8EsonC!k93@sfE6MYm?c;Ms zvQ6237JerQYC25jdJ}8=738@DqP4v0^BcCu8}``^G>+qzhO!oFm6SdWM^j)ICwCI` z6&_t%$c~@#dbpJliqCdAT)FgT3nf96?rRc%tQyY>DqaH+Ip4U${i=&iS!t;QY&5b~PUo>_Wv>`mRcM6XvK!rbDjV4Wc~)Txgl=ma z%}>B~JAar73w|4nkgTK!Law|3QgsFw7(;`(u2-;TRqWrwFr?77Iot{k8ly zNhh6RxNp?V*ejR*_Vg$K+xq>?=Ls->hF0|wSgj!%Ft~53vN;}6dREjsJqc3Fr>D27 zfj;u{VBxiKFq~`yA;voO9PPkXE zFN^Q_WAUBk`gnb&{9I?TSd6NFb^jO-5Uo+USFq$$vuk?|u6Da;#Yq zu08lalv?* zQiNj@DOOt|P2*P+K|-#M=lS+8KxzRVw!!hA^P-~y>1a;r=6nl(%zk1wov#viG)ILR zs?_=PZ1hcEGYat6q7kD#$PKE+xl0s4?ty|0b9HaQa4#uQUY7=!==_sKXwkG_oUx$` zP$7#@5|C4S9;p-wMs3AsVE(MT&r+Wx(~+W_YBl@plPVhvu+T+60(rDH{(R<%Fpzi^ zj4O*)TeqLU#IUP>w&)_}pzBftXYh=T6IpnaKZ*)*VQ2ed%xEbc>;9unGQi%=j%1nrgt z)8qSWA>Zpm1PpTmAm$`rR6FBHPN!OD&Gx&;H`D7a_Lt>LdQjcH2#hs<+q^LsP;11no=Xm+u~3QsNx;dO_Tf(SdCoq8PDW7Npx)#e?s-wNqP=@0k!S&Bq-9Edq3d%`vE--8xLN8?~OAvo-vC$ zFjf)-Q=Ki|oP%>OAxWQOB44THZ2-Y~K!WIwe?Mn`^))e_9G&ps;k7Ya*|3~xmahx0 zb-`~KI)gWhvXv$z#($Im-V(jdY|(QV><(rt!sX+n^TPa59Sq;Od|9f>RS;$^*E{m` zx<#tHmfyrPpf#8P@y~NZeLW5MB@c;driS6P-;GVBjpm#w>l85nttmdoidFxv2^zn- z;GhM6bl)buZbLV33mG#ivwr|UrtmT7OR$~^N}B6@vsyTL`-G|U$=Vs zxz(5Ulkg*3^NtOmodSZ7hzZ@9x5XYqLCmXvGQIDg-Ih#qWC$mn=?bV;ys!6#rwl7x zj9OG`+KpHST7uF=_xFlZU2*ul4lY-GMR4_}R%i4^0VtF&9NCk|lbHw|9XS_4LG`>Pb#u78zV|{iv{vyAV)le4uJIGWNIT97OhzG`*jL1d!5>Xh>9Cf9C7;kyDIxAD!;)wNIa8pMD2! ztcD%TjTaexdLOi#*!qWK_7$5(FFR??o$Sy3Ue2-(r2KqW$5Eluy4zGs(wj?Mdi_O; zd3cyZt{gc^-pV^!<%Eg*X9&Jg3viDqA800Kk1V?fu_!l#&!-M{llohFo z#i`XTIpz`ZP64b>Z)UhedY3!XXiqNa0M@c7~dL&GF(3x;WdT3}aLBc+U~o8DFfyXVp=TnhlE$ z&7*wAMBc#Ajnl4w7bG!)fHDbat+y6N8sh*zoGA-ii;%V&qreqy-`Frra-YC&Y2E`C zI2AqNdwM1|s_AXSJ8Wr9oE}gIc2Y5&MWfy=xodxIQxdM_osC6MNfzs?T+}k2ZBLNo z@102_e{?~EutGv37$ZI@-OO2YDpBH7`W-zpg_jjLaIHsw!lPQ|+*@MWYS1z!!b>12 zf7fiTStgQqMm3UXfDqD|9GcrN|i%FA7azS!cA}f>zbP&}!Rk!=S=u9ZR6t%_9NM+)ae3Afc}- z>h3IMcJE1lZXd=apzMshS++0O-90enpKRfuy2r`lB~_#kKc-tlFujk6GRU7$0*PJw zL#hxEDm_RiO^FAvU@CIF6i98X6Ekd_PK1q)1~*H1UuA$F8ga6R+sczRD6ra+EaH16 z+<(L6OVeaDz%iY~(;v(93MiJ$h^*DV+Pik>gTkSJi zxdfHg81~l|oWq_Rtz)nwZ;YW`aC?U_B)0ghIk3k=s~KvVxyHrZKi~23yY5V0M?3 z!21h-EW*n#P^jZ@RweR6G!M z>~x(LwNq1d1vlwsZ1UXh%hhqYiO8>=9~7dYU=9d-T-dzf$~xCmlrFdz$MuZlSUA6b zt`{&phl`LQ*1a64O`~*A1k^@p228&&>!&n*itoY7F3X&~aFX9g767Uey$sLV8JJE~ zx7uWiTk`7zqU65dN~Kh`c^4pw!k@Xk8>Uu!HU>W)_9tRS|0fokUN7mfJP}bfNq8qJpJbvMpmL-K-OxhBKCHTKxnUjX5S_HUrV?C`i$$ppYcS5SW>)_X`8&rgG1`; zk0v^kwg21&ZAdnp`D+e zEl4}U;pBzc`%oz_4zOcMeJPP=rMKj|v;LgU3xqsXAZI_7ArAUqLYNlA{>ocC?Gft&gHa0rzu*z(K0q};5c$nTL zH+PIx4rjLgncLBYO_QAnf)jLQ-~wJdp#JNr+30ARgXo$-CkK8GmMedp>uzT1EM1AcaK4XbyC*TZNGsT%p7^b znE-3>QDLKf-tCHw!Y$!N)Ma8SZlT!;DDzl8KjrmZF(DQ5I`)vyPu6p%BoLwD-}~R#WP#$O3vU>44Ryokn;) zu&Mmjrn@orR}@R?QSh69;dpA6l)B~fp#9k>f`*yTFuRt)9?=EeMQYIknq{i0<#|CL ztRjQYWHP=jIAvUaZ%(oz`-ja7QzfiNUzuUDc*^o}6ejs~nGb@2$r;+7{M-Yk)WWH)YmBaHQS-8M zXr0!lK`-B=l{`4WO_eJTRes!tmpwF+S@kF5Rlor5|P70=pZuQ-bsR0U3pj}4@$#@i- zNAy4TaJ@o*kbPbHYm59r*QBosZuD)8iXmy=<^Z%cN#XJI9jy*OPcK#~;#DlA$(xQ6 zU=h{)igsbol;6@8j|={I|l4k@tjU@>LXKEHsbrbpn$Yh+lBIOA7Ol^I-0@!?Ckw!X6*cu1^4S_qg)xdg$eUq zuP;)z=itEVClVW8oEG)6SZ^a%cxwY1=jVAYs98H*P!3X>L6TS;gGXB6mf!|NIHCV?SMd%`rA#u%G6G|Npj+@j-~`tCH(U|(0N#c@{uDfI{EBb5 z=19v`2Zp(c{FAEqjlHdZ# z@1%<-sl+^_JaXzQ0fqI=JTULO$gXQz(#OajT%3NjaA>rR)%x}zo&+IUdh79A@E8|= zoIawt&;{`>Ky}3C$t+#MGjGn)2|u>)^4dGB-z#ljM*4l)0DGpzdriEFE^o~YB&nE% z(p{#v_PMo@mBF|b`MREe?+l2Av&=Rvj>-KQ*-8Om^?IjeLPpZlQZPGe8>z$w3e5Gq z)$4exUymdjw4;C-d2J(TNw)&tfGvZ6crTbRFFuKoy6Vn@>QBm#;l=c=`{op-Cqf4n zP?lRutzg8ByQ0KJob-z1>N=zRtrQ;c`EH+D=V9H3D5sA{{C2?#lTY-8aNO-R+|f{{ zTf1Qb!F-HQ`9|xe(K3$GFg+syRiuWKFErtmlU|S-fk#zC!h77veLL-hdVwN;JUA;6 z!`fIc5+Nx1o5ygBLxwu<8lukoRir!30P}63Y}&hfZZ9JDC&RL245%*1u&>2-o8#8Y zU4E3Hl-?WRX2jcn7{{NyX<}kDpQ-8M9UOWsnu$s~lE8+42&T4rR;4r$1aZDKPv znVhZqQNM=DoGD{t+&Y6sERO{2$iC~&y!Wkw7rUHED=J}cTW@!;Lq!T8aEh2%l{nZl z4*uhBdTwglC(QWR0{e4+dmuxN9H5ojmr%9W7i|RUUH-N;!C&p=rI0T%H}rnvvx~)3l8_DR@QsnKAQl(kRx~%<|iqA{f#}o?_{XRe(k?vlmP5}KR&)s zI^agWR{KvNwo0^rhJpJjC@?71mi#{ZJzEt5Jq(2tY!!Hrgp34!8B!5Nlov-tMH^H^ zu}}<~ja2l03-x5qnXRXdKn`5I3`0MN*3V&H#pD5I(qI&k;s>tZzCFAwN8(`?cuV`0 zbHOD#q#VJ7!6)~vK&9qq8*MtHSt1n~&Ck-~cibmR4}C0uTDHzH9L;Bo(Vmw1t`HhU z{Smv#p)T65dIvf81%KWUF12HeaD|a$xH4skogp-MOlicp7aQJT+97`of&Op(9NQea zwS%}~`b-n5MVMf;K`-`o=F&amVmu8DTqdtE6rzV7392IEBe+%SJ*m1rwp@Q}jguI1N zT1Vu6fe4REneIloH`~biSp^>S-{^J0WnA#xpcs=5FE$(6_DOlwcWP1vmQYW^fs(XG z_;}qXj|-3)@_hOgLt=2WW>X!lt!j8~W?}a2t)^UcHyzZYSvQkGV`4KJtu@u@6XRQFK7f(i)oL% zUVB#=x>TeV9V)RNfRY(?TGMoz_h%k;{yUE%Nzlv6q;hEUOw9UGn5k#Gl1I7_{Dy*3 z-{UA|1%=8o7b;OM*F?f4Gd0s6M>k4Tp%OV&Hju_dDBcYp;qP|So#iQ?R|^w|BS*q3 ze!RTgy;#X;nGSx7ZkqulL@E}ayPP_f?@w8bOw1~UqqQ7q(uzv~z^5Kyq_HPMoktbW z_x&mNmocvcB!5+Yy~Fi64(r>{$d<&~GPbYzVTISr>%I#gv&nJ6uPr-Smc33{Tl+LA zz%nIc>_{TU>cH9cmgzfFORK1t=T-w;y(Y3*DR(eP13Yq>2}@?{yvxJ-$wqc5=H zbIHI2%RHe-URU)LtRu>VVyKYg^iv!y-!PjZYLP>oNq=>{FL-=k5QqQddArDXuYEMG z&8>S~;IILOB`CYajF@(% z5!Y2W{(oONjz$}${~0VQqW@!G*XNRTTyj>Ui0547QjyLVvW4fBRxZ4b-c5>wEj}kgM&5qb+6kviKErLI-3SGWl^jjFL z9m!GIV^NHJt6c;8fB{8wbW5pzY%VIXW z%Q7!mu!iEa_r-Ur*<|Dl<0}`v{y568`r_~AT&APtYdX3Q2};sutt!ZFxkfj=5hr9ugRV;xDOF!#0J_3eB@)Z?)FLXexm zLB}N%KJK#PH%y=-uqQrBZIVN~4nQ-I+=u1Pt#N#*GGnEROt%~Zd|GKxK!JI;tr-?2KxQWK)?T*f-*YNq>TROZ_;_FnkX?F&_CyGulJ1gmpn#~MaU848-LM! zs-4)VhFxzkT(2m}_t;*}bf-9%Tck6z8$#&=k#8l>0A zG*72={SBk6UOK^mS1H-!1LP0{KfNV(Wb8k7yIJrl=Y-*z=w?iP62_=Q4u4FV6T?De zK!$wOK~7me7d*c&*oy{MGNV=n)G%*t#-SQLJA&`%F7*H5`BUQuwp^3ey9zfmm`#OEe(0RSjIuvG+~yi@N8uStkr4;_owHxy6ZGl&Wdh!k zfTWekBS^ba+mjxy6#4O2+kAKwVd=x{gIoG^e zaE?gDp$u|TAC-XOnY+nE_l%B&9F9gnC+jIz_~5VYD_!7&`A_m#`uCYb8aR7iN_Z=& z$V0wtDY9;DN>DEU6hH}XS;h%^`Rv+PXuT9cOWc1lgN*Dv7{HKsTSYWwXtQri!I6Q5 zu#Btzi3}F;SLwsn@_)$|v$V^PS6G#&Q)7`or!egdk8JiakezWy8@7|^)h*omEn`S; z<>|TH(R7|G?q45L&vbiC$vA}}A408W!S_TX#<~O?V<8fSvIPCaW9Ojjw>_3BXIDdx@0_YE&#q>TD1!l8- zh<79D_yhecR&j8?T0f5ml!q!d1X_leEY*)G1YGU+jH zOM;58ap;uZ!&ITI0z#iCF#>2b?&H4b@_!V1{g<4=07SxHL3>L$+&|1Je)ltouV77e zh_*jt#MdtAU!BHL~^bG@?ll z2-5Mug_SoyWt*qsUddjKcxjl)0J*TEEnBdO7bS~<(?XOFN;I;MJG(qh& zjTmG~a#j=7qHAak>u>aB0$2mJI|=M%Yys7_dw-$mt3iLM+xOPR<#7_Ga7ped#dnBM zrx3H$GX*;C3 z8-F>iKaEgx1Xl}c+tXD0n+RO#LSB=2-|j(MzRQ$ZW8b#@n^{5Ioe51&-c7CP^Pz7( zS3JJ1nB$LmFbUz7>_EXv^n8jSp#3&3sC!ZMhnKe$;#?A|_?{D!lL%Xn!f88!51cJY z6l{;dtf_PRBTjH(g0nwCDM!1;1?M@jhJUC!PF7?Y@n+5sD0hIuHdkkoU}E|Xc|Fn! z=gu-`Ac;?2$ez_J8`) zPPWstsQ2399jyGJ%a|q6e)@JKf)Uu)SfX33?607`RsG~szU8wDJ!%~<)*7H!6pws` zvP5gt)y_yoa8+YAamQ~JO|;x^T~4Hg-2aMjYVvG?F!jg+^n4>qN+GiiN`84B9Y5;N zR;TD*y>}zxgLh&XL8)0LaeHzfT7Oy(=brXyb;q`w&nYZH3+XF-olb;Gx<9$=I-vcV zMBQs7&XS7wwW-BzeZ=znb7ShbF>j@24gm00p}T)_fOO&duXtfU98TDHD>C9P*5vYv zbKggt`&)<{Q3rn}iP;EU!OiH~^;*!#8d;n}=z`W``6Y-{~Mn@{B(p(Xr~Je_uY1&ysxi5+^PQMfi!tX10C=(}#2# zr@|CgY)tE{ZUMwg&TSEEM+2UTAx=>mnzjSV_%;00=U3dmenl)>_ymhLb>RpVlKydJ zStw(BS#{!};kJx(@6TwEdVjoiaaxz7jqCpLunoV5e~~_QHQEe=5v~SWdyvHLoHPTg zFO9vTgPS-eCbV4#)c(^OOvsyC@=gObz@M0$ZQFBX)rC8zE*wk0*{i(dw&e3f`H_4a z06U$p5jTlYxY>F3hXNlIbg6HJnAW#h<@#x`ZJ&tU;pxF!8Eb^-mVc~l!Hhmh24}_q zGoC0=ZQ?{WZ4Gu&AzPFQON>_;bnUb_fguB^JQu9vf)lV#CcHljH+@=X$xbyo0*G2Z z!M@nvEsf6y89};2a6UCBL~EC9ZjwDl5Dpbag5fy8T8`4Af!G z5!i`D7(w!!AK0)(rybM6$VeswRX|!mYuXE2T7~c}S4Qmm+vqi!rmp9sskGok_WXS7 z{$uk|N!1XlH(r>E+>ZphW9e-}kYfnc(s+JSYoY-7x}s?h^?wsfdZfj!xR7^qZGtt$ zlIK;`p^QxDHG(X83Exgd-8O%{6RTf+)Qp?0Zs&gz%bb_`#Gq1Cw#g!u>EG8C0fIyr zu$q${d%$&0?9BpjmOMS1o})|onD51L9T$8rj!ok);j;A%^`QNJxWw@_e|#TDN{t<5 zbbs1!M*_X3rGE^QZ#_f%Asb%CWJa4z%k@+XjVD}v3$@oGfV?5erbAfF)6>&`KfT^0 zg|TJBgXl5lSnh;%{^@(PZxNK+1284es1q})NGGsOFP6t;I5{yCsrIewl)cALh6o#0 z(Vu2R&xgFmhn)O4MyXP=IrNSZ#@XM;E!b}1DFaSa;D05~Ew<7-GKMnvt5zmN1|{lm zi#?QTRAs9uJJv8lWo%iFj%3<-q9>>DWw5F71q1 zQK~rMXMb73F9QZ06RUWzIlsiY1t1QV@wGr|4SX%R;Qot_c}<#dKBD<=&Olb2?C-xJ z041G@=$o<)yJ>%l}FA!0R`RWx0+9 zRMG%?(ditwLv0B!7z8?ABYWkBz`s8iJpZ{M7EcUI@;64ngY+A6I3sF#p`xVq{We#A4TfMUYgpeO}Qr_5+K^0c#!r(|r;=$4T(rz5XB9t52;#qRQq}M=>Ot|aQn=m`6%LLzCY79{^x_=C& zZm;Qq>6n)Yp7ZaphN4|EpA$v0x88LrC1H4V*}i zNh;>(I<-bAV&uw)Ic-b%MA(4A)dt$#q-$@ZxevDUV^!?QHR+AR~f zRJ4ri(jZFuF1>EaC==gqGv9qK*?+!1W&fi|FrY{|ws1Rkg2)w90-@X>9RrV^u$Vcl zuTN;HnB{A*9m&vxR_k@dL7$>?O+ zs^Z7#K&~_;N4SWtOx#<4S4@9-S!Rzkv5qwF3+QdlCB21YiKo|lDEBGjqgrD3i?8`FV^|O! zxe9rsL1Oj))jM&T$8RI;`n%sGakKg;v~Bm5%x(#8CZbln7#}i*+RFl2bHKfT6`u!a zUB?CIMVDyOqej4=!d}FUyMn4y^OS+OAN)Ca((^h3gRkj#!MS3_X5AUzYJT9E2D_AV1bu32^;$#Uph` z!cgel~1`#DI zw6qBy+C$VC&n1s>$$v@JW8RkZ$+ivYBWXEEG$Z>O<88bJSBX(6Nyhi;m@JNKnbo*W z5zA{#INCm;*_u&0mu09RqBceQ);CV1`g6&BT=MHZ>_3}XYt=mY^p9F-I>F9I*BMR% z*R`O|`uvtx?#tJw)a6+g$SLTDu_>IiwEK}MW^O2`-j4_McEE8Gr63~g`eoP0F`g?uvRw8c!$m{zM7mV8t71Ph)?_^XH4zkj?YXm(t(Cirwgb>AZnE0iz+ zIIIsLt_kDb=ICs3U7ibD=N1RwsdKi+DW&8X$v62=2AsCA_MBcNqnz!Fn4LIKgu)W= zv@U?VssK8i^P{KkbyiZiGIn{IALSeuoJ~1fk^iBX+Q+E&b!UR)(yo@2SU#*? z&df%8+n>VgXoE+h4a7~h%WQbQcm4N=)N!MHGaws>5K<%i3?@T4(;cRMPLJdiUQwQA z?n&8GzsZjmp8T5fIZ3==RUVy-HBcvVNJ7L(HGi2c_1;0V}tM6vbSsP^}qYj+FV~3T*n1x`5Fsu0>2Is%b#g@ zfq%H@_1OT5q|**z$vy7W^rwJy0{D0D?&nP+MHaO3Npn9ltFRcGAr9TAnGgNKg;srM zAJ81E>#T>XiMLbYvA>Pc+3LYNnPk|rGm48Rf{kduYu$dm?ceLI5kW0<4(s^|UeCCX zH#dalU;!9jJh9k3$8*6lE;#L7TO9K8xqoU#wEumq9wni0{ia=R%tlS12q>nVPr7JC zVf(B&XGN{)YUP}kXQ$|L3JgLu_*5(MdonN-K>eH=vdc`D1X9-il%cs?pNS?1p1EuM zxoaNq_#(sT6lM4lNFC#flRg|w-p}2)I%AYEzh<^-iEsWih?neSRLEY@=bf?q%zsL= z%b=~5gg8lV8~P~i+~rIJFt}UVNuWE66SyhH^Nh!LHZPJSetXp172BnaVr77s_tD$V zB{h%}$nA*#_k;sY^&4EjR4$^cj>Ngw<5NNJYZ5AbFnYd7&W|h~{cjEH?t@m0!C-&) zUhUbS+lLdY@$%RYPiT++Pgp#+Qh!wLYvQO3ea}&L{oS1Qr8HYbkmyB{hqJYRlx76% z$C}+Qlg;BdLq9tukm1w5zu0rHG9w08CSxG*mcwTr^Ij+^{Pa*+e1|g!sLdXPY4FrP zSuDQk)K0>A{=AjPc)6PqNWecrD{{hUm&M(ne0y1QF0SP7PkG=R^hdCy`F}l%^8O0; zoyGgThcDZ=n=PTBn+fXiI5y=s=8DtN0jG~LAK&?}S<@hvs`A+pDTN=|HKBA()w10H zI)fUK+wZqAX3cWZlwa#MvfQ}BxteyEoY6?5Ny0;gwL2dI9V+8b`Nv#Qv5AVvlFf-O zj}cuhnyZ8JhZ&c0x`q3T^?&v-;^TLIcO_%`>|auws{e9Z8I6H8a3A8H4c=0tXh4m2 zrsYR6o%E;L=5KB&)i>4vI%@=2Va~C|@q7#gm>i_btofpFSnr+oy3%%U+q@7N!LG_3 zZt)m@ku_v9xXUX*^{Bu`+?hC}mmcZLtf9?HO?ZGkGSv-qW$a_-n}39#U@U|5#?nX@ zK$TQpmVQe1xn~^l0}1xZ%e5Wjr#zy0R!$fQT?4eJyS5>WY{%OWTE6d2jZV#%F)JS& zQQ_>kC+=-OH0C4(O)rEE?*HD)_9Oy%E~lT8_0tbjW`;BhJbxqWccep7Vl}EoNNJHBDJoa@TEB8H$yd9tdHj1#uvK!S%sbb= zLkWrxdFF|)mG(}S-+j-@b>38{J(8gLoy688eMKfQksgC+o4Q7j$nop+s4tn8aKd`n z9%QbaY;W_PyGf%?1Z1x&he*zwEj?o(7ltNTO$t(ras7H7Gk=_%4vc$Zq%OAWeP2FZ zj4)+rf!0B}$w5a(y#zCiw7)J!OTa>#TYnBpi9=zU=D3TfO|h2zRjR`jY`dPS1~{kI z>r=L%wdYneTLjQfqO;deTP+s4f?rB!1bl9Avr#0jYW91hSmJn^Y7LOZEotpECD%vo zT(8Giw%&RkVuj&(lbQWY2)<93a( z_4V%&y2c~)-Xk(!;BaUOtjG4>*e2E#sy~sgZHnmX`*$i`*IT7A6qhPda1IELqr1YWSyz8>I1I; z?kZoq;%O4QV#u%J4Si?R0bxF{&_mI8I-pcyuYWBN*c-VV8{-=TQs}2M8`1X>ChYk( z>03s8KugG*R|tvsOe*V>Tv3vQG0n`u!_F+Yw$>zmrLHyy>3fUwLSRnz?AZKTyAMv> z#XnSj@44*ItEkqDo`dSX#LZA$O7GB_Y z_58r)uL&bG#^Aa1e(xB&?YZDFF8I37ntw9Knceva(NJJ4Uvkq_^D&R?)~0yG`Q+5k zTts8#>w-e58`7sTyyiy?KV3>HOIi@q@=#i+UhqLr{x~hm{?@8;W5{5N86sG_VGS%c zSz0F((*Z{n_X_kd(uhB+;^qL>rWg9)5SH-}7fJg#RRXccLEYA5!BPhI*Er-dlz;LY z-~jbF9-X%&YmW!OBX&8&mGSIseTT_Mv{ppVcP0R|WN7fn#`**P&-DvuL=GI|2WeQv%ymVXvw`?<$?rt#9wn?)mr@nuYGY?dg4IH&1~B(m-2ZIVk{V+z-}u(_Zh1iP%mM1-1h1+m$NqtW1dgRBIsEL}$6VJT11;N4?(Umx1cT8flyyt@ZxZs2+w={Xa z89&!tQOZxky4N+}?Jz~lnOH9>DMnjb@(#F8$I(u5}iAU6VYSkjjE&Lm&H_LyQ1y?~LE zo;5;Lw#3`-{#^+zgL`gA%#ka7xO<;I#yHM0)a3VR>ghAV zWTUU!S2Efpng~|8)n`OL;qJe@22bbtsN;HX7ayY$-Co~GZ2?LNm2cl!Pvg2J#EiI} zndEg6A8`rg?bj6pGvCn*`n`WPjQhlh*pB<7$q`wu7$OFkxE*QRJa^^%s-93Z2|R#- zxBk^@Le7zZ!V7Yg+sZ&AOJV^S-6M9rr^PWFOnm8HN_eU5$-z@6$Y>KWu;i7bKHQSB zV#wh5Ku3I=eeLc)`wS`NLFFf-on<+$9~1;QR%X4&_VG;@W3MHv;pcx8{NMV2H4zj0 zI<2ssU&cGuj-uOhh5G!!47Fb; zqpG>`hTxl#+qI>LO09nkwIljMLkqG&S`3Rt;@xjYd#~*GYnim0AweM;YmVx^nvg>& z#L>7KYeu7Mc6WIVL+|-BcdbD!)h`--Q5N?f+Yf$aM>yc!oKWc^juGlulu+T0mG^5c zGufvGyCY-0)Ui?YVJvkj~gqXg--x*VAKVa7P%W(j|PUy>o(a<7w71~bN{ zLdd^jjSZQL4t$GV)cJCInGLV6U4e%g-LM}NVI$HF8v&x)Wk@o)p9Ih$xMuIVcft&u zwy9+n_^@DKVT)%1f=cXE1ZXwZ+%-yFZ}|#x2MhAP;x?{0*-JLnM}lRI%Twx6^CRw> zr5!{3n;haaRmy+Ubv*^-mMABm#e$bR0uY_b^+@pU;y9;|BrtDaZgCvENM3_0$dtbZ zmnE%jU)Y$wBC_}tL)ENk?h`!~ePR2YLN|vpoNd8p*Q*XMqYi&nxQh+Q#8n*pHI(hO z#u$nvMK_f?%4h>k_l(*7E^#H8Ewjy8GJ}g+dq~GdAGd$+Fm~@2SioRM5;GW7`8ysH zOu~z)F(=+4tD#WTz9|#Lmj^Z7=^@AOpGI+Sibiby@U)CEs>ff1`%jxbwS-&6o%ZS40 zE1^TR8lYFrE$l5?x?W(=r#}Y4W?Yg__+BBAvxzDjb7~t`B>2hbk-z&$w`{>YWO?cj z*mhGEGjZ02QQEH58 z;-e>?gu8VBmrK$ZKGR}UmVW1KY1^aTq>lRM*7WshInuorW1RE9T&z$USfmD$7V&tq zV{1yaCr!+yw(<|h*-mVpz6X06=a&oaR6rTAB-^L&#aFWnFV}r^J@`Fx&53d=gPK41 z%CvtgXD%tWM68DIM-C~ed2;{lSdW9_GMZW^EIqoH;{wEHMEzRC%mp=N06=Hv+3W5I z5u#52>z^y0|Ys`+~q>%}TM} zqi1Z&pVHo=nVLl9X2h~kaVIM`_}sAZ4(s-KdPLjl#oCf?5j89D*A)}nY(|U^Eww9= zqM@sEk+p08w5&6H*4|32hFec&npuI7$H~GI5IP(J6P@% zrz6H?SDfBzV27&v?i9CVQ>ZbxGiraNa7uS{OQ3<}QF;DcvVDI@d@n^s11T45l%6&2 zqtcAeb{#;^FoHL204@FJbWI4ce%+ddIN^$6Grof)yC$V|o0$=PHVpHlk)u)1 z1!o13^zz-ktg6GjFlm}B{KRL198?rVWCro}`s85%QQEk^L$JlyNaL)D$?<TWPPBK*p(}rW%q0X>kJCwDwMvO%fs6+Mw@lD_EA@GF&i4K2B%DLX zSNOq>ZPagc8A`dGEyj(CH5p1&4`_WJ9Y4Uo-+34RV^OT~Le>$%+kalGgfsg!Hfj)b zM}*TT^Kl$#+tg(yXzb8U~B$}sboDeexH_v*~Scb=`hBYwrm5Zdksng zUEaO#3*gdNFJE7pdRqWsE$Oz_Uv=^gcRnHuYU@Vvoth1P%3>RHKzmvArbP@!uv z=&E^*!v1KQ_$)uy6l1I$lq>*Q5_P_QLjPoJ6p5ZDnJzhzo#05~&X>DG;QG&oPca7-Xy^q5u_(NG;Dy>Kh~tfcGbm00NxDX7)W6h+<8A{68xTfFad%v)(dNMs z?P!K~i*Cg5i&-<`XxmaE$q547;TkA^-fmgxfet$1N!L`uEDFJ zU743}d0Pyx8fM2r&X%RFM$x68V>T zz$rtIc`y|%2aWA3QM+!L1OJgN1+O~Ta3c#At`~4Od0SE@CYEuDw!^%B zOOWxczaHJ1vwW3fb(|!OvC-CBDjqrfiRw*4dBLQ?_#Gd%lAi=MH@%5J``1Xj?<+k0?C^BVM;N%0y{{4 zKkt8!*f)rEXl|w}%J^(toxax|GF~sk0?g6CDc5;LPcUFhj7S3& zV|wnBuej-F8F^#UI&>c)=^i4m$=kQ|ZS?E5V3^F)wHpnat4!Ef-02G8Ky*9x;-36V z+UC52lWa6u3HbS9wp<>XN1iT8KlIN$98= zoi~Dm91oymEU&a%hXT5z@f~lJ{ket@HVa z$M}fvFCG8aCD1ii&i?|f^`WiT6q7kecmcUqWgX|aUH_iRYdn*0?OQL4*`uz=c*j(o z+o(AZ$Uqn|5C=|05~7Uk9-h65ex`rz)?fC|4Z%EJm<*zl0#ISkctQuqhXc9>vCKhu z*LnS?`0>)tmkgrLJc?%Y=BA5(7H(V65WTQMDt01JX4*Sa19&&<&n&nWP6kU})@ZoX z#HKB~Y`Sd#;|)4Nj8X~Rn!o-_w(nn3d7OM=HhZ@CsLMd|u4HwUI3NJAE)IV$Sw!nY zmP$^@Kbse5X8$x;&rJ%e53lR&93pT_m!u7_AF7`Q>OF9Eq#A?pdG;T)G6d}jW-z4d zj)KC#_8?DC;Lt;j-}kEw9sZvMA`OZ*9b0)M5}|@(>oNBx)i^%otDYg(5m^GzUYXzA z3Nu5x@!m|OieuFls|JQoR1bfod#Mzw4SmU|H$&kg=l{n8n&?(K{#n+u8Y(gjE1xv= z7=}?|HEb{}#>*{xd%;oH?t3JZx&!r`1>Bljhb{2DMuArJRXrAUj~UEwBO3~^;|zx9 zDbT`MXtOzGYk|*a=rTk-dI#JZgu4_Vqj?MMtRL(Qa$j(?eW8a5AfUXlhve z`vXKi0z{s`sr{s9G!lSAJx3}%*@ykgoZ%QK=qtzndeBmw_o=IS72UI0dc>$)B)bY~ z9QhKLF3}kj!Zrvb;`M)a5eCI(TmOt*H2D3;+rRRWPN*B1^@y!F=QF&P6L!kzYO>~gBx;x|U2q<@s*LL;+ z^S)#_dE63`m>WS*4iX)%7Dbn()DB+DGg2V7sLR(Jw*gEfg>Zj-ZIwR^L0`O)wXcC5 z>OU)e4Oh;7J?`l>MAl;x;YPnJEI!L%zI1xdMtjE3d2c{0DbCm99k5vyuJvt@qr0dc zWH}AaTKRxT05Rw4LG7dWcqW=i(=9-Tzr(BJ=02q)s zb3g)<7|1x;FdP)Lr$dFHr5{nIVtBm;icAITvCOB}$OgBlW|t&ZCHx?|{}%O2iO{+~ zQ@(PbK2KS3tmnTsdDqb}AL(b!Wdsd)B5hoJH^-pkdrg1%L~#hWN0?cLlPT>$JT3nY zU)Jsj(nboVE>h$`5j!ZYo&DGBTuXahtDm;|9te*g!aNjVnpO*vH0(a=q<;y&eFWaH zQ5T(D<@)n1@8fH}g=%%z99VGX@XM|da@Oln)?hrt(3tk5{({db1kYO=1a@OuG-;yv z3HQrjdZ&Ms8G%5~&uffj;EE~J+i;v6El1(I3ngw=qip6~Y}UfnQDIA_f@+tN?l77F z)XF$L)N@otk!stYbvBlW=~Ggr8PF??dIvG!>+VzD&{dxgqv`$?1n& zlLAO|af}AZSh5`kVFI0plItzCteL(7{jKHIDQka0_?7n<&sb36=pyInJU*e4-U?4) zTs>6Refu_Vms_*72dhleb-mr;NrSN<;h_qi$a&D{zm2I&CR(i6W8*pfMK|k$l77Z} zBpJqWyp^Gk$r#?L-^xP7b`IYrY0ag<%jx?k0y|Oy)j6KZP;&jtvrHqxIg2d4e?L~j zJ$!!^;Ghj>fUH2q<{iGWCn09mVmhc0z8OMapVV(^(=D={gv=6I^-`n7ZpF3rT<{zh zd}Cr|M%nVH8YOoml}iFiFXZtbgE!-3VyoM(#85v7wz`j&=zEWHLUZOA^y&5q+QDUZ z+>g^i?Yl&W5Qy}eaDF$D{-XOMrfT#PWposSMD&?>n3i0eoONLa!CgfyV9 zZj(HJmu1Df&JW%GQlOo$uZ+EcnsdP0DVGCL6PWV4;yQoCJ&*)q3yJXCClg1VP!hWu z%lOYonwBGAs!a-7dlP^7lL=sOhM|5vE_flD zbpo3akCk{B75nElvS;@**bpBps)%$ton*b@Opnj9L)G#1GnyPa)+MXBd;))V2v1=U z$)rmhD^Q=decZr(eUZ)2uk8R%Nt=wBv>I-y=1YDD9YSFqkF#Z&&3q zE|bgnRKE8|RDsXDa?S&{2O7GudaGQ;c{H zb<1_{tyj9i^}Y1;n^;&Gk!0xH){!rS)fXKOuktZoZJ`}zpLKsnhtjgvHcvYuO0RkA zkc9?phQ+u)=OIk484mJFP(Nf&JMMYty+DE^_9f$91B?49ho%B z%ilQk2y*#cC$u>}G^l^b89HAAIobe8j1a?`+Cfi!NC9|jT62|JUpnDuW7hH7B(cigBoaoTf$xSokm!Fr&j+sRSpn+rYK@t2Vd#T{H?!B*R3M38E*e^KcDv<5^D6Bu1EaQ@Iv5|i=Q6*3Lb)-BC!Wpv9u|Emn zpNfsbLgCZyyPdYrH3xnZXw_7i8bq<)G=>~X0NNjvhA~wm{;Nm+?}uiah2ksSU8RWp z=9R0Tmk{GZ-W*~czK2Gd25czpG{g6lCw7eaYb(40YUABnBA+M;o}mC#m>?iFj?F|( z_O(YC;Z1)aqam!5hR~ub>(}vdyT))N*=R=;LpAN3A)7|N5L%3i@`QYq2qE4NxuSGS zqmmdQKF1G2@v!+;wP~`_Rt^MJ@A5*~C&jVOXW=8SNUuzeHG9oS+|`KhCrs|3=x|e4 zvTbjn0Gtmko{2u!oTOk_YHK0^k}a47=Y?r7Q2~GJKAI?IM6t*3+YLBP?9w*r{T8i) z!?1N3R+Q{r;74LKc(Yz zdV_zq;|!UTpvlo0Dp{<3{d(#3QB)f2|6Nb^=WraoYc%6enFn!8j-fCGqiCFAJdI$K z)({qN7bf-)5U&(y+e|=Yx2QNya_3TuuVXuL5=3dpA<0}o$9}(_=h1QAscW5M*!%gC zgayugM3D_`3^NSjWed7Nog&7Ew3PYHw{+ z+rcF}YS(mtUXr?yqrPyL$zH_2K#g3-IVqQTIhGbe`E1oP7mqfJ$8IB1MN=k{5`GrEsn*s+Cui8u%p zVNICh>w#Ry13B$o&ief7zUz68W44!J=K~dgKjq}W^x5f@tpjr|qC>%-c)NsMh%$Bt zT|64g;C*Lil=zD_!2mOwxJ*dgd^;CU- zXV9I}Cz9rI8$GqxrxIwdHM6J>sj=S@<5J``4A=g#F9p}uPYp%MTVL75bz~P$ z#EeA40bim9jU7zkyd_`k%rJfvxCyQ;c<;3#28G<}H@Ucuj^Vn5Wd`MbWw_U$<0YG@ z7Xrj3IQ46}eR@$x?e7CazBE|XWe#(Hgo_f&Z1U&uqe&rBm@@lV^TTtwU&kyb^QN6} zf;FzUEddo{*RCJsKflLN75Pi5ADZ;{^{vbIx7I&*E)NQ&WVVn7gI!zHxbnNC#Qz|C z-QNA_CNVUbjL$xg!~*y7)I4h)LF^jM8~MN#dooiN~EB+(G6saI!s$ZW=8#m0cC%C_g9fcRnAWf93FLEW|ttI3bma(V|_ zXwINeMhBx(Nhl}y))^0mE;P3=>g-bff~xyMA+C>G_Dfg@ZArk|3?%nYn2%%vFhM=Q zthXC9mu`)h{qCr6A@{F;z0OXLs-`$%n$H-EU*?KJb+vX~DP@CJ7QTRa^=i?O*VS{K z(Q=OHNnVY8Y@9dE5MhhtAPoR1KaJH+J-yu>keUdr?U*oFKvS9E*?dL+s&v2=;KOOV_xq8w~d)qzQgCF?3pgzl@-8hYpC>i>Mm-tfR-5Uyt)wgERP%k=`UESK#GZ zTh0a4YlJ_^CR<)op{!-|Ycs%5aYmMehvj>thn^++D$}qWWA&V*@DOc2?Mf@lSOhV!Ojz#A(2is5* z#)8J)=G!QO9_`T*SjcpkQ|b2FyYgt09u<*QhOI8Pg9R$D0FXQtRG#}&rmz6W6PcDs zd2aaDy?9?f9e1)$u(bX_>FyfxL$C{S@I169=H&|d#)npo`#r|nqBGD;w1mB~YSphxUNcp+Z$#ihQJ_|o{kL;=7n z*CZBdzV~^O^Oh$nR53H<2uHIF?Fd9m4v83eydOa5UA7^ zgSNj6y+(^R@Ji4^-JZR>et+*P0c6nIVrV0Y8~dVv>52!HTVP0*Pm7Pk#rkyer3(HF zvAakcfdw*c8TP9p*-ZxR9_OLOSI21`K!x~#|2B#99G`N2E)Af~%L=95=rwT3>npiE zTUboLnUe44&|W;Olr+)X+?AwCyFw@0@eN1A&)}>K!Kx;p{;DWEtONs``of5pamy!o zrVXWk$sBOFLunoICfFg9RpPaezRNUE zvtk*@n3mx8S7=}&RVPnU^bUmKeI0X^A>HFyv@(MCDl~JT#p{kJ;&=^3%x-F(1uzJ- zHGq)3AVc<3sar3HfDm`$J1qemX^U><>E~xQtTu&W`}cuN(~R0=)}-aI9AOC;Wr;4J=J`2t20KtMuR(tKG!lh{e!08awZzqp(34KN zX%hCsCR*&;a%O7qUkstfgKd8%o}g%7D;w^WzQD3ZrF4!Xx3i5KnZ8P7hFXJ)HQL_? zFWlGj>w7(a*C`D`YS-*4Lt}EdClIe7#tG;8#lX-6T)@k3dsp8~>z7B)82k{8AZuv* z1Yrnm202sNokPyoYkXi@tJV7ainPH$K#S7?UY8oh`;Myo37J-z6riE;gG*3$kTo#Eq^%l#R)jjMi}4N8i8 ziFpfuh24>sTD%YrhZnETIwTT-yzU7QJkAF-6m@Z%eH#S#gdk>A=cjXgNnAv_=u6tU z2glZbwlwe9YL6StO*Hz?E$7DK+-GAOhcWktvPwa|e~8XYX6jVpFUbY$cF}2^0q4gV z`7zl~`#eI;U=FmmWj!-j-uo2bmW;Lac8$r?M3T%C8>inYc1Ts%3(dk|Dw*dA@;ua4 z^?k)9tgM6EnSM12#5fqP2s@3XuULP$@uACBwBqHKWqne`X0{xXnx7Fcmv>gb*Dy;fT_j$2V+SY$s!4ik9Z&mxe?(sq_?0?C2V4jm2J|jY*nUXZxe?j&g>0vP+Hwca zWOCic7qxKNW;SUcrZxZOIg&|#q$nTa#z@?+&xq2xJn+-&wf+5q`*3v3SKLy@sdg64 z!?fvO$&I*Cu96wAv24I^8Ya)+zT}Gbu)WL37Kl_v&D=RxJ|ln(kI5l}r)2(zKA_FA zMtOO=l8m2@$pd2jFJONa0qGoo?ky>ae!^Zvme0Yw>Dz(sp4;)dE#?P*f$u%9;6f=F zPJTvnKgDehOSQ~8F#@cWBAgx7GJW@`$y@fmCA z@BNA!*~<8kD8SyH76-O}&GCw#U>!}&=R0rncixGQ6Gqlw>M%~pflxTkP}dE6vsrF& zwI}F)_mvpnz(ahoN1Bu%ZwWvjmoKXt}!X)TkD?( zaG$2m62(TzFn-$VC| z`62D6Z)V5Citp=&iOARZf^oLkz(KCd(EjwZx>k)~tm8@yEBVD9CzdXKz17}FhNn}a z*e}WXhC$kI2$j-EXS1tvUgC2OJ(|;Fbml}E>ywG8xNnoLzwaqK&MN2ce>n5?dZh|8 z_t)sxoWrEg@G$Dh?HT$BsmK-I&tx+Pb_~f>_856pD;hajJ3RDKh76C!4`Y2<-wCMY zpARYQb{T5TRCT%FZkj@Xi0CqA#-{g-pdxW!RPrP6tLe0W4aVD!^r9m=p7Ul)3CiDO zwWZM8O}Y;PjbB_nG5Jp z2CP12yw1qrAMz<4Cd9Ih3%=HiVCVF9&1B=pZt0u%^I~5<#4VRhe~h%HxDW!hd|h$> zy5iv&D5;31GERi?D)yH{0f{dj96T9tJU5q}?#Urm4b^=%m0oe-c=1Bo4P2_pYCod6 zBQnbP+wpev`Ht&##rj@Yp}NxX98mG28kIr#%x!Hz`*D z)cZ51gg4kDk4~VCe^v<%Q9y_z0FdTHa@Sew3wK_=swl^n=-^6lP@fCh`BfhV0^tfp zJKA6CQ2y%!9ZE;>UGwO?oG>eU5*o_bUJbbE02m@-$|3ZM<5hTGJ)h2*H>OUSr%Nd+ z5s>eRKRls8hVHzPRZ?P0_mhjUS6j}=^+p)T;2ds&34IARf0f0V)a)~Q-?R}=nMPT= zD4_#ggbg6XeBe!C&`kxn$>b6Ar8}^G77E4zs*^JTuGi4HZ+j-?CiO1>*17((QaJQF zB#InK==pze@w!bwMVljh=U%y2}IJ}Z=dlT~h|>zmb@<*dfNR9LgJL=Nji z1(Aoz1$uj2e{QPP^PM_)gihf;kPGLS(Dze-pAlIg(l^8RlXuCPkRj@M4Kq|e-wphc zhDqMe-K5+4$p&Ie$O&hOL+qE&L!>S^=tE?4*dJG%?#+^92}n4S%iw6tZxF_erHCnY zR~ou=^1HX^ihu)U0uCI%V+L{&fgZ_rvv@ct^(~upe<2b_+2Pwpg1$0Oi01Ubq)m1K?|VLr*(wYw&uL2p8HcL>r42(Dl9d|=w7e`4i7--a7zL$6#BTxS4N2-55 zWiQs(9KWwUII@H<^M5&ocs~g6EPMTbMf)!(e>c~YcwhfV;=L?IS0%_jj!%ZQ&s&*` zuf#po-#A%~X7}~UP2*Y^SDd7)a2`Z7?!$;IU!t@Dz80+$m8Ru~_fl)5Z)@8_np*PK ze8G1U8cZDJTdbp~&_D8|9%~42+CBEgma+f*R3780oV3*Bs1B^XGA=bsITrZdmtO8C zf9uf5PoiEZQ z%HX3lm;|R#?%ePQe}I0{j>#FepF_wH*NC$o6<)Ncbvn|ed5a{vM{wTO`Y}v0!WlOU zYZwR&6Q)HA8*Q>Y!J1CmWgh8c5~=6pe-K~wQ{>zEtiIcs4oCfs*_C5RrenLwEbL4_ z+d9+jP2ZQbh9BrSfT$Ix%R^zFVRjLne4&T~0xkf5J=4gv~l6e}$`65La<$7aHRHat-O zgKA}aH%Sk3I`C1LrTVGxPq^SSalwJF_A+we6{27Vp}gAx2h!BLh26CMnNzi~oLt72 z5BdWYf48ZDO*^!q3~C`SLz?A)D1bZm@4nb&NR(h0iHvq>9N*CRJqYY&g2p>U>i;_ZXg{PGhfBYoNo(3aLoxG|kh-1k zpH#%TLZ+80l65A77F5nX5ZlDWg(U4{@Z!vQrA8#WRW| z56UGc(X(i?ZH!}v{tigB?^6eLI@R9x8Mv^dIm*@j1uJ3q+P1HFBtSfC!U_z2jhB!> ztMCUUiF8y{2sP?RU4!#_UGvH{r^tc+e;AtIO8Y+AxMbk#r(K2F#uYKTqB!VV*o!TK zz+b)z{PJ*dB`X>5$NzK?n8XXNVjl8H-#{YsJAjX0YQJWfxJOY0uBPL@jka43 z+u|Qc;<`5V{Y*k8{!pvWRRz~D#y~%kT(OcRry0IKYE!R9B$R=x)A+OR-b~D;eOJ$r zBni5&Xoc5EDA)bC%p3%2v|$aY0Pf5bZGAOSvo-mzlqn3Xals~q|#+l3AIOTa5u#rjSyHmEALf@3JSwG(1&&ha_`~ zC>wuhPZ*|(YuR2=^z|!>-kMLIT6!58h4fe;Ags{N`jqYDd%`+NDDxUf(ja*2ArV&UaL8WLiq3b+5QI+e@xGZ)El&|q>-(t*E3l> z=ViDBkl(69fN|JOEWh-*%k_OUOzeqHR@^c}4UlZobIHMBux2mfzTMgE-3r*gu4lcc zgKlzNk{_GCdWomgYCA;ia((w93xyl{duPHIU8k%-`g$Q@#xYdL{{?S^iVa9bY80Xx zwZLLpu|A5Ae_jp#>|d$FMuX6yR{+!Fyx!NzHF4l1lFMM-W$sG>y%9OR&g=U)ufK1z z(H-f(F4I*9IS6B8ldo9H2vj)uI3s3&R@(2qI={yhj}Y{Okl+QLyas&8gYESV9hRCyF31%Atz%X$7m? zwR7k_=QXbtT3riZiBLEg!Ff29Y6b+oS6LsN|?_`GHTtR!D2p{tFM z*W4n?dpIuM<<jm z3t?9Gam7gyDelWgP3yY0A$>`5m)B}L6J8P8M=G>U>f<9sw<`SeA-N;A$dJWY4w;2% ze^JhtMk>+!#Bg(w$>@Q;e#-s(?huH(mbPx+NcZy5BtfGd+8iTtl6C^LMO z+Sj5Zy<<2vc#=FBFy{|3*!bcr8Jmz2e=fft5v>s)HV83nC7+juK9b+L%EUP@ct^L> zL@y`%&g5jM(as{Um2rH(;!8uE+aQHGA!4ACG}*uh;=?IWP+`Z913$+w`PmTmvkX?<;z?+3=SErZ9vjGN;ze*r?f zW!e3lvr@IqgGtKdE$Yd29bF)TaszsMUmMEgHOD6}!nwEePt&HCFrJ{vg$b^k%mj9) zI+};tel?BVat+2nxS-Z2n5Vn%OaV5p=+%Z|@hxfU4m}p(4ypA)usNIzZBHIBiDmio z4QAizYx#c8w+3BM7@w^*M>X%Je@b50;n-s{JR%NM`zkvg66MOn;DS>FU;8{Zg}x%D z#>WYvuu!hD#i=n`stKg;T;*6b#-yzhyejJc{Z0|rUIf7ZNM_0w8_ zLc%-|4YH<#c4^x59}Iu?>7VIals6mH%gb+|RdGgPmyQa}RYL#=F!_mQMWoIm$=!MG z?;Pij#2YZJI%i3o?G^Cmu#Qo}>sjU1JYZcRV#T+R!lrdTSQ}%%s9$aa$(~n;$w6z5 zbb7~koJ-1_K^8B`q$Y@&TR6FQwQA`N}Zuc ziE<$h*8YIfZEzFB2?7UrP!yM@7sO;d%Nujf4mb6N?C0!jzR1)CozC!Ju&h-IsC4);BH;X_NC%qQ!Av;VWmbce;>}Ji4Egy*MkZOAk(&q4T_s1+z zuFI9Iue{9u_fBI~b15#paA{$G|nSjp~C9Cc_J zSxiJ=krC6%J{`FQC2OBsQ`b-sK_d-bf^KmC{u{s4kn#6}XfI3!T9FX8a(CpyQ<#^Z z-w@v~$6!X8f0D>HxD5W!jofzh#$ew5hjMD>b%@df9LD^dactmtns5d`X2cifgM-P zL~u)*Bu$b28t!ozzXo%fbJL9m=i5SrIwObsFTQ!le)FZzAW|?EwZWc1xyP*0pU_*JLrV&kdd zoF_LMe_*}_dx4!@F)+j51DnPwB~Y#?E6-=1ko-(K=yPiTH&AJqB0 z5L?7?5a359KJbodJ|3o$n>CH|<&kTqn%L$=%-8|n)z>@HO6dt%a{ ze_sQqd0>`-AI>8~=SyKofV&~zk2JY0^N5tTXG|(A#@Y+;ENglFjO+Lr-x_Rkg|%NT z0@=|b{S9Oqpnq|U`HTTBJ8elb@+EvdL;KzKuU|4MzUHJqG<ezHq(|FPfvl z{!(5Mzxt15nrcd|%=ar+P_m$WM(}%pe^n92`yk(zWWYEYXRUa&mD`tEGx?+*3_{~I zj!jEZ@>5A_mJue+*C`Ynm?nSk{TbWWXDq(~KMK%AS>DI3;XF8ab~00M$4Jg{XR2HF z$~Ro=msZoWCyG$3W8(%-bqg7nv&|JW$vA@61PDl5Jzwy^b6jwi+i#Hqj?lC#e@}S- z1uEmd4J*dm=A5o}!?-L@o5zXnryMi4i-v0@J?^Vt2DwN)#3~$fi+sazV(c&G(n6MB z>iR_dUdwz%zPv!8*^k>9AtX^89avaPf%ruwZhCknn4q1{mH;^Hif_qKgH<%ck{*~? zWAJk#izUe!F}&K0*eYb0~aOWOGi9nzO|;_WZGH67zOd(Xzezp zulazDiNq@PRv8&`aDw)i>8Z5RX7 z(EAmKrqDr}UrGq-2HMOvCOPW^$ab*#=ZYGOB~VcflANl4M+)seB%qOXf1jEx`2UO3 z?X^BOgUlADfEBymUJ|bfwsYptL88+VgSiZkwC<$mL2?To@_LhaV&i{TqI9CRn7laR z1GDl}>A>b`3}@$n%J&E0Pz;Xs>5sykd` zQYwr4;6`nz2D#A<49`%Jyz3Qhe2!4Mslj7g@6Th>$uoJ8a$t*ScBm3LWpX_nL72Z^ z%v(Smx8?fAv6v(2^i=1dF^8jVPIkAICpC{!KAM#DZ*LA5^#Asre-+ZnI9D<%n3AkH z`ilV#QC3_)6eQlJ=_q*d@M}~& zvlLgGih1*y=rCXp?68Af;BP6Mf=fVNiKG*SVm#A-WC+gf=~`=glz-wJAvj=Yz*myC z4d@gYz95nz8X_Qyf5J;gVY@qAtY1IZSKd8M#2TwBD_0#oLLyJD^I%;@z(SQYg3__o z`iSEw+P6swpj9ifdVw!yIx4mrTkVwusfL;~E~)gFP;Hv>3ZP1}_1zmqfj;}%j3&fB z6aWVKjZmwtB&R2XNL_-sikW=&r{Z(PHg#LkKcSV=2k!@$f3#-E0i9y0qmvU5Z5->l zxYX@jm#3UkY_-W1DP)v{unYwD@+T)HbWUFHF=9g_wp+K6DSY>OIQhPfe1*uGuW*YN zHL0Zu20T@ui;>6`EkFt4NBj@#PVt;5e?r~(N}>`zE5OkZ@A$9*RsuVdtu23H#)1A`?DiHn(Ia>{2cBdGj%N_# z;A?`Cqm4|5{yi_;+EKC4bOiLYS{a}FBQ9~9Gk@jWQu($KK%Db+v}_XlMyOx}?R;up zsCGVv8sQn=kI*9ZI{`J2Ms-xrfp#No9^sLtO55e~e--TuTARl;R=)f%)X>t}l~jAg z^#3_>NIcxxaMyw8?yU}NyR+?6mN?h-Ndlr9hIsY#c&ezv<0Ny$16_~Kprps_T! zH^p~~e^PaC_C1Q}09in$zg7pxTc1F0<-G2U%_C!YHNbR1Jo2^dVn!{cBA<67F`26yB#O6BHRwIUfh$Ky0`|Is1 zgvSEu`a%f%eflZ;_YLD!hq(<*;h9}S*;Y$^EJ<;_A9EFOu*^FD^k@1UU4?$z{f20_ z0mf>57=O@>0d58t_Z7>y;)+P!$Cue6S3>YH_c)0j$7qJ42Y;X;+^~Tf!s1-R;klcR@^@VDnC>$m za_A22g9O5;ui>_@Lvo&nF=3RtF3%fyhLpEXDMv0S1304FJw)H6fhWf|LVL%nlL$i1#~g%$AU$ynoJ7#EzrwGId2u43!h#>9i*Q!mrYn1s^bh?8`D&VMAB zJuCQDz8{~ya4{^b=`Ea*7aCkg$+EW`X=6YKvE-tMzStiOI=yGE`1Slq<^XHg2ac1i z1lqy0vM7nu+JpOX3zG(R-Ru_Tb9JYE(we^{%=qS`s+tahN|R;ElfMi3)!j(>fuf4`BW_LE0qSYN8^{abadSij8lVc612|1Us( zxdwgL+`Y$H%q(miyMWWLs&*R}oEEd=46a8sqJDbZg(^7=i3U#>zh)R>+<(y7yuQudFnY71kuu#{^U# zH*$EnvuLdhNEKn!t_%(KlLa<}8{%b=hb-@KcUXLwrP_I)PZ=*2fAE~9XAO`PM3Guj zM>#zkLT(Oh$H>}XLF6WEEq_w%J3P^Snln)q*Sx951xc0~oNZ~r;05BMyfX^|nEHa? zg;M)d?X`sM`k3=b*tGi~UoNpD>$;|9 z*R(t%vtUyv_&F0R;$@3+9!6 zKt^>dfdW6Bl{snxH^6Xnw~lU)h~kWt`W-vbf?@>dII_)cqX?Ie32sBrufdoT>;U9Y zzuuBmIwZr#@+C0qKYtVUkvb{)H2rfIz3X!XCtvkbq+Bgy;|0C@)h=8|yKs^{npNVZ z(^Ftc{g>AhsF53h03oLP&0?{cRn_HX0HuM<=bWw?VvAXqoZrk{uMos#_xdMg1i&oG zw3f$xl}C~S7W6ZjQ^KGGI|uVXdWaLL7s-bkf-)6n*_L{yq<`l(D2{)Pdu)KO6oyO8 z7RF&^!yZ580c!<+w8K)S^h~q!U}V!yY=5880s4onZ@NE{TldU+qExpX%JWoi>>>f|4BFXJ*3G)O&~PjU;Yd6f$6UFoi}aIp}>}0LU|=X;^qUI53k!h zQcrJ)T&N87!+%xA4z|WsVF%nsmrIXRdk?m0dvvZ13h$qxxbfOGwg|^@Cg=V|V5N+B zxa$+rC&`vkiXGOMBf{gXIHEwyI)f`D@I?_m8&k?|UEP zd(T@0^HAn(R?GM+c=&6ySiLqIxmHc|mF~9n?R*8IkbfxE?-Z(&SM>Vpt&T8rIvl}z zu@^6S%Qu1a{f)A?JXoJ-it`jr+s>AD7_{qRJMa`iU-o}94V04HmJ{1s2%DAlK4-%- z=0TqpH;29m-W@vIc+{8Gz~g9XKrbJ<1jg*hidgFYde*P+XFc=vv_+B1HY>K=3{4TJ zD#F^}rhmiK+4j6@^&We1W(*6_9JE50-ya~S>Ewm`;piu=GS&)e+yI#Qs$$Uny#sY2* zQjD20xL6dyaxO6bj=!i-RJ9-N&*_2&qiYUvK!2rs1YIhFi*f;3KjTCBAx%@4X!(xo zOKNN^jMI2U$cSS@FW344_wg^_?JIPih;ott4WGP@j)SPvDEp25iZ4?zG%*Jq=6ZY#hJRUq~Qx`bV)s#M}oc(|_U5Q?Y%r z-BrksIms5V{R~Ag)ywH*?xElX&)ADv9e>GCzb64vzoI5;jUYgHoh(eZGM=+G|sy6;-y~FF-xqF4t>X%@eGSO*CT&XRLwnBs0^=W`( zFbETzrsELRc@Hcc{kY`X>>?5)L8D+lDVcdec95+5Erw<~8i5NqxM9+jCoPM|vVYVs zt$icwB2&;C9J1~u>ia<=xyDM-|IVbG<3&Bq$TbJ-bJBIgTsrDw`uqXf2?2AWkzrse zgP((;cV=%SLcYBkt74%{Rwv{lU~M*!D&l3tP8<@x3m$v@m~@p{kV!Ov?el!=T?~oE zHMEzAJBDJslz)*Y7~>!J)3Q7P@%=0R_+b4eqDKL+nIvdSEa^q& zhSq_c8HwgnP{i%14TO;I_rR+!@7F{sJxugQH_Njzln1(C)P`#i*#mm#H>R&NsJ?HD z$$u{R)`^`FU=a_nHwDzjb4LMl9v?vTXf-dYgzI|dalPc2uC}Mgvz3HRn1BA8HX!}8 z_^jw+$A@m$n5)qdoK9y zCJ38{iHdYpJ=LE;)D`G37e=v1Jwt)-oGZqM`FOIX*N8TQrVB0$%W_6PJ}HQT3W5nD7O zTdRPPi+C7|{CNc1_Y>{&o3iiXZqKxwYNV43klpCC9dbQmEXXZ-e!)#l@ko5W*BF7U zN3v^#YHmaT4r!|HEuQxg+{GD>S|Ky#(~}`#)~s$*d+--dk$*v%gmD}devPiI5RLn$ z4x>vfq#|Xrc;6RP=e48E-0_na>r^e?FsHq2J_~zNxh1KO~3>Z*AGe zuW0Y@C#Aj`nty=*J%_q3KUbaR-aK1`7fizadoGr)#W^Qpt}Bp+{@7$+M>v;Rf8S+o z;5NB1e^W}!6Lk`~`~*v2_EO*pkj74bx5df`YvzJ)9T-TgOf5R{f9 z#y8>wjRYE|kqCN1`NR~oC-C6!!AY0s4L`P&C_PGO8`lvEee+~HqlK9@kc9}TmhA<^ zd(}6!Ry-flBr;$7trU?vDraN?$4HjYmU7K|9na3Ew%HP~ zE={!jL9=qn{p*)(DRm9wCHfg#L_}`Z8g%Qhg?}q%mtMK&yGrX$><}3 zAm^^kkB)lWi|r98)0-t!^%w(qb{99}gmI{ElIQ!rtsFJjYs@6Rjx5X{`F32RCiBa0jXAj!~6n_Wc zjS){Ih3x)-$V)i9`+BbwMc~shW9#}44uF=NKI6f|*2-n9PZ|H!fTcM!2WA@v=RHY6SVhz@wsfnzhLI17-kx#XX9&Mr1wqxRlL~W?iHf%x_$M$*I{1)G698E zWW&z3WcQpOAQ!gG8p@>=_1SBT`G2OeY)gdmCH6_m&XOz<#w+tn5VrAV%O5)P!yfejZ7)}>|9nEKcD=`hh>jYn@uar|=GAj#zpEEpIG9WQ%aTmlWb%4U!Ynu#T>4$OQ$Ey4)!eabjF=qdFD2 zfghNmqsA${DEvbw=tJ{i)F=qC{rO>6srSer5}s=|zC*|M=iTh5@i~}Taq89&(|Y^- zh)U5T%+%{~(+Rqtx9avApi?MfgX7C*cG;3a|1vg-gvY%9lCYs=`+scx=eXYF6}jY{ zInjEfZ4c2DCo*(TjD3O+Le%XgiUYPX~#AR68bymwBjU~ao2|F(9Z@I)g=Rv z5j}hWJoXnr4fKc`o9*iBirC$@7NH`fjJ+1{znEz2;DyGilbPr^b4~2}zmI63(vDfS zv?s7@As`^nQi)P6X@AlM<~TlLF9PT^kKq{kyT|<{%~zg9`FL7@AYuCX4Qn#0_Z(Q3 z@f(^1^;P$DYQMQbq*p()5Rv`^0@|31W6M6ke5nhOkl^jJKSM-7&S6SDtjOX-a&5D; zQFpMv0@6VDL^+FY%K}DhqZrL|O$Ns4v-QP|BzpO~V#yU}i+{HBimz-g<2PJ!;a6w- zttDL0V7M9t4{hr`k>AKB-IGbMH%HX4KJ?UGNLcc7?18 z8C3@|s_)_SVShsQo>XC$p80yoBH|J2@9C1*Je8g!uLB6H_BnvhT0U@TD*)5^+>`x( z++~^wZ$ORAf+6o1Z99kik(b(UN>B>S^Nr2u`3>8@?;gfrqHmRW%fKBjc;F&=iXnR^5uQ^Gc7CzM}B ztoWimn%d#PfR&=_7)if5rn0d>?VFcBBPCLlZPu?83~=q+k>`Q%4N;GV;)J%>Pb=CS z6{NKvAlt1<-+3wi`G`_%`K0Bl#2Ch>(x1fam@W2#0IALORzShB-Ac~Q+@ft0PyWOm zgOFJhEPs0bAgnp)Ykr;y*$!WYQNmoj7j{obruzG5KDC4%uToN5IrZB1n8$3a-mI0IB7d#?)O}Wvdod{G7_uooPqcvrB>6Z! zk=HQO4ed8T(sI03u==&D9KU(*bxqcq0fBGac%*R_bWgVr#$rjFOok2T;ZEN}dP z38!eqEYg>zolnT0DpZCYVQC}(_=x?KV9qY~{D{ZbkLctl6%;5g6(y-*gcUe~aaoL; zLVsdm3CVw`&x3RQ)U(Yloh@_lE1|y2$XmTaecip}$Jhmu7O)4L2MF?9@XQ6LC-E|_ zC?-=(R2c+?(&1i51@KwJa83?#)UrIp6a2M*KI5KU)bb`zTq8>N-Bxu)JT%Cg7csBA zgmyfW2M*Pr>&@-9dg{9?)E22^@x}C-fq(DGvFsXipp&L5m~~N6x08WP>t`!vI)c>CL^oZ&p$v)3XL3aE=CoiRl0of1vg|6B%b zJY{=d#N@TEk6VuNVt!Z1Ad{+KwzTQp5FNxEd-C7o)8vZW8~tkMp2U>;tcqUYX@9_E zHpqNTV47DU8fZPOQ`V?7)Q{$XgEv}j4WjcYoA$4=$;njADNHqnYSGuq$v~scBHhN% z*tgR)q?Hm~@{`+{wox`+1Uz4oQH`e~P@Jb|HK7iK# zEIQ9zv)d`zYLT#@J?K>(zfsDQ(UKE=#x4Z~L-j2L{&vAMU|xNtS=MFn?0?zguW`n+ zvWc;BqIa+!>mmd7Igb3>`A1qLVbl>wh~`@fTa%%ot*_6MC}KzG{s#7^>NxkmGr<`o zmI$_be{ZYgl)&WI7SOTT+Sbw4lN&8=aT`*XWxO&FT??()mE-kO#rH39O)f8h@AHa~ zZ4FFnv>`ISOMvh=1{L8+3x7>@J??qf7JT6HosPjgza9n{ve8l9$h5b zp43pIF2VcY8q6eUd}a3xpU&5=_wl(H?93@vF^rOs>O12to#{3??|*nxj`Fu1Y zn~7F^6kT*7|J-P(*(JfW!VvXo3%FqOtT#V?4}pK1Oag==`VBm+@V-G_sK#2{X%H~EV3v2DBF9aJLQ7%6`Wvi@*PeZ>Sg%JAiQ*rlmv7;2q7NpZIbAS@HGw_I&# ztWW%j(Zav0#LmMQTJst`;r1J52}g*@Rx4wM)sTmH{`;CTqJPpp&4|9R&Ev&Dzk5N@ zS3erix{YYm0n0_>JN7YgYLrU-JhW@7-%e+a(Xa0vCGKS`F2%vBpvz`r*>Aw5Y1>9s zR=HZuMbUm9XU&;A^S<7}tG09ac)#rZD^My;STP+qK9iS4=A9@Zc%FM-J%fb0W>^P_ zrYd_)|I`GcKYtP{BK-&f85`DOY`$XprQP)rWfyPT8^savd15vxy9JSh3UnNTWw|_*@{WD@yVzU`)x+LV;L^cqg z=#s?w5Wx+_(eqPo|9)*bAJhi)kNtD$S&pQ$BP12ncG7BrZyP?qd6eUM#uLrEOh6j@ z00q2*Rtt8pLO9u^I9R;*<5eume89goYx2E$t?N%~Uo2W)3u=D-a#TXOwP)y%IMJWM zhPDi0Lw^EW@8cj5+)ryWMb!wIzd4rlerNjyV?SU-heF%O1s#z+45_4!=Yr+yg2o~j z5hPNq7>OVD=Gs39D@TdDef*55Wqwy!nf+dL@vqBtd<)?Ug`>Eawf*It2|ZbonOujD z#k<)s_T8Vmw;F@y`4tSI!wxp1-Mcy_Kuj$hD}Q|WwSJy5chj+PuOK8$d8tyDk6;3&^+;8*i1K<`%Kcs+`@Cr*`dOUW>HN$BH@%3;2;kEJ zbnXkYx3HZ8Opd#+Wo%I9xj}*hfr_lzXTt3adiP!xYtLKBBDx$A2wnqw?7doexqi;I z&VL#V(U^sFz=M8$C>vToJFrU(R3cpkYT6Tu^~_D~e4SH>LkNG9*Yt4|%4K zXmg!KbNmFSP?2VRq~MMR0*^-!!ZxBouB4($*5R3N&&S*I@g}M*1O$9)RxJ|X6o0eM zRLp+sFjKkh5^I6_LBX!)lIQ%5P4eqCp0GpL_!!N-q~s;MBq0Q8deLd9iu1c2c2 zgMOgYC(8jfA~w=EOKpCCW%`NZJ%16)@{~|f)=21^yo|=^*L&9#mK>lh4v9pKBYtyLK1VDurpuOYfablfN75q1b-fJe5T>5r=Y#c>-6caDw3=2=;0i4zk2<(yXMU9Ff`B9 zVSCa5cNXXVJaYsXv5wZsVY@w)E!P8KiA%_H^A!6vVO4|aUQ zA-i8REzW1cMqfW&FjeQOz$qC1jvy3gYho&nBWCm{YQ%M(ePLae@<5e0kh19=iH#-d z7X}v(Ui{^zLl*(?IDbbM+=j#qMnJVbcjWl@j&Srel)8Su{8wD@72>7874eabwyL6E zkbL7ls?Qa-amBX)jf~=oU9=tP%jP52s5Um9(vLG^Cvu4D4ms$S9E1wR2|kIj>Zi=! z`vMA_&uO)1sU~k(#)KQ(K#dS}_8+a06eN_GclNF$6QIoL|9_ES6h=WaoMuiCakh`r z#*FbyaEICTJ)0#0xV|P4XIx)84LWo2*;suR!&s++F+QdYf(~7dm->9Cc{2EZ%aVvi zuaMFsGB|@-Iu`Lj^0P_`qiE9m65MYP68X}eD=y=TZ!I=dS-(HYB_&QI(`|7Q$Q0Ou zJIN{}euI9wFMmyKeQwS5&+kYB5a*WuTFm`LzZLr%UZby!qv=iM<}X#F?#Del@XKHO zoPD`js_669m<YDP5n`w*~pWAME^P7*zXmbnj+TtY_wDf#moAZ1s6-|qh zX}VvB;v{Q1f8Ckz^s(SXsx42VpQ-QI42@BraDOsF?3_$14C8tQYrQKwVWmdkYFgVG zJXP_W9L@Vh*?GhI3qGIkTbfn7M%JarRkUJw%?WYqNXxX!a!y4t*MIZ&R1p2HT*qwH zfSF{%Og3)c@DJ6dzMG!>#}h{ITXYC<44#t7h;b(DTxJWWP!Zbs)e3Jo6n6@V&9x6A zvVXY*2vCXCX1lXed+o-fzn7Wqact(h1Y)QfHrdF!X|lIJZ8Psd5LE~&f7&jo$Y0mH zsAZHi{SPbJXr=R@6Y=+dwy#5#8|#WT8935@3tmkO+IK3PFhGre3cD8l1-8G4VD5?| z>J70#X;v=Y(&J|KNP+09*T>hnO0BtKxqk;qXfYM5+=4aA8Ka^m9$0&0(OjfAqu`%;WH(F4Vx5skT3$XcWsr9P>&%Uf*+Xn}{2i@;v zvW?c?E(>sDMsCkx6lthVdkM=2$Q|5~@%=!<_EP6c*9Oe`)4=e_3iQfR?yet)%zw{X z-kR&AZU)d*(oH;)(B`4A`+LhSnyK&?GVLbhzwRB>(*0A8S)9|~OA|Q58rfnw_8f@i z5DEe*MjMFe3-FO-;0E>dKV&~^^A-DVGJwO!;3A>y#iGvtT<(KZi%cZeg_ku}YTegO z>7_G3_eH@4DN8tZs`wE^hzZ-rfPZ8xCW?#V@KqI;UKOujjud1c;W0;y8^kL)LYWcZ zHGhs$3%pt&!cP|w^rpT+OhLZ&Uv)pz)m(E=oG0R#ZrTLpGZeY_rTVYSfciYti$Uj{ zyHSooRJoLX(Wq{Ent<^U8z$LnjV~M(c-fwVZNE8Rf(_!@Dy#LBI-JMysDJ5f^SFm6 zq={ceg}~EprM>hYM=tl?Ny76BIqCrqCGu<>{DbWA=N(*jF+H&C0fg6 zgy0MGV9=H|M54(eJV?nd@DLy#hvJI9`lc}QT3wUZN*)2T9W;H^7ya;UNUXKMLs7=T zVv)vIA|qS=4gt!-vdr~@`hPl}H}j&TI;mZ)WDGtMQ4*VNp++fbiB>AdeOqV{e$qpK z2MCy@OH?+`Qt|;L?u=Gil-lvv=XAD>E;ThwdxZZvalT_Boj;+pC4x#8$&*O#-p|WN zFhuLeMV{cKY)<7?;v%vCv~!k}Xgk|(y>Pmj0`Jm&lk=#(E9oFSON!&!yZm!#IqqBZU8GH88hL6W^4=0Ec}rxa%66-#q_E?LJV zrw_SC;LoFIxsG&GV}D4_(tZqaFX3g0j4>%!&-Jda>owbaP!0W|fZosLvMC+B$2znh zA-t|J=h)4}Hlo5GTJ~9B2-BdQhizM<%V{z)X?v>U(X7-;Is`*$(DG-Dl>3gqKG)mF^}eXxCB3aZIe$6oxj@Vz>r2x8hBPif z5R*P)r2ElmqlFRocdzs&&30wFgtt6z~r1n%M?3&B^0oRcs zYJZ~7KI_Exy?;l`K4Ev$rYb_qB3M-gv%e`VvYMF|6A|~72IJ}OPPSmUthn!O!KK_@ zDiY#R_Y2vf|GXHrWqd}n7buLy5$Mr%B@5_l4e$Sb(`lgIz6P7jU6axUF}`#NhaO=84;jeqqlafNhh9MMltL%*|}bMt-I z=oPs|P0+57y&~xUIL|-j&XV&S;W-H0Yx6(n&3_zGA~A-x%0F04>tjmTf{hD1Vh?Y( zKk9dfE#jSP8a%7s8JMNp8h)7SUhzRVfbqP3YKdw?O$O2MXmWR{Axrc$&lT5P@rwq&!r=6C0}4dU+XQ$5g_ihUK8|(nNjDBF z@)33cDSdy)V~>);{&a1hr`uFEva!8x<4XhIBz)Y;b3Qflni_eQ!~^*qL=OAOkfkXE z7v0alHMt0DHh+=nHVnnu^ST5dk~eU=CSW{F5PuU+2A^~fP$gR$8^`$>6PIK;`;E%} zxF6P*3S}xMmhi|bHET{uyHqgUA5x1eWHlc$o@T-bwb8vi)A>(OCUkvHiE7y%HV;SEW>iDEMKl{<9 z-hZQUPwQNu>|uRd$_SwLJximIWdfkXi0xcI(og0t2atZpZ;kjKFj#3{DCTk0Dd;8Cwz8aeE%16~ybBlvvy-y>!+7chpT*(7NZ)r?(q994kjV z(`k;PasLaRG! z>)TvQcu=WEGgV}Y*#}^DjYAw_)X&zoM*y-cKXZh|`5Q)~IxIEZxc$1TbbUV2ImBWD zBXk{c8TPxRP*#5(Rvl6b)$OuG@1JtCmNiuWzBp3?ev)+D_xLR4NsSKnO=GXBZm;8k=#W%g@6j$5mv>O*?>v*aYG13b@Pg7;`;-%o z24*uGJY;=6j`jP*ua-^NqWvzM8oidj80ZZ-@qW0!8UQT1EnbQ8jEnc5<4aS@uxf4A zPdZ1&OTV`F$60NUdf0q*a3&GB_J6dn@-S-C{M0h1-3qeEgwTMvjJ|y7>zEiWB9${8 zq9}$|2M_M18{U0tIhASn>`~~iwD9H< zY#>yjCAOU0;bD>{bgNU47T*v7FM{A@Bca82R4z-5Kgqg0(I4Z-o>d7Ze0|9bojCtT zaZ+`JN>Fd|nbrU*YeYZ5ZW(z(j`X+u)Z#YYd40y3&p64>JQvO$m9QZDj^QK{UgwCZq1xBl1O#s%v=dnpA^Y;s>AjXe$MmH&N4CIdNB{|laz#jjg2a~n z`7?dkqdeCvD-Ri)H6qu13y1c^atm)d)*x#&N7?k?Mu?mKREGTtHGg?W?|tC8fg}Cn zmvZ1C>FNuWpQOr;Q40%5)S z2>A9SUUO?0SUzGlP0{uELV}+)Bln@eTGQ<#GPy|jNF_dQQm1PCWG4A?y)U|ri%vvm zpmNzsjZ`)b<|R#w!Jqv+=VyYM+L${%4hDUc<88{#(96>zLc6bFt0BU`=)*X9Pd|Ja zXb`?bP^d?_D1Z0+>oaQQ>=0gCPS|z-i>_(bL-wq7(4%C&JDX8fwW)Sq zGdD2>q)pkz!NhPH|BnIjv#z;|eh93=XKK0j4e6Me((m_CH1{n;L_f3~nOTH|Cm6SBRC3#tc^bo{mZhkqVL3awZgGq}GybLGxVE3b0V zVNPnPS$O*u-zmZ4w3dt$$Q5umI3O76jUSel<@7s8=?F=>qVX|l4|tnPz$LUWgXKkW zJ`)PBOS85cd9*JBdGyk-gra68Z!$khX1^>T&@EROB!7wlVI#Wr8mGriJZiGb*W=6K z#r1Q*O@E+8MeT+C(+(j5$H;|QJoT%3rPof8B^T>YSQPZBOrVsL} z(@qOc@EjV%%rkDc6Q_Ky`j%-2qt2=cT1fwPhz5AYz%w*%hOL`^wekn(3awDFIb?iVU;! z1?i!G;4_fzku7kUepvTWN^a>%OZ>($dtsb2Q=}5A)zM1ohYn%Da*jWOMq?|oYKoiN zZDHo~bv**jQ>S%LXSJkxk6#^wyzO-*O8f9h3a;iaMU-i_gKZ;0}z6 z(Q@v;;yZwDfg?X+Q@+?j)Rnxo?UD7P1AlJi_^Nz4&~|1e{HbLh{S`;`Re6nOn8m1# zjjTWKwf>?trwFbIz);Y}0}+#@hoO5MzQ87^yXA1X(7@#($sU z-(d>XJ-$z$#>eA|v(Jr^@k;rbIt2QJ%7#7f3Th^2vDL8mO2X}}lsR)=oy=5v9GVo| zFt{i~&2$Cud4ibjq1X`~Ysv|;t95yu72DTYQD|Pkzb2+*DNO_^X0VgpGCUzyuvF-c zb$O5)8`VJj!r7Sjm@e0FM3B=kynhwVa1sI3@MV80D&4ELf1PiRaI#EViC7F)fWcAPlLx$wBF$NcL2-ep zzJ)S1OwfM+zRrm(-Wq+`@6HeNYmFHZx;6GlCI00zC&u}%EQ;*gwSEEloqwU*9wRpW zbNK~&aUvu-7EYY%bPE+OebuEsIQjl?{wOBrq#hISz=MSs@cMql+E2P@-LzXThP7C2E^gr@eAWhkuYW%8Hje4>Ei@ zKJB4}=Zy|E+PtAH&lRmu<(w)$|8huC{WczLBn7W=Wk>z1hce!ml`gNpG?uWZ4Jk)( zn@Ebz&S9j12)67jTM*4q;BmU;$f?r|DY%Bv_(=1PAdSG zM{X&l?EqXlv@qmecP5pFH18zLM|&n+>>F?Q!NMKP8vFW8FOq+%2|Om6y~G?o z5RZMmg?XTpHq-Y#S&;%QeYTNOKT%XigvmQu=V)FZaX$$l(SJ|7s~j)qKb#X^>QZi- zC9R`n-`0c%U6B}n2$}t20cn=Qp?}C*=Zw4OLkR1?HeCIa&y1ui%heO+N)v&MZgvxKz z3V}i0C*I-ZOqF;kiB735`WeW+ReHUNf;g@RE7|vyc=I3G{JMNC4%m$mt*rUUG?uk4 zHI_qZjLChBGkN`U7ES2-^AXGZ5i^YLSKD#h!SyuUsDD_aKo6NRUA_1+kOr3P);y4< zh-sVD=$|z1uyl~G`vQ4^$3w%l@)2b?5YYXM0pQd8r+nULHM;unID>*Nn76sb$_act zL(b8+hFC07)?;Vic_-w6&W!JeW~1Rl!dW7MTgHK))d>Ah=gDza)4n|PZvjq@`#jKp zhVSQ^Zhs%yoz*Zb>HaeJ-)|iuxFxxfKK5RMkk%2d&wJAA;;YVkiavdR9hPi+XTI|# z1&T5ol;ig31UaopYaWzS5y z%sG}?P$j`a?qzMm^b5?~k6)02+wswO0B6c3WPfvhR>Wgo5f4nI8UUs~zagqK@JLkM z>5I=={(i+RwLBo*`FeKFd38u#unSk{%gtpLk<+DAmCDMiqdVACiL~ke%!_qApK#A7 zd{YRyS;DB@wICA6P+}-5)PaYk1NvvVG#XDXA4{R!P@E17OFHmo+zll z$1(GVok_7TF z7}n^}&=Q^zS4GOycltzX#dm*y&{%cWiGR)U3zy*JXFjofzB_Y;;j^sJvK}8a*U1qK z02b}fE!l>#n}StZupk4ZYA^g5bCe{@9HKIg&yFC7swS!HxVFC~T(2v){B3gEW!xp= zs}9b$9v?aN2~wQE`UrnSH0)7q9@p`Di1zu4g0PRMu`kQZmQB!_M>AN-pgvO%9e=Wo z86nX6`+`M`Vx7WOjutzBfLt_>HXflf%`)}<@mbKW;0!jp?W5$*j7vh+&%}Doj17<3 zJcjxt88{l_CX2Oi_}lg&UzJ!vwtrva zj$|mGNd{ob4|M!tA@!P37c*uF(_4creRCc9fH<9|iHS$h_J~g|K{nb9Wq+kVDh~^M zNJx|5af!w#@XiF0ATzDlHobDr$aF{^js#!@l)oG=mu|04u33F6*0ui%f?rR#7gNVg zUnF37nC^7H4P;UI&U$Zz6zSt0&(5)>1ba2;QK58*u!8e|8~vQ~WxM$i`YSckL2{S3 zgf_14TrvtXxGd*rI@CIz8-I`m9->ANJ}fNT$ZgZOxE>@kQ)8Sb)7ofQ(2F%|ZeQPZ z?|u`uCG`ph@6Qt2td*8LP~Y{>xudD|B@)tVvyLu7qpBdZZ%-aPKSjv_ji4aWKN$Fl z;NG7jN3kB3b7u6{gl=eS(AFHI8U+cIM71rS0gBzHuVu&(>tEQSj(=eIudCp%8EyNA(qDT~L5e0P^ktvezU>nUb<;#h8!x+zx`i0XVBz|V^XQs% z9&^TiIZ)caD)^*`q)<6p7{UFD%)lf)XZr{#@SANqT;}x_6bORzGcM;OZUr~;HBMsmEaev%L#Y@?`9{0_TI^>#NUlv(59zE1Or|ATDG@gOE>mFj79^?!DY8S;=lX$bYJfJkIK zX|gxhtwfwX%`Yh?1KkHK(2%~86N~-*s{8#J zt8KN+L9|vKT3P8$M$^l{O1r`6RO~j{3P~63SVQyr9DioGSEm=ywsnw$5Ud>mWn}N> zjiujJg^$S?DNiJj!OtBpXi6KTHs$Neu>{~>qYid#bk3};Rd z*ec6bXBB41tzg}G#Q`>-*DzA6?dy>o=<^Miy+{NYfB%g?b)7kya#Kcza$%O^ylp|7 z7AmO0Iw`-BDujN7cC|lBxb+%x*)LJAXtHhG@ATe;*v0^^jr*C5m8d*RI(_xk1a98~ zT)Y^B`wGEz=^wgcd>SMt{W1D9938n4p-asA_qn4e+UqP$uorECo3_wMv@1=t2vJM2 z&Ob~yf4eB?6zSu0Okf6{6LmB`2*7t;%8aBVu4ckFj%wQnH-G5gs;$v)j_q~H>+3_7 z%$5328EedOjgXxvAs48xX!S_ZD}S^tyl%@=)a%~Q`;3aTXj{pXiRvo6G>z^p7W6fu z@U-lQj;l)Cvsv4QqM+{-yG_6z zIXVj&jb@G(+5P=U21VHNyY$M8AhJH|?(s8ECMXE`)|NzIongXMP{F?0=u)hE z^1D5gOFHz*T4UtD<{meFn=m}#W}Dh@zFljoz1W|3?KNf^|=JZfPl&9^W-pa7&}m9n=iBpoN_e+&BW zu*eO~QI^t-=8x^M0P5u|ldR6+V;^pov{TN}`2q$u|A$wsf2!GjONwLd`Y2NUus;Oo z^M=R^j(5R&!^uO)dxjsEfB*O-%cA|JHKKxjsz~{RDRgJtr|vDFiZ0JNN+4s!A|;YF z{zGW#Z&9T)J>N7Q(cOlNQ|&Brf5hO8kMSsfn=Im?2o6$&Pd&bC&k9C-P4t$~G)wtX z-3UXbYGoN1k|rCU9!Cukdwg%Rk+9K(rrbgYLFHGQBeQB0H~mSFUZ>sk>rB%BntniJ z{cqQB0*FpwKJe+6yQ6E4HBQ=7)(7SK&T9o{a|Rd@j<1TItZK+)c+!one=jc9?R?JJ zTh7_j*x%klAfg?yjaKOz;s$x1JmFLq9&RWN7pXSAnH^Hr$HI_lra1S%1*cEuc~ zkKGnit^u}1qu&foF(4j`CMKjMd1?nNQG)l=z#0B*9>%>ioJz0d%9HNZe?MFM_Gn0sqm;H1 zt+`J`wEPrHboxVlgB7VdbqIYTNfNTTzR!o=Vys)s?$OecH&iwj#QkdG%f=_fBcW(n zRa(#D!`uKuK)t`X)Y&jZ%qoVW4SSGH035X?WqW;E?1J3{+MbkO_Z63M#YuU*r=UIh zDg6u)&V=wveZ>~FeKht3XMX@O)zIKk?f2KAeY;4|rZk)`^^QKO^l~1B{^%fWwLdV5 z7Tt+BeXck0VM|EJa(!vvh&R?PIM-_|xi&$2g?I4Sw~t9$EZG6d?k?VY1Dgu3)BFx% z(b?4OwaODs&R`6!Ez2-T9bYlH^ zAdYPxXOO^UjK(b;9~nSscQhAn|NgpU$t7pgkeVya1?v3m^VV27D150EKj}r}fmkBj zKJ?L}$EU+~9$)Yb9cny2#$&|HzP>F8cuGryhH(h#3uH420DmHUxv$nR`R1NQPQ&}) z&g1S6IpC7M(TeiuZtuVB3G96UFQT_zGSv1hLnW8=Ck1k~gzd1BDj1lFNO3-agXL731c6L1@ z80t*LX8R?YJ%2`uO!;)F`ZL+&S&&skc<>Pk8=maboBn{<+k!a6>n@@No zU?t1P0J=@pziu!`9P>GQz(|1V*(mw*K6UbKMqbkcokFu4_S95sJ z)6*|kjyTAICJ!>q-Q7NteL7y66;q4jWlyDRop+m4Y=0q9hDQ5vykfHJSe((cZR;mf zi>V|58~p9%!GkS7`!>6Awv$rduqSOm)2Q0l4t!+7uR%J48T9kkR@HP{&^Wz?y{M`HxbwG zDH=5J%D26SW9v;{xXp^n$vYgBMDm$iBDj;|aXqcWO)YGC$r& z&c1~H+RtMZPaC>OH6!#NO}>5x#n3$yiTI=}lpjtUzu^*RqIJVgc$q&s-}Jh{Xjm+X z2$uXwLWbDU6SeYm7WRk+=YqnL#pa+RN1z_@8jyq&@u7+G5sq3p`*$$TZ{@M=8|ap4 zpnn@*QS?fX7bTnT6*n9jXf}rrQ-Sr&d?=XMXC6larq%Uso>BH!5wj(Fp&W0tpK+M| zYJWLmpc1A-qB|bdha2;4Lor}?Y)|RDj>T6zLVmF0GvTXZ{5H=5!R%uc>dV~x;Fv}1 zRMEamB8LR3Fgho{5MzI|uqCr`XCsn7et$j1%3Osb8F@>wi6YfhPyfc<=6_Q)9-%}Mjwup7O7rpGAkY-Qr|LuYMmerx;l6@ zr^dWdO%>}}fMOrmdf+#^DsC!EPv^4)vD?lAJGU#$2&4 zj4QB&O1E4O>9H3J^_Wyh&cSP1NPnlXx2T+mHqF1aTG!E2h}^)ig@*Ndi9RI`Uhlzu z+Y;Wp2q)PS&gpc;fpSKHypH?AguD?PI)S{dx8-`1IRVwApMqo#c^Xf%0p{g(GoJb& zNMJY)9H(=vaQ6j|?+<9z7l?Z;g3OVV=_R4jaU}iY)y7;57Yzxt>TI8jle>(kgBt+SQ@_Kg23o-8YW2zb22! z@}Ig)T34q7e)_hBnA;s6f9+|{x!TSQc zw59#&t=lg8!@bUMG{;JRTmd(y z?4i$GjP*F^$1O=iyub}mdOfV3Yx$XHguPm%J>aWcVog5$BY&w#@RTHE18!gvWqPW5 z-d`_E-o(|qIaOo*Goodjk_E?@5RMU<2*~A+a4%hX0eWzRnq0GKYH5=) zI=ZjV1-Eg*cYotQ%CQ=QmeutqknU|y$a;oF3BII`#Yj;HA(>S_gs-&dXV zeXS89=cwp8f?K|Fo_{ap&N%+Oe-{MqoC>sDg6CK*Lb3kI8J8c}+FByk!+Mq=quRrh zzMkj1*T>hFI9k6>Lv2NeF4<0bpLnjg!q@8q|2ZP8K!1}yZi?xK*VW!xq)z79t@h}8 z_pyc*52#dw&1vsH6KBd~I?5wt<@@s;^B3+#m{XY!r;xfUIrEh1J4{<&F4vR~G{f>N zN&@4b-H*~DFZA2UqhTTZZ;z(W>l_)X0r+*r6w~i88KFiLNjprNE$oTbip+f0{(DwntxNN9W^+7atr8x)Jqo35lJWF;kn+D>&+U% zEA|>7>!M&%$7&(w2#QNVFSp=NzU@zYTVj2}gDPfW3Z#(ji$*^~fC5OG zE8F_1M+oUFvDonlcq%P;*^YTvF|F7VHlxL+Ym>F>S`wwSWLI&>^dvg?UQge%7x{gY zTE4UrHB9^{4!!fpM#_T zi(K$My;68m>j>yg`x`pefZN4n4rHN?^pj{-p4xgpis7c#FAY>gom=4&Hh&aTZf|k1 z>`WB9mAn0h*;TF~z`oG~T9*A2evz^JN8U3{yJDqtUqtz^)UcZ5jgGp}D+LF#KRMwW zccClJC^>*64yy3-SOiS<4JxreQ?t@?t(oliHK^?Ei8kvi?lsK`Qs5X1%W1No;u`lO z0@e=d-ICn#4E9zknKh^Or+;8V=~!n|hsH-=?KIgKAsp}x!er-KcK0l@Y1ld>nTI_w zk1Imty3NZ&2%CJ;GB=Btk8~g!v@OiDd}XsdeRyh-^{z>@iNE%hH7Z6Y0eUP5Kx+3T zt%p5@d&?&@g4oPff@S(!ZIoC`nYHQt$ib$Qxr6c37EmVY9y$4bjen*U%j{0w%!2#~ z-HvP}Uso(^M4usv7N;!p^J|Gr*6NZqmT!V*;2hK7`+DcN-uxT3BT4lAx=6j7x)HX9 zeJ3EVd_;qP>Fvn24<{L9^`}l&4g!^fKSZU`s{vNJNEmz|eT`8*B;}X{P~G#K`BYtV z)P(M)N&UJdA;Ew7n}6}ASE5Clmn9JyG9WX<%Gc++{`q_{d$0mDAg?t;0(+req>QYZ z%N;dj&@*D-drP4(Zf~!5!dx^$&IHD+OF{v$XAWZD{v%$ajO~T-8XgKyN_)afb=A&! z%6TD3IsXcQ@5|EO7ccnq#?iTb5L(oPI~+K3c6*4ln?agOPJhc`e}hZpq!pm2UvU8g z1#6-K{S*&0^T8~vL6hCrYyVu2av^=F{xz>877_SfS_PskqS5GoM{5zu^xt%Uoy~Zu z+k^=Ca4?z0y;Wp{LR_U-29EDX%uN=-6;j?2R`uUNL{jE?O`lNIAsP{SZ7gs(z7!Jb zfIxEg*^-PdXn!sNXV3Nauj}o`K4w=rqdoasu)##H882-DwOIU7ZEDyt zP(A&wjD(3?4>^5{?!PgD->G^UDeKq7w9xR$_&8OXKd~KNMx|uHc3__`(V5pcU)|SR z*;Q}_9DkyWZ^64*!)iufIsNw;9x&?IYH2pQU04`Apw| z`WC*A4vfQ;q$WM-^xQpTfWt&s?(y?v_ig&;X!AI!zuWz$s%<{zlHVF`nSMk_%b#Wy zwQy59`^#_gS`FW#yoHdYorIm?3GTKe3mDh)N`H;E)Ue#PafC#kp+kI<|B}tVezozB z5*48`pb$siolXwbWK1!nOIqUioX!=(O#QQOFA5Co-bw_*|%xilkrCnJi zCV$*qBN|20+0M)(fBQ2@SGVW18@qG+HK;XoI`xkp?ArN-T~i3HMhN&rnKC!tUEY+$ zUU(w&^z?5a$(1!m5B=V(b}B1n-}`+rQTG3}Ao0>wW3I*fGvmI>XN}M_UmPY+`iuLO z?n_9k^8<86`3o=Z67Kw^UdFM zyyP`)gju674w#>1V@F7O9>>16AMFeEsW>;pn`*=FK!f5O<}uO!o^v5j9KEkG`NtL-zKLl#NvyCuTnzBB8%Gm}7NF=UBp41Y;s zk3AiqT*FzbZS2w}*=I)N%l6u((aYL|C!yf6^gAhsitEVIYj+$HPvH4?ct8t$tN!+LMINtZ`=Zz-JUpf$&bn>P zMf$_y6l~m5_Rn~nCj9`cCu?}JNq_n|XD-P0M3i1J{X|Mpe#c5dg0m#^V)P7_zz!OD zz+(;Q_ojTmHPy^vO)8SMTzb(~ezfX-SGOd4IwFRde3{Pc^xxk*s(^{$EX5 zvYkI+BqN=tzXX&#Rv#=;L%QL(y^FF2f;dB)Pi#-BBT}O?NwZ+5tSy#`3;ZJ$|ynaLJA(C-%GmO!dzAl4R7s+4kg4W+UasU;Kx?JKBMH2aYe9< zMc;t5(2*#zo%W%o`3)WFYNFEb=wIy+HS5g4px0jY(EMLTJSAvB1{vIG>!79?HHImZ zjHl;{>$u`f{`O}a%R?10VSnmRk}{TRZEa&3Yk0qt+%LS5ug|#s`x(vDGN@U%O!dM= zbONeTDqrVkH|*bl#vu~Ir+0uBIVFZ(cs(sKil*iMd9^!(!D5SV<5YPw;{RNq?kw5s;EZF2cK@ zkDB0(x7u^VT;4J~e=c~83r?yRb6D~wCtaTDk?U(HR zCaWm@B9AbJkDzNKhqTZj+ShCR0Jn2gD zhD2G<8W$?jI_1xjZA!$jvvf5aXP1%;@t}(7I=?NJ91DAxRdq@C2dQG9V(oqEyng=Y z6j;V#|4KmK6~I$@fK3~|`aks(zvd21CI=!qB*pWIjJ_?`$BBJ}xSGZIcJP&Wu-A2l zhU+K#iv7`D6@Rs2Nc%H{yx;0EShxibTK?sLm)uT(s2l6_CNHs;Ny1YkaQ?;@P(_0; z22RI3GT5IOx1#CFe*r@djfA9jwEEdsOvWG&AVu256hYOno)Hk<)7w<#=!K6oRD?Js}mfc61|#`s38mu-le`w=O|3Wn_` zX18P_G;h%AI9)hZ3uS6A-1jXqivI4b<7N}9>I>q%?$=m0{^W|=kSk7apwUAU-YWon z%S!{@PapYncH?{eK;HG%$66oldrkvWY6hz}Cz8A4zH$DeSsnT9Q7T5NWU{gSNrm0XVVtC-W&93eJ6;K zl2uMyY81cyZ@|JCu5M$-vJKE3`R)r;)j#0dAl6GFxJ<h9!RwxY)3kSA*(>+qhi}K|fiI=j?&{Y8!3VK0>m&aeC0ffKr||>D~XWLZ`eO#o#;ryWO0mO#XV@(m}ZtCO5J}` z+8ViO?v>X)Ilr&xymZp{uR}5FU&ecnhkv*w&>;8ZQau2YD~QhLf=4d+{tf#TM;LKj z<~5&D_<~nu0}S8CyW+{ZN=}@$K0^pT!B!?TUe3oOx2(nFK!Jr~1hBhD9?;BvmtZi+ z$L{4J;gkE%Hg;&Oi)2A46U{@2LQK`*!TNWlhn7`uz|`Ls;H&n?!}cISzL>%kIe)$u z7hJ;gENE`gW~gzt5w_lsEOa}{rnc^n#`W})Y?He+i^t_it^qNEsf>b_F*cT$8!6YG z4lVW5{tA&iJu&YK_QPqB-h!~h@IP=3##LCEtJm+NQ&dNq5F@_5yaeb%$NPGe>53Xp zaeST&G_^_Z#Th;#dvg@j?4?!eyMO-cE#7m%w>0wr*aE?Xo$Fgj6I@u6a8;cs$2xNW zBV@c`k-KGuKH%CW=^Ea#g`ozcz74ml_V{LBIQ}$%*N*bACg}ONe?h11`W7OUelkG- z6b&XyvrM1SbrspGgp z5Xf^#i_yyKif69)mOd^*qCqkoF;qkeRw;GKsCy)~mEj`=Z@5}QnQqK8D)Y>Z=2GW# z6mX?&?J?|65-B8dRvGi>AQ>r7P-dQmK~MR5@1e+(87ardxNo0)Vt_iWB8ao0Cvg<;?&lj1oDmM~D;>1q;ba2}kLY`7qYP zbFIl$_Oe{-b6f1m`-~~ZqdFy*l1L>=i!44=DO$+D8U2h`OVwFo7=L|)$HzL~=<Qtid6o?J;i;P2Z-9#{i-?npc?GZPBW??id z`n5-_<&R951$Mq*j!NoQV`IA)%Qb+q{yGb8u~+ z$We2#Bmr||mCRyoog_XQybYMmhKTMSQNvJx0tx?sFE*?$YKv(=BBS1cT=Oi+IJ z<<|Lf32Mmk47I9!Bz*J=bn1{G*`-#%I@^@<|M7(10&(Vo(>+E4>8mNvT;_(sQh@;0 zBXM}!XlLwNIA#P|*Y{~kBcs<2b&`)#_MbVJ9KCSQl1PpZqyk6~wl%9PVIal|ACv{f z6+PUMRsdSjljLxJ4{xNsv`GW#WQOl1k0a>hb*LlYbmJwe?c6`hm)^9qQH*qtjFK{7 zd+#dp&zNm&%y#ih&+1C)CdW)aU(c%eN7l{jdXA&LynjC5>0+xvq*$eJ1d)e4A<4b* z@pf-SDkY@GT^I**<8!%Xz8qH9k@%0gj>wCk_4ia7-C|JSzm^x^(>&(3CZv~04H^YK#pll`OyGxlM zl=*W2z<+V74Wa+x2dDFr$;}Jx7|eIz5)Ki;V{S-)K6OjJZE%+Kr-Ztzil^QA-TlDV zORZTk1WR`kT@^5^{3FqMEJ2KS!<_ZhSBIEp%GKCu`|ojQ^Js89I1d6iw&`B`Oyoy4L$ zkYyltES%C~N^)rK3tqY41gNF>5C6izR5R$3J3w0A|GRTsZ!6)cAw4If;J#k_zFv5s zLVr2ppG$i{nqt$c@EJ$_C6oX$!wLBLctBs*RJNnjD*O8O*uR^JDml;LF@j5^J*3p2 zfZRj2)?0oqS97^H>y|4YQ<($naJ8jxY|9=ZkZLD-p+rSp{RQd^@T=PFMaXoyelzmP zl!8Zu`Njc)wdEjQNeS}t3}-bJiTBR+xqlh`UJ(pUDy|w+JIks=Tt4zzgZjUyGA#`v zEpYyZ7x;QO<)O~5Q}g2LAE>`^qO$hr6Lao%q{}RETb5yN(2&Eo7P0+|N-?-|!T0kb zLwZe`N`gq0M0$<@AUf<@wiDQLhtf@;=mVjlJejW7pAN;HSxSpM(e>1q@lnbBB7c7% zR_RX^tP#D*{?eZ=(VtEWjV%@jTl6kqbkq6+#1fyn$D%Y8>NM|kv+V&S>u~&|XtgvS ze*QH;s*tRO1@+w?i1D~SHpVo?HS~2j?ulkneaqbD<8OAXmFt^wJ-T4+rQ`x{pGa{x zn9@X8&(l%@clu}Px)@8ug+!zKQGZk}f#(n-jy!q;0o~4Z@-Z{ zGbal&D~EHE>SH{S8$C`x?1dTg7!nN3ulc1ek>3ym5f3aQ_Di46x>2ZikBCQGy0V@u zGmY!H;_=T%l*H;C#_D1kAHc*!Yp{^T$kKj~Gt7H}@#~ohpnCjVQ-lM0jm+Qv7a!&d ziJ`4J?fsS@u>?-0NURQVA%6+A*J$`6vYr-3CjhBQ{{Ou7P!7l;{XR$wDhaeB?~1To zX|TSoSLf@|3+<}T80XS3We~4HETZNu=Q!7rTZ7Z+qow?q78)Y_DyCl+e#8q#3 z%ykq^OhygnFK|BV52$I$W5nwp>iU5 zii;c3)P^8rF4vVbuO~>XZx=spI{qMF9++qq9puP{AYGAl2eaAYlVL7`E-@GI*Y>*L znhQ>b1gZltrT!EjV}B(Bw@{PCA+30CftDnzy*?`rFzI|XZT_Hq%>wYjhRI6LGa8kV z*(_>Wy<=X9ko^#Wc0{0ANuLXXS@w;Wo9n`7z36(D^@GV3ZIOs~6Pjx|9=Qzfz&G&R zv=w-p2Yb(sua&gNqovpXm$!GVg9X2o*NO<@H@OcJZ%F&D$$wtq%Ujqw~n=S^`~y*h_MzcS^(f0U6zJ9Q-JYB(vv|xryaV9d%_I zxbm4Wfn)@7$V_h`$(E0F4Ti`BJIRyFQ){pNNj&HAt9P|O%thyF02qIh6_6_K9MBZ? zv(o_?tWL*cwtq3!nW+t$%V%J&D-_3>lwJDws}g{jEv5RDP+}5zIh*azkwyRG{IXRs zkp|A+M?_|Rcqhsmm^TlKBSPzJ2BfM zlX5BwsQ-By>(|r0<5@aPA>cOjt_;BG65!a+^D{`g5`TOF-f8o?Uzf1&*0NLYGv7sHb4fXFX_q)&mKv*2WfjN{Q$IM{_1Fj2!q zJ%=y1CDxoB<{0x#0cYdn5`N7V@xpc87fe~bZhv1@G8I!lm^xA6nWSyM`rl|r_coM? zOESe`xpsNKUmW2c$V+=-{rgEeK+=T)ABP5V_I!{;+GgMbi*#~XQfIS z=zq@@ZE^cLFW+Q(kz}U35zM(R2N~{~mZ1uHky`;1T=|!t3-05B?~h3HMD^5{nl(68 z6VJ@nC4JXzub(oWpRuc5+sFz9D#XwvG>}ZQCf2CX8KBlO;LIBHM+Y3gdJ}iFPfWW6qZ$ zT3<(p|L+|v;~ktpLs-Cg{Z>|@_a+8ngAX7@UF*kK9Pp6VJjllDlH2!dEl=-cWq&bR zj=yM}xwh!-1(bhEZ{z)=B!EX?!2M=Na#Fqnxh=1{fHFBuB^{pu;u3z^J`0+pfR&{H zZSlF;$zq*uc9oySA{Qg%(#9!{%&iEpmHII>A7q9mG9pUUdW>U?k*fftz7?Dwg=M(l(Ki zV*ss_y|E($N*=?K;TTNAPGj+O-Dqrb$r+%HHekRKr1MxLBqEq{jAw8&9u(JEV#0aO z=h8#IuUAGCVxbubNENKOg>BYXH#m~9ue!%VCMe*aYQCo0{;EXj#(%4bv?FPE#HS0N zw!`F6h7}Buyl7nnruAqP6L;)_^BLyICg`MhEs+7~xo{x#LnOja8HHKD2bqPLb3MFk z$IyP!b@{5I$UXX&X$jdze8ZX%er5eS#%8_g9Xc<_pMKSPS;^KJq_Pnds%YrghJeA; ziuAT0gv!!BQ`C_E@qgkd&!0`9X3?2*FZv_CnINumNwtnL;K?qfR?EXaz+{+?eNFF6 zD3Qz~3r8Yd=UXl*=0G)&V5E5{X9DQcNCaEyGn)0&>Z@Q6w)1t#~jH|`wCh|)c) zMnjxX1An+n%19R_%6j?BVCiK|8^GOZDPJ;N)A+|nOQN46N!0vn{X-!uthw(?EO$4; zH|?vLphLF}8NuHpX(tIHWq9ItOg+p zU)o4xiA7`qz)iKrui*?QJo}RvTNRhy!BQW+&gldcufkg^fzw+F2DTAWIS`vP5nK>v zawB2@S%$-XPibB6q#?%3RwpBXfGeD8eYi|9tZql>e&kx)2YDbl?Hnzfw%!pw&>TN) zdVe5$=@s9T*V+s<59H2N=|MN~`0%D2hl%7b1GHOnVxXTZPEg>sMvhFpu|$30AjR2C zR$m6xZyQdWkXY9TI_NHcUC*HYs<9pKF$yOfDHaREL2RR;9HTf?fApW`>4WR$|I}+% z9A?Qlg#Zk)ze+`-<3JDskW0x}A6Mj7_0f(%L$vJZM6Mk%jy4))px-ei9Kl zS*{5OkciTJN$-LXyD$CnxQ=C{_!QMi^XLQL@qfW+O^$DHC4Pzf~tUzTYm&A zLz3&F9CI|U1w-VxFDf$Ur+tMt4=OGlOepq5?o43Y(u@3}y|4}xyD_Qk7)#}o=GVX1 zH7T?<%w5yiG^e&0A-Mcy4)|dCrzb+N<4uVMgIuEpD4Pi1JoR_HTryZ9J)4mb~%Ba=2-a$1IZ)fPcbMwp+#W zd8QQ2PrpvN0KM!UK?8EOBH>S%R$nfpLd5d>@%Z3^w(#86SDg|K)O2(B)Hk-66G4J` zlXDcUaj0v!AcM{`0j9bYuyzhZah}27}HAOJV+s(kLAH zc%cYI>`qm#VMmD*UhG~OMmv)aKmnHMz^T$7?z`_cmf~YSp2Z@mtbg0&V-P2l96_wY z&%mKS^Um3jrR6h5(l%>x0WYII`(&Q?rT^L{u{T>P&SK!5TWjsQJ9pS}q!5gNqRf_caf)wD)b0Z&{3}UkJy*(piYsLN7Q6QtZQtb*N0G`iE7b_ zc*+y{_Ys?&`hQqwq89+)Vhv-M9+6tx6@2Wjp!~ee`K3z`Z?8pc=i*K*>Feb)neKH- ze{`r*1mJF`+yMb#u6N&cELG!7;+-O4bcNJd4eNgH}Hr6D=lR)jVtfNvAtfw_WcT??@{|I518ymcLI)5 zI0G5m$Hu*9ykmEuKz<%^!^-WL0iJYjH7cP!PCl*%(IYF641wB*B(!*RtiIQSmr-Kp zihu9bThzr^^h~z0OsKp_Kpi~R4`kGxKl$Mu6mCaWY`4>A?B}ea_sjQD#!aJl5oceb zAow%a%kNOfXVUx#^eBVtK3mseuu1y}sYd)^l-{-yppZP_q;Y35V{2JnMh*tha~AyB zQI1&i`I>X?2e}ZJ&KK9l2eg2tlY2$K@qc{4?OQ6NP)K5Jlf-dE;d8>Qv^KK12WXnY zkUdtO?Db4qcg5_sf9d^9X(cn*W{&fN9u*{Ah5-L#UW8-@vDxG&JbA9>$Jb1Tws+Qn zEi>D6(3K9eqEInhzSp-N0 zU8tw>?8zNLOAWpV(Ja2fIjZ%F@-=?_K3 z{Pz$hyng=zYonn^Ymhav>_Z_HfjhH5TkSYi2}SHB#Y&R$#2!X>zD)`TGZSZBin_fG zeBEh4l8m8V4%`t7jWK+Y^MAQqk3por;LG>N?3cVum57!#B1eR@@?U1DyzAp5YPr%N z<=492Js9_T%F|flDJnT~BN}FzZDfIilcc1|Kwa|?A5{T$uiIQBKl``rW@K(|PEsY7 zFb6=A26`5Fp^<{*IH0ZE%i8utDesWDDR$;8Zm1;ZR8H}AY=5|Z4Szjx9n(}z{9Vho zXrtBF70>VT>EsI*#lg(3tQ!xIDFp#*8RiRv3j%x#Egk%$;?-bu44!W{H60>W3s2f5 zWer`(@oD2mtQKDja{@=z_NbRLUwR)l!ajG7UZf&Kg=NOI=Ot&R-HtrubOd!|4z0(d zkhS!*X=2NL2G4_OXnzq%RT3|)HcG!?>o}VC2O%^2HLBacwN@edJzRCT0|{|Z!GJ~@ z)fo{HP~$Dm@7Swxyn24izAW9p;+3?=GAnqhVDOS3%s~Jltv~Ur{!RL*=kS+i=Oe*t z!`%KE&->NaX&{kHs$w$?V<{SCEjjEeY-L|QMQ9RzDt#|Uz<)jZ&K6zP84#9S zb3JDw;%&bJ=gInUP9JEydq!^S@pN_8B}dVDJkJ@t*y4?8+raB-#rLP3I^o(r?NzV} zUKBH}>ka^pS$ti;a=9+hHb>YTqepkWAH&Zv={o+TviL;7eZFN0YL%gtoqkNeVx&p> z^Pe*|v8PiINn})b$p?YeewCnjOYK1`;Jt9-$4390=({jV~tl}P7oH=XU1jdpKfdxm{s1x;QJGYPMcuAtP=hrT@y_X+^ z1VDd%FE22hRY1M+H3TQ|2mGa#rDSFm^m*HD#msqLf1IGf1coh&N-jGxB(bj<07(&`nAEl)k2` z|4rD;k|1CHKBI8()#y)we!rfeBTvvA%^86iQ6zs}45(4YwT<45sh1#y1RD%{4?m!W z+w%N%cwLQ`M}-6;0q~bybp$%;wy-nIVqt{YlgVsjmQRI>VISiR>~^OISf_Yf(O8E@^T_7? zj-|7LUHDlh=OCO}i%ms|Ft}tsc}ahF(ze^9-i=s;huc=sbDAlb!<<3sr{|nk`;@HV zjb8%|=sS*3!j)2Bchq=Q7{|98M@k!UgiMyCN=7LjyOsdQqi6YMRa#@+hm;;>905UY z&6g}}$rc@sz}p*3?gLpqrEzNaC*Nvdz_L}mfWctu|rraJ_Uc`ujdh} z_{wPD6K8TzR~-mp%V=!YJ+S%dlE*I>5}hrvb?FNEP%W|0YYzo8t3XA&gU((CA${ML ze!=; z?aDj5{rST{M@-G=yT%Oyp>M zm#k}iExQ0{8gZv&9z$8%?e(D7e>RA=Axn>4yU8})P5F*u8$v(n z54ya<#m?)QEamk!ZeMSsms$E8trR`i*|jgA1?5iG;<10S#BqZxBlmxKytZ#Wm}{SV zB9t9?2A12K%%wf`!l7gXRFz6Lh&u*9U6;BIb5j!Hvd>P*CRd;XH+i-5Ye}Fn2y3NH z-r|I}y>Ykso6BS9((L@cp!iNE0J#E?R5>_lRm+|B_#4l&1C*c=u_)H3Ap+HT{@4cQ zA_$hp$Z!W$|A5Z5wmE;*C5^hVCnh%<%bxA7{3+NRR&x@Y7L4jZ6EpoL4z9~-+XVqU zY7#+mxQpei)J%ETC!qYM)=5I>oK>g7Y>y9L0c~pW`PV$5?l9Ck>7D>FXDi*7?L*vc z9}|$5jc@|ai#aymSbJ!eUU3N3G)^?#@#FF~EWwUxk^gst_Na0S#m{g~f`Ua;d2Oa3wB%wOC&=7J{@5lt6BCPa z06nlkYirWIq_cmU$447u_pe&NIno*Yj1`~$czd>{=vPiDWVbuRs3re>niYqrkqeV5 zl3{BoC|wv3FaNCO>)WVdI=qQ#B{piW!~v_!86O}US*xutTEnAzny~POkDJ42@@b$H z5(!~opp>}Y8ot0KqZGL^F_CCXlyDB_FTQXqQ_g*kJU4&l;D3-Hvuwfsur47S5kq80 zXcu%LY0y_lM}Kd$6{0;99X)H=PQW_^Ze>QHMnx~t=A$x8I*LS~J@j}3h=KBuEcSD~ zVccSXxq4S1_&xd{B@kzvv8_>SyvJ4NfoAqvhpE18sO?EPeNmDW_FWRzm0)CzXc5!R zke}-KlMR3Qt3h!n#4sD2nJUbW1{nPIV$Evg!ZqKISsvo(hHME*5K1IdwJF*ebb@0FGfsM zl8}Gs%%R-0kSWKWQ;>8KPs?9s!jarT00gt%y(hHTG4{0BmQP?pMD~;^R}lYyU-isa z?LWs)DnL@)R$<7f-J=-Mvk{x8>tr9Q*<0{m2-WuMQ6k8jAD>LWi)5{BRyWAU?j2^M zy>&;AC4n}=*>ZyNZu9M5I zgRjn!Ifw!JtDrR$L`n@pq6L>k1mC+FfgG* z$2o36d3{YRR_V(28g2|~^R}3y?d*SX^yk-h1GFkC535-7XT=Oax;uL**KR{R`X%@b zGd2z0c0Vr)JCjcq7u_%(+1P(LvY&6cw{KaO&rh}^QUshCHtXvB1ks?2FNw6z3)&V# zNo(!6;fOFmA@zQ5G#i&7!pzN`02_AxQg>`(&W|2T>|$OAjl+OZpD%g5NbY}D#P*b9 zh)6GT`rH#oc>_#480h`B7eJxh{!^%K&zpWgF_-0?__uN2Yh1JwZ{JRLO4hUv2$|2) zlO6GD;wN!Fe_gNk>rFUmFsM~fv2bRxV}hzyaR607s=wS}OxJ8#m5=}(vy}k*vxX~9 zzCPg2XtJA7pXel)zrl(~WQ7-UUY`wri>h8?Tb7mQrk<}ycmD-Tlh#mdcgX@HW7G<@ zAM<)8cG5dXl&}l97@4%~S-HNT|ByIBF>MX)2DHDzUQ=QcJ7m~zwR}b8(kFlA zIfwU zi?$1TT;sr3^ljtEYm3;A0`^ybUHyB9N0|VboBW1?yym2?wf*VoQ-~blAywPhGojr) zR?FMB+3wk$NKO5{Gz?B}aZNtBS&mdQi+Lc|eoK|+I6oX%aphf!oJQ+b*T`1GN&GdS z%q(7p?9#0z?TG_6*slzbhRxE~C7=F9_*g{Y=|5qJZNW2NVGR{s-wAK!C)w zeWW7Q4!FE?d|1*}i~su=E{Kc?%e(CZa4|sYN~71ExpPlSTR1l@}ZwOCvI_B-ysR@*|0H@W`^-z z+#|yyu0v@hcJKBJ@>AE)lBC~^#7kTM^!V8X2}#;PdI_n@h@m}HI24Kf1I|=`g&`NC z%P|B8t-=e-`YqiTFQ?kdF)k^4H?w5>w9X8U?CFc6hJfaG+RKQ4&0fCY*zpSQ{_2xr z&yTty1n{2da_+SsUu!-;J8&5i3%cpJG~e&X(uXOYF4orAGj4BzLGQY)9~MHiComl* zN^cFH?&F&)Sc2I%oOdo+ypoxL<@^Rr7)V&s3O7UYl0|XbMze6+UK`Ot<;h)44jvij z5m#$_o$hFIyf^=U5u9pIo>@9DD~7tcz2H~*f|+h?9C~Y;lu>n=Q2JFi<081WLphKh z+uN*}2An&tc;$){ZZ6^SOByrWoKRE*?H1^jxyh1BAW%V_CD9J>Q~P1t3jNKk6;`Xc zMh?9v+k1}(g?{QfuFoQUdJl`^Yk7r#pzTkeFxfZRdy%AnOhMa19X>D4!I45KpHOd# zbP8Bwlm?2rIkMg?`8E{IfLUkGhsk4ZxZ76hv%`~*NLd!v)pJlx1z4UlS67h(UKQnp zcJ{9fvJw>yy;#1l{{~gi8DVr}`*pYHk?x=|p1zC-x0E!_ z7vZGLgnaWTxomWI+N#0bAig<&RUugke{H{IF$#$8g0o&KfUL>HL4-YC z&b(co;Q0-ggIEFrk;Utzdggx-wIunVL?pyWP&=vcdL`fqNnGa9H)m{ObYvtZ<5)Um zA}DVrVVEQNR`jk!wEGCFW3imyU$!FLfm0VU#3Ame5Dw4y1(F#l!`qWe&~|MjmACzn z+vrM%e=;Q_B(cK*3e!`c4$b;xXToV6rK9*fP4tFqiSF_Bt{EV$2}l%y!|_ot?KMs% z%6%+Q_98nn5iBS0m;wH5f92o(>)WABwe!geoyl!*vQkMd3n?g_0YB&+)?AvI&$Y_C z7`lIvhxV+%^^;LTbSkm3@<53 z+SrOgeWG+4q|mRrBINjGBzv68dn^FpCD(s1x%w)0pCADBsQAp;&HVGy`ymU!O^N8F?gLg~zs&__ zIjpCZ^im;O)uxoJWGQ+U=a#lqQk=Eu@Q2Sb#Ls3w3G95sN%g_}=oka1AF_sJ9P~K% zP)Z?~cI;x4#mr2EaA;lWSRq|K6Lr=8-+SWC7_P_8WjA*;58k1a|jwNA*{LVA#?k}-B;t8hWXrtBa$Vkbtaa`0$Q<+??cj<;Z9e>0oeHXP=14?OP1m=y|1q4bgXpq5=uTDjdWLt%wxx$?JAF_oA5lL%2e_izm~`^{Z!~1rC(R^pNKTh~cWE5Gt#ibIl8_x` z;R{ZE=YrGi?J7IH*46gee~$S}s)0Rx_?ov^+jxs?#%A?O+g;jz{vKQthF=k;-qEYO zUNMBZ^D9z=W{@MuMoOAHGUm+IgZqozyLD%=pZ?CHDaOivRjyzvGRdtf{t_~bzWtw) zV2@L6l6+E*oS6sm5FWNBlJQSU07ZAde`j=Uk)eYTtFm4Z zrFpAcm2Bin`P;`FdcR#@cV?LNydN~F^$T5hcL=bulnA<~`oZ6}Wm(ik+F9GyIYGkN zN286}gxCC@)m9EzSCGGG3SGJ8W!^91sE*^_ezTGZeJ>``54IObzU;@WjJiV4qzdua z=O3+B8aM@kMD%_Ee^p(vv|G?i*NAt#j@W?vEnHJEG347XNhwQsc#ioCu`3_Q^#|jk zdbo7^#xU!oAxe(+qygO0-7ujvJUz@U2*lX<0TE-QX|HD}yAt`1k%tGzI%4%UEilYX1IID(Bg```1wSAzm$)0f4*lUkJneMFO!#6@J>*7 z^e_co$C75oS)Ntw)KUKW)+SS%kw+7ttr2f`Dp5StBFfHrqjorA)Yzu) z3=+bu%yorHv2Z%`ecTzSk&n?qu+(S}dMHPFOFo_}PGa-!eAMV~6~~s?cm-YY8ZWg+ zkEHT5lb6hK-p63rx2NY^W?9{un23#s>DGdFCOeKOe^g6YNco6lfXq}*#{(j5=$9Ka zNu<+9WCPppghRsU++024FD;wVF~z4$H$^=Cw7$=X;ARzE82DN_7(2L6X1COjU=de$ zCj6JU02v9g`4F|o1|wzW>*2|Z<~GJmkhzff7ub?k%-8OrX(#xEqCj4@Bk!Zf2{XT- zeN24Df2a+_BOS@7KYyj77-X3JpOJ3~Pd3Uj@!VdKOsR43oMzE}nnZFj-3@QG&$cE$ zQBq2FnO3#KW_NN%c~rQGUM<@;t&U{Bxh{~KgOn!s80_seO#mO z55%zEU#QEi?Ep0Ja%6(fQ=jZchimfsY7T6Ue{*`}&IAdRdail&YrcQXOZ&s|B{59l zaaP(K>D@JsA3I_RxmgxSIR?T;rpEucB3p9XnwCV7hNi^aa%uuyPWU;dZfOKayU@ED zAwZ0M_c1$Oj2yhh3n67{TFx`1uOq2<*VZ*1Vx42}I|kX@N#g5tbqW~pHy6<2YR0V) zVZMVgX_q*=M1-E;2xy8`V|>2j>+@L`bkQVH2{cwCOV#qbq9T^A>T-AC8LwdThN~1) z>zIG z`$v4`J*mJE6+J?#C9#zm)D}r7__H*XWN}ZCS*S*>b{BKV zLE*0}xDj+z2qa5KA3HiJgFzn+uEr66K_=+_6`o;mjJsMAj(Nt|i$gB5PBSe62H^-f zHRw1$yB68~>_4hOs*qhQUDSV3wgOwU{T@%V2BNrmvK)H>8-}UU*}d2F@A2vir0ali z#r5A|eI^`O8IV9ZNbkBqn#37eT?3Am5%1U53X4Nfz5^hXD9HAH2wud?ZqeU=W)`#x z0IBCXnZ=hdV9j~XRGz8VdH z;F`t8)2xB^vJe~jQ+vo1&-^+ReTSkiAM(90Zdp?~Iav4h@IGa?Zsbc~5T89}3$igm zea`_Hh54tm2zaTV_7X3u979a*NdA`hfY2&Lk3pPgghzO>mLGiEZS5>A*# zR4ZHCO1zHVSYQa-tbo^ht-99=WO{)BSZ=$HP`W*g81PZ^x7}p?e8zBpaah07Bg6`8 zkB|c9_ew-6&Kg2q+mf@2Ic&s4g`x43I|+L$b50lo;1*TQ7R6#X2_~;NEKXOnQ!*FZ>N@zj{L8{#^*LzEUq8@RC zUbmigvj1iPX~9=WoEg%8=*?nSXjmTO=d(CWA5cksq|TD4oGxUrV6-uN;`8<{x@1)a z<~C$MhDsXa%QHE#4wuZ)m*BBKy+Ne^JqxeV2m47z)H&>oUBL0n)m~zql`Y>D>9Dq* zmKDy)mM#aZ(tnU2cl*1SG*;HJVz=e!=h|mIT$R3qQVE{3-<>3X<%=%a@|U#_9YZ*F zgI`BViCFXJYo)7*jx>H??e9*T6IZ0VVJnM$htw05I76KA3KNlC`}}|l6wuCZ=+xd~;6d>$g+@%h?M$zuL~URE7Bl7me%EaB-X?an0Y9g*nz8aKS>X@dIB zTc#&DC-&X#WYfKW5=T1Ki&M;nDOf~6Z<(|JqtdpsiodjMOn+b3+xcrWGC%~2sgmA<}Lak>dLej;;0zGgW__a1SJ zU44nqS&5Z2iDD5GaZ11=1$NIdxm9O`AzsA&ts5X+zTZDzvc`oWaAlRXr_(7D+OFAd zOH^|?Kq~8h8B=_IQ1HZkXI?!nqSX5Jf&^+?hXk_gb-gp!d#?y# zhwpHG?RC=n*3_X z)-G(8^u9{>1ZNoJKvQK$(0G50W^VAXgU5z_y7XXwaVs%AN{p}si)aSvY^$z^`nPU_$@FnYR#8mHzhVB@A2VO+fv8PtoylH}&Oa;442F>D(wQBkKl zuN^*}Baq5f`?3Uto`k0nG?iqUsV5YhgJHGy1EgbiV#mI_hk_v2XNOEQwK`O(qh%JY9Sq(yrd z06Z*aS%LuHF-PDXAv<3f(4!l1-@3N_H|hu_eB@G=#|!ZY=&cpv#dyJ2Zl8r(@=j~L zj0;|07gU)?SXrS`#RBqWq~Y2AXMIk2t;BD|<@T4kp#(&KeJTdU zJh0I^9AqzUXWYXeF0~;~pIO*oC zyVEX(DO%D!AJ1R?=lN@|`WcBxs}AnuL9#JW!>Mg#cl5m&p{(s-N9{w!KXGq6-CgSx zv(T+N;mgx-oHiBf2^;Hb)PH3ErhC_(N^QA3oUH~{96*7O3G=Nz7PUKMXe)N za{o705@?M!g5~qd7<>(g#K^Ig#4#fzK`XNwJK<1$-dh~;v(mL4>2nt1F*;)Sive8$ zc5WS?NwVwWUM9ca(A^!0B-p?Bf6Bo!9C|ciUbOPcNp<0{651PulSN|-2vpbLdM2C6 z23aOM!mSNQ<+$0p6E`1}YNb_8o|uQGa9bGzAsXJJ2XfqemQ!2Bfz>lhpRi*kwB6j_ zOq9t&gj|?!4Zp4p!ajBm4O85sQ&|{m_)f)xkxrr*`015GJ4qomieX_2f12D!e)89T zxAhB7nLxsn+iu*x77l)9+R;xa#5O(3(q&O`YG9L=R~kT!h}#674;_Mx{6GV^d+-Oh z>XHnE$gI-4KNBpGS>W?zj_GU6@|x{C*Y~(oNa&3uPsmMU(Jx(lac&K zONuEKvw2M}r}$6F6(Gwsm&~LDB7c3|A5H-@&UVd;s9+YCG~=*p|gB5q?NJdUP;gkRUN9BW2oxlHl_SzFz+czCPU51Vrq2#OQ6e1Am@BKLdfg zw;G()ypZ&WgCd zeQz`hmFP38$k-xF<9h=H!c)_s5(&HX7(_QDJ%f@T!s4jaxfs`VLFwPKvnM?HoIOW6 zw2734OzKzMlLzRM7sqy13C?Gjx?7(0K9*ZTnD%Mjm5FsnAE>gG-F?@ujxP`=+m}A3 z1Rj5WPa2unYD$vQim{8CoSN(D5)dDg{(l9}3)|Sj&pCT>mpEOzL5G6SZ8chQ*0{1l zK0!MNanwJ7fJ+YHY{KScmY#*9vX!P=jJ!GA@7lw9;Lg{Ba9%A0Ujn3>()B#Ude|LT zOf1_Qcm!IUjk-PUaS~qf65jWyKPB0gIq!cWIiHukC|>1g@S*M6Dj3miiE>g8(kSr~ zzVqz-0WeJWc}=rh7$EiA{i(*<%Ac&hK0(a1ne7}7hce)LH6Jd)W?#BV8MDL>@snD| zz_guFdudqHA%;zL6xSr#UfqX#$pznP)>Yig*%@XrJt|j#8ibJT!EtRJOycND&Lwg`!jt zfouf|q3FVDm%FC~CV$mrVl3NqqF*s7`aKs!eWs(=)$@C=o&TVnNtRBB1EZ&cGyX9% z-Coz!4fxV6S7|?msbcNVA_>T4Y-xbTSmKvlRek2xR}F0F`6aCp`!a8;D%#?c#;vbe z*M5N`3KVO2>7Aw|$eN=$Z;o4oXyk&Es5O#UiV^(*Z{z_i(0^49NvowHO}N`eQl#HD zzI6S59OZ3P-2ewj8)@=@1K$^c8(=|By&5E{mo0kFaj0x-2}5s z{|NZtgnLTMK&w*2jQo9IT|H2_;B;U1IBrWoA1-&tY!$jBVOh@53{C3ZEeh3fx&7;M zt-N#0_UW*~YJbi7N~N$RdGF}wE9wA7!xJU%8hA$H@9*b^s0WJ4nKx|lgXwL{*OQyx zT|;e`Kxg$l9z$ApGS2<;*xcd-oa>PeyS=NVb$Dnp!mUN*(VuPrKq)U{AE?;}-jHgH zlRXp$sLmtDU>PTStgTD!Z!{fbD@GP%Te!KgNF3kG4u4XIhWHkXE^Gd85I#r+XRMxG zD|1QJy1VswP^$U5NTX-L`{5YPJ&kkdhc(9zxnWD{j*|=4f+$7v{vqZym3F=N=cAq% zeO_bjt9_jFDH@qhN^a?TMcOOkjbIZ8+Tgl9;IR)9D>rkzs&+H*vNKp4~Dd;Qv~sN)S;^}JW% z6agwDeiH(00k8Juq2R8y)rT$P8f#)=TxJ_WJEttJXP9*y;fC??foBqxp`xY#;?=$r zqF8mKUf=ud-+NlSw^Q@qroUiR2bxM+aEowbkQGT?UiTejAI{exxZ)b5y}0u}gDf$h(rrZQ?fu#Mxgcj^`wEV58#j zxwDt5s{|x}uc`j4v}3HL^k7&sVy=ZbeC8rfb^UjIKRaDLCELj#>KSZ1IPsq9{w^QM zam^GP#C9L?6ld(hx#h1XJpA~}vG+_<%3M61iHlWX{q%hgQv}gDo}*W(gGNT|_>SKU ziliD#-rAhO3hZ$Hfs~0>jlzttX<5WKw^PR}xJOeI@H)S!ma;ra8~|vt32q_Sw#RRG zmtm{~6@Tg+=m3cxQK=0g)$ehzt=^!_WrDv2(~Vqa7W1h#$!wUirkq8EKzH9FN30e5|&5&hr8w zGK{$e`yy*Z@_+ZlJlaI95eVI_IF=zL#O;+*P-eeV3QD>gHOfY|%Y+If;ycUL&Q6fApUE=WKclk zGW~*grocPq_?Cor%I%Yo=23cXms_m_IU@JOGu=r9MV+|TNZHNWW$;FJ-^y&*( z4}Ek63&>lR@4Q7&ye4g?rjX$O#)jH5mnp6UA8EBSP7SfkegFF-s*)FG1Inf|b@Jl( zVh^{uTp1Y~cxz231nUKYk3#Fqb0ZNI73cayDA>T90OA0PpgrIcEsr%;#QPj64;j-> z6mP4nGv{@sf(zmBR}oi^B&|wgiEkoVv6RkGsL${P z+n{}*3ptNs>nf?J_AVog8(-SqNJ#^X`Tl_I3npNlw#YZv(TUfhy&Li&wv1i2Y^GZ; z%}2mo+RkOd%;}rsbKrcFclX=O)o>x;EA7ea`n`^k4paGa1odpf za*`+}sxSI)e+?ByfY07`tM_BG^v7m~)RVhx5lbbJ?bo}^Nx0{bo2Lf*f|9+@_N?7xnYLDPhG;uM82C7(N+twiT(R^kPNiL4KbaEjAhn|numn3@ z6{tShOjbH7vi7cy^r-g2pZ_ips##Mr-t3S{7aijRe@%21YjsE7xhB5XhsMf&oi(;z zcTXSETZEhjA)oE6y==f&Cs3K2v-ewV&ySK|dyQR8@p7wY7p6*)Tq|s(qpMnpo!ZV7 zadog_$t|ajZvSvUMr2>^=6!wH8=}jH&fJ9qStP_{`hp3M%u8KLTqIWxp2y3i7USMENy3=2&ruB;eP4|Y7!?IHL*@e+|z7EeWq)kUon+k11Tcl;j@&A(iz(S{5PGslj5$9np+q;cG zmR~Fhhjgn5KJ{ZDB?%7U+WTo$t>aS8pW6uFMg!`Xd`m!!p@GxX*)7BpL&-`gBFs7+a__*5scnf@N_hxy2Mu4dp(NrZ{o}b{woz$UwuMa}7mR?E~t^2

    sj4f3T5BqXkm%r~L-NVG>?Vm!4Q$`kDS2ClPTwSj6ju(|>dc z6zWY96!w0)zQl+fQ6a7g(|8_9n7l-Sye&9HuJZp5-CD{5ivv5I3KDlX5P@QP1TzNM zb!_7)FYDJYxg%JpLFFnhf3Bk(J(e_Rmh3hcf*W~({beL)ZgNtse+rW^Nkx-zBn;YJS1@s)$Zp|nuvY{H_lGnmzz8Jr~0rKc4fD67G5!bt4T zM+AdwSFE$wiUsg?S^-nZQPGKuw>FVeN47(xmpxFFl6q@gvGyyz2H!l!CZR^XwI4pA z*P!wZqSoHuV)!q{e{q+?@bfD!F1UW-z3)B(yhz9T84tBk)4C`kN(Tn-HA&k_I&%1Q;K_(<>G=Y&lKIn)g3E?kb%IAXj*9AFk_`tMzTXA+IM>_V1 zD+!_r%{Y>#EfZ}6X?k>$drJH1M?8OnZMLUGBa)V0o;ej!f1j-V4Q^q?~$w2PmkK0Epn{?=Zys^Z-`yR6+5&H&c7 zQwp~@z}pWiVFMXNYGuaMe=p4T&kF-U=!Ue%gw`h~)B=T>{!zcQ!E zX;fdKx@5gm=C?)M;LMnrb}}OTq%M(xL$)6y&b;2MXme*`eOSBiTH+-{PuI=JlpY*at-Pa_pq+ULtT)Z)$Uie>#6tlE3cEO6qSrD#_3|DM;*PLm7I` z%Fvtqk@d@H;!elIDxKV0W8oZ()33f(3zGKeacm=R-F;l@mjF?cI>q^(Hu3Qr6^}sg zgJ?T%U|Y}hvT5HKrUqc_{(=z{S$PQtNbZmJR$v4P-aDw3&NW-Apk4_(%!+3(=<_qG zf0BNJjCoJ{H<^Y>}FL8ild@06%(O;`%o+~B$Hk<3jkvn1~Z(axilDUk!5tQXIUF~l8Xmo9x39YzK> z(j=m>{k}D}=vZ2J#cP)#VtmqSnZ1_3e}=GO5ZvPVOcL7rQ-Ahpp`cMR;3PFw#N}WO zX=5ncj>I{Sb(}fWt>v7BT2T#U)~2PJ&j?i`a=N{n_2b;Ok;{Suetm^) z<}2Uxx>Ih9Ajn1o){kyp3sO%Vw?3UCvM4Khvb6?5@8ol3P@0xU(-XnDYl7*of3Dx6 zn^FCL7n46Q-}$ZK(EukAF~_7)D)FA!Pj|a_SDp}VuLx4$N3YTRlKIZ8C0lE>E9J~EFlJZB_QBok!fA)yBu!NE%P|lVoBwYb;ir98MNXt4sCABnv!w9Pv zidMGu_>z)2Z5+v7+`3(2H|eCx3;8iHeiF{)x^IKgf`L{6^v>xxIe;`@7ZY@gK6G!_98XB}!caOp#%&XZSU%V^p&%o|tSzpuE0 zzKfbv6Pu3pl>2 zX&`^rin@pa(97eu-@DT!-hL+bqkoLT(P_9pK<{(g7A5yiKbFP#)-&M2aB!g}{4ebJ z&}*duECVj4KAW!xaHFAC;T$e?Wztk2Z=%{UuE@0d3MSRf=B^*_3=dvizSQ&j0>0)> zDRo2&1#@(ZUS3op=`QQ+-Ae-8kC&G9x;ts>)o$F9+6Qi~)~p>c0H@Gi8-M;sqMx`iTMIixQAtzwm5FnPBgxTa~BhimHq0`W`7ry^Yw#ZKG$S- zswD{p4qb5}$e<5R5C6@h+P-+{>Klxb_NcBOi<|tlL{d&uBR^q5-^MNp>+VRv9q~*n zlj9Y1lFzo4Nn#oCn=&`1VSfj~(ZLo*qI0I#D0C#bYw?sGcgHGV58NSWg3OI`j5@BK z$5-669WTkp>j$z5eo={TuKnYL)qcD%Vb0!S`CBRiUYw!4SLj~~X3s|ErU#5A3z$jU zEj~6@s_S#>6sUjSnx*##C}5t{BQBYg)IC*vCd3XkY1Ox*LM@*pH-EsE;1fFm_xaxU zKi|83G$X3^U8&^KKG{hGl#hP$N{8y{~u2CMGl3*1QG<6t4%)}m5cb&b{M%-WvE zS(8s-%fhtTXe@@koe7`_@+?CZq@>uFcfABGe|lw7?k}}yH5$=>U)Jni1dfzI7ZLc! z6m!JGt=mau^7qzQ3F;&$C*!mPknk*Gv}+e3d7L=X5|Nrol%}omM0**IZGAoE9`O3s zpXTJthSWJT&cZj&Ra#|hFkZd41!$&7F^hhh9=nvSJml}!W)GB4Qqt*M*>l!Q#^++D z8x}R~*tGJ;g z_9Xn0;onqROOj?)B}Z@3msC{;#Oz*P>dEr2da}qkYK28c+#lJyj)~Icy!Y-#kb5J; zO(i2D^3~@#|LOCb6o{%qy1%pQ%`W{oJ%2=y550k%vBW#Nmr+Vt2kLTveMah{G$`|U zqgc09Lw_rRHfzm$ZJO)cXt=Np-4Ul|AS7*MqU!Rey zYnsndlI};pRCfo0xr5cnqES&7cb!Aj41mQLr5jM3tJ9uRQpZygOErHq!l-RSZ8`w z&LF29ZL0kbYQT5;WjoDTx7`OLc(AC>G8f#qdsj*%|6NARPl;A=y<3IrzpcX3hquKL zPRq@bYodoo(u12_k$r9nB>rCC9)kE7CU-}+g+=khI?RdeQ{SQgIpUp(*Oh}6pNa!# zU0;!H+5qeFMG{;YZDZJL~qOWx4{xP{alm3;}?Ju z4B|+tsM6;bL3K;2=#iB9AS`4fu~#9@*L^6ijQ;m8Q;U3w9K7=T^|sl@hQJf72bNxQ z`vRoh#R^@A-%p|XuV;jdzeoDqVaCL4hMopC#oyGkqm1Arfu1G!(Z7>_l1R`mI{~j; z;ni75an4}V2qrR%q~bqvuDPQoL=KSr_naA+9OEdTvo`4yq(IQuZ7Ik*`}f{sBuV!S ze!2uVK@sxFTw58z)-NO2@vFe98A1f4;v?=}A*~-kn@g3&GZz!N>KtR;VC; zKqKBiBL|xGmOOt+Qw1eS*S5VU`xVMYpoIhgdw%pkC-kZxezetp=WB-KIDMyM|NX|Iv?3%*`iG2Ze#a-~L@QwcunIKy5!!@k2>)p5~!(1&gb z&=vl95+;|=G3!Eq?ZnMQqd14X+Qx9*6VYx&H;8m(armDSx~sgsC?mYsV$z zP&{x6GG3pQ)wbe901fTF#D?7YlJv>u8d3d87O?L;2?`8Lm@0t<(imhV1L_A30k(P!10XQ8g-=2s3&@N7S8uxeXKNFv%PRx`z{eb#cprjc_r-h9|k?Bj%iE zCcuL;(CSyR70x>Uifi<%$g7MUscTn%8~_^1ray~xWr-`sS7zJ;||N z|MvyNJghmJ?< zIOnH|f{v)jaWbYhUi!9c*VRBN+HHSx4d5`8+A#zO27lJ9mxPDwyDS_$XZlCXa}lQ* zsYLtFkblL@1B0Mge~xdr6yWlt0GoR6zT47H6jH+w9a&tgsTd&H1I1=vB8vC54&kKg z@qge`(|tD|HAwEMn0q?Z9S6E~>DFpyt*E4fD-U=AQX(+JY2~?Cx00%K#rb#r1}X(E z6Q^E33ql?m(%`Ejrpp$eOOI6i^Gtj}q+E#Y+v zEWye>2y}&`O7G}EIqF1}=)T5Uo&~qns&_Jf{^&1WKxnhClc1xy#Nqa!91uF0{)d5+ z4(Zt!GKxJ2CrfS_=zm!4;-k(kSsOJ+#Bv5ahV#$cdmM3#Bmh1D2J$*(RfH-d1GHV^ zr*{RCAFYtTW95e~`1ugg*(JQdR}x=kj*Un6ytJ3Kzx`qj2~rm| z!AfBGen$j+P+y~dScdi_z7V_{bGJWz5A@0@ue=*2eu6aDA_6z)ro~^$44X_afg(!? z)3>5b$Inhw=v}gRXZOfq7zt~Z>@kn?b_ije=B}3`eSJEnL zAHO|a?P2hcnswM2z;5_XA@H_PeICH1ulSMsm9QzmAoc|0C6t?2gc64?Tl>e^YSHdy zP+g9f`{}htaK4;z3`Z_#R?}*A_f-xZDq=U9ZGR}=Mq`^w@41Kh-J|SY^VHNBL(h;j zAzr{A@kMBOqt@1X*c?e)mGvTgRuZwFy|-C&IP=kKm^!VxZwvg-nd7Ig1A1mTh=9^4 znrwc1F;^|lf3J@~4QVwC6Bj7-5%P?t{i^S$Ca>}qkNn_Ct$wTq+SCxrU-YNg0x|$O zGk;Ad+SP`GH(u_wlS7eI;Dk?ugy#o4-(M4V&1eOYj#3q?!Nzr)v8CM$gujQUL~P`- zd7z9WMDG_!{_+~Op(i?l5Ud6oX(ic$$DX^*Ct=ZDLuGk>v*%9c@j@ttpft3$r1GER z%BXdSo1DJI*kYC6D6xYE*Gi%G0_E3trGHE-@5B!uIWKs|^obex_%q@;v>Q9!pSn2D zuXWfNOQ`NXJM3lXaVL}3or{+)WZ`v_D3d;qNWLQXPg2%X_qd5A0iEx_8O>8wjwx zW!4i2b_YejPvrPLS$Ql1HI$lP^mTvuB9#{D|U9 zsa2e<#|ON>u7}n{ZJ8w1v#sELAAia^U~@~Z;+_^Kjxi1RJ>n3m&-at`jG)*Vp`n3I zIm^})RAZB4En_UctiCtjt%j6C+jC=;E6e-f3$;Yp4*sDNf2N()jvgM^cAl24;AX&^ z8S6sUJa(Jgy{*%|4R6S3W4XHmB;Bk;BHw{X(??JV@!?@%Q@xFdK!aQXVSm%ZA_Aw& zcMnsF(;KU0u$l)QTlRTjlYCZp=Ks&>^oad=nFa>f|Kzn)Wm{*do(ZzkoVLCP1kgSe z@KD>^K_O`aq2}b>s9(wHv_g8M%+I_a>F^x!3I<^;A+f}> zL^lr*_|P>9Q^lw9tCxSx1THV1S2};Tpgnc=Erp}nXghsi8&y{M;isQRlXevJTz9kE zC9bZju$yju&bH-+I8?4PiF|bUPI%n9@iF-3abeEb3CQ*nR6RGxi)*QdU zX@sg;I|on860=UKtjdB8dU+AeZvNe0@i2bzoPah@Y;44#e=1D|!>^T}#1_X)tKz@2 zL9FaiSwN(Tw4KzHeB5Syu5}WB|K7iCg<&nEQ`PCtM&JG$JW}VD?#nmOSyo!fYv8Xu4qqQn z7hDr+^V^F%(|ljlyNAh;zJc1XYJIm?lal!<)wth(9NZ>r?xm&f7h7^8l3^$j1*Aaa zL3#!ySjc^qdcBM+W!-_Vl^U;2?5%!`Jv9lRcttXtPMYIiL_<-3oXHb>U#s?Oy-OJB zCtSCX;;OU#*Oc9kqQ@np)kd((&53B~>1Gz@@U}X5*Sk^HDo!PKJqJQaD-?xv$P#TP#E_plKIu(K0sE;^==s}#i_5>XbhTWBLv>TWc=M=E7Cvj-9?2UT1OAN$U$UQKazX0@PDLH8+UT6x2`0X z|NVmT;$2@)ppvQ>RBp*JIY_?%V?dn0J02=tAK`lF^b(bUQkWMF{anag0xR_D}eAkAV(R{&Y%uDUQh=S@a=i;I^wM;WwM! zQb(6Z(gag~v?@(SM^n}+Lixk?Osdv!6>0A4tBIgv?{e=gm|?XQ(;<;BM|zd;pxe&; zR&&x+MH{d}ij0$26$hupn(l@bUc-@2&=8mhQS^|qO&3-7yWI^aw}hx1^%}PW&F1?F zjDdrmc;lCA!;GH9!rB<5LBs(!#?|7DV^>^67 zydY>qz*v}&}4d6pBxUPqxsPmw8tYyO+kv=)r;^zStFYq<+v*bKn7gSCr^Ny^(FnAwsvA9nM}*UyYOXd--cC zhZCB&^pwVHscTCVlbjaV+DCUWgi5k#wbFIKNDxO&gQr%U2Igz@l-iwp z3qxOhuw;=P*E@2(>Fq6UE#hUK4;}mD>u5kI9X=yG-;+nM#;futmQz7*+hpOC$HOXr zrkLNm0z)@EQ_1#AEm{Y^PM2trFz?$kiYx-#AI+IL-h|o$no|5&B(*>!iqyP4($LNX zvq2ECdA#-yp@;O1Gw;L(xo81xS|hKzG@`G$uI@ ztbu-CH4Bzs6fc|-Qc9~Kt42lpdq6^ep2qk=$nf<6p)D=Nq1vu`YeME65hWC^$v4CV zGe*P#1s8o(HO4+g6J-)Gt}8#Ox2e;WxMyxPIhNniWn17m_ZlX`zKkHsJ0alLHrqDD zIP=OLq}E13zL#^7J^aim=?Ds3eB!;ndW$*quiu2_LmZ@2R?YYfvO^x1cA3+EPJe}E zKEx~_4DTt~;;f&v!*`;m)*uI%>(cvOq#SyTN;1GjG=L7LqbHL2d1L}QbkKZ{^Jytq z4ALV=TEPV?oX4p9NKMvC!U2zfj;_ZU80AO~Fp~x}DC_DutE~H24rF{%ZZSibqkE00 zBinC7)xEq*ebeAF8yFXqc$Hg!R)gZ9lg-ec;7gr*WF|+9eHpCl$nn|?dyeFz`sJM> zXv*n6EU(P`902@`B^nO&-+u}Pl8E*)%x2ouxmWD7%bNYtFPCHSUCp1(?^#tyKu;B28K3We`uFoWA(^PF zBl~3XRA$jv#*?majpBE#48gC@k4*_PTLsU~ReQGmvU(~JSnoAtTEmPGE86z? zC_v;=|3ol7>p!^#uAD?CtSpJ z4mUtlbh$ipOQM?E+oXqo%#LQJcaHR*5bW;bOJvA+wraA2WybZv)NC&&Xv>zRDc|bC zE2FxRn~_^mmO1e#K5Gh-J5_3z7{<}HCp_t$>7I4VK|cmF!QTF8!}CO!+aA^^BjcH!JD%lBVcX!3NK%IyxjOpU}&e= zr_;W5)q2?eS=Tv}L9Dba&dRUjVf|YAtw`-V1?8mUmeJMi?aEq973n-dVlIG9Jj(gB zjgDAEuVeNKW54=;Bv2k!-d}z*%+U6BxiwZX@<0A{&FZ?oo|pUkd1=ehm8@=EG06uW zx142jbV?8?^uS(vT7iUua}*0!(J5%U@)Nd$L(LesCcaO_itCaCqFnbh`l!ZvkeG6g z*QjdyK9C4UC?Reyq;r>YA!OJqZkOfGv`(jj%9S=eT;;!i6PT81{~^ayeeb3WVALvg zzoCE{O>(#TbmXbL*d$ERAFksVvHf$55KQL=yi&*;-_h@ocuTb^QWG1VB%U-r`l)63-g)w^Ux zD`ojwXB_Nn0@$tyBlfIdc285ZY^A6~OB(U_yX?O!Zrgp%vQhEEmkvkUh0ZG|(pJH6 z^O6P$T+9B2KYnxbWVARIhV%O?>on378SHyq34DluVtEVN`*%gAC8nTQXJI3jZLC~J z`bNtan!v$x$#%pJarOMr9S7H#A(IG(#4}3`P3V{qA11_Qev!$cJ<*W=orlIBD?O*( z;j6|GSo}{C(e{U|N{;ir&YZtFvF>q8d`>m1(Yl{1fiIEJtrU&AN^P5kE`M#uwQtAM zQ|%;w8LQuxzEV3V=>!77EH;%@xxj4$JacBOJ3>^Kw7jRsCYo<}TVgwVNk{X^MKC1a zQZW%^S_XG#(0BajpE@wCuh;*q(JU-vQI5!xvoGZ)D^7dA@lbXBBQq@l?UB@!$3t<3 z|2ZjoB?f4(I_Nobhwy-Cf zT=Ph4op}Ry>sj22M>mcAQNhjQj%)fI)v||*lKL*-0=8Q(^P%&<#m_|p9+)2gE2%}qvaZ<*>{ApIjh6odK^B+^N5$4N%iTC?0S7c| z_@h94%NZdZBsY+dXwWXn<16+r5w~lcwOQV|jdiN-_2J1L7jfV^nMBzccP6OKndZ*s zv@B^-1#Yj(|HUd`K;1}%2l%dC@9fumL$=%Fz|5q_ba||5LKZhIF=z_aZqI ztwCbLtGvcdv6vnzlzki)FN$pmqN6}YICNEKQ6a_eLAKJ(sShK#P)VQ3aZ#X#2aZ3CGLw>7&TN##uYG6ruxEuk1>by*cZc4Fi4=1T`51vuE>99J2Zbuqj z`q@~uH&@5IfHm!Hdt~45Y($mQlJvLCim6rYtJ2S_^P2hFUNh&tK2->+ z1Hh_IP=3uZjPbN=6Y}%;4ft>i$@8NjM6(O(Jr1fXUm8gMAXDRy8P_}d_1*$%_&5CM zwuiCp_z~Ntx2Dq*3L(>xr$O#Y1hnIfr;wfQ3L`G3{fZwcPQ66rh-!28SdFDyWOTpf zUpb6FPMTykManu6$C+a=(H67^)iH0$u~7t8m6y=p1RVi-m+s#LEq`nXO|5X--I~|+ z>euI!z8MR6+oLv9nG|Ronb^SfOnPI<8Gr+UD12Ry5n`v!{B@TN!M6}g>RP%I*1LW zkKU6)bn$QzY}F(^XMe)lmMB>EaTM-5wbPx8cxpoFRF>4zU#;thQwp`pA! zQ6bz|9#sn2++5eIpWy^+}iv>q-GwLc0D3(RWS&- z`rmXYc_ZtSBp@L7pX;p-EM{~R^U3gIXAn4%4x+Yz)_)!o&e*rChraQG)L0?E1mgzrV>-1DwR zQMW`Y?|&g*!@7q?UnAUGlJj^aNpBhH>a?XlN%VU?G`C9L+aLuqI*A+?AsS1Jv|1pr zh4rL#KR17zoPTuEZLKqF+*nv|^01L)MK#-(f4=A3 zbSW_zp77i5!HEoq{GY2;pooxJOHv4BPb7Dn$PRzf85vRo=;^Xvgq{rDJ@=>woJb0-GvFaSj*|vM0l7EgB6dXlDdA zcY8E?u`d+j3uc%C~8@n2tI}3 zVT}y!+|Qv^ypHdmkT=t5lNvvcfgTAB%tgsef*%nD6&|yH*%4jP5I?%$JL*kG0Vamj zaSwMr?@5jARM(G}kfy^C3GQN5Lk-axj7P$z-o_-tTaaC|uFe#v)IpiC`YhqYP^Vw| zh(g<*uj~lZFE|^M_>kI%vrB%qf1`PP3Z3G%A{#8G<4Jm!vFNzs_Wcnxb%g)8xlGi&al!Hi9Y(j~H{APgI8`HJfy~rEyCQ?*N4+%QM5Z5c7KuZ@joenX z+QX!9x~Sz#<-~Z_jyFtmJ@`A44piaW|Dd2z6cEKQE*b*AGA6FT=+F$Qg_j=aw`9t)MZ6XgjcVaMLX}<1 z`o_GqbxaL3U(x_p2O$Hnl45B+d&^bgORNMkKr)#%?;ju0+@oJ{4x=GvwO-!|^i)k? zNuD9sELW@v>2mH0(dDIM&KC9crW8gyOM?@f`F8A62|7b31OD1&(*&5HQ!u7FtC`RI z8|KV^%H%0jGgMMNikh~O#=o~h-v{%)2pJc!@2C4nEqYz$wLz;nN+T*>TD-f$` zVAnpHDbN;_zOe)ai}6f%M^{5t!&tKl1=uKmgqL0jPm#0Rm0>XjldXYPKVWI^9Rap3 zhQnUR7%nfK!Jeq?Iwzd*&)2rXt=|9Dab!zo@@5jDpmjn6QH76m0vH~rJ%WnwoJM!> zRHa50mff^CMnFg%-3J(4%^Dn}#EVA&az_C26{=|6Sj0ZH2cm?^DZl`r_com9w5EH1 zP2|h|JS?9J?)`$3O{WC>M|#U<(0e{hjI6ZJz4YMgg(pqo^SIph@8$3&Fa6I2(-#rX z>dK&}L!VlUy(j-bJmAycYPamiUN)QJ7%ol_aAdQ-P0?<*m7H&!2JlyFPI3kg?)3<7 zFK!cEx%sqhXCPH$(^-RDqr^Abx+N2T<|`~8dAi_~dJoGP+4XYGas^g5ywEk{hEzsW zsJnJ$ni=tVCd8a9)%bjzBCfq_@+WUUMuv8|228|T8b*#45VpSYL0=;xeDxshW6vy6 ze$R6E6$c(_#M|FzM1gO2p4-(=O%;#^sS(~`l$I86PG8hwW3MJ)wL_`D|oO97d_%c5xJk~@5Nk|)a%jiIE=e_QpM zblp5nTeyqIxZcsPH+^Ffx=Y03_lDGR{00br0FctzuIYD*5jC6ODtqp5WS;w4ze0o# z=9C4(Dyg`sLy)`z`LmX2jcTQM_mDM)zZy@8?rR#E=S^T^3`!rU(dATC8f7aeGKmp$bOEfqKXTN{VWS3;On=+4^y!M+s{f0&= zx=0{f+xDs3sv+GK=s521uVx=^|n{*nI@!mIED0Q}s{Pw(F zW(`0n9&1a;codaf-;bh`Hpl#$xiu%UL4siQEs{k;woUf(9S-}Di|%Oz&Nn5g=-P@u&(#Yd843Q#u+Tf3VLwGOuNQZi-V@|A2Ggje#E@oZ07|Z7Z4J_<(zjns0kvLdh-hAl4_Zfm_JLl}T zRr%tW&S zEM4J>++E&Ry#D=&f5?Nj72li%>2sFSN~%1Y;lFt2dI;{V*E^<`?#rBdOFr*6yHhQN zT43Q`_xK6Og*_;&;elTYHgWtI-YjXqWlH-c<-Fv6?Q0(1G*;vUUzgs)66vx~lx|UA z#dNqDJ`AUdeX_=+et@X9ey{yRtED2w^3o46X2Tn(GOmh4f9y5j6Imm;5~h`wB2yTh z$ErrG$PY=1W-aWvCDe|4?@8LDLmGts*XL``4F|MP2d2>oR1mTBMz z=@A?$V#k$ff9)a{W8dQaa6THBEd7%2qX0Rj5gqEpk{V|Zr<(!5F+Sj=~Qw+LF*c!ivb9$WCa>>!7eU_}d^0jg=3E_#1W9biK zE4ds+uP_UfT>`Pp@I{gEoX!fF*0oOBh+P>1<#r2&e-7;)qNY2q9q9MqkA9=A%7B8@ z=y5(}VXC(DsS)Sk8u_tDGo(sx*b+>@$`AGuy5<1>esmDPPwjG&Zept} zlwfQgB{3Fv-k!}8M+N}9H_o`po}Zg5=#r#xi?j($>pRI)a8;WF^A=GuF=y!uWhBnf8~!a9>0A=(~@G|*`oc3H8JpP-obDEW@l{oPi0&l6-@j5rEdhYl~K1a35c`@ zaK;PGMUcgW}-7WdW3e=k5Sbk8&$Wz_HG>w@Nf1`#FkM**|Z z7CDziJ{7scYJa7tf`!-ufqE{u^b5Y#XL(#Q>m~F&dU;#7gey{!ULSxu2_{u`=>(U* zP749mHFv%=nXy=8@b$jQ?-m}j_(DUcpvu-j#da3NA%~%r$@N~pp~!)Y;VG`wHBiB` ze?z(3txpKF?u%Sov1CTJ?^ad$x?pC5@~s)YGSJ0VBs#3*2wLIoRWxxGgndUA^JK$CZMtB_@hzvZUt@K+`7PO7tw%uB}_@$ zf3hlU=~a>&RTjk%to|Nqa{BeG)3VTue|#HU5W`8q?x3(Fb?#j)oMa#;p^_BkCpSI_ z<#WOcL>WRHu!dxtCP?osk+h1hi_b+^6=cTB`GltQx@P_7Q&J4O%~y!nz28*BsF4P; zFxRZ|{sf?s<7V_TqUiZ0wx!I=;YzxGrB9s|IEu3@*EU*WpVfBjBv{Kjll^Uy`za)estp|=dqm5IQ9M!bM z7)ETQu16-34P~qS1HM((y#U|86-%=r@tqi>vlb{K!jv%nW2C+4X}_IJ0{h3A6G12pKtw5viTl) zXu?hM173Xyux085BBtzEPw42Y0oxKk^vkVF$d*&H4~$Be3nFJXIFeZI;Y35Z7Bqd_x3qq zQNyr@>%@e?bP&~N>dzce#@IU%e)AP?0o9P8e2_KCY0|mdwYMvZ5U;$i(H=+8hHZas zDG67)W(~Jwyi>}Ek}0V1U+WoE<}Us?$_q%js$EMGe-7;YCV!A+=`8%}$zD_;>Q~ks z4XnB(wEoONAjkot(f!E9TWLDdcD5WI>$EhiL7GQzD7iEo7jsXluePP#$?0MTQ+u{A zQC_2ztMo7XvIN~a{7azvPKVw+GhR-`YLa)v&QFw(XpLB`U%y`cx}d|y5#{H}6O-}v zZ^E>>5@Pu5On=JFw52Wo$jW1ML@pd<#fyrMCAybHSZ?HG=WjY7B8$TLb^1=32jv}a z$6zn3YrhtM^mnS_a@FpuT-){{mXk7oj7+D>FdPqso{oWd+>!gA4+xDRoQEH0&kKex z6WJ(AQN&K|)1ErrTD|pUkBLBkne8#ALYC4ydgeRUe}8idjvHd~j;OEE1zCMp-lcKH z<7@XUvB>F4I0~H($5qbWOi(2E^xz=bq`3jH7cRx~?)|to78Xy_ju)TywecE=ReD#7RwfcXib+Ekzqv&iMy1mkqt^a_6~`3k7?;sF{Jag zT$7HwEr0Y_Wk~_2TuJDbR@IVPb-g3wzA-Bd!rb~%$n9T+oHvRF{>~6I!-tT|gv`b3 zabCfKaq}NiZ0}*@z8n=y66ezn?vfrj1aEv8sniwJG7jC6P`hli2RQoms)O_M*2#-o zdh9(j7vc)-W!plXSabpW>Cz7@?MIck3pQRKY=1`kFYhjte#ee7?Cn`vx4;OJ-_9CD zzUEDdbp1@In*<5{vF9c`4GArNzbR%+W(z9yyC;OFQYT&D@CYCKh>9Z0ggkqHci97z zUc(gn3){ftaHRn5W^p#`JjqE6Hf|^hmeG5Ggmh-+Ba)%xi}ZuwD_;mc zk~qisI1Kmbcl(HjbL;+C{1VX23{cWQ94U`yI9sj6n-Jg?AXPKmkZsN4P(Yn%Jqghb zxuQX1%F-;TW5KpF=Ynr>rI+HqtvG9#yMKn=m_b{ zDpd4sg&6acj6ddJ%eLV0wfPYB428=?>xAGu5}}d&hb3ZoaY^UnkWrTO>rFz#ZeYqa z+Nf~`%OJ=w1o7ug>@uF&7VMd`^YJJR1wH&6llTX;wstsMd(UE$Ydc6Wui0H>S$YE| zs0&xyZA|~IAL!2&*4C7>nvOLKZ6ZQSZ-zKvS{$e|?^u(y&8@g9oqCru_XH$=VSTq& z=%jV?T2+dGet)V=poGBU)W5d*#gIVCC9zzm5`Cs{CSWO5-f;WPfmJOh47P;l<2b_u{@mW@azaLTSseFtZf6Hv-3P;cBwI`xX)#@;{P$c5k0T(-8@g$VBdZSHkt{1Df0&s5sK))G_JCbx?~b(pgd! zA{DiB1GCCL1lOj|Ur!A_W_*HGfB!Z(9BflOg~jjC&uKFz zo7X1`;7#{YQy~NyC&ML_Cp6|AooXShA46cYc2~T=2!X;5tx5*l{lP}Sg4$oRT-SbB zjFDF^+PaN5MZvHy*Vkv%bP9vwT6!zQEM@0W1^`vKN=;PpglYZs!L_2Ze-2I`5CRhK zMURNuLa8pt#&iv%y~Y&em##T4Ue^%!o&nB!PbRS;vz#nZ{lFt)XH=ve$k$)924PDZ z*s5wS{)`8`GnWb5y*oD#CVUZ=#MqYED_hwU+kGX%`$QMnS^?rk~;^q7yeKQz zY#`nlr^>++^2M-=K$r-ynoBBac@L1a_m%D>V?%L@lj4c-hHr>o<6>brF z%;vr$lcuvqq<-q+86|TFq1Bq(EqywHJw^HZYN{u>r%nZ7e=@&Bl%5ev*PgrVbiGSB zV7`wJKu3f`Ec&-@3$_L>BX5LWRa9TzXZ(Jkz5>M%B{+aZBCRR$m>1EZM9$T z+lhg`t;5hh>e^kjDmyFvk>-!10PRr;kaZnEm@^KZsjR+xjcF<=qs^p2l%)d7fX<887_Sk(^BOK23406hE8+eVF?rFN)*8we`P9xR!QJfj%h2GMK$O@>I*Wn zMEzPOOoP*)ZlE$dsfIp~Rm`#|$|ba{6?#w#Ca~SefLpt0VAgV6Jy7wAk|FZ3lCC$% z$);o0ZdE*r=*o9}hhl4i&v9sq-C`!>#0e~tAV#GV!>Fv-_VRB4e`WNBj zm^q#0OOO9H9U*2bpI|?lfi=|Z8Uz~I-*xq}f5o)s`PN&~ey5<=sO>QT^;Bx@=Zfpk z91E)x&a(W5a2Ok+P+q<}7dg&5gb%d~Iyc>vx?UoPubC!fzkDzq1B-d#g4e%@cdy ze<`t-nViyYl*POMx}INB=hIFub#fO=pEYNThigj;L9oMZ1@kMoOMaTa&44U#`>Au< z)v2t$w#-irdyd}u!b-Oi0)c9Lp*Y{@r&_;{1FWqiKl^(M)d!%?{gpaw$yOj0!!ra& zpTncFfJL@;=GbFVQ*(Y_4*#XfY?EoQe`K#Z<$f?s95{HUTAB}+y~SvJfBk}2{{^SV zMn;)D5Q{?o3INR5<=yQg$V)}M=jIM!{ZHqmCi6-I3Do$egtS-D4%0zsY@3drBaN4ez8Jbyqc8oMO$ z(UzdR-<7t;%i?1nf$us3WZ~Uef2m(amv!lvoF($*k`<+Wh|Xq7yh(9+0FoUW`fmIE zDeL%$?x!6|7@lW)!U3-mePk|3sP3^;bU!jQM%!c2 zmS*)#;#yh1d~c|fluN7_e?W;Psa1Q=ninjFL>7^owtJXWZ9VH{{NIP%`-hz5&RQ8Y zUWKC%5@E+oWC+mq45k1!YwQwtd?bI;iI7oLI@1FwU)ng@B=F9}pWXZLpG>{8dYiqf z_e;`}kJqMe6Yf3hf!gFrL*cul`Hag&J$uG9p5)+^V}^e|Afd-&e`oEcjB}gIu~pm9 zz$*y_oh5y-?d_2%MQ;EuK|ScBt{rmtxi#h-^PIuc5&)R7zVw_vbQoG8Clt6xU%d>~o7CE$7-HUYL$%DZ2bz(1?w!GBOGULI zMx5PF2B1~UC0ap0sz&hsefwG>t&mD@okPpAVTGZPiQ^W^Ra@e`fr~vGwdwUk#yxWG z^Mp9jD0}A&Ts<(zlmTa_z0hPm*?p`OS731`Phr1g+Z~iif8Wng`yr7bS|yvY;1yMD zjT^+=Mu+!E2u`xIInX5VyyV(c2AHJ=0iEnht9E0-wb$NCk7#8{oW>48cCYL6 z#W4ndG<)7{bEGHdfsJo|>%N?mj|Psr5<07ecH4xG4eI@K7F_hrzk_fPZVX@LUhFwm zU5tmc4tsd1e`#Sd%xS3T!%^P+r2`zR_276{XM%`ybh#7FS0e9jtIe4d7T%M)yEh|e zavYIIHh3?=c^|XTiZ6I$PIAa4;2`Z3>};nFvx)8k4Y-8ewGJSS*7MKKu(6@s!!OVSuYOLm11f545PM=;YJ2+$!nNh8K{B(h?Os=@g3@#4~1t;@t5(wJkwcj~XvTW%!I4(9guyL2cU z5-e(yf7#{mAIlP2mw9@qU1rii-+gASR!MHjO$D?pdG=$jh3rbJXi$;Dx0#YsKONZi zC@jTl zZHq(Yk6>@VIwr`HYRe1H@p4!hBH;nP-%4kmf9+Ae{t_ojOw@DJD0!Z0Gtq1Mh<^9p zw_0wRnmERs=kWx?Zn z3bmZi2`^+!v4iZMNb#+d=CG;JIv;y7F-t&eiICW$$*hr*E8mmZGp=`kU5}g1Po87KZ~TO7Ul?9e*5iyp%@|W>DVgf0F>fm@mP|^C>cumI z7doyE^hEr2>-L4RZ%?7QP5kY&ZLLsR2xHxl(_2P`%Ecg5-AI3|gORYmvv4F{Mx!8< zeEUfOKd`%S)j^#NN( zS*?|?!zqvO&Um+b(aze#2ixQRS{kaNow#_r{(Az|P#M0cp#RmMf#E@PFbZ$THe!X`JtAMfVGf;|{ z1ys}Ihc;vD#`CtdQ2iLTmuqN8w%{Wt>#Q?|_bi36b8onWqy?+q`=XD}K}?0UYXfWG zu49xPTlg}$%&El-R;6D~FZJr7e_aU{HJvd_ zJHGd69c;&u)Z=oDjtJif7myk+?$9+i7+7BNB5CG2QnKYF&euD#ZgD5bf0l97X%9^7 zB)j8NcUQU}S1LNjgYy}+wCgSXdXwzg@2a1xf4F6YwV^gFe%LimPSE(v+Y!m*D~m5; zinY#AV~r*gTke}9*P~XWKxdBqd_cgr1q7#tOZsdi>(@qtBe%10+TQ|kZuf{e@!Ui2 z&Q^;-a&fJg1HF0$2}PYhf1e4sz=G@Bo-{Y-yR0GVX;XHEQAv(DPe{xfglyTlURQ5@G zp1@6*3(o&2HenFl^zMl!mc*e-*S{e=)&YM7x1@>swQeynZNROWf*4w3D1_`AFGA~T>zq3xJzcfTNW~NAJkg}o-@MQB<3V5PSQYIhQ7>C3OF>NG3Y3Q1= zmz34jA1CaLqm$*8e>w7^rOjpH|BRSVs&~m z#v@(66Fq%yOE;GE?ZircF6oSoWQCkf);aYa!az&`(U{g_fAZv_|Bx)e9$u`Fnal}0 za+DrfvFCPwohD9SF*{SSbviwt%a`0G?-T4f2`o(?!_*)wzW>o-1M9+c4QJ zNn`zL&=uvDxDfq{J0IwXE(ba7T>6J50?{Jibhut+e_>hz_hfC2{ivi*dZ(wEw7ZDG z%!DH8#6To}BdQu|I_Ib|51b?L#lK)aWiO6)4o%xQk$q&$MKhuO= z2hIVBzq`~pd4tfsdNgrF*|jUXct&kf*VCkFKj#mu+_WsHb@zx0mONA2uZAupatU%F z4Tj4?e;7X-z5h6g#gXym23*7f(m!sV|BLefEwT_4D(mO#KIo<;=`AS7PI z?qPiyDBJ2O4{@1=^3rI`8=+ILu<=a+PSLCoCTa%Dez@=Oprde=asKuBu-0V1@KYG9 zvmJ%2kzpY_Z~p=1c~iB8v@yulIl<4;e|x!bZK>R1#JGH8jDyI;H%-Vc2-R&W^Io!$5O=QWVhc#Tk~(Y( z(f_5xkeG((8b?}0gRjpBhF!p!X-<+zX8Z;P=+xMDsq1qhThn>BCf+0EBk^GQ5$6Zn z;<{~d*B+6uV6$p=3)oB>uulH zTg_4B(;raFt?0DV*BCx7H2br3EO-FaySS8yx5hXohU{bZ(onaZh@IX)9l9e_R8zi^ zV2B%BEs4d8Y1#Eu>j6Qnf7h(eHmo2&-y&Tt={&dZ&MFG!*FkDaHytmT2b^P*iV5JF zg{P>)(To@>|9K&A#g@@dJZO0syrH^aCSc=&wO?>59oEDHZdwyO@=%$flv4)A!H_4` z#wZEX^ZGnF4pl$po&^+32gR&mlEKm>a>eu6Uh~}$vUEAk#zh>vf7>~p?v*UA>~oB} zjckjcy_4D&HbQ}>K2J$DJr`OeiXm=4BQ5pQ4-d<1m`aY46mRKZpA?A1typ>XyT_)} z>4~y)<*_s0S~lx7CnAtG(uwXgUT5DKlrrrj!zuR!leYD(SYqZf#0k%`U9PX^uxGRB zASJrjHd&-8r(ERmfB7{2Htq5YeN04c8Lr;FyLu=1To}Ap@F`uX&}xRYht1#l3=y)m z!w%1nk6N~u$ZEv_uU`veD4D!1M9W*~2m<7i(zA56p$1-CjL(GE?}I+QCd(+7oK|n= zb^tse(tZEyu(wKBQK%>5G^#_!!U;b6EVNrTgBjHuuHFfaf4Zj4_3c91DttMGot5MAlO&|hTGXCp;=xjve`A0&gf^KE8gE9aaXCY z8QVEY1rQywW!p7CxGF>8^ZjjS(5X ziSc=~YIj1ReJPgZC@lIE`#C{gwi_5m;XBHbXW{WH{Zji9v*q}H|e%%Z7=2$ zBxt6mn}sSwVAR;~1+kV0lx`=YznTeA;%9r)edsXD zK}O=@e@f;m+(5B^WfqTXpQy&MAO>`QOxCXGA+~*u)eO}w$+JkFuo}2~*;U#<;^EX5 z*@m4V;-PI8A|#RM%)x%$x*Pw%Azl*@bY$Nk#lTr-wMITW$CobsOHZBIAVe*hf8bQ&hgE9ah;=-d+=Tm>1!*)wf?>@?b&ItB z*d=M#r8(AAcnZ9WclKTe<5~Ywqh;=HYSNaNJwi{V0`1{2iIuo|@E&X>i^YD9+}&h~ zu5SfiiKeTZ8KfU|34T%r+^RY#m`|m46lr2TFKMr1OFkplUGJH7T%=L!wo(Gte=s48 zqSSJX_Vw(5<|BwVLW!sQh036g`8nd`D0#sM)k;tnC3%o1hCKbxcK=nMMtjMB%T|LYTQ2rPNtLPf1I^}ycGoehh;C34O}%`LW?IjvQ05k%KC)5Kidhv zM8Dqr2r4NTm!Qc^NSlgK7Zpu5`+)}D9S6bUU3x)6MLc|e#P(aO1M8K5*Ama87J;{n zi~WwSp84*MK*X>MP3GeyJfP+Idk5MA}qnBHw=?R zE&Wp>eCcM(u&D86nflk)!`%)$KThKDm5_Dr$-6%jb9Y{G{V@rbwGVo>l&D6S$!HqO z!rqsKFC_Q^W@B8p_Gm1PeK6WKA?GzJlbLAreg%0Zd#wu`wuI~3o%)v^8s2HmGUw?%m zG*_I3;w0v&sJLVdQ!WI0z7ndKzj0mwZa|U02(FRGtAs@7y>A|jp4n0AEE z1w9=LAfzMDkaq4#p5E1QfvQ~9 zu~D?!toI{cVZR~^m1LW{yv}6ig!epll=76O>5_bDao=st16jJ-Ij@T-K$xH!JP_;p zdi$>a_DyyL!-?=iw10fOeOin?Md`%7Ok0Rp@(zw-y@noAK8HWcRky`F%gfD}f)bK}PoxR1T3)F;Kv?Tf zTlN0qc}URxhJ$vAu#(n$cdg-Jk^qz)b={d-b_t=_q~aQV_J5p_=jTO4oycCDxjsaX zK4;NfBCt&RMLZ;Y?{1{@_w!}#zt`FHZ{`*fcw%eFKLhYN%r9|d&%H-)B>hM}w72fB z@@h4~j}l>4jtP69HKcCcmK>K*vc(QxQJ>eIO0(HyN_cm}Qm@;*9mgzDy#h$M4Upo1 z`AtHg{1nr^K7aU^C%$7ga$CO6@k>8GO(lch#Q;LEm0d4mTe} z6#-6}%A`H0vGz=3K%BuhYA!*#C&e#!&!GHP4l zjb6L<-*d1Zy?IJ42*{Seg{ShWS|`^rh4{21_nki5-hZ9vmc68m=Kpratx;EIp6zd0 zA7Jts3wHfFfpYZl`ROD%g4PW1RA2#4rw-wtXWU6U>3Z6vXY3et+T~eTB$bk|uSfaJ ze68BZbNdqgKTvl62@;dJ4h3j%UQ?a4gD!MIul~{5wE~=btlO>l5EJNSauU$u>nE1y zg2z8M*?+OAYa3$V&8o7QtH5{g(^<-t!u#&I->z3Ot6y;0ry`ScJ@nr8t(T)qO0my9 z!IBQwUjNfmn3)AL`9NuqzA>lg_>0~6P*2MKsv9oXCoF^ka(6d#vT@Y{EK7x>B zse2G-s6TwO^TWY)xrMk!2IX{uzq%&;iOarF*?*FDj7e~+_3gf9R5=H+uH2!xOcm`o z6@BoUL9o-^Vl&{{TVKE7^7R|4(HM7`P%@tExJL0BeCtLiT_yuHr8mDtq%;C|99n(8 zNzj*qLBn=6Z_425@?x)+46IfnAPv_Gw7WfduZ)wDjO9t^TkXAjR+sCuG-xoxCWg-0 zYcx$b{r2;U^?g}dIeE)$<=qr=E~mZ1i1wK-20o0(qh{#UCifO0k7L=3_qgE^D4j>9vIfpnu;!++_gMj?R160`-(*UKHq$L4)-X>pkZz z5Pcqqlnicxd&pN^6L*eU8^{S}(waCewuRBXkV=p%z6F9Set=31e!g!sQ8Z%fql_Uv6~W7?O{@-xYK1MD2J>a>l1OcPJ)>DfW_(+Arpc=O4ins>;iUk%^(-)J;oDV{&}LQFP1ES{o5VS@0u9xBdrJQfGjn{{J3Bw<3pHr zWAlFB50P>4AETkIHR)(as&X)Z(ruwjaC0<-cUfMy_vn{PcR?U%s!qU+-Oiv=s=&w^jaa9X&g+YYSTaT-PL} z2RwWA4DCIFnDGJEuMcQu%p^crkET^Wctv;&K+}Eul!RwIlJFIOZWwScwM*?!s>-78;PZ7FEZaP2CNwg z_j_@k>(hA?t3^)}mMkDZ96rnafj;m;b6NGLvbC*l-A=$=0-SktiwKVEmXDf$KvMs* zttl~|5T0W!4WLq|+F#6y-=>vkLhn94pn%j{oeHI!g@Ic<;mDkiFG?tC+P2SVcHcTJ z_xAAScRa)jt{JHdhdlFc6TE_gSJ<+#k(kwN`&7hHj$Fvn=ulS}P@x3f-pGPOl^$g7 zeCEy9xZ3v5)#82ODQ6Q)(3Zo0Ne$x*4CsttQ1N|4$$IR^J9$`5I}IjeMAZaWEeYJr ziyO{23a22qZmflMb+yc+#vwUk{I9w6Z!{H=CSgVPGOk1gvcrwvQ4{LKf*TcD*uB=* zZ7%&bPYyaxH?9IX3&yBc`#V!}w0FFVHG*+v9iRI3x+1PeUFS-35B?v2yw#SRQ@2EC z&$fQo(Jf_HI(A#1#vQMLOfgwK=BDArb*Tb^V9XiOpnKD%zmrRz5kc}?=z$KJy0PM{ zJ=XnA7Qgd&8K!l1Z*;g^mS*`&-(+G;S&b{MV`RESAyw9i5bY+gcx*9arG~WW>7%P= z0!iSy-@`LX#jrjljj!x~wjA4xGOb4UpbdX>&t!4M;K1Ig-$GD|AWs=JbZC3f8xvz2 zjb8LBjeXv)w0dafEILdCfBXeN$~*9Z^>x9uUvLiUCIehzA3mLi5Gt6-XkzL@ z$+6a)%j^XkP7}AHO@9Ga>45GN3234aKa@j`LDJwo6oqF~qo}wt^0jxAAvUSsYxP$S-9!L}Q z8qw*VV!;*fN06WTc1XB_;JOSGFr2BIHqO+rxU<(n$*_2j>mB`iZ4emu>Wa zeFW-{C`<`9O{X?o`-1q@44UZ+-}+({zR6k!!~;=^@+ODAp@l^EsVaN7r`vaVke zEGeC)J8}=!k0{Jso>t8Y=%>@$Ptd%e9kCjuD*j-~wyd;#5B$ z{Bcb}V;L7*`UNN9CyUIIWGwI1M@@3c(Ue=7D6iElw7qhUxX=94A9D(;^XI!Q8$_%J zF+iB62tycu8N}0hqGi^R{_h!TjTT4_?{}Rg&6rt9xl{z5Imzzi133un>;rwWbFw8< zBE0&UD*W%ys9PuzzLm}4xAt=vI5L%-c}8Dmgni!#X<_2MB#;MH<-}>=v^n}rJBNk7 zeb#{W3jTH+d4*Lbd400)Mo#G(cho!>v<47*A&Wbi@sdF|*TXWmC!`QL(nVnGX zLZBM%N^fLrIuLA5Uh0=K!wy>BL2Ehyrq?nJfgyY7rrAe6a}1)4#z#wD{m2|p}JEyuMfxdhJK}|zOii@h{baVnd9LiiNlycM!;39{bX(^+21acIyS7=~TXEZjezq5pq|-8~ z{yBSYK-%{#!6y35H{~PJ{BQj~Qo3Aku9B!gjf5=BN+ zGpOh1b0b>t{7toUxC7dus|69Ew5ic z7<`kat<>Bsm+fJqAvr=&DH);5)ZRkUBDg=^m)yQTWWeerp6@Cl|$ecf-AQ+?_BqysM)ZP3<{7KhlBMM_j*T+&yT2Kxj>x z9(#@?iJVcu@_f{O;FXk&far`g6sn{dbqcvvvui`~m^cNbF0)#*h?|A2*=bH$GE0Co zOxLdqmVUwM;l`kkjD*edIQlB2x8{^;2hE1)=G)Bi!roV`-yf0FSy~YcN@daYGiU@* zPG2Dv<(FQ0-E?!q%m2uL;#8@BU()q6TwsI!<@&JcTN$Nj*ULWAnf~=m^GZ3)++)QF z82+E!^d&ZXVSr$4{ZxPJCvKq>s$0(v$Ey+53O9ddj$C*@R3wvhpxyWmI%2%p^G5SC z5W|bhQu-%krASV!D$Ai9^ElDVU9)yT`{Rgu0ICi2ZH}2AL&$hw=Tx-l%dN=L)WRNYn_h6Vy^sAV0Lydgae!*#vrY7$Km@8FMc<{hV zys-!L=N%%U+@Kw?6GY>NW&fdRr zsvR3O2;=Jr0-Sa?7KS-pE~^TUKU8OP7$U@_H#{M6cg$s@EUR_A07>QnbvkZL~=2r~4ed&YZoVluT!CPAG&zMBV~!qV`wi74XNn4^ z>kz?}E2BY9R*~yXk6{$Q>5LwtCO==0L>bkLbue{G4N`DFA_X7MO+ucgWm{yfw4Or% z_<8qPAyJKgRbMmglLxkAqu;i=eSd)*(lxl|m;_cj^@fJb71@Qc@S$NyHdp%OA=VLr z8SM=ivS|@Pt~V`+_Hk|uoVvB|BEpY$vfdifaOfIl*}$#REyo4#e?MR##%U6m!1dOI zYLMO3r(Ci+Kr3&UOA#1q8dK)38*)2<2x_=Vqw2%+)GT8UCQ+X2aWfmWXo@Y78u96`xfI1E! z2-#r{Z6aLU1b%_x)xNXd+!M7F4w@X!6cctU2iA;Dle%+tQk>KYViN#wlZ$b|`}-5p zmVk?Y9`=&6gAx&oB*$;wwdg~Oe?yqq5=8%VL1kZErm;HloYPN=2>SZ|n1pYyIZUMY zSu^e^%GKc8`fBE!X_VY^lF?1-aC>ELK?N$@`eE{KCXea5aW^DGo~ilSSdMHgll5=; zwGX!?EVJ76)30)>c8sFh+WM)w{itNEik$m@y`PqUmqk97EvYL|qbY~s0kkKm9=51L zYkCTW^3j?+bev1qan2?w`_Ez=kSTZ=7*^f(T-aSc597L0_Z(WF%QKcEEa^4QWO+ez z6NF1Cx=hO=>pZLE^%pPIQ7x)hB%RK?RoZNS z*b9ZA=XIZtexIjvOCr6lpz?vBbM6NraK5B)?0o~AamREbicxX9=JoyT?7zGoHGPJ9 z^f8>la$-CcHT(8C8i#$Jf!34Gvf3)j_H~>TKz7EQd+le>MFpCnveoL$zZ--fUIs!< z*C=#-CwNP5pq(K8@;gWm5x{9f#;n*cNq){G&g`>1I_f*UyX#9V@BPQRc8X8JMDLtufA-h+W;&t5iiV_`U!Q!D zBN;M!GH)uG_KRVS;xL(K^zk>KaeD-|wR0yN3W1p;qB&mL=kl$6h71RhwR#hORhzb0 zS7EEy!#^o>|3AmMG`CNv6k5nbiwMRHPq{xjOOC-KbSP*$Yst?%(xgaChPtf9^hD;;i{TI1=4 zd+iXm$xU;mL!|n0@TuK4M&qN!>mAOI813`wlyT;u`v_U^sP)mca(6;aHkVl!m3mk!ybN;(h*yc7daXT{3PF4^uoxR-4kf(if@qysu?92;_ZERoH|Ao zo7b}7>9LrG(7^1qbt3U6a>38Gy^rPXkW=J`lyowVyGQpqW;t<(`swY_e?UT5P)=g(HAhC z`D`bJMo4Z_-Z7oeEvc7F^h?z&srPdaF;pKI8jsva%>moaHQ#i9@ztpjW$Z{URS*gS zPp)iUYdVoK5>c*GO7O@$m&`7FoKx^#6{b|v)I36CEfLFVfVPq<17Z^rAt6rnP6i|J zJ|xR+qR_QXo>$6Ct(d!_6SdxGr!T$s>QdAt(O4+qW8!(npD{Vbf^%0gY4O=L0%bHF zA`R7o>%9`khU5l+$q;xhw^adcN}Bzw#7Tp<&B#2A!+cv^=yGaSdO8JK;7tpvLeZeX_hfHD~Vf z`$v>6C(AotA|%Gt%(+ea^H);yj5n0;!JzT{j-Rmn^AoBX)b1<#QR)75Tw|iEx@YF= znc*JbB|A&E#eJS@8j|CfCEuW(-qbryrz?Rx#Zr~vG39G_o~=y#TJyYzue-8;J%?>; z=b;93x%xwY6Az&7eR6+$OK}f{2ZnxV9nbhn;$(WMpG{E^eY93e-%Ehx>S zBRK$&E8~jC*YBuU&sjks?2Tl#%!BYAm!>q+r6<_^&9-OvY1N%(L?b4{}76_NK2L{1Ge$ln#b1^9R%L(P!W7oWHoQdG=J`Ot^5D3*14W3JGXTU~golRTd~HURy9tFBBJ!&S_cLtl?Y>*>DmN!G6vf_Toh zSdZX)lIirDAb9Z?xb-P=Qq?&XNYdG#kVSN?q_>VNm z^C=<;DPzB$;PEZyDV6BEd~XMY_Tn?LY5pYuYE3V+@_{7#jCT`dlA|AT!1W75+7&|Yt9l9?T-{Om zTsDf`V9ACy5})k^6Ekj2I38Bvf;XB3+#~dJ3CHyMT`K@rpsTm6v80bH9{q~%GEw4K z!uj-XdTw^e|MVNJP+9sS+ukw=1Lv;#bbImse$Mktq*%j_4>~MmtFt}J*qyI`$(=%x z%=s_;3Ox3al)zd2^9dJ)23dgPX;-8iG+S*g*wt{o*$dmSUOBn#LkWmGoKN_=%c=}f zPdfJZpAuJc4gn3O_Z^@Y8Pb}fuC9;we^1+CpW+;N!G!v;uHPyNJsU6|%_0XPA>`Tz z=ALW(FfxpuRJ@Wxd@ZvsCuYchV4HlebXS@7GgA>@p7RBK6Wf=~>KNOz%&;k`QHiP= zy_Q%=la1V+=7*feH5AnVq`}jKM0A?_vzexf=6@Kr_L2vJ}fX6I9f;YHFDYXU4M$&jM zkEGY}?T2n|suG#4lnA>I=NS^5-ei-cX~DUo5IQIU zFCE-8fIKzW{@0Rec3al1&4aW9vQ;LeD&gu{i?$v&l(DKep4MHOH>y32_i$iV(>kJ00{fjF_%P@-$@={YZt{amn#*?J zeeFVACZa3M2y126z#LbW#vKLcc?IK)EAzT|A0fPdQJ`u#f`; znH7+KdE+}0tuL(Rv813vRB?6i^Adb11@W*!c@D~as-jZ2m*y^W zU)RnZyMu{o8^~3bkLraEUMrj&W4QPEMy4&R?SMy5{bd6Wa^*_I7*JKVll@5I%%x{` zhMN1T#C+v#sy@`{pg6vV7}OZ!*&Ig~Qj<$Gq9X z(&>kMrjVLZ?6H1i+@v%{yo|EX!;?&+e9HNUw9+eIH6*;)`eLjf47OYbc?}kG&Le}U z!T6xU{)v}lk{51x;KbMPS}8>W1oqu`h_!U65g%BYW1t^0HlrRFoCT1^G3^mBSGfCs zB!h32rwXj&&H+wSHJRs?5b-%fpP3Y#b5KEsd!WuZ)^-dNG(qid{+`&CM8n{m`qyg~PuUPWCshQR=*^;@=O{N+b(6RSwnU|$>t(L~X=pU@TfAFqRHuXf8W$b^4tRyJ= zg>9#ugmKcf`YF`r0|aC|xm;gz?#s!gNc|1C;mSTk^RaCzz&tVsRBONng)a32JG7ncwOs`1sSGwNZbiaQx=nDSu-Z7Kd)ASto{x$02d4 zK;(PEKZ#eL@ouO5ug5I9_WSKD_gshJ7psQ}wwz|jrwR16tk>&`_1`Oh@;Hl6K_Thk;lGm5 zg&!5`K)E6bBY1&XO3h=nUS;|a;h(EQS6Mzc!3?zE-9<5nCIr~8d-n~ofz|F5f87`l&-blvr9UW`7U~+)&Kxp*s)sp!zkfr3d1WGDvFNg7cy4Pn- z4c|^kGz_mRmhUUV+W0W=cH7ZQZsz+1q{Uq6?ua=O#vXDG!!|S}LCnou2qhqcE(6@% z!2=6;7}cFzRsbQH4S_{w%RXOj?UST(lI;7-HMs-2bDnOCY*|gMA@od{#yFcHX6GS3TS(MSuasTPMB!`w=O#P6Ab$hw|B_QEivv zxbUaJvL@O56W{v2WbK!nHdYh}09g6cHTRmgNxy{rtfOu;@J^E%CX}Z+25FblWV&AB z!NmrD2E>?AjGSk}jSXrpehpOYm7I_4{(c20<&?3{h*~Yhs3i;TTN?aQk7e2KAzypC zi=zZQp1{kO4Ea936GPhSPYP(#6|zn@L+I7!H2O!bt^|=XHyLxzLEc~YzS>SJnWv&1 zm^Zr9JzE3JBtiex*W9laFnX~XPuR7ITrx{omI`! z_UkS~l3U~hp7%^F**iYQDv;+2!mUPs1!v#?SZgS~4?E>rALFeGl8SroSys+f;$rzh zSEQw9Qm05`5m6Q>Pw{P}CY3n3j@aC#U+_%_T}kPZcUD*s&^;|(?a_qu$g{ZsMg)`X z0CZn(_wwHF$$Y-Lt{C9R+ScpSVY~y9Y^B8=RAGf)kT`wxmh*EYH&eX!2|c%eJMZ41 z$5T-C_!0Pr6xQu$Jrn2bE_?TkDo5NmOY8EkliT-!halxGXRP#`3>s^TDt3=BpeOO( zsYh|0**srnW8S}O`2v++(EmCsbYoGILTlLIQ}*p$)`wPkWN#bGPE2Vz6HTjxg9*jh zXN$=u#%%1+k_xPLFRnKx@d&nm;2{q`zcRXm8@~K|3q5RawU8XNvNrANz0>0k>!OLT zH?usmlD5=NNdGR1+Tpf0YO_usu*tclSoYi1Rqn_S>5C^_=}|I-NPNt<+Kff3WJ!{f zh24A>!H>O%D(0gHrAs}vl!sQ6$)(IDmlDTTy91hNMv*;yWZ85vE|1@TEzxuD2ko}% zM1b*>IvknXWIdw7J@I{;y%&;UH?nbV{+2Qx97X* z4l4(ThA!RRzj7ph%?H)nzK*3vvc;Peq#Ja3>jZ&PM)YYn$Zf?%`e@sD!81a?Lo9hV z(gZ!M@3K?U@CD}5?i^l<&;b#~S2SmylC_V5oh&Wl$CxG3as1TfOQ*7nSWwGhkEQDi z_RKqf$EID|?`tYypP^341#E)KWXKenWIS6Rv4?f=) zJo*J+GC(#hbBPXx7m7m$xTOu0jj#(W%$n#zF`2GW)hwxMCdr1-OkDB>3qasodpT%Q zERw-oUb8C{w|1PMk zx~FCamQc>2n!KuVG1p`6GI1fAa-1pAQ|}{r zV!x_tEuCr#+%u#o7W{wZJg8sTM;^LgWd z`q-R*w@GeZQzvJ=ZT~BKg|W~*LToB7@pP+cA%I9Ya{*?%?p5Fd2qojwvGDCcE+VEV{R2Nu3425S-7CK}2c zYM6DD*I|jgNtaqRbZUnw+3^>?8-|Zrz<%_9u$vF)E9YeJK;4$MU6gIoS%dmAzXE4y z2pmH0l-XyV&%19qv6KTxY!ArPb`qHN*ZL|tfi!c8Zr1fSfT^ov9j=e!V2_c)8a~2* z2w8)&8@~%K945XoFWHuYFy$#2(jlz-=!RL{j0C?J8jtT=zQ6B5$02=bfwWu_a>Otu zgah=d|9&T#p;{f0XxRpGZdr4|$pQsn%D^UvD5OP;{gq}NFXxr@dXe1M9%{Sla=ka? z{cA&Z5YeAEI_;m z<9u4RNoXffJYP|{MydVtO^!w!cA#3U<(_#RT_@Lx7Ig0vV3ql)w^w{IXZv@FxrDst zx3AoXsaY4|7PL$rw8;0+aGCkfB)txyY@&fDWj>6AM^L`0o>{V#SEp@#*?H0z-=b<)PpQ>Qvjnt2A z!76Fj*y3%!e0euQY?mKPiT3YBS^0GDkLXPI+1^dN#W}ZigGx#wCKRc8bdKh}kkRd2 z&|Zr6507DU6Jm(gcG}$afb;IL8IY3+5@K>XMBl zC73oaLeP7E#DAbLy>~x}gjD*A>X$^hqp6CVs{>M!nsaTn)L0;xc%nj?KsD^ zX;+|RLHMf1mFDp*ACFW|(^@9P_9ZfF%Nj5t{yMeIA{ZHYsQo2S3HK*X5+?$4u5AQk zYH{YhuJgbPQ-O}otu0+3LDa=-f2EJwLEI-TIUc_->TAT0E#c~amdU2&C*-%+^FKSW zK$8iH3@ zQIE`=>uh%O5+*1CS=8>$Q3w5`Gla_>kqe$0ws1{{_t_7U`(3_R@)m14W*ahmXDZuuV^J6vto?#-VbrC63$#f?ZZi9uFzJI)jmE5>mWwW0mdS z=euf|Q61AUE$M4e@T}Hz_sVbj3c3=jM|rM_PQmm zKGx`)P)m6~!Ys|qzrV3NX!F~oC3-ZpHBJ(6_7!P_cSpW|fyI%QGlY$nu9|bE)^5K{ z69#cf=Ie2aL4>MIl0=*F*JTvsAif+gv&g~Ru}pN-wrXkg36K_;vZs`Xv<9w_hSVEX z*b^&f06*9`^R*@Q`+^A|DCU~CI)UsPolr|(pDSa~1lj54+JvsBOssa6d-9Pj;-roB zSLJ*^HE$Y!(DEo%g-3t4+dC4A5HRmKPW7!wv)+7x!5K)UhG;0CDRYwgLHH|npyx8M zSj)y({mml}w4IB-F4*&2%Fj z6Vd6(pT)KPf+P@Mx5O+|CrSHt_jy?HQR0-X2N%cMXR_`2JXvGX%K5uqru55%HZh!q zLo48|EXDZ&jc0bJwFFl>SrF?=-8P%8`|FBVzv5)Ji9S8HTrPq%zl4uFAzQ>tPeYHa z-tl&SJKq;P|Gl81vX!lvlUH=9I@)d5gd{^)*!yG~D#s$HBmPXyuGBc^HDjrwp_g!% z9p$H^m~DL4iB3YH$l2rWIm%PIx4(^&=4)lu8d!M(G$VStStSmI8!De1hOkn$4kBN# zYxKUB^p@7I;05@aBXcRo_;#1Md#>*3sG&Q5>>gBvV+*+KqNmSd@sAPUC4WoIvP#;Z zsI9*AYn8}T6Q$>l@DXd)o62QNdd~CL_YZia+bTa#kJ|75TfnoJ9;fTmFTKJU7 z9UcoyBD`m2vNv?Y3+|}ky*sDxG*Bgs)Q-x`i=x;8)61ylZz&9p>e#-bj1!4MQQIDW z4IMfKW7{oB$xc$7$d}K+gOPJaILWP}#{fR3v0rNvf#}jNFG@Pu)L!1`(nTc)X^^hu zy1t5c@SE-gdjE)o&KpXYanznN!l5!*^rqtLC#x3k9>(6OXwazkFB+9@BY`~kXIK$G z@f8ICyoYPj6A3bkg4}sE3AV`E>bib^`HHfOEY=b3cxM9vuWlh^O?M^>M*t=x@Vy>m zGMtQiGL!#SYEm}E+R6-D*YB3VBS3)m5pfIBxM|-`>4=p#`s_zy@TT=Je5)ijZfb10 zIT@p-xX1;^($_;qPGi@$E@V;tyI?)~N1O*j0v3`!{vCSt(l=3mMXO1G zhDjMB_bqMOFHu5URfJ4fT7n>Nf13E|NXE!5LZ+)BICkz#2#=xp4lsGW=SQ(*fJ8{E zlcS}0yX%D&v;7S{rwf!f1Q}tiPk%h!g?z+WE~53dCN@0^o!@l!_#w63_worLs5u*I zCoiw@%<(h#b+whzGk6b(2i84*oOZf5K1Vs^wU5XtTATv!<0I0}qmzNk^-VIPI%@@W zyWdeiYV_)mc);61)4}#n z^!$-4K}X#m<-26K_WDTsO;Y7K4!MfMf4nv3TU1H4=a=xTR&t^>!60c9SN(UXI-Mml zE?D~or(GcYW^24e7%r$I$(lv0o*lI#mD|g+(Xdh^j9qH`-lgb?016hCOeDr^3mn6@ zP#(Fi(sPAH z%aI#hS!^{Fhs5YLBYz3v|-g+m{ZC)K+EG8}(N}Oi#dXE#pk%#a-s))u?=oQ++=@x*f?yOy_ z*HmQ{c$T9eY(9n2c<;{s-hDmOSM3SX;Ev|Xm&ObHKA&yY8Q9~Vjc}ij65&p=Iw`?y zWeAsa(OF0)u1&Om{mo1jm&x+oc^|bMEh+XcmGfZoQjpExICF#8u7OhMxH+U_J=Ed5 z_TIJwr7SRP(yN9(MBR`JP7lp>8*0cSx(rjSdxi=aM<(C=inMk!1}si^o+@WF?vRw5`)SuuYkrJ|)5~)awAWBhxUoUrp_W<0e_ zOV=vx&n4S`%eQ{L&Bt%p9`QczafEDXyOL#yU?Y^xkDZ958V~uhzh1wRuFV(iR{EME zxB!teW6?U@LF8;%W-}|Kq*&nL^iW>nafsh_J_>*%ZE|mybNe{%c;%hV*0UQVVGHH; z9f5{kj}a!=^16HlTWZ>frD|_~yQ~-R?9OQ8xcei2xJ~HJodM!K_Nel`M>*7R6Tm1K z!Xva&z*ujuPmHdQw`Y#Kb#B|=_#6^5OW+;t)QfGo{ndny_q&Wj?Y2f4KIpx_mWZFM~vi48q>}@tJD^8Bat0wC8vG zB^?!&>G>b}gbVtvoXaE$qH6d5XJ~zYWYok3N?u&_4!{j}fQXR8^nQ3=0iOt@o2-Us z8V&88LA+2<{q7O1n)6?pUb)$L;^?8~0`<{44T zXu!IR9=VFT_yF5`3W**gSWB5%$*sy^Fe_1KB*z9uNe(XIc^dUHT8Yx@UlMgaM!ohu65{0AeJtA-aQq=SzE| zr*U8ND|p>KWmetDox(wjIUtvGs~_WyVK;HaF@_doi@DlcZxncYSh+>f$nK(h7NKnr z#c`35)QPNJqN{#gar^pwnG&A#@L8hHgs`>`!SzAGza~vv2pYljmd@JWk&30|N8R(* z$*{9Jc!?6EW$)Q5>9&iUxVo@^ak-MwyoC&1o~K$^cCPp)c#4+oSfgbLiRnxNS;Y-hLEu%*P@n7VEvv1Jy#C3+|}Nf-Zun}J^Zi`OQmOvE#M6+ z$K^S~LZgN`uP@US{KwXR9y$^Y52D*@I+}I#N&uWHBN_KaeAiYVF-5`In5WmRBC@XU z35>lHm>`WM)xX1Kxjve$wrL7FkxsRZC($3c>m(4u^W7aQn2gH@9|U(vMh&LWgLGtf zlYXzQGFzY1xJXqv(0eLzY2UPpX@hz8^CM35T*bS%ipA+_Nd}GH&8ostp?wbc z=F8U^1#P|R>oeZ{Grm?Z2&Jfs{Al9O5+%~gLhZy;8hFNb^%1Z9+ZyqN2H(n$mg!FEDv5*@GS`=q6`&x}g2p{?&f)B?|0} z+~u`v3d?NW`V{Dn_(%3L=+NtmOTXd-?KV^25N>)qKwT9-mSrR@3p4x38im;XcM&|F@vWX=WOS3b22g8%d&Nx z_PxgOzoeY)u_BaL!Tg^ucdE9DG`RPp?fZt3U_|r5-5q|?>q<`Jktc_asU2s)G)6p* z3)X(Y_xf;_C^FgsM>J-)^zQt)Y|?b>f%^TbYQrf|j=i#r%!%?dzHT)_08Nx5`2Jz3 za&Ak1n!iL(lt|;SJuafNg%NwKIebT7zoRZ{_JLNJ#Jqh(zOeC>NEcrNp{z;OB*|gS zdwuQw>vwF2+cgslMw*}nHVGQ?4i9dTHDE#ZXGtxqLsx!nP{?_AUK| z5^g+9Ns`p(_LlDC8#m}@tTc}y@c1$Wmf%`{b!42XvVCgYoXG%BK(N0?m8RkrK!5;w z70|d~=!SxXC4OCJQ4hV114=ty+@FL;d}2IkYJg6q4Abn629inbX|ioeSKqRSQ%5AH8sFo95Zp|Uef#vAru8pVuUOLiojUr%o z_!6Pkf69n$WU&Cu>WIxoY2Z6OajxN`XJ(yZMT|XT$LM62Qz4Kj)v*=aFuwT_C#{t^ z+#)SXKzYx7Ptclk-fA3?^KfzS6*^av3iO=Q&<~a`(60bjMR8kMO-7@E7ekg9;XFB+ zt?mp_NC7Xjcn!mIzAZE!cRJ3jWbJW7u|kDie`A#gAlv&6ZEAe)CnM&lbhIS@={TXT ztC2a0g3j>7gUZA82u`h?1dyx%AyK7AUS+MVakMQnQLo!RB+jf>idHn7GOB7auKGN- z`^J=avPzaPydLp~7`DkdcK;^Iz$CJLeN)<99>LMyX~j=|M?GeuUjo;2dA)*LUcuR! ze~T$H}=xCa3eiqHxBb0NY87;SoZZi0ND6)Q!lvjT76s zSXmr_wn#*2Rqn7o)&Do*NC`Cv;CuC3e|J&MvoH#w>lb{h>Dv#tQ1hTM9bx-&mb8OH zKH}0}7sBB7FlqNc{+b%l&8!&OGygv$c5kzjFbbYwc1EM<7eLVc4>~4@1X% z7-~DgA=^UrM10cunj52zKB^J%-R0+~neF!7$AhU;-7!KRZ$f55`7Y%{dtVh1e>n?5 z=uk*I2%jJLw!%!h2!7l4w7J2I`nR6+lX{sd(7U&Dye#I{%NC`1e7R?;Tt2Gy)UNye zd`O`OJ;{7}|KuN1LGX)(4YG;0*Iau)4s%>JZnf6Acy%P&!_n@*GA(6%Pjr(z z7f=7>ByI2n7sAyU*epmFw@b`(f7{R^U76T@vE(;Sf+fP75_Q0eVW6u_T)1`^0Dlo= z+^+CB2aO|%0{iuTAdlq2M2r_kVvT50O$=!5oz7qg^pNCkFE4ooN?2aOX_+w7rg`kT z?LCM(d#pxvJ(G$CM8~?%ym^njOQq)bJ8dXJ>0D`%kpy9rR`Jn#2uDA>e@KWpoM-hY zhJ^qN=<63;g2g|Xk)RmQp!Z?TjIzQD-8(2oQLn%#%g{m`4wTDupv30hL6!u z%vP;uS24EN7?$8Ns6aJlUN@xn8}fc=F2Hh{T}y2zF>K44u;wlJ$h9xr?LX+joBIyg zh5FN4qZl(S8-)jxV4|Nv7CJ zkD4f&@(ahXh>=j|3aZ4;!MT*}MfX_$x#Eha5USq(309Yds_HQPlZX(q-Nkx-Ib@EL zeocVqGQsJ|M-LxR;`6$O;)kG>9M+ZhfI3N4%SlFn7rDgihg`pZf5^5w9lA=Z{O%;r z8C+~fFtz*kH;vYk5uC&C^Jo1^5xOXL?l0|oNlVxHv(}?Wh9-qlL40>-M*D%am`5Q!E`;&MDI?G}hdUC%E(eSnzs1nbeW zLE#mk>Vrq_^2{V^f6JuU&+|1mwgLY8ja6PHOa=(;YT=n z=~tX7bJLfaX-BEJF3HCIGD;zgL9F77*uYQ()&qGDjYqiMv1Hsg+V!hn3-H_>1 zn`}`jx6>H7(_b*GhkLGdGCv}oAY23UEIr7LV1QgY2iqVFFC@V=Q>(|l+O4vai!SkA z!ksCGR*>bNe}HgwjF-eiX$Runds)mUbu3?+gI)h%xn`Q@p>}gQZI=w{(kj;wyzl-3 zuB==_w|WgUo<%kHmr{%&x&mW(x5_6iuD~{OX>k8^0Mj zL_foRlhCD=-LdwFyKM>HD=gwy^W2H^*k`q(Qx1bOf7uAPnWnLjVeOYSei}`lqvN3g z^v~Cm-Rg-xB$?9Zum+M3WcEr6w+2h^9E_#g`=60(k|dY<+ECZ~`;2P1aL}5n6b?`p zzo8kG6SL6lwMT3S@3maDl3-*8h^zdL314$0sgix~ee2B54c|Askt24Q54SeWJ59NB z9Ut-Pe;;wuiis+;;Ly1){al{Oq8|{~H`7VoQ2&`Ka2e~i)ocG2?->GHNQ{M?{m9kn zJr>%A<@|)(z?7Q8?nRK_MOG$LSyS~I2P$Rd3`l|N>IM|02 z%dwp#;&tXVNQ7QgAMlhCPK5!EbEp#<(dW6ae_v|m3h5e;cI}V$q~ALd57b^)&9xqn zBedjB{(4Ocm?0>8P)&E?TAqfbFzKIb(m?v-wklqWH8S*MoN+}42jkz)U|EXlhhj8s zR(pS)XORVgCaqUg?Cra7DD(nhoL@x;L(s%;DO*`8>cJ# z)(pgH|4*cG#M=w5c`V=yC+)7kadg4Y9gF~=$ni`xJd10j{F9_vZxYR1$Ehn_jzp~^ zi(_?_PDhoT6sn`((K@_P?b-f`o0RoDe`yzn3fN66`>=u-m$qp z=5|c2I^Ez!;}eb$i3f$EJ3`S?Sr;oG#Ani-oTZ#E9t}-R7Q`}zto0VRRoF zh?jl{9o~{n#YPQQoFV0XynIV*zvc`hyu(hA&wG6W%)PKCfbD>~e}?5-wk>57f7;XY zWbeUVl=DlTN`I$#sPWFHM!DQ%C&rZbT~Fq@XCUPZ9*W_cL+zSnkSh2+Tlvki>ABI{ zHug-oa+YG*A4Jk?7W1JP_9lE?@ThS*=xI}-q!n>XLTL376>jN;Vsu{Zj*-*6MAFOp zZxL3~^s(>@L*M&p6~_UH-%b;ul%Ia}h!lW_ZL5Q!$ilL10lOJA|p4CUht-8Ayr57=%rp{=vbP!8>} z!GEzsrOEFz4j+@&rtrS zPrqL^jtMHuEX_lh+AJt%l7{iQb-A3gGL=Bn6W0FQ`q}SSe>}4d zI7Crz_uN%R>)*OqARu~iwM{qV4TSu=#Oqg=E?Glf@scmm$s5-Z!4 ze!n(mNr>&~VJCmo+?qYtHdkU`i7QAqoizptpq1-ujjtL2tZk>Za zdOTHo?)Kojj-K(Qe|jXp3t>DvG{=KR`ljPCN|NjQ@wS}Qz+{1Gm)>wXJlLr?m!Pxk z&$L>*jG#x8r0xIph54)G_3U}4&)$Z>M`j9%w;-Ne&7Czqfg=_DpS^JnaAW_r-*AWs z*@lqArl90gx8B-}VmbC4L&(h8@6)+{wyK()Wfs`S5@YC(e@@&}Dr#a#%&9EW3evzU5*hf3TLp^*^CD?r0w+PC_ixDZ`94 z1p8DKbrq$wIGP@3M0mPZNagj+Ci%dI)?}+rL)knPnk@7QiTJI**+^tA;F?72dj3iv z_nz*~3(tbHCK!D(EbEY0GEEAiC0twmd<2yXV0Q0e0=4a6C4uK!@y`YCz!tvLsU+Pu z>4MPUe~iKikZ7JW-yK-R{OQ`-g}zui zA+q)%WF-m_7K97X>&_Bj&IU4Aj}dRpxLarAe{O!QJQ6%!N3TSQ!C5?#hi#Lx>Y7$c zG1cLz>2Mu+4javRcIi^yRT$&)0xJ*9Fvnb`spds;-1MNj`-`hBCswbD~UbRn%50 zf8BMY9$&GtO)`C?CT=z2M~>&MAAWUfP<2|p`2iyd-@Dk|D(%T*ZCS&a-{wwJa+FMC zbwRqSD@>(UL9|m(4M;`ex@WMx$YroWedo2`=4o}1Q-if>1}jlp<%+S18r9as3|bI* z0|?qU3ijvlY#h_6O7A61f#F~Sp0b=De-;jW#)->SdQ&j$l4OWda6bF9+R=tTshan& zq{XEioh?RtB-fOgc1_y_YW*TAZU@0kZTrvI$4g7T_cButsr*u7LA|D-RZsdWC&}%T zLIL;FX(f5L@4 z?m77if!1-w;Z)y6=_t7|C@3*sF*bE|Z(^G$HOI|fmVdtVdUx|~B`xTfF!H1ON+MF{ z{H1g`d4^CCpU#j;>-?oH$T07wYI|(D*C+U(ipNzVXrI6QQy?XB|XQ1S--X|H_zQ3MBq>?(rvkub< zT{K?rwZjbak7`P$R&JKhSONqEo8c<2_?e~j3%=wPqHIda+0&`1OUx|2e{j9${`rV| zW-iWyBc8*!WctDhR9L8?YuI32>49hGpsEjhm2RQshG_q(9=#j(ym;P?bxIK7lGEwA zV!c~F@z_oVSozWYWUyF{cSj3V-& z?;hXz$aj9L|Eoko!M=&Zti85vznvIlSb{Bd5`Cr;OsKH8ai`ZDe?BHZ*%px5MXz`U z^N}1QM@IAFJ=onoeFBY#{u8XPwXd?$e;OFi&2FxNvgYZT##M6k=r8vS$>9P0MQp7-$NK~Xaocw?QqRD1 zwNCqA|DokawhSACwDJp#wB>0&jGMA(!xyq0(FWEhNaI9F_(B7nRO%wQE+D>-)rPKu zy)F=^K0t>6-Xm?&G8hp<*Vn$6Kt+M~9{Az}?zS5~bcAOYe=2)6wa)Btwa23Kpq_CuznZ+M!62vKE&U~8IJOoxt0l1wuuM9t z234h`TYl`s_p$0hKn|qt^<-Z${iK!e|(po#YQ8$SXht!`lJ=N;*WdWYLhHIT9a z@XV7WG5g5r)zNfVVnf6#Z?L69Ep`k3Yfx=z%xP;L_=srZsU$bJlA`Xb;S~QJ#e;+i zc=RO(5GTas`rMb=Q|P{kvcGEg!uP0Y944|=V7n8$wxPq`JwTX0I`LIOAOF?G*30dy zZFNKGU4oa(vh-ifz&SBgiSNETNv4NGl;De>6?O}VX1*=V4TbzB_MkYAq4eD*&+%5a z-r8Oge=B%}9rLIB@0Z;AC1+ZuH#8A)AWxsl+72S>KJhU@3mWrQ&F+Zh#w#dc;JRn< zLU_@4Bu2Gsp#^N7g4`MW_oF9Ox6+Oen0WHIUg>a0GV%5)o~k4+9)L~CSMCmG!-Y{E zP|znnwsVe{rMB}G$aU=flJC5F#fKcgHLTV+e@HhD+*7h_D^6>lV>o7M{W?ATy@W@q zh&n3^Sy?iTyH1duZ1KB0CO-yzd;4T^wMVv4OV#6i9`Z9X@@<)%TbDSSNO3TN!zOd$QFq;6hgE+ z5`@5U->DMBwnw?a&Q?ZD+LoXAOW^919kQw;z}CCvkd3lui*Zd41!82~A}T&!<5=tS z*CvfKv?Umv&{d{TB9C|~;IAB|`>z4A3arx~7>DQR^dw zh{^Fgdo&Hrg?Em#6md4xax+ZixlkPN2`)goI|%8&sYq53+rj&NK4jHxK@oN%e{z1Y zC7}@QT!^!nZY?^>dSoOt{BJe(p!J$gL#N|zTNnv>iELmcir)~GvEA4X;@O2a+Jqd_ z$1up8vz#-_yZi?2ky=LAzK1hyVYVZF@?7U1-IQFUZZ-O&!O7-;o7=rSb*xr7I`wvM ze1llCNDy#tAE=xea$3H_-&yaxe^1wZ?1diU99yH5&L^UC(nL_^rpq3rP)#%3COPPe zHZcpr`-*~fk~A9$!-pcGoU^aGHyXU-c0mjof4iW4v(zsY zcM0e?itY92u!S_QRG^%wJ$`+o1X7-q*venOV(DM{{T4!N-Puw^^7N+f6;VCDCE`a~ z{knGGfNixL-jU-A#qp9FOM>yL|(9tH$wk2sCVMNjTK6E7Sa?)~_wgA=v) z-|FNEPtq*YuI}U&f1$2~6}U5@X^I{Su9zgO-vMb%zKy{NQ6DAk`1kx4W_AY zKX|Bkk2qS!rmQ|Qhv&b4HVTD+C3%dI^Cl=k|Bsrwc5ooM6e76QT73_W+>P+O-~VvK zwb}LtSwd`SpDv*U2R`(u!K<}NT15Ppef?z?=6rttOW79Le-+9PV27w3YG;bQ0 z40EnNj=s}6{0dPZvutxbU#MT+`n&$Na~i~oMZ zV7}7~PYDb6e_x-s|M&AwN-BgNd7Ss#bL@B*A?-7-E%Adni)=s^^FJqP)%A1#r;+K+ z<<0W?sf!Tj_ltoHfq1uFqq1Z;n#iqMK4-KH$NHZi{o05J!H1b{z{>>CUhvVax9;x~ zBLUy~Hx%=jdPVVntnbLNnfi3&Xr?goF*L{H=y-C_e?zVBYyYbazWz@xmNm-=QTw)C zX^cq~NpCkf;(O;0D*t%OaKoE^EqCl<|ML}37Ha6I*b&|JI7E=oRlf(rgP28*ME1)V z>}S`~&iChE?2=Z>Y);3OqN=@#D3+z^3XvxLWL`9w0+15`!2NSwf3}D~|D!H%=jeueI)NTgi_0>_sr*iu|Of*$>!RPW3s#r(vK&jwY4IjAy$|1%K6PvR?H0U`#)qp=1&MF z6r}xR#IQ8T*|;h79e|AQ)Vab^pTu)xmVanp{)Gg`XVQ)pVHCcvo`aQ(InLglxj#4H zhCZiue>?w@DZY326#W-f&fwvUi3(a-XS0y=GB%PQI^6jbqChS2K9~e5H1^Y|1?cegc{;NWIG6{Xo#g5tOn(NZ|Cirg zERJIP^@PS7WAV0vuB`L3%Rlg--4dsf)-USFh0>YMf3I<3hZhSxNO~u+0Br9tSl)!m zZs?&`qIb{d`a!}z{QpoQVKBE#PDuO-F>lAMrHw=P?QezZFcWUqrS41l>5A6b|P*c==!c_}hO^@U{0gW>KzyiBNgjvq!)fAc%W4{H6-EyJG9l@hRN>pFV#RWR{;boR82 zG)YIA<8A#r{pac^%HNFDPk7VCOM5rp$~e>sCsTqGLSOMnF)U z#I=Ku`11Qk_WBiSUi;%9I0GfvjDW_!M!?6@x8T2!9)|X`p519;FraxY6GgLKf6g%6 zU)f`~zh9htXgvL#_}6Lnar1G!GCE)1!8%8kzSfvKzg?~$eJ$i@|5+s45&wCR?VPY6 znf70Z1KA-70mJaloVGJ#`uH){#>X!a4K#H8%iBH|O?>d#9IR)*3*XF=BHZi?9IN&d zQ?%Z3KPt5K3i0;*mzN$~qm?4qe?PJP$DSvT&#@?oV`Pzhq~ooK!hrwlY<&NFHeP?? zJbWc4%0ooK{fW8k|h zL%A!N)1)oje^(*E;J*J;p~T>24cs7ZxU(Tu??+Ney5S50vsvR7j`mM~e=PM=LGgF+ zyfX?%wbicS=F+Tv=D2QG+$v+qBgL|`ob|UBzl2G?&wrG04`$lYigwj?+_iZXwGTg{ zhOgVyPD900*b zPU02Ej|Z<2{S}9cpK6gm#J?==SB~LseSVYgiN(_n@MK9SNn0oK^m~I1s)03b#!oke z6@sVrFR!}D$)iKwIZ|X!gDsyF>~^ts9puS&kJE>&r1!6KVmrFyfAZfmb-oqE>wB{2 zR@FpYPAC`*A>Ut7zj`J6-i)&Ab!Nd19~p8pl>tLJ%C;xXJk3xV6B@h=cW*PD-o z)7%o_zHPt%;tWb?_^)ZcviDFs-p7y~Ke==+eAR7a9a<0Kk}m?F>E!(S8-cz5-h{4` zHFECbip0{}Ll1q^6&{_#1-c1XuF(B8t?{AyPqLC}3HA@dmzs428*5*JmGh5!(Yo6i zbac?-1|0Z8S7M1`XH9Z)`oEvQ=-xE_+VX#qp~BR0w;psMW8RhYUoK&%z-AJdhNi8OGZIw{!G_w!~IvJ-*%xUax_>VRJ%( zUOwYbQZealSm-`Ro4)0b*WzZ_&ws^}Pztjkuxb=}`GQX-z9u#Mn&O5hn)H9HEs-NU z!lwZ&2FkzCW%5yd6_pd?`EDOe?zLKHgAqb7aBLAGa!sp_uwH1Af>+b)Ci?SmqaVSi2`=5We{l$fJlGFH2 ziuE@LE(B|F!~4_pV;rMzEadL_?pGcjeJes3m4*%HA8HGD%N>y>UCT8-8|cDC|D`Mc z#F>sM zZu5(si#MrH!5}mrVn`@4eBn!0OQOA(Fm+n3nGocBctSc!{SG;1^+S>WGA$zNXz#dv zPKYU}^GWV=KJv`D^29ez!Suft zmK&(P|6|=x{8TjQ?J8P`?#D7BV5YZWKYaBS%3%6Ro>Th7{;vH)hJnz{%}`F7%=k^* zbUD8=SiknM5Rr*l|L)yAq`qQ2r5&mCx9vPu)sOEP!!ry)IKjG)ccPGI(XLwl#@$V7 z^77AH6R`HQH>H1z$}U}aw?rY>~-C9PFX4B{tLDeq~#r6Xx8;C$ogxye_?Xhd$e zl#^rOB+wtE-x>Y=CSpCl8z%43+aAa`K}e~&g#~X$rZRs^-fJJ&tUghiysu`L`5>E=Q}^#%PXkmGnGAexxOK(^Ragg)p!6H z8H}%ZUG=Xm$>!d}{KX0SyrKU3NzTt6pKKkD@4P`^y=hg8-@5>(nKm;F5 zvfZa`-Nr1&O9f%`$v{s+5*Rnv5gpVSGF(3>y%?SG6RFYJPB^2vd=In*c-^BA5Tw(0 z5aT-t6cm3QD~o12>8Ww2U0bnm*Fq9y>SXyG&v(5I7I6;OT_RFsyg*hI1fz#L>cxMB zPNuGeOHhRfA)EKCvht&RqzvD_u@qM}{AwiEYd;a{n{V+^bCk1P)m(~7!j|}=? zD*dy?JtoRCiq&Y<)pLh2O6ItGJoUDb=I*b@}`L39QG=XeV&wDux$gh zv~et85S(Z1)~IF1AC-F9?q%QJb$Nd|T>ANBeY;qcpubXfmFs%sj5?8j`^VrF?`A$i zKwfbF5|71kMx){0XAeSuM-_s8#9|B0@~K0_!Ad`+Culc43xKbmbh4h@bVg%5D92%` zf=W5hDP`=VPaMXMKEx|x}JK~=-Zzkln;I{u8u6!A&Nmi^n|5R(fY`jhWt43vPzUDAg?(ae@WS_TFRVkC` z$M#>kzWZmxp~k9vBAxGhcTazEF^#r%WOu!e$NMB94BfMR(PXswrv~YV-YB-C=h#Zo zY3r-5RCc)-fBQp@jX=Uyc2qgyx3+87g}L%Ry2q82QJcnrX<6&7s$P6-UdP;-VBb1= z*@(-29;ogn6CNqKEf??n~jzuCB84k$b*x_#aeud^+eKWee@AyuK2+4ioYXoy|%Fv_ngB*{cM@B zBUo9gIpdgpsxJ4s)L6l^{&FW{VhP&+{HYy2MGCfOn~=kt6^GpIxJb2s-rlzFGCrq0 zX6*@bP`kUgs)B!{UEt1W&)%f%Xg>ueQ9a*|x}vAf$5bsg0j5ep=0 znPjW)XS~E+^gMR)_&JvgRC*0|*LCG1#_4*B)|7=DSL1(gJS(#f!9=?mczF4J)9FmG zg009_Quv(eBNh3$0C^DOD84mG!c3zqs|KAZq32;$wZ*HxT1x1Nrr9dX2Tn8w;{_l`QVLu?K{8d9=hSi39GTTALg zMq|Y8jFo?kInhygmSKWU>B-omRu&DHZpLjQHQA>;`6d7%p0?b@qf&@3$3Na_2n1O?ldnSPWXS0PfsmWVYbuD&Ds^ zF+OWjsH;Zj2;kU_OWf1G$-eft3@F3vIrWWWzib&m?MWV{N*c$UBsN|Gf@xH`=XDo) zcPW1a9QV&Nnoe%YCRo~K(LwdQH^gZ4rA@i)VUs`69*9??$HIV+o%ayu2O)(IqtCp@yr34bT$OOK4hC;QZJW`aTjoP zbP_d@@G!MjO#Jad8`<9$dMkKvd7q9It(1S-m)XFTS?)e>OP}3Nxm)tiKH$}j*O;*4 zJ9ZbxX5|*TP8CgieKLm}-J8mcU@-^aQOJcnY~yanH}gNAa*uNKiW!zV_^!2;-VCTM zJhs|GSyhhhjS{V0ir+J;JgL8N*1#8B-vVMbwhe7FcmjOh3Ud77J!pCXc)8zYyeEG+ zLSg~s#edH@D!4xFZ161Kd2d@(dWdgL9P^X;Z;cRc!~$b4?{^fxuB=xF#DjBuKUfhQ;^w={}fkyYbKPfsM-ro@Aah!t57FxGFmd~%yF=70a=(At6B*Y8TH2kYVq>^%RFz>^B~+C~@>yFG2^5S?0V96I zBbk@b%eDOr6s5PF<;iN0@d8S9Rb$Q*d-Ch;b)Towe^FRTTc5^97SZc!Fc#=i$30-U z-LW1Xu4A~BPD|!weWgS%%qPxh@>8 z?T0J^i+W9bY|*&@(+7&Aq0nCdA$zLX+G!W*lqk529h zx=uy6t6D}E-t9Jgn90b1Td-k5DOH7>1BA=;wcU<*PVJ`r9JhaU%c<_;GIPd)ar~TC zOSi%wTV4v+_$FsuE;l4-{gzMZ10I;=6ZV1jy+#m_4cMHhL`MSnnEN?wH%>;Vw zxA2weSN4{CIr=iODhc)@gnO&$x-8=VUGfLC?M|n$72|g+t#`VV*v5 z`Nm#6@$7rAy~XfiGztgy{EaH$?>HB4x#}DwBuya`p{h@vp6#JX(?w+)5C=pk%h9wL zH`2oyrPvPs=3(*xGp@S7P_G%8fvoyO1F^^UaP=YY=$^|r!HL&lc4ip$j7c`RC5K%S z$GR*nLOY9OUkl#Omn?_{8Gi;(BC06M*0ZkHc#w#rH*OxAwNc`=@|dTxp#xKj!Ox)j z8}@;+&)aq!#iC;S-gC1a=lj$*S=C>%a*gyyDe@$yH4Y0Dqiw;Q>sOE<|2J|suW#%x zCR`3o@iclU%*aF@3xYH*4`d0Y85Q&guT!wxV9v1t&X`GxUTc5zR)2&dODzNoJoXL1 z_to{s?HFs~if_j_{{?Ru&p$fOW6p8|G2?jf(`obot&-oh^09&ZFzeq7UrtmlsH!dbgv|0SeqeOeYFwZd$ zJ+^^*JQ-oJ?hrLN_J4VdMBaGV;_Ca98m=);zmRBu6Tz^sZA{L6*RU5;R$a`9PGqM0 zIs~6~r@(^z?+)A7!O+^g?H-gPCmE8&k+kjs(5Q88e_mH`6*j9>{1OWN z;tGAQzO{O*P)dZ{1-ZNDiNQPt5$C4PJ&K3NO?eNnz);W9tL4kI$X)&plg&JXRxYUN zh^c1Vv2Q&pB7ZQ2uTnHT^@0&Mjh~F|`d|k@I58=E#@k-i$|rh;0HWK%t4D^o&KDXA zaE}vRu??R=!B*bA6LLfa%rTgx@MCc=_c=Ph__o~{-aIwBGnbM`jdcYF7}t(-%R$J= z?>5qSC#Gp2_Hn&p@?3|Y5!n?SOwn>qFndGScb~LM^M8Te_j_%P(lon$f9K7cQClLG zSw25wMj4s%8A~QJ^5rh37|zI*{s_OaMwIO$YU`ccHEhv30@#r6GE8LKwU_i3nJE_7 zbPAxGZ_d^3r2VwTelmQhlZun!DQ$X35NwP0tznlVAaaKtPohfcc-QuV1TuHcTJj2} zFG0as)_;CeF%m8?79(*+3k|X##a;JRs7kT=TR#DAzHY zamak+BvQsr0Ph??yxgPoBZ78ywzISKPsIa4%n&ui*ZtY&oP%bDY=PA5^cjUaC8kQD zrQn^%fNp|s-p51yESw_YA)-=I@>;FDJm;*x-+wSroxMhwbC-f%SuLViSAFy-NgT9# zm3GEFg=?Ur80c?Q+oMnk{tu?*qxel^ao3O@N$TMN{w}k1XnzgdFH1PyR_pM|_d97Xy6 zU^=veW4YGi6FEyBqy~k^RtMO1Mnb%1h*>z$W*D3K`j(2~UfzK~v#AWR`*oC$fovky z4yBf$wRN!ljzko^DY5*XTIlJ2Wt$yo!GEg8f}zCcnVCW@|A+UG!&t>OI3{)bXjtOz zb%3^$BMle_1n}}`ujAL6s5;td$~|i%?Kpf+9Y2U6!ijc@ma#NiCBYX!H0J$OXTqk- z{}F&=d-;$b`2z5K_sojDh%*sk8|!%9l4zJTE!W|n0iJ6 z-}%%@Ejjj$xQm8toxhSJ0{{LG^?tdFk1v4wMV1hL@yv?nj6y!%|3;YOp>#F3>zc$U zkM^5T1E~O})mmB%1vpZD_vrmy)Ny{eVS(*{J+FItYS?*YMA14U=?L3Bm!eFjlR)bs zZycY0615)?OIGvYQwpslzx@Q>a&@VxV_wY_LtFJtokXaVAFhWpqxFqNJYmTUd)s6A zGz!E$9No6gCFkC6;RF_H+y^c^XKI+5J#`ZJ7UJaS_abf3BL>7hs$gQg3;>sAibmW% z{)~lx3~bxm0mb21xGk~C$(*V zTfA+*FU9Car2mrR5H5HvmMjJ$ZN0-?cv^h4+mDFn3!-4FRiC>)i2MgLMnMd{&Lg&&lmMfzPO(Et@&TpuF~zLq zQ>p;F&!`6q;5BFVO@r!=jeW91%~aZd;B0Fr?>(pxtW#+Y6R2Kw(2moyhTp?7u?it1 zhAdwG-0jSNrE>lzx!R>SH{2xFs#0ViCi`Wc8aK@hO6Z3>&Ne2N5`)k@g;54X};~0~4uxp&FxRKV58$lqV8!qIQfgn;z2I{*Jl+_Df4E z-vYH@ZH3uha0Gwr1mZ zW|puE@9TfoSFvc4c6#oMXV!mzk5n%d&Hea|1RRU)3&%v3#__6wJ0b+W@)>>eGFbsS z8~V^2-1*F@EdeI3JcFI&8%|<1J0J+s7Yt*$tBx_O;n)nk6H7djIQLVAXSflN4vf>ly;TeqK{wU~i&gjWD=K*MMHp6eE~D2h?DuBq90Y>q$U%_>lT8 zreB$IyNZiK$|X+4p-x}{RXCzAp&67|+RkX7GZbKuK2G~lAdDS+1kbjG?_|~Y87dGr zp3f(=YkBT57o`36vpKjX?6);#Pb6kTDQjA$cELi}M(lk88>@lTFWcW(*6ErPm7W}IM7P7CrF`$;ROiC)WDmxWoo=US3&FX&1=1s(R)D7%<{y&4q76DfSx|4E$Fot)A7wPUO^Ti1E0Tm%*y#=DcEm~mi9VQ7%F z{rgdV9>}X%tNqq$=6Ue@nlv6NrgiY(jNfPh4GO=>REh9 zpYj)(a1H)qK=tgCO&^Ks6Y&JyW{nTslSiyg5X!vk8qUBXJR1M$UYkXRA~=*lvM5QE zflut;?TYPNu0cKngF@;&-s3lILu`%`M3Vf(hM0lK+Gyvn^0IT_(2n4v;mi}tP5s)J zigcp}-L}Dhu8YN#-5RPkbnF{^q(@Xc)`w5|XH=1DDNyJK7^$tPOktZEDd_Hy9UyCh z=pa!#!>w4iSs;ug;!1fADqTpS-z6P{!2>Yy9veDzd4PvRke+P_~c%A%u2x+;|6niEd=q-C7P zyN@x0gVR;1^)sVI_4;N3*>;qiR<19U7PUY9q8)Wj5mT}ba&a6M5o9**@(pe?ydcAE zC;I*l@_yV8pF}@xgXanrz|&B+CN9ipjD0BGm80&JtmUJA=SzxlcG-P#F<-V4;le{kkrby{3F zfop2=z{tyf^vAFVCWnZ{1^S%RZdDZ)-w}HFSafNUoiF=a+$sO55L@>7H?Wy%Ejg!t^dV0DQFd(ctq%J|I@fV7 zlT#UL5(MDMavr03Rqf5uVKbl@5W`MEaYjxQ%ZA&hmm-!0CVy`=_T;8#zaq3zxR1G< z#$OUKc6+N#maTwCb2-ux>S;rlshf%y2nFH(70sB4&j|z6B{p3Wbo9T$H;}yMEge+R z(qKcBRz33`U&{Vk6~AzZpv{L} zHTmBZcNd-x9e?e+6#y%D1eCMSMZEdn*AVBKS+vc0Oc74NCCEx)Ztn)U2;wh{y7nHd`iIb2N-Yo@@p`XtwO3E4ngVFe9 zrZ&AID0+h!*5YO*u!gu!V%7fVqV37bgb_XIK8(+6SXFFTGW7$d&oIPr@+e5515c52&QS+CT$~XX zyks4fvyvA^2!gIPcZchzSyZc+*obo)O?1~OtnKLhmB>mvTSU0xHdzE)m*<-Z&fzg| zRL)MI%+~<*9;2g>4KeR@GP9=2k*!7#W9lgz3k9$vlH$|*r33tP+f3{Wy!QB(N z$Sf8^L~U|cC4+Nxn>@5L3@|WWlEy!hVCkdVTRjrJ=0~HSO)y$Jw=8j7HzHcTA^{%K zo(@h_AL+t33s%N${2!t#m<Wh*&m zg@?XlbiB(+XOtvGf0=(IqANZ?=k7m|**7P|-Uc~UIG|c9*68fQQ+(lR#f#Ue5eQ>UX zGn4q4OKe{sf0dD2Zdo&Dsfd_oN(;LZ3f^JibPy(ga&^lr>yBg#6X1c|e9QHehS)mj z)(_5?QEB7pnT{L|-tDeosF+3CB&BeBm!R%`ssqM>8T+9NAG-#Fc+Idjsc^@{jT~@B zwtIvr%U*oXD}?7S>+RV}FoN-*+~Vpi?zb;KO`Xy7e|LiT+PmJ%bOJ{-VRsKwKyg$* z+ME@rx)yIj8OW2H2@^7i4;j@3FIG7-Pv;yQWm%>6*~LHe)*D;tG4`N|Vsh~~?DnDm zS$n)N0?AqwUFqutUTuTERn0nZIFv&$SyqKIz7O5L3r^%keCvx^`E+U;cF6v$(^UfF zP}PU?f3jo1mpC^Wjyc87jNfX?!D*d8C0qS-$et0r`P+n|d!Nf7mW5RO#Y5+f6-Tcj zJrLGrE-+RSqYlsA`B1al-V&6)LFv_rNxaO6w`x2Vj?e-4le71n{bYowIdp-{b*3E{ zS>nn%YiEp~ckPzc3HrOKN@r7sk_A05s~_|pf81`^&IO-&C)9sZ$C)h>qP+u@5U!!R zh0im#_Du>R()aTu_Foj35@N&Km35MwN|j487>P(LAzQt*pkmk8eB%XwMAgu{a?kZq zUl?{wd4>}TQ8<=*&~KlzmTE~+bqSV@Q$ju6Q^@wGnoovpfx9v#@oRL>?OIyAmU6A| zf9Ae8!tuo{u8m#4#u#az5I zCpDnq)moI}H!dGgbp2WJ&w_E|2}ZMfwxxSkxt*x3FZ`=-7-icbaN3&{${9+U#DNP*YTP13_-%QquqLtXiNWCG#0~$IHo3II#8Vev z80^${9u!*`(bmNNm-A)NX@7-x zpW+_z);?m=agXvB2acU?JNY12x}K>^xToe!4EU63AXc0hy= zUR5vTfJ;8HQbT$;CK$>0=E$YxV1GlvEXFPaME{y+>}29^&W0~p@fdeS!G^lt`0ozn zSN6()UAR0YLIvnCcz>=`j|yS{#4BG-?KX9YS!>&l11}oZh>mL!o7>P3>l=j8S8xzSSO!?<8NfT$snSa*YE2h~I?AQdlSI_Y2)`m|Q|X z869q2j+a}Y1uB1XP7U1U?1Qxk;m-RlX|SRE6&LJS4^L0jEebXR!M4-LNUDKLEY-zQ z7}#2L^N(9_AJF?^rng|Pm371Yu5UUd(C;T(d<2+|3-OTmA$#udYI0>Pf^WHV&Dswi5; zv=&pi>syHiY1Oca<}PNrpA$qR%YdKW_*b%Nc#2rh{jQaUZ$M_Z z?ZvZ0rMnGiqHd{CEVsui_<_mIGHP>-2&=sd>h60`qRHO~HIvR+M$hE-yr{W=?u*J| z(3d3HJM(`}QouoKGRAbfCLg>+^rlaMBga7Qr^Os-w7W@`+m$Tx)aq_O0!LwAgcnek z6^4(#&vyF4s~Cl_k#v~)Ah^L!$6-lI0w197t-0DBoIhP7#A7L^D+%p5 z=5bD&A#Wk03-}(p*AjlO0|<&VPqEgrO`Q;S{loP?qxbEmuHSqCwToZ~mJ;^oHUVl2KCo z*{xVDiViQPBZvC=Zo|4P^WR8%9Rk%j#u0!13oRVNx`vK zVglo_3`sV>pbSzVV^vK@zudV=u(opu(N2dkUr@dlzR3EsbpP(O(QK{m@=!8*4HbXy znkGv2P^6cSVIch8Cdt2(G!V_shM=E$Z-VDn?_ z(ZH;l`Y$G_R|h3SZ8TzzQSX1n9(s(LbgFxdwV(x(qLj&`@lksq^-7EV6G3CKt zHLT&qM0xgXqv3P^7%@m;oaTvlH=#4{W5n1V$#go5RUlt8rQ=at$hg!ahrB2$Y-H=+ zl6vU5#2Kuu+rdVXDjU(2gKK!Pf}UPq8m2~4*YgI5$wKXXv!3tenbLnM&1FJCnX8tq zgBdG-kT;m$M4sEjQvbg?9(f_hRGjYA#sV(&+aft@g#A)(f^FLWs4WpgSWp<*#*Tw? z)L3Rs0IzX6L&LMELhM}#7T^;g(b0VKT6q?$MJc?Nr4KC zk@Oyi$|s{&wLSq#0jhs*BxR>ktQr!Cfv`Lc4|%{?hieQ+acik2m}s6q$MY@u6=W#) z^g1LBKm}}{vQ4`*oYF1cCIpB3x8VGZudYtrnfrg+SJ!Ans_6vZnH8fDHdEDM$||`; zY87%sSq8IsazAr_rxqiY(`JhNG4fp_^!w zttb|*Z2JLz_7q%~$+2Qw{1!^{nn6o(U|lcpP-yNr{=66?SS$`S!|_6?qs~2(Hgd0T z87VM0sN^_MMfZPK^~MPjMMWiF8&@%+h7R?$ZQS0=dHq^`0hrn&EbYlcx0Ms8j*VWs z3!Cw|B7CwJ+NTsQ*S(Cs98~2;gO0&;&-4JHrs^WeBTtm?Pb!A3=4>!FGO>1SP@SFA zsbEF4X=@3?;hV5z9BsI%Dn2Bj)JwW^Ji?mxf?2dukwt&llcZjw=7Nj1kKc?_+gG^; zw)3Drt#=GbuEBy~FM@}EhZKEO=SEwVks2nxviq8YSH&L-V0iXgYB;jIs7R7(SvUlL z(k+n@trS}dla_jYkK$^dus}CLmVRMkx=*Uxmn0K4L3~Zt8LuEIGhutCc;oL>Pboyg zhd2tRhSqi^NCjN8*?-q^BVyuW{Ye2fp980NC{It zg_J$xGJ?j-EPUn84tMTQid$EP5Y1Cz$jJDIAVq(~ase-JaF8=@K?gMKODlW*Nw~@N zh0WVm`p<3AYG80J?4vCSpHk)K(MRZJDeE+&S-UQhF}+Ofl0qvyKMtwB%;U?fbF7J3 z>?f#X${Nc#O;MD@ikaJb(I!U;*npHESup_xbQ_7gj1-3FlgS;!=1&WhZF zQExLDq^$|wmtQovH5$NlxWnRSNpemH88$8iB>wUT5H&^nTSA#N3w41W5i#5-+d#u( zPFREuilfCY{SSeQ}UtVwt&RbUMlASlNVWaqkA(e3BFn#+X{*D{YmO zrdbm5e^S_{BOT*g5)$6rvg4-ieT{+K8$IfacUgAn)ENwjSg|^LosIxOJJ%#x-ORK7fid{_kN;?=ySFRNA?x_t+E5a@BCsh;vX7G7{)j zUA#$Mla$ldUh^)!_<>PZM2$F2{M*@U&zsP zG|q|0rR-m0%v^redw2Rv@=#fOM^_!x3vOGp$&|UmLw(Uh0LggU8A7K;pc~xF37@$@ zd#;=i)}r#+b6e!y2-bmc&H)h##62|7=Q`bn4~+`edgks`z`tJ(*Drr?lAOMuL**HZ zJ6V`tWKOk?2nZizQQE>eN|6}1C$g@6&eE1)6?cJIb?gaO9-s2Wu#w!Ld##UO$sbd^ zvVQI0Ub7XITU$pbuQ}c7EHHf{$|FcJ6&z}`%n5s6|HXLbn_wNG;o_sJkHmzB3A`{c9q>L_D|a>9KUnRm_w) z%C7gAdSU4|ib7vdd4&~Cx=CW^n_DKDBRGc-*6sTx2qp5jIazYoR^V^d~z%q23YRfk!R*W`Y z615S4tE2|d$G@ZG^l=up>L~6HPB!Hkiq-d-F2t>GFVcVQiO?svC9Ko}A#OIxOmja% znB^?`^_}o{P?-w89Ej9E{PTF!uuYXYejVw{{^iEp1>EdJ% z#0F;0(4>8(1>jofypdOu%S|W8VAg#b@EA{^*mdR_fcc2R{F-9R?ymD#eDQJ~)Nk0G z_!>kktfdkT)12c@A-uJZ*alc-Q1j$e+>1Q!)1c3WO=t~0+W>=+d&C2gLwcW{vUfUP zFPG1+1u1B`zPUC2Q+~zt(kVS8giU9>Sd9ROV;fo1ZmG`g$r&D8m9i5G`xEuQYvN8v z(qH`hcJJgHNO)A?yRy@Tr#&Thbn~#B%ScyWf~8XPXby1skCIC;ArIHr7ybV+HK^3@ zoMXG8=H4!sV6X)q0S}jdumvH1Q-0Dc%!2kB?&w&CM(~9f5NE^|WUN=22ksXpvG?Xf zstpe9m!n&fLyH=7W*m5N3X7-a_=bwmFL|ZtbDqjjls))+0^=x3YD2v-l_sF&cREGt zNuy27B*c5!e)d_>H26(xS0qpW6SJEukze~+8#Bd5qEMJ_CQW^t5$QyiAF%}|O8g?M za;^qf1s*~SD0?UuDC3@`IzTP+b0=N_d11UHgXb^)NpaFBp)smQJDKk-UXaU7UJG|8 zj-~&@Z@y>cjuIFZ@l)$-_bo8zzMPly zu>~h*=kr+r9z0_bnCP|FA+4vaU(cKbFfE*g)5=n&Mv-X~;@}f)_jHIj<5vu~76LK# z9Lyr)vuX|oyj^DF8SRhh(-FM9FoSpxt)@e%MypPwr)J9dCInMmIh194wjWC2RZ72& zqke9efwBc7f6x1eInPdYh4S%!eJ7RAo&Ox&VGs0h&K&N*#&>%C?J3_Osf5v!i)qoj z{!RyCjAWFkQU-JAJtB(S<28DhX@o4s1l}ct2<35v`yDZ8kLgP_myo457I{)028D;O zpF7eypOlwnmg}3}tS^3P7{~0@6zHV~!{Qkp@j>tSe^zDW5)+X3oQWQc_FiHee^aLz zer#(Hv@0j~v5md8bIA$Ks z5d{Nghy5L-avd5%CysULAJAwMp zNIu5o1+!nifN{+(PPOV2w$I5j;5X2|zlVE|f7+^T1zv1hZshIfx=Qg06uqwk&gDpo zp4alJA@J|Vx;;V*;W`&L$BEw(1YJEI@mos~_9T3k4m(-MPg`@f_s`z*KbgH(JB=NS z)uuH$r>_sov7jkV(lZ_bcf~`hd#UrFXhi|i69(y$dcRJ?4*we}5hu^*TqZ^OIiuHh zf4ZtuCdrgHK(|QX9q`PXk&#(YApk4Sr1HVq)AkU10(BS-V#BY&4fH^ zcVmfsn;4)CW`sPS1F6tQ6wfY{;X5*{F`CRhjPkFMJ}e#9a)G=(@FTW7hw(${v>xm( z{++<@%D~&=rK~F>8=Y3SXI?(Ce*jfv|R2?`0PyP4i{=Hk>T zPhtv#ePlLQLO$f{cBZ0OuM|tIhPj4d!K|H+W}wyk*h|nUJMlh~dD~v&fAXC_ljSFb z-Iv??^ior!9|@IsrWX^)@4ouzll^d8^@V;wGH<=Zo+_mSWnjW&0PuU>O6I-Fm)(Oa z-8`DTX1&}zt*_iFm_1 zdm@i2H1NW`;(O%Q)WQ60fA+*!1*YB-Fj?b^y-yI7>i3U_P^9umW~E%-Uy=O31h*XB z9^ftpW(FOc_wY&Y63ptOd8jG9)`Uw|Rm(}_PJS#mv%yVI<^O05_@Vz!6~72$=M{h9 zRGADUm-n5(FA(WJ-=Ab-I60ETvi%iIfZ^*plqeC-@_4BU*t-Jke>!u9i42D?K?Q24 zb?Bk^ntkz`u;VthN;%U#&M&>%VGcQNBV@rdljGYcw?LNNmCl`)zl^w@cLoVMvo0JA zUid}ijeHd6nk4(aXR0ovGPjDaPe*@D8A7+7UhgC#n8>!<3Ny55A=IlzU||Ba z*SA#uYo4St9+O137*?PC;1(za9<5w^yxX6!(@{m>knOGH3YRjt1vLuqu#=YPifv!D z9hY&q1tNdP?f3C-kc#s2SO6L3`)`Hxw_^l_=;H=!k+I>QyNpS7+`2_opB3mM!w+9k z;LR~3|5#ilh$Vr?cxN;4b(4{me)FDmZdF3N<`I*e)MfdSD(rz3wlj7Yrd84f^nU|o z1!{@aGeX-0ZyJhE!S@?0wN{fMqtf|}9~&lvF+YFbq;ERY?m;(>80gn|2S-Ror%!+S zhs;d)Q@3nXiS0Y)hIimC2dx&Uu-<)K&fGlP|6{pk{hS0BDykgNMPN(o;ZQQJ99>)t zE1xK0L(vq*J31xA65$i9;D=IXPogoqN(O6%fpADBEn|+Sr(Ep7vEGy!f=|$~2UurD zwe4k0O?Q~iHt(M4Mues(!$VPh&KxT9S&7`m;DBudGgY8$pS z07HdhSh{pll&d^uII|QhY!6?OS9~SV zoH0g2i%E931F8lYY-J4BXc2xYuRTFAj0^8|@<0-F38e!iayk@*J6wKGO!0p$$}o9! zUlo~G#?H|S7jek5joUaEjP~n&nOb)I#pIzGN|p?fBKKl4hh8|xi!6beWvtMEcKt0g zaELoB&^sV;P_!);;zKTa zrXXj92})Y34ct=NIDmyr7aw9XG)oXf=4!7JX9zlMR})p$1(&=+gU_eSC^?53WB1GC zO6pL1yDGbPdi%lJlkbr`*!rDLU<}Bd5r@>Ib7K5_@8wXtf(LJ;9nviASl=b_b^5Zh z9Zh0ffZhr>eG{qdftPN)1sQ**DSh&Z9aH?37$Z0^z^w`P;tVi=0h#1GqxX}DVV`C~ zz`&@+VuJ9$>(AxP@blP*JRRQNN*1J_+Mk|PvBjT$a9BC$yQe~Ad#lIB+dt!m3Nv4} znMrtNx#Bef1FFpc*QGO!_-MNGzKO5lvXVEu48A_anP^y2O_B8~GTTFY2 z&N4pXXRIvLl+;1Bk#xOXdz~PKd4BB?hs8|&t~gE3E>H5N%|dslZ>>|uep{+fVEd6# z7iI{L$T!|m#qG|_mpv#dLsyJUeXPkKH)5mUZ)%v4FgL9nL)h~dQ*|Z6A-lwNyZsQu z{7b{$ZSp!ExszLhy0(9r2Q9Y{m-B0_O*{84`58Nl!qaB#6ND*}03 zw8ek#sq-Z@jfV3MWhaYs>XJB>@A1i^;@W2cn+X z(Qx9fgtfQl`)$SE^TLgzo}NEa_6b+=K&{N_7DUqP1j9x$SoSIRoImqa!RdgdjCm(+ zlK00_axr7KgwFvJ?#Wv z-f|-(dL!Hr0bGp*{x16cm-*%Q%Y~-tk4sS|o@=5ehZAQw%5jH%&cBSYB}}x+>I@rX z8hW-r?J(TqMh9=0dUL(j!)A_g;8#Y^5UL~gzkKEjR*>1I29|WazU@Pv=}^Pfa!sDg z`-^`$R?o(w8g6n4)*I}>IWcz%ny^Ri8kG1<}FdXXTHnF|d7b$|ni zf8oCv2WL8I^R4%2zo;^0OuZOrJ9`~JHJ)^xoo+N}miIDk*l+2$NRP`M3<}ZUH0G!I2)8Ki# zAK%%izR^6VF`fB!82Z?MSAxX*M~C0mmSTK_4MeyI_zIYyi!jTUr zhlNz39is4}qf8RQ1ig}v*ml&j+#?gp*$@EZU`TP7CkEn>N+t&JHCc)LagX9F9{R%_ zkUAIdB3Ri`(W%CDnY=?k))^L;m8pNQCNpPX>0`#(2+4f!PC|dmxJH6P;IqVGPJSD% z{A>L2xMcP;7UO+bLkH;TORDWt2D{25UNI*pl;805==KNgF=$?wdqO5o(f9&cPBY{~ zG0(8|O+-!k>$19vIE+EVGNEAvt}9&Y;xM4u1(% zGLRu)sT?1r16_|gWkSMv2Ult&zPsZx^1>bmqXO|+(ff)Wb4UH2q_Fj#A0x8$4q$Gb zO{qqj$#$5F*Fk(-${JPI`{|cN!UZbZ%MA(-s648eV07L1ulObx@Ie%wd3G&NNLy%-%Jk5lqY^0LsY*xVzPq(zDVt3hu zgVmoHVv}=!>$a5k_Y6&Zr?*7dz9tCuhG4N%SxvmcF|Af1=%s;cKdFCUevLF;5J;g0 z7G0js03D@$uVar9Es|6qjC*-2Mqy(eF0!5a^OqU+a8r151IIskpq_DNlz`#_Xr+Hy zkR{CJOswZmKE5VC#(+-A@~%arWoP|Hzj*XCq6yn7v}oxn3b|+7 zZt;`2iDf6}uO@#>FfUan0{2qvXp+;<4^7O(Q7#}f5y}{i%U*Vm2(DKMd>?3&an3~5 zMWDNIV8t^qLhOHCl6U|Z?v*-1lFy7212Is`P4}?07Nm-#AZy{cEP9Qt&I~#$Ls`ti z84C^FFI4urhNmRR#h-s@9?MV&LbxS+&-m^xqwwVZ@@cU;9l1wM;!Jp$93-)9GJH^& zj#$d-O=bs{O@|R-Xt7+Q^&vL)uv{&-@WWYGn}{V#oS}bD;ihOpz{JROd`gY;@d;&a za8YUt>FTc7-LA%zGcx>1yM;NRX{zbkht%U@#hk$9FQxkw>=Ov__NL4FA?%cR-?8)D z$3G2eLs6-Be8ybymLcjWbg;I=YZ>PmXH1ye6KU+Q@KdZB9&NF1nYfHT$5f~N_s&tm z=ym2N9SN;+!qtTv13Of`H+1B}Jrd_a)5F~@;pcz90A%t@$63#E9Fn6gV}I^VyqS6} zjNA0}fM*=wrBs}(_4arm(v($*Nf0S>8i(z6?bGh_4LRpd`hzKMIgMl>>NloTc*@4Y zbMD-p{VlBo!4qqQaF@Y8*VHY1Ng8*obZ@JfG(hC#28hY!V80^S9f_-Ii|s0YHBJ+K zD?opDnukrT%O@T}a%W@DaesedW(UE#r-=da7kesU?o{H@N=-;PNW9VE zR_53qRz!aYexrZKwgCXh6!5AqwpA6MeZ~igI&>QvJOf9_@DVEE%pIc!VvU5=VlMJ< z9-q?&#o2+-Z0bLWAy*QmxGcS;`QM^R_>!WD$!In{7CspV9xglOb8^VfqzoQ!q#u9h zGvS+8ZzY-x2!hi3UO!jzJ2e7v>{dJC?0_8Jb>ehKY4hcYr>o#);&bi_I0DnTDr4O~ z_>^CtFWI1L*@(d8uPe&R#412*)Y;^QPUSjH3{-n(u$0PYDa3S+6-l%!=IdTZQ4=Uk@j|Bk>&Epl%7C zWX8mSwF;}It9$%R$xWV;7WQx~EQLK2k?{ccwD#RL%n`>pZyXBDL$Mu<=qjoYkaEy7 zKXF-pE9Vyf=}4sB#` zK{jv4!t`_8Gl*q@9%WH!6B5*EPN6`VUM?Fa2@~Us<@wQ;+#DS6Qs@ERR_ad(9FkI4 ztc96B3Bfs&xb0frhH%<3X}5nljFqNEF-vkvrr^grSyo5Nj$J(oV|{%}@uRJkC`q7l z#SB-9S*OnynbrUv-z#xsm_Y4*Un&-NP0WPzn`!1bJSntxv4(Upl<8Jng2g~x$)IS> zLyZo<=$lmscYF#*h16ONP?3)Mn)&lRwerds;V>&+Dmkic331vcOhJG4e%u%cz0hP{ zpcCzc-6Fr>g11G!lxR^w_hKCZeK`*ftqgF`#dim(s+nSPJ28h7jl4|rF)U2PPU3*I zqVSAXVkva-HGk^I(~U9!BUD=3>9qcWt#A|r8t>E5^-6Y2EN5X7!!qyau6xD_-bee8 zoCwL+LmHvA-S%RgyM}-7Ct2BV1+%MA4v6^fifwJstY42rLioz(Pwp7g^o?aj=JYncWgD;QSa5)BcwCn;Y5F905ioBCIg04tIybK zICf_mbm#_Yv*YgY~aye2Go|MCCF3R=@5ScIq=^M=jU(yA)zI-7eu{a#y#w zDkOE~%iMmP!UBJ$D@F?J~QevU(SEf0Sxw52Zu1H8EbE9n>tk{ zA<|2qe3x(fjc~MEb24EM6~x*Wh%ql=`ghNP76zI3h#ALBV>${LsbwPXO7k&ge4g&a zt-$)BFLS?ITtntrte#8pwkM3+$Y|sBQ|-Q9EgfBwt|zO(6d@TUSFpF~3Gb$s{USl3 zZKZaB43U2qMmDKAL+kG^?c^HpO2*bz?nV6M*Y54W;Hh;~6J@~ir``xL@S2zHlW+sQ zz>9P=WdS;4fcqZm@^=0eRQx1(DTbtVujIYEawY9f*x^mgZ0|)l~PBVXlD-@M4%9sHdAcAE92@P#USlK6} zn7Ja6zOx#pUFMgZV&vUp%J0F8?ChZuy@ekmT||CIbHZ--XC~TR_!x$^=TXwCBhxk* z;^{y~bDShq+zb)#PL{1CL++1@Ksd?Gm5A^$1>zDcN9xNj8V+7Z>Ok$B9a4P)J7B+` zIY588Hd@eo7#Z+Obm~y!%BDnQ{!jH6Z)POqRt*1!}c#w zswT6@@WzWH4uaqoG4n}GP%=o~x>dB@P8TKgGi1F~1uGKuCl8f$f9O?A?7*}Htn^3q zBNAu#m{`1mPE&2BpI*~S1#zk;t42FCp>+&*iC=qx0z)e z29o4M8)m$EO#{*hz9jFky{pue{-*F05M?JI3q2A&5f;E)yQc{O6(SlzjS$D}9PsKMLDstHLMoCyG zfKPq)7t^D(^OGBrt%iGg9WLKT=mO0tD&9L5#EJ_+}lukgA zxZG(qm5i^{y*L57?uCCd?oSw!0`o~`VhLOK=p)#SSXLF=kjU68Fr*2VZ&UM!JFA!_ zwY<%z@|08L#^rjZmO%|^*UfebMwX*U`-Cw{0R%x%$Xjl$S0tdiCi&(y@K4ZysKB6! ztx22xrEwGn+a6_TwFa4hsVy@|75xwam*Rohm@G^mPCKzzu;FtALWA=&i19p z<&EDN4*?FKCt7B!Jf@<256fEPMBO|eE=HXD{rWt7g$c+WH;TD4}8%O+pK@p{$07-qbtEE87y-O9JyO(G`x1vIgDJS|DFj6eQMI8*x?s|8N&qu zV?Zs<+8Ny0wp-8=yvEubp;exlAY3(RV)6b3b~1|@WhZAY`pT59pTlmraCG|m9paJ; zetHI6lsP9uL9E~E&-oX{W$1+HI-@3C?xdSxVnEVm~1VoF@ zX%4XCxY2HSTHJ589s0X&*&=bIN~|OuGpyO-$;rrQE&pt4QtOB$c$8mj5Q=LJEA>qf zVSB<)6wQVXj-q!w;R-3FihYvl1rDiU;F^pw9I3US$e2K|#W&`9S)Wugm(krCJxN|CDc!D z<2N_rb&hExbYT8da0q~2e|}7J2)qu|NV~~Yg$a7Wh#=)VzO$8BLW+zVV3I#nt_CSd z%}Z+CX9~BDx6|&ys1w`MGWnQJS`xo>v4p#&d*XivP8KZ^2zI;Fw42M7cVMOLV+6Ct z3}0#7F3Dqxg4?a8pjC|A{AtvegIw=&{=%5??A8c+vXvIs^Qo2BbtTpB)_y zn@E2*X#2mH#88#xtk@g&uN7!=B}nJf|J)_|#=~jfUjnZnCpI5vMRUpdK5%b1R?TRF z4clbH{U8~+%E0nSG|y%~i!EBF?f)G;xs){;?r|b)Q6TU-5@%J=j6=eUj?jT$$XB#t z4GUlyuk|c-w)ZHGkJ*-4=JdZ_Q<%m2=W>4@jA$7GIXCWS2^E>q(8U0gV}t;?QPE$B zpj)DZUJ(yJ7A99fSB`ckoQ5HO2u-GkLf>ugGgGes{?t3~A65 zl1EA?;OM^5sHUEUCgwFwF>{||R@5!lb(t`}GlLqveb*=vRX}!@$!OgYPOe+?F1C{B zgBwX9W0 zkWGv-18LvvpW_cy=!#!KaszU!?!{

  • gEIzLUsUo}ZRvj=?4 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
    0W?Dx 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≀3_E?<{^Q5lm316!aj`lc4u)RubX4q9(K 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
  • >!_;Idqu+B-c%NG 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�M|ohygjbZyN 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 z�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