├── .gitignore ├── Doc ├── INPUT_Environ.def ├── INPUT_Environ.html ├── INPUT_Environ.txt ├── INPUT_Environ.xml ├── JChemPhys_136_064102.pdf ├── Makefile ├── doxy-environ ├── doxygen-README.md ├── release-notes ├── style-guide.md └── warning_codes.md ├── FFTXlib ├── Makefile ├── README.md ├── fft_buffers.f90 ├── fft_error.f90 ├── fft_fwinv.f90 ├── fft_ggen.f90 ├── fft_helper_subroutines.f90 ├── fft_interfaces.f90 ├── fft_interpolate.f90 ├── fft_parallel.f90 ├── fft_parallel_2d.f90 ├── fft_param.f90 ├── fft_scalar.DFTI.f90 ├── fft_scalar.ESSL.f90 ├── fft_scalar.FFTW3.f90 ├── fft_scalar.SX6.f90 ├── fft_scalar.cuFFT.f90 ├── fft_scalar.f90 ├── fft_scatter.f90 ├── fft_scatter_2d.f90 ├── fft_scatter_2d_gpu.f90 ├── fft_scatter_gpu.f90 ├── fft_support.f90 ├── fft_types.f90 ├── mkl_wrapper.f90 ├── scatter_mod.f90 ├── stick_base.f90 └── tg_gather.f90 ├── License ├── Makefile ├── README.md ├── UtilXlib ├── Makefile ├── README.md ├── clocks_handler.f90 ├── cptimer.c ├── data_buffer.f90 ├── error_handler.f90 ├── find_free_unit.f90 ├── mp.f90 ├── mp_base.f90 ├── mp_base_gpu.f90 ├── nvtx_wrapper.f90 ├── parallel_include.f90 └── util_param.f90 ├── configure ├── devtools └── debugging.f90 ├── examples ├── programs │ ├── descriptors │ │ ├── Makefile │ │ ├── environ.in │ │ ├── medium.cube │ │ └── small.cube │ └── from_cube │ │ ├── Makefile │ │ ├── density.cube │ │ ├── surface.in │ │ ├── volume.in │ │ └── water.in └── qe │ ├── cp │ ├── README.md │ ├── run_all.sh │ └── water │ │ ├── README │ │ ├── reference │ │ ├── h2o_vacuum.out │ │ ├── h2o_water.out │ │ └── results.txt │ │ └── run_example.sh │ ├── environment.in │ ├── neb │ ├── README.md │ ├── collinear_proton_transfer │ │ ├── README │ │ ├── reference │ │ │ ├── H2+H.out │ │ │ ├── H2+H_dielectric.out │ │ │ ├── H2+H_pressure.out │ │ │ └── results.txt │ │ └── run_example.sh │ └── run_all.sh │ ├── pw │ ├── README.md │ ├── field_aware │ │ ├── README │ │ ├── reference │ │ │ ├── H2O_solution.out │ │ │ ├── H2O_vacuum.out │ │ │ ├── H3O_solution.out │ │ │ ├── H3O_vacuum.out │ │ │ ├── HO_solution.out │ │ │ ├── HO_vacuum.out │ │ │ └── results.txt │ │ └── run_example.sh │ ├── helmholtz │ │ ├── README │ │ ├── reference │ │ │ ├── PtCO_helmholtz_vacuum.out │ │ │ ├── PtCO_helmholtz_water.out │ │ │ └── results.txt │ │ └── run_example.sh │ ├── helmholtz_linpb │ │ ├── README │ │ ├── reference │ │ │ ├── Ag100_model-MPB_pbccorr-parabolic_linear-false.out │ │ │ ├── Ag100_model-PB_pbccorr-gcs_linear-false.out │ │ │ ├── Ag100_model-PB_pbccorr-gcs_linear-true.out │ │ │ ├── Ag100_model-PB_pbccorr-parabolic_linear-false.out │ │ │ ├── Ag100_model-PB_pbccorr-parabolic_linear-true.out │ │ │ └── results.txt │ │ └── run_example.sh │ ├── mott_schottky │ │ ├── README │ │ ├── reference │ │ │ ├── Si-ms-carrier-density-1.16.out │ │ │ ├── Si-ms-carrier-density-1.17.out │ │ │ ├── Si-ms-carrier-density-1.18.out │ │ │ └── results.txt │ │ └── run_example.sh │ ├── ms_gcs │ │ ├── README │ │ ├── reference │ │ │ ├── Si-ms-gcs-0.001.out │ │ │ └── q-v.dat │ │ └── run_example.sh │ ├── pbc │ │ ├── README │ │ ├── reference │ │ │ ├── pyridine_vacuum_martyna-tuckerman.out │ │ │ ├── pyridine_vacuum_none.out │ │ │ ├── pyridine_vacuum_pcc.out │ │ │ ├── pyridine_water_martyna-tuckerman.out │ │ │ ├── pyridine_water_none.out │ │ │ ├── pyridine_water_pcc.out │ │ │ └── results.txt │ │ └── run_example.sh │ ├── run_all.sh │ ├── sccs │ │ ├── README │ │ ├── reference │ │ │ ├── h2o_vacuum_direct.out │ │ │ ├── h2o_water_cg.out │ │ │ ├── h2o_water_fixed-point.out │ │ │ └── results.txt │ │ └── run_example.sh │ ├── slab │ │ ├── README │ │ ├── reference │ │ │ ├── PtCO_vacuum.out │ │ │ ├── PtCO_water.out │ │ │ └── results.txt │ │ └── run_example.sh │ ├── solvent_aware │ │ ├── README │ │ ├── reference │ │ │ ├── H2OCluster_fill_pockets.out │ │ │ ├── H2OCluster_standard.out │ │ │ └── results.txt │ │ └── run_example.sh │ └── sscs │ │ ├── README │ │ ├── reference │ │ ├── h2o_vacuum.out │ │ ├── h2o_water.out │ │ └── results.txt │ │ └── run_example.sh │ ├── run_all.sh │ ├── tddfpt │ ├── README.md │ ├── davidson │ │ ├── README │ │ ├── plot.ipynb │ │ ├── reference │ │ │ ├── CH4_solvent.eigen │ │ │ ├── CH4_solvent.plot.dat │ │ │ ├── CH4_solvent.scf.out │ │ │ ├── CH4_solvent.turbo-davidson.out │ │ │ ├── CH4_vacuum.eigen │ │ │ ├── CH4_vacuum.plot.dat │ │ │ ├── CH4_vacuum.scf.out │ │ │ └── CH4_vacuum.turbo-davidson.out │ │ └── run_example.sh │ ├── lanczos │ │ ├── README │ │ ├── plot_S.ipynb │ │ ├── plot_chi.ipynb │ │ ├── reference │ │ │ ├── CH4_solvent.plot_S.dat │ │ │ ├── CH4_solvent.plot_chi.dat │ │ │ ├── CH4_solvent.scf.out │ │ │ ├── CH4_solvent.turbo-lanczos.out │ │ │ ├── CH4_solvent.turbo-spectrum.out │ │ │ ├── CH4_vacuum.plot_S.dat │ │ │ ├── CH4_vacuum.plot_chi.dat │ │ │ ├── CH4_vacuum.scf.out │ │ │ ├── CH4_vacuum.turbo-lanczos.out │ │ │ └── CH4_vacuum.turbo-spectrum.out │ │ └── run_example.sh │ └── run_all.sh │ └── xspectra │ ├── README.md │ ├── SiO2 │ ├── plot.ipynb │ ├── pseudo │ │ ├── O_PBE_USPP.UPF │ │ └── Si_PBE_USPP.UPF │ ├── reference │ │ ├── Si.wfc │ │ ├── SiO2.scf.out │ │ ├── SiO2.xspectra_dip_c.dat │ │ ├── SiO2.xspectra_dip_c.out │ │ ├── SiO2.xspectra_dip_plane.dat │ │ └── SiO2.xspectra_dip_plane.out │ └── run_example.sh │ └── run_all.sh ├── install ├── aclocal.m4 ├── config.guess ├── config.sub ├── configure ├── configure.ac ├── configure.msg.in ├── install-sh ├── m4 │ ├── ax_check_compile_flag.m4 │ ├── x_ac_env_aix_dflags.m4 │ ├── x_ac_env_ar.m4 │ ├── x_ac_env_arch.m4 │ ├── x_ac_env_blas.m4 │ ├── x_ac_env_cc.m4 │ ├── x_ac_env_cpp.m4 │ ├── x_ac_env_cuda.m4 │ ├── x_ac_env_default_env.m4 │ ├── x_ac_env_f90.m4 │ ├── x_ac_env_f90rule.m4 │ ├── x_ac_env_fft.m4 │ ├── x_ac_env_lapack.m4 │ ├── x_ac_env_ld.m4 │ ├── x_ac_env_mass.m4 │ ├── x_ac_env_mpi.m4 │ ├── x_ac_env_mpif90.m4 │ ├── x_ac_env_openmp.m4 │ ├── x_ac_env_qe.m4 │ ├── x_ac_env_ranlib.m4 │ └── x_ac_env_wget.m4 ├── make.inc.in ├── makedeps.sh ├── moduledep.sh └── refresh-configure.sh ├── notes.txt ├── programs ├── Makefile ├── README.md ├── cmdline_args.f90 ├── driver.f90 ├── parsers.f90 ├── prog_utils.f90 └── programs.f90 ├── src ├── Makefile ├── README.md ├── array_ops.f90 ├── base_input.f90 ├── boundary.f90 ├── boundary_electronic.f90 ├── boundary_ionic.f90 ├── boundary_system.f90 ├── boundary_tools.f90 ├── calculator.f90 ├── cell.f90 ├── char_ops.f90 ├── charges.f90 ├── constants.f90 ├── core.f90 ├── core_1da.f90 ├── core_container.f90 ├── core_fft.f90 ├── cube.f90 ├── density.f90 ├── destructor.f90 ├── dielectric.f90 ├── electrolyte.f90 ├── electrolyte_base.f90 ├── electrons.f90 ├── externals.f90 ├── function.f90 ├── function_erfc.f90 ├── function_gaussian.f90 ├── functions.f90 ├── gradient.f90 ├── hessian.f90 ├── input.f90 ├── interface.f90 ├── io.f90 ├── ioncctype.f90 ├── ions.f90 ├── iontype.f90 ├── main.f90 ├── make.depend ├── mapping.f90 ├── semiconductor.f90 ├── semiconductor_base.f90 ├── setup.f90 ├── solver.f90 ├── solver_direct.f90 ├── solver_fixedpoint.f90 ├── solver_gradient.f90 ├── solver_iterative.f90 ├── solver_newton.f90 ├── solver_setup.f90 ├── system.f90 └── tools_math.f90 ├── tests ├── Makefile ├── README.md ├── check_pseudo.sh ├── doublecell │ ├── pw_confine │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=confine-sccs-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=confine-ss-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=confine-system-dblcell.in │ │ ├── confine-sccs-dblcell.in │ │ ├── confine-ss-dblcell.in │ │ ├── confine-system-dblcell.in │ │ └── pw-dblcell.in │ ├── pw_dielectric │ │ ├── benchmark.out.GIT.inp=charged-dblcell.in.args=dielectric-sccs-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=charged-dblcell.in.args=dielectric-sccs-iter-aux-dblcell.in │ │ ├── benchmark.out.GIT.inp=charged-dblcell.in.args=dielectric-ss-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=charged-dblcell.in.args=dielectric-ss-iter-aux-dblcell.in │ │ ├── benchmark.out.GIT.inp=charged-dblcell.in.args=dielectric-sys-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=charged-dblcell.in.args=dielectric-sys-iter-aux-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=dielectric-sccs-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=dielectric-sccs-iter-aux-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=dielectric-ss-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=dielectric-ss-iter-aux-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=dielectric-sys-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=dielectric-sys-iter-aux-dblcell.in │ │ ├── charged-dblcell.in │ │ ├── dielectric-sccs-default-dblcell.in │ │ ├── dielectric-sccs-iter-aux-dblcell.in │ │ ├── dielectric-ss-default-dblcell.in │ │ ├── dielectric-ss-iter-aux-dblcell.in │ │ ├── dielectric-sys-default-dblcell.in │ │ ├── dielectric-sys-iter-aux-dblcell.in │ │ └── neutral-dblcell.in │ ├── pw_electrolyte │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=electrolyte-lmpb-sccs-stern_full-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=electrolyte-lmpb-sccs-stern_ions-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=electrolyte-lmpb-ss-stern_full-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=electrolyte-lmpb-ss-stern_ions-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=electrolyte-lpb-sccs-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=electrolyte-lpb-ss-dblcell.in │ │ ├── electrolyte-lmpb-sccs-stern_full-dblcell.in │ │ ├── electrolyte-lmpb-sccs-stern_ions-dblcell.in │ │ ├── electrolyte-lmpb-ss-stern_full-dblcell.in │ │ ├── electrolyte-lmpb-ss-stern_ions-dblcell.in │ │ ├── electrolyte-lpb-sccs-dblcell.in │ │ ├── electrolyte-lpb-ss-dblcell.in │ │ └── pw-dblcell.in │ ├── pw_externals │ │ ├── benchmark.out.GIT.inp=isolated-dblcell.in.args=externals_0d_vacuum_default-dblcell.in │ │ ├── benchmark.out.GIT.inp=isolated-dblcell.in.args=externals_2d_dielectric_default-dblcell.in │ │ ├── benchmark.out.GIT.inp=isolated-dblcell.in.args=externals_2d_vacuum_default-dblcell.in │ │ ├── benchmark.out.GIT.inp=slab-dblcell.in.args=externals_0d_vacuum_default-dblcell.in │ │ ├── benchmark.out.GIT.inp=slab-dblcell.in.args=externals_2d_vacuum_default-dblcell.in │ │ ├── externals_0d_dielectric_default-dblcell.in │ │ ├── externals_0d_vacuum_default-dblcell.in │ │ ├── externals_2d_dielectric_default-dblcell.in │ │ ├── externals_2d_vacuum_default-dblcell.in │ │ ├── isolated-dblcell.in │ │ └── slab-dblcell.in │ ├── pw_mt │ │ ├── benchmark.out.GIT.inp=charged-dblcell.in.args=dielectric-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=isolated-dblcell.in.args=externals_0d_vacuum_default-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=dielectric-default-dblcell.in │ │ ├── charged-dblcell.in │ │ ├── dielectric-default-dblcell.in │ │ ├── externals_0d_dielectric_default-dblcell.in │ │ ├── externals_0d_vacuum_default-dblcell.in │ │ ├── isolated-dblcell.in │ │ └── neutral-dblcell.in │ ├── pw_periodic │ │ ├── benchmark.out.GIT.inp=charged-dblcell.in.args=periodic-dielectric-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=charged-dblcell.in.args=periodic-vacuum-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=periodic-dielectric-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=periodic-vacuum-default-dblcell.in │ │ ├── charged-dblcell.in │ │ ├── neutral-dblcell.in │ │ ├── periodic-dielectric-default-dblcell.in │ │ └── periodic-vacuum-default-dblcell.in │ ├── pw_regions │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=insphere-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=outslab-default-dblcell.in │ │ ├── insphere-default-dblcell.in │ │ ├── outslab-default-dblcell.in │ │ └── pw-dblcell.in │ ├── pw_slab │ │ ├── benchmark.out.GIT.inp=charged-dblcell.in.args=periodic-vacuum-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=periodic-dielectric-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=periodic-vacuum-default-dblcell.in │ │ ├── charged-dblcell.in │ │ ├── neutral-dblcell.in │ │ ├── periodic-dielectric-default-dblcell.in │ │ └── periodic-vacuum-default-dblcell.in │ ├── pw_solvent-aware │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=local-sccs-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=local-ss-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=sa-sccs-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=sa-ss-dblcell.in │ │ ├── local-sccs-dblcell.in │ │ ├── local-ss-dblcell.in │ │ ├── pw-dblcell.in │ │ ├── sa-sccs-dblcell.in │ │ └── sa-ss-dblcell.in │ ├── pw_spin │ │ ├── benchmark.out.GIT.inp=radical-dblcell.in.args=dielectric-pcc-dblcell.in │ │ ├── benchmark.out.GIT.inp=radical-dblcell.in.args=vacuum-pcc-dblcell.in │ │ ├── dielectric-pcc-dblcell.in │ │ ├── radical-dblcell.in │ │ └── vacuum-pcc-dblcell.in │ ├── pw_surface │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=surface-sccs-fft-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=surface-ss-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=surface-ss-fft-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=surface-sys-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=surface-sys-fft-dblcell.in │ │ ├── pw-dblcell.in │ │ ├── surface-sccs-fft-dblcell.in │ │ ├── surface-ss-default-dblcell.in │ │ ├── surface-ss-fft-dblcell.in │ │ ├── surface-sys-default-dblcell.in │ │ └── surface-sys-fft-dblcell.in │ ├── pw_volume │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=volume-ss-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=pw-dblcell.in.args=volume-sys-default-dblcell.in │ │ ├── pw-dblcell.in │ │ ├── volume-ss-default-dblcell.in │ │ └── volume-sys-default-dblcell.in │ └── pw_water │ │ ├── anion-dblcell.in │ │ ├── benchmark.out.GIT.inp=anion-dblcell.in.args=water-anion-sccs-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=anion-dblcell.in.args=water-anion-ss-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=cation-dblcell.in.args=water-cation-sccs-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=cation-dblcell.in.args=water-cation-ss-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=water-neutral-sccs-default-dblcell.in │ │ ├── benchmark.out.GIT.inp=neutral-dblcell.in.args=water-neutral-ss-default-dblcell.in │ │ ├── cation-dblcell.in │ │ ├── neutral-dblcell.in │ │ ├── water-anion-sccs-default-dblcell.in │ │ ├── water-anion-ss-default-dblcell.in │ │ ├── water-cation-sccs-default-dblcell.in │ │ ├── water-cation-ss-default-dblcell.in │ │ ├── water-neutral-sccs-default-dblcell.in │ │ └── water-neutral-ss-default-dblcell.in ├── environment.in ├── extract-pw.sh ├── jobconfig ├── pw_confine │ ├── benchmark.out.GIT.inp=pw.in.args=confine-sccs.in │ ├── benchmark.out.GIT.inp=pw.in.args=confine-ss.in │ ├── benchmark.out.GIT.inp=pw.in.args=confine-system.in │ ├── confine-sccs.in │ ├── confine-ss.in │ ├── confine-system.in │ └── pw.in ├── pw_dielectric │ ├── benchmark.out.GIT.inp=charged.in.args=dielectric-sccs-default.in │ ├── benchmark.out.GIT.inp=charged.in.args=dielectric-sccs-iter-aux.in │ ├── benchmark.out.GIT.inp=charged.in.args=dielectric-sccs-psd.in │ ├── benchmark.out.GIT.inp=charged.in.args=dielectric-ss-default.in │ ├── benchmark.out.GIT.inp=charged.in.args=dielectric-ss-iter-aux.in │ ├── benchmark.out.GIT.inp=charged.in.args=dielectric-sys-default.in │ ├── benchmark.out.GIT.inp=charged.in.args=dielectric-sys-iter-aux.in │ ├── benchmark.out.GIT.inp=neutral.in.args=dielectric-sccs-default.in │ ├── benchmark.out.GIT.inp=neutral.in.args=dielectric-sccs-iter-aux.in │ ├── benchmark.out.GIT.inp=neutral.in.args=dielectric-sccs-psd.in │ ├── benchmark.out.GIT.inp=neutral.in.args=dielectric-ss-default.in │ ├── benchmark.out.GIT.inp=neutral.in.args=dielectric-ss-iter-aux.in │ ├── benchmark.out.GIT.inp=neutral.in.args=dielectric-sys-default.in │ ├── benchmark.out.GIT.inp=neutral.in.args=dielectric-sys-iter-aux.in │ ├── charged.in │ ├── dielectric-sccs-default.in │ ├── dielectric-sccs-iter-aux.in │ ├── dielectric-sccs-psd.in │ ├── dielectric-ss-default.in │ ├── dielectric-ss-iter-aux.in │ ├── dielectric-sys-default.in │ ├── dielectric-sys-iter-aux.in │ └── neutral.in ├── pw_electrolyte │ ├── benchmark.out.GIT.inp=pw.in.args=electrolyte-lmpb-sccs-stern_full.in │ ├── benchmark.out.GIT.inp=pw.in.args=electrolyte-lmpb-sccs-stern_ions.in │ ├── benchmark.out.GIT.inp=pw.in.args=electrolyte-lmpb-ss-stern_full.in │ ├── benchmark.out.GIT.inp=pw.in.args=electrolyte-lmpb-ss-stern_ions.in │ ├── benchmark.out.GIT.inp=pw.in.args=electrolyte-lpb-sccs.in │ ├── benchmark.out.GIT.inp=pw.in.args=electrolyte-lpb-ss.in │ ├── electrolyte-lmpb-sccs-stern_full.in │ ├── electrolyte-lmpb-sccs-stern_ions.in │ ├── electrolyte-lmpb-ss-stern_full.in │ ├── electrolyte-lmpb-ss-stern_ions.in │ ├── electrolyte-lpb-sccs.in │ ├── electrolyte-lpb-ss.in │ └── pw.in ├── pw_externals │ ├── benchmark.out.GIT.inp=isolated.in.args=externals_0d_dielectric_default.in │ ├── benchmark.out.GIT.inp=isolated.in.args=externals_0d_vacuum_default.in │ ├── benchmark.out.GIT.inp=isolated.in.args=externals_2d_dielectric_default.in │ ├── benchmark.out.GIT.inp=isolated.in.args=externals_2d_vacuum_default.in │ ├── benchmark.out.GIT.inp=slab.in.args=externals_0d_dielectric_default.in │ ├── benchmark.out.GIT.inp=slab.in.args=externals_0d_vacuum_default.in │ ├── benchmark.out.GIT.inp=slab.in.args=externals_2d_dielectric_default.in │ ├── benchmark.out.GIT.inp=slab.in.args=externals_2d_vacuum_default.in │ ├── externals_0d_dielectric_default.in │ ├── externals_0d_vacuum_default.in │ ├── externals_2d_dielectric_default.in │ ├── externals_2d_vacuum_default.in │ ├── isolated.in │ └── slab.in ├── pw_field-aware │ ├── benchmark.out.GIT.inp=pw.in.args=fa-ss.in │ ├── fa-ss.in │ └── pw.in ├── pw_gcs │ ├── benchmark.out.GIT.inp=pw.in.args=gcs-solvent.in │ ├── benchmark.out.GIT.inp=pw.in.args=gcs-vacuum.in │ ├── gcs-solvent.in │ ├── gcs-vacuum.in │ └── pw.in ├── pw_ms │ ├── .DS_Store │ ├── benchmark.out.GIT.inp=pw.in.args=ms-solvent.in │ ├── benchmark.out.GIT.inp=pw.in.args=ms-vacuum.in │ ├── ms-solvent.in │ ├── ms-vacuum.in │ └── pw.in ├── pw_mt │ ├── benchmark.out.GIT.inp=charged.in.args=dielectric-default.in │ ├── benchmark.out.GIT.inp=isolated.in.args=externals_0d_dielectric_default.in │ ├── benchmark.out.GIT.inp=isolated.in.args=externals_0d_vacuum_default.in │ ├── benchmark.out.GIT.inp=neutral.in.args=dielectric-default.in │ ├── charged.in │ ├── dielectric-default.in │ ├── externals_0d_dielectric_default.in │ ├── externals_0d_vacuum_default.in │ ├── isolated.in │ └── neutral.in ├── pw_periodic │ ├── benchmark.out.GIT.inp=charged.in.args=periodic-dielectric-default.in │ ├── benchmark.out.GIT.inp=charged.in.args=periodic-vacuum-default.in │ ├── benchmark.out.GIT.inp=neutral.in.args=periodic-dielectric-default.in │ ├── benchmark.out.GIT.inp=neutral.in.args=periodic-vacuum-default.in │ ├── charged.in │ ├── neutral.in │ ├── periodic-dielectric-default.in │ └── periodic-vacuum-default.in ├── pw_regions │ ├── benchmark.out.GIT.inp=pw.in.args=insphere-default.in │ ├── benchmark.out.GIT.inp=pw.in.args=outslab-default.in │ ├── insphere-default.in │ ├── outslab-default.in │ └── pw.in ├── pw_slab │ ├── benchmark.out.GIT.inp=charged.in.args=periodic-dielectric-default.in │ ├── benchmark.out.GIT.inp=charged.in.args=periodic-vacuum-default.in │ ├── benchmark.out.GIT.inp=neutral.in.args=periodic-dielectric-default.in │ ├── benchmark.out.GIT.inp=neutral.in.args=periodic-vacuum-default.in │ ├── charged.in │ ├── neutral.in │ ├── periodic-dielectric-default.in │ └── periodic-vacuum-default.in ├── pw_solvent-aware │ ├── benchmark.out.GIT.inp=pw.in.args=local-sccs.in │ ├── benchmark.out.GIT.inp=pw.in.args=local-ss.in │ ├── benchmark.out.GIT.inp=pw.in.args=sa-sccs.in │ ├── benchmark.out.GIT.inp=pw.in.args=sa-ss.in │ ├── local-sccs.in │ ├── local-ss.in │ ├── pw.in │ ├── sa-sccs.in │ └── sa-ss.in ├── pw_spin │ ├── benchmark.out.GIT.inp=radical.in.args=dielectric-pcc.in │ ├── benchmark.out.GIT.inp=radical.in.args=vacuum-pcc.in │ ├── dielectric-pcc.in │ ├── radical.in │ └── vacuum-pcc.in ├── pw_surface │ ├── benchmark.out.GIT.inp=pw.in.args=surface-sccs-default.in │ ├── benchmark.out.GIT.inp=pw.in.args=surface-sccs-fft.in │ ├── benchmark.out.GIT.inp=pw.in.args=surface-ss-default.in │ ├── benchmark.out.GIT.inp=pw.in.args=surface-ss-fft.in │ ├── benchmark.out.GIT.inp=pw.in.args=surface-sys-default.in │ ├── benchmark.out.GIT.inp=pw.in.args=surface-sys-fft.in │ ├── pw.in │ ├── surface-sccs-default.in │ ├── surface-sccs-fft.in │ ├── surface-ss-default.in │ ├── surface-ss-fft.in │ ├── surface-sys-default.in │ └── surface-sys-fft.in ├── pw_volume │ ├── benchmark.out.GIT.inp=pw.in.args=volume-sccs-default.in │ ├── benchmark.out.GIT.inp=pw.in.args=volume-ss-default.in │ ├── benchmark.out.GIT.inp=pw.in.args=volume-sys-default.in │ ├── pw.in │ ├── volume-sccs-default.in │ ├── volume-ss-default.in │ └── volume-sys-default.in ├── pw_water │ ├── anion.in │ ├── benchmark.out.GIT.inp=anion.in.args=water-anion-sccs-default.in │ ├── benchmark.out.GIT.inp=anion.in.args=water-anion-ss-default.in │ ├── benchmark.out.GIT.inp=cation.in.args=water-cation-sccs-default.in │ ├── benchmark.out.GIT.inp=cation.in.args=water-cation-ss-default.in │ ├── benchmark.out.GIT.inp=neutral.in.args=water-neutral-sccs-default.in │ ├── benchmark.out.GIT.inp=neutral.in.args=water-neutral-ss-default.in │ ├── cation.in │ ├── neutral.in │ ├── water-anion-sccs-default.in │ ├── water-anion-ss-default.in │ ├── water-cation-sccs-default.in │ ├── water-cation-ss-default.in │ ├── water-neutral-sccs-default.in │ └── water-neutral-ss-default.in ├── run-pw.sh ├── testcode │ ├── LICENSE │ ├── README.rst │ ├── bin │ │ └── testcode.py │ ├── docs │ │ ├── .static │ │ │ └── dummy_file │ │ ├── .templates │ │ │ └── dummy_file │ │ ├── Makefile │ │ ├── conf.py │ │ ├── configuration_files.rst │ │ ├── index.rst │ │ ├── installation.rst │ │ ├── jobconfig.rst │ │ ├── testcode.py.rst │ │ ├── userconfig.rst │ │ └── verification.rst │ └── lib │ │ └── testcode2 │ │ ├── __init__.py │ │ ├── _functools_dummy.py │ │ ├── ansi.py │ │ ├── compatibility.py │ │ ├── config.py │ │ ├── dir_lock.py │ │ ├── exceptions.py │ │ ├── queues.py │ │ ├── util.py │ │ ├── validation.py │ │ └── vcs.py ├── time_diff.sh └── userconfig.tmp └── update_libs.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # Configuration files 2 | *.log 3 | *.status 4 | *.msg 5 | *.inc 6 | 7 | # Dependency files 8 | make.depend 9 | 10 | # Compiled Object files 11 | *.slo 12 | *.lo 13 | *.o 14 | *.obj 15 | 16 | # Precompiled Headers 17 | *.gch 18 | *.pch 19 | 20 | # Compiled Dynamic libraries 21 | *.so 22 | *.dylib 23 | *.dll 24 | 25 | # Fortran module files 26 | *.mod 27 | *.smod 28 | 29 | # Fortran linter files 30 | *.i90 31 | 32 | # Compiled Static libraries 33 | *.lai 34 | *.la 35 | *.a 36 | *.lib 37 | 38 | # Executables 39 | *.exe 40 | #*.out 41 | *.app 42 | *.x 43 | tester 44 | !tester/ 45 | driver 46 | !driver/ 47 | 48 | # Examples 49 | results/ 50 | environment 51 | 52 | # Emacs temporary backups 53 | *~ 54 | 55 | # Tests 56 | userconfig 57 | test.err.* 58 | test.out.* 59 | tests/*/*.out 60 | *.pyc 61 | 62 | # Documentation files 63 | Doc/html/ 64 | Doc/latex/ 65 | Doc/INPUT_Environ.html 66 | Doc/INPUT_Environ.xml 67 | Doc/INPUT_Environ.txt 68 | input_xx.xsl 69 | test.sh 70 | .DS_Store 71 | *.99 72 | CRASH 73 | 74 | # Development files/folders 75 | .vscode/ 76 | deploy 77 | *.tar.gz 78 | *.zip 79 | -------------------------------------------------------------------------------- /Doc/JChemPhys_136_064102.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/environ-developers/Environ/18d94213f633b8ba721b61251178feccaa51720f/Doc/JChemPhys_136_064102.pdf -------------------------------------------------------------------------------- /Doc/Makefile: -------------------------------------------------------------------------------- 1 | include ../make.inc 2 | 3 | HELPDOC=$(QEDIR)/dev-tools/helpdoc 4 | 5 | doc: all 6 | all: defs 7 | 8 | clean: 9 | @ rm -f input_xx.xsl 10 | @ rm -f INPUT_*.html INPUT_*.xml 11 | @ rm -f INPUT_Environ.txt 12 | @ rm -f $(QEDIR)/Doc/INPUT_Environ.* 13 | 14 | 15 | defs: link_input_xx INPUT_Environ.html INPUT_Environ.txt link_on_main_doc 16 | 17 | link_input_xx: 18 | @(if test ! -f input_xx.xsl; then \ 19 | (if test -f $(QEDIR)/dev-tools/input_xx.xsl; then \ 20 | (ln -sf $(QEDIR)/dev-tools/input_xx.xsl input_xx.xsl) ; \ 21 | else \ 22 | echo ; \ 23 | echo " Sorry, can not find input_xx.xsl html style file !!!" ; \ 24 | echo ; \ 25 | fi) ; fi) 26 | 27 | INPUT_Environ.html: %.html: %.def 28 | $(HELPDOC) $< 29 | INPUT_Environ.txt: %.txt: %.def 30 | $(HELPDOC) $< 31 | 32 | link_on_main_doc: 33 | -@( cd $(QEDIR)/Doc ; ln -fs ../Environ/Doc/INPUT_Environ.html . ; \ 34 | ln -fs ../Environ/Doc/INPUT_Environ.txt . ; \ 35 | ln -fs ../Environ/Doc/INPUT_Environ.xml .) 36 | -------------------------------------------------------------------------------- /Doc/doxygen-README.md: -------------------------------------------------------------------------------- 1 | # DOXYGEN README 2 | #### Notes For Users 3 | Environ uses doxygen to auto-generate documentation. In order to locally generate documentation, one should do the following: 4 | 5 | 1. Download doxygen from the provided [link](http://www.stack.nl/~dimitri/doxygen/download.html). Note that doxygen has a number of prerequisites. 6 | 2. run 'doxygen doxy-environ' from the Environ/Docs (this) folder. 7 | 3. Two folders should be generated, html and latex. 8 | 4. To generate the pdf manual, run make in the latex directory. 9 | 10 | #### Notes For Developers 11 | Doxygen uses a particular commenting scheme for fortran by default. Checkout the documentation which should be provided by the doxygen installation, or alternatively can be accessed from this [link](http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html). -------------------------------------------------------------------------------- /Doc/warning_codes.md: -------------------------------------------------------------------------------- 1 | # Environ Warning Codes 2 | 3 | 1001. Ignored card 4 | 5 | An unexpected input file card has been ignored. Check input file 6 | 7 |
8 | 9 | 1002. Strange lattice parameter 10 | 11 | Host lattice parameter unusually small 12 | 13 |
14 | 15 | 1003. Missing FFT-grid information 16 | 17 | Environ is missing some information required to establish both the FFT-grid and its parallelization scheme 18 | 19 | - If only a G-vector cutoff value (`gcutm`) is provided, Environ generates its FFT-grid and parallelization stick map 20 | - Alternatively, a user may provide `env_ecut` in the Environ input (`gcutm = env_ecut / pi**2`) 21 | - Note that `env_ecut` is in Rydberg and is equivalent, for example, to Quantum ESPRESSO's `ecutrho` 22 | - If either are provided together with an FFT-grid (`nr`), Environ sets its internal FFT-grid to `nr` and uses `gcutm` for the stick map 23 | - If only `nr` is provided, Environ will derive a conservative overestimate of `gcutm` from `nr` and the lattice (`at`) 24 | - Note that this overestimate may introduce errors. Caution is advised 25 | 26 |
27 | 28 | 1004. Left-handed lattice vectors 29 | 30 |
31 | 32 | 1005. Wrong integral of ERFC function 33 | 34 | Error in numerical integral w.r.t analytic solution exceeds threshold 35 | 36 | Reasons: 37 | 38 | - the grid is too coarse with respect to the spread of the ERFC (or vice-versa) 39 | - consider increasing grid spacing and/or ERFC function spread 40 | - the ERFC function spills over the cell boundary 41 | - consider increasing cell size 42 | 43 |
44 | 45 | 1006. Environ interface is not yet initialized 46 | 47 | This is triggered by a premature attempt to destroy Environ components. 48 | 49 | Reasons: 50 | 51 | - As a plugin, Environ routines may be called out of order due to uncontrollable host routine calls 52 | -------------------------------------------------------------------------------- /FFTXlib/Makefile: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------------------------- 2 | # 3 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 4 | # Copyright (C) Quantum ESPRESSO (www.quantum-espresso.org) 5 | # 6 | #---------------------------------------------------------------------------------------- 7 | # 8 | # This file is part of Environ version 3.0 9 | # 10 | # Environ 3.0 is free software: you can redistribute it and/or modify 11 | # it under the terms of the GNU General Public License as published by 12 | # the Free Software Foundation, either version 2 of the License, or 13 | # (at your option) any later version. 14 | # 15 | # Environ 3.0 is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | # GNU General Public License for more detail, either the file 19 | # `License' in the root directory of the present distribution, or 20 | # online at . 21 | # 22 | #---------------------------------------------------------------------------------------- 23 | # 24 | # Authors: Modified by Edan Bainglass 25 | # 26 | #---------------------------------------------------------------------------------------- 27 | # 28 | # Makefile for FFTXlib 29 | # 30 | #---------------------------------------------------------------------------------------- 31 | 32 | include ../make.inc 33 | 34 | DFTI = $(findstring DFTI,$(DFLAGS)) 35 | 36 | MODFLAGS = $(BASEMOD_FLAGS) 37 | 38 | OBJS = $(patsubst %.f90,%.o,$(filter-out mkl_wrapper.f90,$(wildcard *.f90))) 39 | 40 | all: libsdir libenvfft.a 41 | 42 | libenvfft.a: $(OBJS) 43 | $(AR) $(ARFLAGS) $@ $? 44 | $(RANLIB) $@ 45 | @ /bin/mv libenvfft.a ../libs 46 | 47 | fft_scalar.DFTI.o: mkl_wrapper.o 48 | 49 | libsdir: 50 | @ test -d ../libs || mkdir ../libs 51 | 52 | clean: 53 | @ /bin/rm -f *.o *.a *.d *.i *~ *_tmp.f90 *.mod *.L *.i90 54 | 55 | include make.depend 56 | -------------------------------------------------------------------------------- /FFTXlib/README.md: -------------------------------------------------------------------------------- 1 | # FFTXlib 2 | 3 | Implements real space grid parallelization of FFTs. 4 | 5 | Copied from QE 7.0 - reduced and modified for Environ 6 | -------------------------------------------------------------------------------- /FFTXlib/fft_param.f90: -------------------------------------------------------------------------------- 1 | ! 2 | ! Copyright (C) Quantum ESPRESSO group 3 | ! 4 | ! This file is distributed under the terms of the 5 | ! GNU General Public License. See the file `License' 6 | ! in the root directory of the present distribution, 7 | ! or http://www.gnu.org/copyleft/gpl.txt . 8 | ! 9 | MODULE env_fft_param 10 | use iso_fortran_env, only : stderr=>ERROR_UNIT, stdout=>OUTPUT_UNIT 11 | #if defined(__MPI) 12 | #if defined(__MPI_MODULE) 13 | USE mpi 14 | #else 15 | INCLUDE 'mpif.h' 16 | #endif 17 | #else 18 | INTEGER, PARAMETER :: MPI_COMM_WORLD = 0 19 | INTEGER, PARAMETER :: MPI_COMM_NULL = -1 20 | INTEGER, PARAMETER :: MPI_COMM_SELF = -2 21 | #endif 22 | 23 | INTEGER, PARAMETER :: ndims = 10 24 | !! Number of different FFT tables that the module 25 | !!could keep into memory without reinitialization 26 | 27 | INTEGER, PARAMETER :: nfftx = 2049 28 | !!Max allowed fft dimension 29 | 30 | INTEGER, PARAMETER :: DP = selected_real_kind(14,200) 31 | 32 | REAL(DP), PARAMETER :: eps8 = 1.0E-8_DP 33 | 34 | END MODULE env_fft_param 35 | -------------------------------------------------------------------------------- /FFTXlib/fft_scalar.f90: -------------------------------------------------------------------------------- 1 | ! 2 | ! Copyright (C) Quantum ESPRESSO group 3 | ! 4 | ! This file is distributed under the terms of the 5 | ! GNU General Public License. See the file `License' 6 | ! in the root directory of the present distribution, 7 | ! or http://www.gnu.org/copyleft/gpl.txt . 8 | ! 9 | !--------------------------------------------------------------------------! 10 | ! FFT scalar drivers Module - contains machine-dependent routines for ! 11 | ! internal FFTW, FFTW v.3, IBM ESSL, Intel DFTI 12 | ! (both 3d for serial execution and 1d+2d FFTs for parallel execution); ! 13 | ! legacy NEC ASL libraries (3d only, no parallel execution) ! 14 | ! CUDA FFT for NVidiia GPUs 15 | ! Written by Carlo Cavazzoni, modified by P. Giannozzi, contributions ! 16 | ! by Martin Hilgemans, Guido Roma, Pascal Thibaudeau, Stephane Lefranc, ! 17 | ! Nicolas Lacorne, Filippo Spiga, Nicola Varini, Jason Wood ! 18 | ! Last update Feb 2021 19 | !--------------------------------------------------------------------------! 20 | 21 | !=----------------------------------------------------------------------=! 22 | MODULE env_fft_scalar 23 | !=----------------------------------------------------------------------=! 24 | 25 | USE env_fft_param 26 | #if defined(__FFTW3) 27 | USE env_fft_scalar_fftw3 28 | #elif defined(__DFTI) 29 | USE env_fft_scalar_dfti 30 | #elif defined(__LINUX_ESSL) 31 | USE env_fft_scalar_essl 32 | #elif defined(__SX6) 33 | USE env_fft_scalar_sx6 34 | #else 35 | #error No env_fft_scalar backend selected! 36 | #endif 37 | #if defined(__CUDA) 38 | USE env_fft_scalar_cuFFT 39 | #endif 40 | IMPLICIT NONE 41 | SAVE 42 | 43 | PRIVATE 44 | PUBLIC :: env_cft_1z, env_cft_2xy, env_cfft3d, env_cfft3ds 45 | #if defined(__CUDA) 46 | PUBLIC :: env_cft_1z_gpu, env_cft_2xy_gpu, env_cfft3d_gpu, env_cfft3ds_gpu 47 | #endif 48 | 49 | END MODULE env_fft_scalar 50 | -------------------------------------------------------------------------------- /FFTXlib/mkl_wrapper.f90: -------------------------------------------------------------------------------- 1 | !---------------------------------------------------------------------------------------- 2 | ! 3 | ! Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 4 | ! 5 | !---------------------------------------------------------------------------------------- 6 | ! 7 | ! This file is part of Environ version 3.0 8 | ! 9 | ! Environ 3.0 is free software: you can redistribute it and/or modify 10 | ! it under the terms of the GNU General Public License as published by 11 | ! the Free Software Foundation, either version 2 of the License, or 12 | ! (at your option) any later version. 13 | ! 14 | ! Environ 3.0 is distributed in the hope that it will be useful, 15 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | ! GNU General Public License for more detail, either the file 18 | ! `License' in the root directory of the present distribution, or 19 | ! online at . 20 | ! 21 | !---------------------------------------------------------------------------------------- 22 | ! 23 | ! Authors: Edan Bainglass (Department of Physics, UNT) 24 | ! 25 | !---------------------------------------------------------------------------------------- 26 | !> 27 | !! 28 | !---------------------------------------------------------------------------------------- 29 | #if defined (__DFTI) 30 | #include "mkl_dfti.f90" 31 | #endif 32 | -------------------------------------------------------------------------------- /UtilXlib/Makefile: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------------------------- 2 | # 3 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 4 | # Copyright (C) Quantum ESPRESSO group 5 | # 6 | #---------------------------------------------------------------------------------------- 7 | # 8 | # This file is part of Environ version 3.0 9 | # 10 | # Environ 3.0 is free software: you can redistribute it and/or modify 11 | # it under the terms of the GNU General Public License as published by 12 | # the Free Software Foundation, either version 2 of the License, or 13 | # (at your option) any later version. 14 | # 15 | # Environ 3.0 is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | # GNU General Public License for more detail, either the file 19 | # `License' in the root directory of the present distribution, or 20 | # online at . 21 | # 22 | #---------------------------------------------------------------------------------------- 23 | # 24 | # Authors: Modified by Edan Bainglass 25 | # 26 | #---------------------------------------------------------------------------------------- 27 | # 28 | # Makefile for UtilXlib 29 | # 30 | #---------------------------------------------------------------------------------------- 31 | 32 | include ../make.inc 33 | 34 | OBJS = $(patsubst %.f90,%.o,$(wildcard *.f90)) 35 | 36 | C_OBJS = cptimer.o 37 | 38 | OBJS += $(C_OBJS) 39 | 40 | all: libsdir libenvutil.a 41 | 42 | libenvutil.a: $(OBJS) 43 | $(AR) $(ARFLAGS) $@ $? 44 | $(RANLIB) $@ 45 | @ /bin/mv libenvutil.a ../libs 46 | 47 | libsdir: 48 | @ test -d ../libs || mkdir ../libs 49 | 50 | clean: 51 | @ /bin/rm -f *.o *.a *.d *.i *~ *_tmp.f90 *.mod *.L *.x *.i90 52 | 53 | include make.depend 54 | -------------------------------------------------------------------------------- /UtilXlib/README.md: -------------------------------------------------------------------------------- 1 | # UtilXlib 2 | 3 | This library implements various basic tasks such as timing, tracing, 4 | optimized memory accesses and an abstraction layer for the MPI subroutines 5 | 6 | Copied from QE 7.0 - reduced and modified for Environ 7 | -------------------------------------------------------------------------------- /UtilXlib/cptimer.c: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2002-2006 Quantum ESPRESSO group 3 | This file is distributed under the terms of the 4 | GNU General Public License. See the file `License' 5 | in the root directory of the present distribution, 6 | or http://www.gnu.org/copyleft/gpl.txt . 7 | */ 8 | 9 | #if defined(_WIN32) 10 | #include 11 | #include 12 | #else 13 | #include 14 | #include 15 | #include 16 | #endif 17 | 18 | #if defined(_WIN32) 19 | 20 | int qe_gettimeofday(struct timeval * tp, struct timezone * tzp) 21 | { 22 | // Note: some broken versions only have 8 trailing zero's, the correct epoch has 9 trailing zero's 23 | // This magic number is the number of 100 nanosecond intervals since January 1, 1601 (UTC) 24 | // until 00:00:00 January 1, 1970 25 | static const uint64_t EPOCH = ((uint64_t) 116444736000000000ULL); 26 | 27 | SYSTEMTIME system_time; 28 | FILETIME file_time; 29 | uint64_t time; 30 | 31 | GetSystemTime( &system_time ); 32 | SystemTimeToFileTime( &system_time, &file_time ); 33 | time = ((uint64_t)file_time.dwLowDateTime ) ; 34 | time += ((uint64_t)file_time.dwHighDateTime) << 32; 35 | 36 | tp->tv_sec = (long) ((time - EPOCH) / 10000000L); 37 | tp->tv_usec = (long) (system_time.wMilliseconds * 1000); 38 | return 0; 39 | } 40 | 41 | #endif 42 | 43 | 44 | double env_cclock() 45 | 46 | /* Return the second elapsed since Epoch (00:00:00 UTC, January 1, 1970) 47 | */ 48 | 49 | { 50 | 51 | struct timeval tmp; 52 | double sec; 53 | #if defined(_WIN32) 54 | qe_gettimeofday( &tmp, (struct timezone *)0 ); 55 | #else 56 | gettimeofday( &tmp, (struct timezone *)0 ); 57 | #endif 58 | sec = tmp.tv_sec + ((double)tmp.tv_usec)/1000000.0; 59 | return sec; 60 | 61 | } 62 | 63 | double env_scnds ( ) 64 | 65 | /* Return the cpu time associated to the current process 66 | */ 67 | 68 | { 69 | double sec=0.0; 70 | 71 | #if defined(_WIN32) 72 | // from MSDN docs. 73 | FILETIME ct,et,kt,ut; 74 | union { FILETIME ft; uint64_t ui; } cpu; 75 | if (GetProcessTimes(GetCurrentProcess(),&ct,&et,&kt,&ut)) { 76 | cpu.ft = ut; 77 | sec = cpu.ui * 0.0000001; 78 | } 79 | #else 80 | static struct rusage T; 81 | 82 | getrusage(RUSAGE_SELF, &T); 83 | 84 | sec = ((double)T.ru_utime.tv_sec + ((double)T.ru_utime.tv_usec)/1000000.0); 85 | #endif 86 | return sec; 87 | } 88 | 89 | -------------------------------------------------------------------------------- /UtilXlib/data_buffer.f90: -------------------------------------------------------------------------------- 1 | ! 2 | ! Copyright (C) Quantum ESPRESSO group 3 | ! 4 | ! This file is distributed under the terms of the 5 | ! GNU General Public License. See the file `License' 6 | ! in the root directory of the present distribution, 7 | ! or http://www.gnu.org/copyleft/gpl.txt . 8 | ! 9 | MODULE env_data_buffer 10 | USE env_util_param, ONLY : DP 11 | #ifdef __CUDA 12 | USE cudafor 13 | #endif 14 | ! 15 | IMPLICIT NONE 16 | ! 17 | REAL(DP), ALLOCATABLE, dimension(:) :: mp_buff_r 18 | INTEGER, ALLOCATABLE, dimension(:) :: mp_buff_i 19 | PUBLIC :: mp_buff_r, mp_buff_i 20 | ! 21 | #ifdef __CUDA 22 | REAL(DP), ALLOCATABLE, dimension(:) :: mp_buff_r_d 23 | INTEGER, ALLOCATABLE, dimension(:) :: mp_buff_i_d 24 | ATTRIBUTES( DEVICE ) :: mp_buff_r_d, mp_buff_i_d 25 | PUBLIC :: mp_buff_r_d, mp_buff_i_d 26 | #endif 27 | 28 | END MODULE env_data_buffer 29 | -------------------------------------------------------------------------------- /UtilXlib/find_free_unit.f90: -------------------------------------------------------------------------------- 1 | ! 2 | ! Copyright (C) 2002-2009 Quantum ESPRESSO group 3 | ! This file is distributed under the terms of the 4 | ! GNU General Public License. See the file `License' 5 | ! in the root directory of the present distribution, 6 | ! or http://www.gnu.org/copyleft/gpl.txt . 7 | ! 8 | !-------------------------------------------------------------------------- 9 | FUNCTION env_find_free_unit() 10 | !-------------------------------------------------------------------------- 11 | ! 12 | IMPLICIT NONE 13 | ! 14 | INTEGER :: env_find_free_unit 15 | INTEGER :: iunit 16 | LOGICAL :: opnd 17 | ! 18 | ! 19 | env_find_free_unit = -1 20 | unit_loop: DO iunit = 99, 1, -1 21 | ! 22 | INQUIRE( UNIT = iunit, OPENED = opnd ) 23 | ! 24 | IF ( .NOT. opnd ) THEN 25 | ! 26 | env_find_free_unit = iunit 27 | ! 28 | RETURN 29 | ! 30 | END IF 31 | ! 32 | END DO unit_loop 33 | ! 34 | CALL env_infomsg( 'env_find_free_unit()', 'free unit not found ?!?') 35 | ! 36 | RETURN 37 | ! 38 | END FUNCTION env_find_free_unit 39 | ! 40 | -------------------------------------------------------------------------------- /UtilXlib/parallel_include.f90: -------------------------------------------------------------------------------- 1 | ! 2 | ! Copyright (C) 2003-2004 Carlo Cavazzoni 3 | ! This file is distributed under the terms of the 4 | ! GNU General Public License. See the file `License' 5 | ! in the root directory of the present distribution, 6 | ! or http://www.gnu.org/copyleft/gpl.txt . 7 | ! 8 | !------------------------------------------------------------------------------! 9 | ! SISSA Code Interface -- Carlo Cavazzoni 10 | !------------------------------------------------------------------------------C 11 | MODULE env_parallel_include 12 | 13 | #if defined (__MPI) 14 | ! 15 | ! Include file for MPI 16 | ! 17 | #if defined (__MPI_MODULE) 18 | USE mpi 19 | #else 20 | INCLUDE 'mpif.h' 21 | #endif 22 | #else 23 | ! dummy world and null communicator 24 | INTEGER, PARAMETER :: MPI_COMM_WORLD = 0 25 | INTEGER, PARAMETER :: MPI_COMM_NULL = -1 26 | INTEGER, PARAMETER :: MPI_COMM_SELF = -2 27 | #endif 28 | 29 | END MODULE env_parallel_include 30 | -------------------------------------------------------------------------------- /UtilXlib/util_param.f90: -------------------------------------------------------------------------------- 1 | ! 2 | ! Copyright (C) Quantum ESPRESSO group 3 | ! 4 | ! This file is distributed under the terms of the 5 | ! GNU General Public License. See the file `License' 6 | ! in the root directory of the present distribution, 7 | ! or http://www.gnu.org/copyleft/gpl.txt . 8 | ! 9 | !------------------------------------------------------------------------------! 10 | MODULE env_util_param 11 | !------------------------------------------------------------------------------! 12 | !! 13 | !! This module is a duplication of the Modules/kind.f90 one, placed here fore 14 | !! convenience. 15 | !! 16 | USE env_parallel_include 17 | ! 18 | CHARACTER(LEN = 5), PARAMETER :: crash_file = 'CRASH' 19 | INTEGER, PARAMETER :: DP = selected_real_kind(14, 200) 20 | INTEGER, PARAMETER :: i8b = selected_int_kind(18) 21 | INTEGER, PARAMETER :: stdout = 6 ! unit connected to standard output 22 | ! 23 | REAL(DP), PARAMETER :: eps14 = 1.0E-14_DP 24 | REAL(DP), PARAMETER :: eps16 = 1.0E-16_DP 25 | ! 26 | !------------------------------------------------------------------------------! 27 | END MODULE env_util_param 28 | !------------------------------------------------------------------------------! 29 | -------------------------------------------------------------------------------- /examples/programs/descriptors/Makefile: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------------------------- 2 | # 3 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 4 | # 5 | #---------------------------------------------------------------------------------------- 6 | # 7 | # This file is part of Environ version 3.0 8 | # 9 | # Environ 3.0 is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 2 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # Environ 3.0 is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more detail, either the file 18 | # `License' in the root directory of the present distribution, or 19 | # online at . 20 | # 21 | #---------------------------------------------------------------------------------------- 22 | # 23 | # Authors: Edan Bainglass (Department of Physics, UNT) 24 | # 25 | #---------------------------------------------------------------------------------------- 26 | # 27 | # Makefile for tester examples 28 | # 29 | #---------------------------------------------------------------------------------------- 30 | 31 | ifndef VERBOSE 32 | .SILENT: 33 | endif 34 | 35 | include ../../../make.inc 36 | 37 | PROC = 4 38 | 39 | EXAMPLES = $(subst .cube,,$(wildcard *.cube)) 40 | 41 | CMD = $(TOPDIR)/programs/driver -n descriptors -min 1 -max 10 -step 1 42 | 43 | help: 44 | @ echo 45 | @ echo " usage: make run[-parallel] example=[name]" 46 | @ echo 47 | @ echo " available examples = $(EXAMPLES)" 48 | @ echo 49 | 50 | run: 51 | @ if test $(example); then \ 52 | if test -f $(example).cube; then \ 53 | $(CMD) -c $(example).cube; \ 54 | else \ 55 | echo; \ 56 | echo " $(example) is not a valid example"; \ 57 | echo; \ 58 | echo " available examples: $(EXAMPLES)"; \ 59 | echo; \ 60 | fi; \ 61 | else \ 62 | echo; \ 63 | echo " missing example argument"; \ 64 | echo; \ 65 | fi 66 | 67 | run-parallel: 68 | @ if test $$? = 0; then \ 69 | (mpirun -n $(PROC) $(CMD) -c $(example).cube); \ 70 | else \ 71 | exit; \ 72 | fi 73 | 74 | clean: 75 | @ /bin/rm -f fort.* environ.debug CRASH 76 | -------------------------------------------------------------------------------- /examples/programs/descriptors/environ.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! reparamatrization input file 3 | environ_type = 'input' 4 | env_ecut = 10 5 | env_static_permittivity = 78.3D0 6 | env_optical_permittivity = 1.776D0 7 | env_surface_tension = 50.0D0 8 | env_pressure = -0.35D0 9 | no_electrostatics = .TRUE. 10 | ! 11 | / 12 | &BOUNDARY 13 | ! 14 | solvent_mode = 'ionic' 15 | softness = 0.8D0 16 | alpha = 1.24D0 17 | radius_mode = 'muff' 18 | ! 19 | / 20 | &ELECTROSTATIC 21 | ! 22 | tol = 1.0d-5 23 | ! 24 | / 25 | 26 | -------------------------------------------------------------------------------- /examples/programs/descriptors/medium.cube: -------------------------------------------------------------------------------- 1 | CUBE file for Alanine dipeptide 2 | No density, just atomic positions and charges 3 | 22 0.000000 0.000000 0.000000 4 | -1 32.167709 0.000000 0.000000 5 | -1 -10.722569 30.328007 0.000000 6 | -1 -10.722569 -15.164002 26.264826 7 | 1 0.158816 3.995615 1.041027 -6.431902 8 | 6 -0.517885 3.921437 1.724873 -7.259947 9 | 1 0.158816 3.373780 1.113086 -7.930622 10 | 1 0.158816 4.849845 1.490323 -7.686215 11 | 6 0.844568 3.783546 2.768972 -7.214974 12 | 8 -0.803132 3.013702 3.322718 -8.087872 13 | 7 -0.587889 4.466055 3.407144 -6.277161 14 | 1 0.384525 4.922781 2.855310 -5.589461 15 | 6 0.047659 4.221150 4.834224 -5.851301 16 | 1 0.116390 4.559681 4.880738 -4.862287 17 | 6 -0.258094 5.079984 5.792737 -6.655024 18 | 1 0.085277 4.916113 6.732649 -6.379781 19 | 1 0.085277 6.138474 5.537592 -6.354527 20 | 1 0.085277 5.010669 5.840010 -7.733360 21 | 6 0.844710 2.684066 5.120272 -5.763640 22 | 8 -0.803132 1.987287 4.253161 -5.154787 23 | 7 -0.587889 2.138016 6.229708 -6.365883 24 | 1 0.384525 2.843847 6.532248 -7.127550 25 | 6 -0.210718 1.117470 6.554511 -6.341784 26 | 1 0.138027 0.839036 6.444105 -5.317050 27 | 1 0.138027 0.837374 7.576886 -6.775254 28 | 1 0.138027 0.516741 5.826325 -6.863611 -------------------------------------------------------------------------------- /examples/programs/descriptors/small.cube: -------------------------------------------------------------------------------- 1 | CUBE FILE GENERATED BY PW.X for water 2 | OUTER LOOP: X, MIDDLE LOOP: Y, INNER LOOP: Z 3 | 3 0.000000 0.000000 0.000000 4 | 1 20.000000 0.000000 0.000000 5 | 1 0.000000 20.000000 0.000000 6 | 1 0.000000 0.000000 20.000000 7 | 8 -1.179454 11.790000 12.050000 11.500000 8 | 1 0.589727 13.450000 11.220000 11.500000 9 | 1 0.589727 10.560000 10.660000 11.500000 -------------------------------------------------------------------------------- /examples/programs/from_cube/Makefile: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------------------------- 2 | # 3 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 4 | # 5 | #---------------------------------------------------------------------------------------- 6 | # 7 | # This file is part of Environ version 3.0 8 | # 9 | # Environ 3.0 is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 2 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # Environ 3.0 is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more detail, either the file 18 | # `License' in the root directory of the present distribution, or 19 | # online at . 20 | # 21 | #---------------------------------------------------------------------------------------- 22 | # 23 | # Authors: Edan Bainglass (Department of Physics, UNT) 24 | # 25 | #---------------------------------------------------------------------------------------- 26 | # 27 | # Makefile for tester examples 28 | # 29 | #---------------------------------------------------------------------------------------- 30 | 31 | ifndef VERBOSE 32 | .SILENT: 33 | endif 34 | 35 | include ../../../make.inc 36 | 37 | PROC = 4 38 | 39 | EXAMPLES = $(subst .in,,$(wildcard *.in)) 40 | 41 | CMD = $(TOPDIR)/programs/driver -n from_cube 42 | 43 | help: 44 | @ echo 45 | @ echo " usage: make run[-parallel] example=[name]" 46 | @ echo 47 | @ echo " available examples = $(EXAMPLES)" 48 | @ echo 49 | 50 | run: 51 | @ if test $(example); then \ 52 | if test -f $(example).in; then \ 53 | $(CMD) -i $(example).in; \ 54 | else \ 55 | echo; \ 56 | echo " $(example) is not a valid example"; \ 57 | echo; \ 58 | echo " available examples: $(EXAMPLES)"; \ 59 | echo; \ 60 | fi; \ 61 | else \ 62 | echo; \ 63 | echo " missing example argument"; \ 64 | echo; \ 65 | fi 66 | 67 | run-parallel: 68 | @ if test $$? = 0; then \ 69 | (cd $(example); mpirun -n $(PROC) $(CMD)); \ 70 | else \ 71 | exit; \ 72 | fi 73 | 74 | clean: 75 | @ /bin/rm -f fort.* environ.debug CRASH 76 | -------------------------------------------------------------------------------- /examples/programs/from_cube/surface.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | -------------------------------------------------------------------------------- /examples/programs/from_cube/volume.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_pressure = 10. 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | -------------------------------------------------------------------------------- /examples/programs/from_cube/water.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water' 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | / 12 | -------------------------------------------------------------------------------- /examples/qe/cp/README.md: -------------------------------------------------------------------------------- 1 | # Environ CP Examples 2 | 3 | water: cp.x (only for QE-5.3.0 and later versions) 4 | 5 | Calculation of the total solvation free energy of an isolated 6 | molecule including electrostatic/cavitation/PV contributions 7 | -------------------------------------------------------------------------------- /examples/qe/cp/run_all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -eu 4 | 5 | examples=" \ 6 | water 7 | " 8 | 9 | for dir in $examples; do 10 | cd "$dir" 11 | ./run_example.sh 12 | cd ../ 13 | done 14 | -------------------------------------------------------------------------------- /examples/qe/cp/water/README: -------------------------------------------------------------------------------- 1 | 2 | This example shows how to use cp.x to calculate the electrostatic solvation energy 3 | and other related solvation quantities for a water molecule in a water solvent. 4 | 5 | The calculation is a damped electron dynamics (thus missing the ionic relaxation), 6 | but in the presence of a continuum dielectric with the shape defined 7 | by the electronic density, according to the model of Fattebert 8 | and Gygi, Int J Quantum Chem 93, 139 (2003), revised by O. Andreussi, I. Dabo 9 | and N. Marzari, J. Chem. Phys. 136, 064102 (2012) 10 | 11 | Note that, for the time being, no PBC correction has been used for the calculations 12 | in vacuum and in the solvent. 13 | 14 | A rough explanation of the different keywords of the solvation model is 15 | in the run_example.sh file. 16 | -------------------------------------------------------------------------------- /examples/qe/cp/water/reference/results.txt: -------------------------------------------------------------------------------- 1 | Solvation Energy = -6.7080781680 Kcal/mol 2 | Cavitation Energy = 3.4943952000 Kcal/mol 3 | PV Energy = -1.7691552000 Kcal/mol 4 | Electrostatic Energy = -8.4333181680 Kcal/mol 5 | -------------------------------------------------------------------------------- /examples/qe/neb/README.md: -------------------------------------------------------------------------------- 1 | # Environ NEB Examples 2 | 3 | collinear_proton_transfer: neb.x 4 | 5 | Calculation of the minimum energy path (MEP) of the collinear 6 | proton transfer reaction under pressure 7 | -------------------------------------------------------------------------------- /examples/qe/neb/collinear_proton_transfer/README: -------------------------------------------------------------------------------- 1 | 2 | This example shows how to use neb.x to run a Nudged Elastic Band (NEB) 3 | calculation with Environ. For details on the NEB portion of the calculation, 4 | see /NEB/examples/example01/README 5 | -------------------------------------------------------------------------------- /examples/qe/neb/collinear_proton_transfer/reference/results.txt: -------------------------------------------------------------------------------- 1 | in vacuum 2 | 3 | image energy (eV) error (eV/A) frozen 4 | 5 | 1 -49.5016205 0.011780 T 6 | 2 -49.4686369 0.045290 F 7 | 3 -49.3702618 0.042315 F 8 | 4 -49.2973507 0.016834 F 9 | 5 -49.3702672 0.042319 F 10 | 6 -49.4686386 0.045290 F 11 | 7 -49.5016205 0.011742 T 12 | 13 | climbing image = 4 14 | 15 | path length = 5.312 bohr 16 | inter-image distance = 0.885 bohr 17 | 18 | under pressure 19 | 20 | image energy (eV) error (eV/A) frozen 21 | 22 | 1 -47.0222692 0.560379 T 23 | 2 -47.1776440 0.026139 F 24 | 3 -47.2893035 0.024293 F 25 | 4 -47.2883224 0.002446 F 26 | 5 -47.2893036 0.024292 F 27 | 6 -47.1776441 0.026139 F 28 | 7 -47.0222692 0.544496 T 29 | 30 | climbing image = 7 31 | 32 | path length = 5.415 bohr 33 | inter-image distance = 0.903 bohr 34 | 35 | in dielectric 36 | 37 | image energy (eV) error (eV/A) frozen 38 | 39 | 1 -49.5288751 0.032335 T 40 | 2 -49.4779130 0.075483 F 41 | 3 -49.3607553 0.077933 F 42 | 4 -49.3554220 0.089309 F 43 | 5 -49.3610030 0.082806 F 44 | 6 -49.4779184 0.077786 F 45 | 7 -49.5288747 0.032346 T 46 | 47 | climbing image = 4 48 | 49 | path length = 5.286 bohr 50 | inter-image distance = 0.881 bohr 51 | 52 | -------------------------------------------------------------------------------- /examples/qe/neb/run_all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -eu 4 | 5 | examples=" \ 6 | collinear_proton_transfer 7 | " 8 | 9 | for dir in $examples; do 10 | cd "$dir" 11 | ./run_example.sh 12 | cd ../ 13 | done 14 | -------------------------------------------------------------------------------- /examples/qe/pw/README.md: -------------------------------------------------------------------------------- 1 | # Environ PW Examples 2 | 3 | sccs: pw.x 4 | 5 | Calculation of total solvation free energy of an isolated molecule 6 | including electrostatic/cavitation/PV contributions. The solvation 7 | cavity is defined according to the revised-SCCS. 8 | 9 | sscs: pw.x 10 | 11 | Same as example01, but the solvation cavity is constructed from 12 | atomic-centered interlocking spheres ("soft-spheres"). 13 | 14 | pbc: pw.x 15 | 16 | Use of different periodic boundary correction schemes for charged 17 | isolated systems in vacuum and in solution: Martyna-Tuckerman or 18 | Point-Counter-Charge (parabolic). 19 | 20 | slab: pw.x 21 | 22 | Use of parabolic correction for periodic boundary conditions in 23 | neutral and charged 2D systems (slab). 24 | 25 | helmholtz: pw.x 26 | 27 | Use of external classical charge distribution (planar) to model 28 | Helmholtz layer above a charged 2D system. 29 | 30 | helmholtz_linpb: pw.x 31 | 32 | Same as example05, but the electrolyte counter charge layer is 33 | modeled according to the linearized Poisson-Boltzmann model. 34 | 35 | mott_schottky: pw.x 36 | 37 | Use of a Mott-Schottky counter charge layer to model a charged 38 | slab embedded in a semiconducting region with different defect 39 | densities. 40 | 41 | ms_gcs: pw.x 42 | 43 | Use of ms-gcs correction to model extended semiconductor-solution 44 | interfaces. Outputs the voltage compared to the flatband potential 45 | for a given electrode charge. 46 | 47 | solvent_aware: pw.x 48 | 49 | Use of the solvent-aware interface to prevent the dielectric to 50 | penetrate regions that should remain solvent-free. 51 | 52 | field_aware: pw.x 53 | 54 | Use of the field-aware interface to automatically adjust the 55 | interface for charged solutes. 56 | -------------------------------------------------------------------------------- /examples/qe/pw/field_aware/README: -------------------------------------------------------------------------------- 1 | 2 | This example shows how to use pw.x to calculate the electrostatic 3 | solvation energy for a water molecule in water using a field-aware 4 | soft sphere interface defined by the electrostatic field at the 5 | interface normal and the atomic positions, according to 6 | M Truscott, O Andreussi, J. Phys. Chem. B 2019, 123, 16, 3513–3524 7 | 8 | The field_aware keyword is required to turn on field-aware effects 9 | and is implemented for the "soft-spheres" interface model 10 | as described in G. Fisicaro, L. Genovese, O. Andreussi, S. Mandal, 11 | N.N. Nair, N. Marzari, and S.Goedecker, J. Chem. Theor. Comput. 13, 3829 (2017). 12 | 13 | Mind that the parabolic correction (or point-countercharge method) 14 | is used for both the calculation in vacuum and in the solvent. 15 | 16 | A rough explanation of the different keywords of the solvation model is 17 | in the run_example.sh file. 18 | -------------------------------------------------------------------------------- /examples/qe/pw/field_aware/reference/results.txt: -------------------------------------------------------------------------------- 1 | Input = HO 2 | Solvation Energy = -94.4130814512 Kcal/mol 3 | Input = H2O 4 | Solvation Energy = -5.8046546736 Kcal/mol 5 | Input = H3O 6 | Solvation Energy = -92.5801488336 Kcal/mol 7 | -------------------------------------------------------------------------------- /examples/qe/pw/helmholtz/README: -------------------------------------------------------------------------------- 1 | This example shows how to use pw.x to model a charged slab in the presence of 2 | a fixed, planar and smooth (gaussian profiled) distribution of charge (helmholtz 3 | plane). The example comprises two calculations, with and without a continuum 4 | solvent. 5 | 6 | The calculation is a single SCF calculation of a (unrealistic) two-layer thick 7 | Pt (111) slab with a CO molecule adsorbed on atop position (thanks to Ismaila 8 | Dabo for the starting input of the system in vacuum). The solvent is treated 9 | as a continuum dielectric according to the Self-consistent Continuum Solvation 10 | (SCCS) model of O. Andreussi, I. Dabo and N. Marzari, J. Chem. Phys. 136, 11 | 064102 (2012). 12 | 13 | The artifacts due to the periodic boundary conditions are removed using a 14 | real-space quadratic correction of the electrostatic potential, analogous 15 | to the Point Counter-Charge (PCC) correction scheme (see I. Dabo et al. Phys. 16 | Rev. B 77, 115139 (2008)). 17 | 18 | The method has been coupled to the SCCS model in order to remove periodic 19 | boundary conditions in simulations of partially periodic systems in the 20 | presence of a continuum solvent, as described by O. Andreussi and N. Marzari 21 | Phys. Rev. B 90 245101 (2014). 22 | 23 | Note that the keyword solvent_mode='full' is mandatory in this calculation, in 24 | order to remove the artifact of the Pt valence density, which presents a hole 25 | close to the position of ion, due to the missing core electrons. In order to 26 | avoid the continuum solvent to enter such a hole, a quickly vanishing gaussian 27 | density is added at the position of the nuclei when defining the dielectric. 28 | The same problem is likely to occur in alogens and other transition metals. 29 | 30 | From ENVIRON version 1.0 the Fermi energy shift that arises from the gaussian 31 | nuclei smearing together with the parabolic pbc correction is printed as a 32 | separate contribution that needs to be added to the standard Fermi energy 33 | from pw.x. 34 | 35 | A rough explanation of the different keywords of the solvation model is inside 36 | the run_example.sh file. 37 | -------------------------------------------------------------------------------- /examples/qe/pw/helmholtz/reference/results.txt: -------------------------------------------------------------------------------- 1 | Energy in vacuum = -734.62350609 Ry 2 | Energy in solution = -735.32740590 Ry 3 | Electrostatic Solvation Energy = -220.7992924008 Kcal/mol 4 | 5 | Fermi energy in vacuum = -26.0884 eV + -0.4600 eV = -26.5484 eV 6 | Fermi energy in solution = -6.4331 eV + -0.4600 eV = -6.8931 eV 7 | -------------------------------------------------------------------------------- /examples/qe/pw/helmholtz_linpb/reference/results.txt: -------------------------------------------------------------------------------- 1 | PB model (linearized) 2 | 2D-analytic solution : potential = -(-4.8329 + -0.5949) V = 5.4278 V (abs. scale) 3 | numerical solution : potential = -(-4.8393 + -0.5949) V = 5.4342 V (abs. scale) 4 | 5 | PB model 6 | 2D-analytic solution : potential = -(-4.7378 + -0.5949) V = 5.3327 V (abs. scale) 7 | numerical solution : potential = -(-4.7410 + -0.5949) V = 5.3359 V (abs. scale) 8 | 9 | MPB model 10 | numerical solution : potential = -(-4.8570 + -0.5949) V = 5.4519 V (abs. scale) 11 | 12 | -------------------------------------------------------------------------------- /examples/qe/pw/mott_schottky/README: -------------------------------------------------------------------------------- 1 | This example shows how to use pw.x to model a charged slab embedded in a semiconductor. 2 | In particular, the electrical diffuse layer is 3 | modeled as a classical charge distribution, as obtained from the solution of 4 | the Poisson-Boltzmann equation under Mott-Schottky (MS) condidtions. 5 | 6 | The calculation is a single SCF calculation of a Si slab. The surrounding 7 | semiconductor is treated as a continuum dielectric according to the Self-consistent 8 | Continuum Solvation (SCCS) model of O. Andreussi, I. Dabo and N. Marzari, 9 | J. Chem. Phys. 136, 064102 (2012). 10 | 11 | The example compares different doping densities as 12 | described in XX. 13 | The following doping densities are considered here: 14 | 1D.16, 1D.17, 1D.18 cm^-3 15 | 16 | As the doping density increases less distance and potential drop is needed 17 | to compensate the high charge region of the explicit slab. 18 | 19 | A planar error-function-shaped 2D function is employed 20 | to define the semiconductor cavity. 21 | 22 | Only open boundary conditions are allowed for the calculations including the 23 | electrolyte. The real-space quadratic correction of the electrostatic 24 | potential (pbc_correcton='parabolic', see I. Dabo et al. Phys. Rev. B 77, 25 | 115139 (2008)) is required. The method has been coupled to the SCCS model 26 | in order to remove PBC in simulations of partially periodic systems in the 27 | presence of a continuum solvent, as described by O. Andreussi and N. Marzari 28 | Phys. Rev. B 90 245101 (2014). 29 | 30 | A rough explanation of the different electrolyte-related keywords is provided 31 | in the run_example.sh file. 32 | -------------------------------------------------------------------------------- /examples/qe/pw/mott_schottky/reference/results.txt: -------------------------------------------------------------------------------- 1 | 1.16 cm^-3 potential = -26.2339 V (abs. scale) 2 | 1.17 cm^-3 potential = -8.0032 V (abs. scale) 3 | 1.18 cm^-3 potential = -6.1803 V (abs. scale) 4 | -------------------------------------------------------------------------------- /examples/qe/pw/ms_gcs/README: -------------------------------------------------------------------------------- 1 | This example shows how to use pw.x to model a charged semiconductor electrode 2 | in contact with a solution. 3 | 4 | 5 | In particular, the algorithm tries to determine the voltage for a given electrode 6 | away from the flatband potential as a function of charge on the electrode. 7 | The algorithm is trying to optimize the charge distribution between the surface states 8 | of the system (modeled here as the DFT slab) and the bulk semiconductor 9 | which is modeled using a Mott-Schottky solution to the Poisson-Boltzmann equation. 10 | 11 | See 12 | Q. Campbell, D. Fisher, I. Dabo, Phys. Rev. Mater. 3 (1), 015404 (2019). 13 | and 14 | Q. Campbell and I. Dabo, Phys. Rev. B 95 (20), 205308 (2017). 15 | 16 | for full details. 17 | 18 | In practice, the callculation runs similarly to an ionic relaxation, where multiple scf 19 | cycles are run, each step trying to optimize the charge distribution between the two 20 | regions such that the Fermi levels are close to equilibrium. 21 | 22 | The surrounding solution is treated as a continuum dielectric according to the Self-consistent 23 | Continuum Solvation (SCCS) model of O. Andreussi, I. Dabo and N. Marzari, 24 | J. Chem. Phys. 136, 064102 (2012). 25 | 26 | 27 | Only open boundary conditions are allowed for the calculations including the 28 | electrolyte. The real-space quadratic correction of the electrostatic 29 | potential (see I. Dabo et al. Phys. Rev. B 77, 30 | 115139 (2008)) is used. The method has been coupled to the SCCS model 31 | in order to remove PBC in simulations of partially periodic systems in the 32 | presence of a continuum solvent, as described by O. Andreussi and N. Marzari 33 | Phys. Rev. B 90 245101 (2014). 34 | 35 | A rough explanation of the different semiconductor-related keywords is provided 36 | in the run_example.sh file. 37 | -------------------------------------------------------------------------------- /examples/qe/pw/ms_gcs/reference/q-v.dat: -------------------------------------------------------------------------------- 1 | Potential (V-V_fb) Surface State Potential (V-V_cut) Electrode Charge (e) Surface States Charge (e) Electrode Charge per Surface Area (e/cm^2) Surface State Charge per Surface Area (e/cm^2) 2 | 0.22935020 -0.00022085 0.00100000 0.00006358 6.68760E+11 4.25168E+10 3 | -------------------------------------------------------------------------------- /examples/qe/pw/pbc/README: -------------------------------------------------------------------------------- 1 | 2 | This example shows how to use pw.x to simulate isolated charged systems in 3 | vacuum or immersed in a continuum dielectric solvent. 4 | 5 | Two calculations, one in vacuum and one in a continuum dielectric with the 6 | dielectric permittivity of water, are performed on a pyridine cation, using 7 | three different periodic-boundary correction schemes, for a total of six 8 | calculations. 9 | 10 | To keep the calculations simple, only the electrostatic interaction with the 11 | solvent is introduced in the calculation, via the Self-consistent continuum 12 | solvation (SCCS) model of O. Andreussi, I. Dabo and N. Marzari, J. Chem. Phys. 13 | 136 064102 (2012). 14 | 15 | The periodic-boundary correction schemes adopted are: 16 | 17 | - none: fully periodic calculation 18 | - martyna-tuckerman: self-consistent, reciprocal-space correction of the 19 | electrostatic potential. REQUIRES A CELL AT LEAST TWICE AS BIG 20 | AS THE SIZE OF THE SYSTEM UNDER STUDY. A part from the limitation 21 | on the cell size, this correction scheme gives perfect accuracy 22 | at an almost negligible computational cost. 23 | - pcc: self-consistent, real-space quadratic correction of the electrostatic 24 | potentials, see I. Dabo et al. Phys. Rev. B 77, 115139 (2008). 25 | REQUIRES A CUBIC CELL. The error vs system size scales as L^-5. 26 | 27 | Note that from ENVIRON version 1.0, the makov-payne correction scheme is 28 | no longer supported. 29 | 30 | The extension of the above approaches to simulations in a continuum dielectric 31 | is described in details in O. Andreussi and N. Marzari, Phys. Rev. B 90 245101 (2014). 32 | -------------------------------------------------------------------------------- /examples/qe/pw/pbc/reference/results.txt: -------------------------------------------------------------------------------- 1 | Periodic boundary correction scheme = none 2 | Electrostatic Energy in vacuum = -83.46869912 Ry 3 | Electrostatic Energy in solution = -83.57883254 Ry 4 | Electrostatic Solvation Energy = -34.5466511856 Kcal/mol 5 | 6 | Periodic boundary correction scheme = martyna-tuckerman 7 | Electrostatic Energy in vacuum = -83.36597494 Ry 8 | Electrostatic Energy in solution = -83.57043258 Ry 9 | Electrostatic Solvation Energy = -64.1342725152 Kcal/mol 10 | 11 | Periodic boundary correction scheme = pcc 12 | Electrostatic Energy in vacuum = -83.36578225 Ry 13 | Electrostatic Energy in solution = -83.57042904 Ry 14 | Electrostatic Solvation Energy = -64.1936050872 Kcal/mol 15 | 16 | -------------------------------------------------------------------------------- /examples/qe/pw/run_all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -eu 4 | 5 | examples=" \ 6 | sccs \ 7 | sscs \ 8 | pbc \ 9 | slab \ 10 | helmholtz \ 11 | helmholtz_linpb \ 12 | mott_schottky \ 13 | ms_gcs \ 14 | solvent_aware \ 15 | field_aware \ 16 | " 17 | 18 | for dir in $examples; do 19 | cd "$dir" 20 | ./run_example.sh 21 | cd ../ 22 | done 23 | -------------------------------------------------------------------------------- /examples/qe/pw/sccs/README: -------------------------------------------------------------------------------- 1 | 2 | This example shows how to use pw.x to calculate the solvation energy 3 | and other related solvation quantities for a water molecule in a water solvent. 4 | 5 | The calculation is a standard geometry relaxation calculation, 6 | but in the presence of a continuum dielectric with the shape defined 7 | by the electronic density, according to the model of Fattebert 8 | and Gygi, Int J Quantum Chem 93, 139 (2003), revised by O. Andreussi, I. Dabo 9 | and N. Marzari, J. Chem. Phys. 136, 064102 (2012) 10 | 11 | Mind that the parabolic correction (or point-countercharge method) 12 | is used for both the calculation in vacuum and in the solvent. 13 | 14 | Additional terms of solvation can be computed by changing the specific keywords: 15 | -- env_surface_tension: surface tension of the solvent. If different from zero, 16 | a cavitation energy is computed according to a revised version of the formula in 17 | Scherlis et al. JCP 124, 074103, 2006 and Andreussi et al. J. Chem. Phys. 2012. 18 | -- env_pressure: external pressure of the medium. If different from zero, a PV 19 | energy term is added to the total energy, according to the method in 20 | Cococcioni et al. PRL 94, 145501, 2005. 21 | 22 | Two calculations illustrate how the self consistent dielectric can be 23 | equivalently obtained either through an iterative procedure that solves 24 | for the polarization charge density or a preconditioned conjugate gradient 25 | algorithm that solves for the polarization potential (now the default, 26 | see G. Fisicaro, L. Genovese, O. Andreussi, N. Marzari and S. Goedecker, 27 | J. Chem. Phys. 144, 014103 (2016)) 28 | 29 | A rough explanation of the different keywords of the solvation model is 30 | in the run_example.sh file. 31 | -------------------------------------------------------------------------------- /examples/qe/pw/sccs/reference/results.txt: -------------------------------------------------------------------------------- 1 | Solver = fixed-point 2 | Solvation Energy = -6.7579156464 Kcal/mol 3 | Cavitation Energy = 3.4855149192 Kcal/mol 4 | PV Energy = -1.7643778536 Kcal/mol 5 | Electrostatic Energy = -8.4790527120 Kcal/mol 6 | 7 | Solver = cg 8 | Solvation Energy = -6.7587218040 Kcal/mol 9 | Cavitation Energy = 3.4855149192 Kcal/mol 10 | PV Energy = -1.7643747168 Kcal/mol 11 | Electrostatic Energy = -8.4798620064 Kcal/mol 12 | 13 | -------------------------------------------------------------------------------- /examples/qe/pw/slab/README: -------------------------------------------------------------------------------- 1 | This example shows how to use pw.x to model two-dimensional periodic systems 2 | in contact with a continuum solvent. 3 | 4 | The calculation is a single SCF calculation of a (unrealistic) two-layer thick 5 | Pt (111) slab with a CO molecule adsorbed on atop position (thanks to Ismaila 6 | Dabo for the starting input of the system in vacuum). The solvent is treated 7 | as a continuum dielectric according to the Self-consistent Continuum Solvation 8 | (SCCS) model of O. Andreussi, I. Dabo and N. Marzari, J. Chem. Phys. 136, 9 | 064102 (2012). 10 | 11 | The artifacts due to the periodic boundary conditions are removed using a 12 | real-space quadratic correction of the electrostatic potential, analogous 13 | to the Point Counter-Charge (PCC) correction scheme (see I. Dabo et al. Phys. 14 | Rev. B 77, 115139 (2008)). 15 | 16 | The method has been coupled to the SCCS model in order to remove periodic 17 | boundary conditions in simulations of partially periodic systems in the 18 | presence of a continuum solvent, as described by O. Andreussi and N. marzari 19 | Phys. Rev. B 90 245101 (2014). 20 | 21 | Note that the keyword solvent_mode='full' is mandatory in this calculation, in 22 | order to remove the artifact of the Pt valence density, which presents a hole 23 | close to the position of ion, due to the missing core electrons. In order to 24 | avoid the continuum solvent to enter such a hole, a quickly vanishing gaussian 25 | density is added at the position of the nuclei when defining the dielectric. 26 | The same problem is likely to occur in alogens and other transition metals. 27 | 28 | From ENVIRON version 1.0 the Fermi energy shift that arises from the gaussian 29 | nuclei smearing together with the parabolic pbc correction is printed as a 30 | separate contribution that needs to be added to the standard Fermi energy 31 | from pw.x. 32 | 33 | A rough explanation of the different keywords of the solvation model is inside 34 | the run_example.sh file. 35 | -------------------------------------------------------------------------------- /examples/qe/pw/slab/reference/results.txt: -------------------------------------------------------------------------------- 1 | Energy in vacuum = -735.31878434 Ry 2 | Energy in solution = -735.33616801 Ry 3 | Electrostatic Solvation Energy = -5.4529096056 Kcal/mol 4 | 5 | Fermi energy in vacuum = -6.4792 eV + -0.4600 eV = -6.9392 eV 6 | Fermi energy in solution = -6.1851 eV + -0.4600 eV = -6.6451 eV 7 | -------------------------------------------------------------------------------- /examples/qe/pw/solvent_aware/README: -------------------------------------------------------------------------------- 1 | 2 | This example shows how to use pw.x to calculate the energy of a water 3 | cluster (thanks to Nicolas Hörmann for the structure) using a 4 | solvent-aware interface, as described in O. Andreussi, N.G. Hörmann, 5 | F. Nattino, G. Fisicaro, S. Goedecker, and N. Marzari, J. Chem. Theory 6 | Comput. 15, 1996 (2019). 7 | 8 | This feature is particularly useful to model branched/open/porous 9 | systems, where pockets that are too small to fit a solvent molecule 10 | should remain dielectric-free. 11 | 12 | Two calculations are carried out. The first calculation includes 13 | a standard interface between the quantum mechanical and the continuum 14 | region, such that the dielectric unphysically fills the small pocket 15 | in between the water molecules. The second calculation models instead a 16 | solvent-aware interface, which prevents the dielectric continuum to 17 | enter the central 'hole' of the cluster. 18 | 19 | A rough explanation of the different solvent-aware related keywords 20 | is provided in the run_example.sh file. 21 | -------------------------------------------------------------------------------- /examples/qe/pw/solvent_aware/reference/results.txt: -------------------------------------------------------------------------------- 1 | Energy in vacuum = -343.09440071 Ry 2 | Energy in solution = -343.09618764 Ry 3 | Electrostatic Solvation Energy = -.5605242024 Kcal/mol 4 | -------------------------------------------------------------------------------- /examples/qe/pw/sscs/README: -------------------------------------------------------------------------------- 1 | 2 | Same as example01, but the cavity that separates the quantum mechanical from the 3 | continuum region is constructed using interlocking spheres centered on the nuclei 4 | ("soft-spheres") as described in G. Fisicaro, L. Genovese, O. Andreussi, S. Mandal, 5 | N.N. Nair, N. Marzari, and S.Goedecker, J. Chem. Theor. Comput. 13, 3829 (2017). 6 | 7 | Mind that the parabolic correction (or point-countercharge method) 8 | is used for both the calculation in vacuum and in the solvent. 9 | 10 | A rough explanation of the keywords that are related to the soft-spheres 11 | solvation model is provided in the run_example.sh file. 12 | -------------------------------------------------------------------------------- /examples/qe/pw/sscs/reference/results.txt: -------------------------------------------------------------------------------- 1 | Solvation Energy = -5.7862228368 Kcal/mol 2 | Cavitation Energy = 4.2114770904 Kcal/mol 3 | PV Energy = -2.0996233536 Kcal/mol 4 | Electrostatic Energy = -7.8980765736 Kcal/mol 5 | -------------------------------------------------------------------------------- /examples/qe/run_all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -eu 4 | 5 | for dir in pw neb xspectra tddfpt cp; do 6 | cd "$dir" 7 | ./run_all.sh 8 | cd ../ 9 | done 10 | -------------------------------------------------------------------------------- /examples/qe/tddfpt/README.md: -------------------------------------------------------------------------------- 1 | # Environ TDDFPT Examples 2 | 3 | lanczos: pw.x turbo_lanczos.x 4 | 5 | Calculation of the optical spectrum of a molecule in vacuum and 6 | in solution (only dielectric) 7 | 8 | davidson: pw.x turbo_davidson.x 9 | 10 | Calculation of the optical spectrum of a molecule in vacuum and 11 | in solution (only dielectric) -------------------------------------------------------------------------------- /examples/qe/tddfpt/davidson/README: -------------------------------------------------------------------------------- 1 | 2 | This example shows how to use the pw.x and turbo_davidson.x codes 3 | to calculate the absorption spectrum of the CH4 molecule in water 4 | using a fully self-consistent dielectric defined on the electronic density 5 | and using the Davidson algorithm within the time-dependent density 6 | functional perturbation theory according to 7 | I. Timrov, O. Andreussi, A. Biancardi, N. Marzari, and S. Baroni, J. Chem. Phys. 142, 034111 (2015). 8 | 9 | The description of the keywords for the turbo_davidson.x code 10 | can be found in TDDFPT/Doc of the Quantum ESPRESSO package. 11 | -------------------------------------------------------------------------------- /examples/qe/tddfpt/davidson/reference/CH4_solvent.eigen: -------------------------------------------------------------------------------- 1 | # Energy(Ry) Total X Y Z 2 | 0.63212147E+00 0.36556192E-01 0.10448300E-01 0.10585605E-01 0.15522287E-01 3 | 0.63212651E+00 0.36573047E-01 0.25594076E-01 0.19018955E-02 0.90770757E-02 4 | 0.63212823E+00 0.36525213E-01 0.52558117E-03 0.24045963E-01 0.11953668E-01 5 | 0.72878904E+00 0.28048870E-01 0.14604571E-01 0.13900856E-03 0.13305290E-01 6 | 0.72879164E+00 0.27987329E-01 0.13311682E-01 0.10144400E-06 0.14675545E-01 7 | 0.72880344E+00 0.27771304E-01 0.76509270E-04 0.27628473E-01 0.66320873E-04 8 | 0.73617657E+00 0.23025610E-02 0.17737647E-02 0.20820951E-03 0.32058672E-03 9 | 0.73618069E+00 0.22285650E-02 0.45175069E-03 0.16063788E-03 0.16161764E-02 10 | 0.73618839E+00 0.22829925E-02 0.53301508E-04 0.19287037E-02 0.30098727E-03 11 | 0.73682010E+00 0.31512617E-07 0.22908088E-07 0.72127807E-09 0.78832505E-08 12 | -------------------------------------------------------------------------------- /examples/qe/tddfpt/davidson/reference/CH4_vacuum.eigen: -------------------------------------------------------------------------------- 1 | # Energy(Ry) Total X Y Z 2 | 0.64117899E+00 0.32086535E-01 0.17483043E-01 0.13275701E-01 0.13277909E-02 3 | 0.64118064E+00 0.32094894E-01 0.12871639E-02 0.20001946E-03 0.30607711E-01 4 | 0.64118227E+00 0.32095895E-01 0.13317974E-01 0.18619117E-01 0.15880383E-03 5 | 0.73752030E+00 0.19625215E-01 0.14107326E-01 0.54293824E-02 0.88506138E-04 6 | 0.73752182E+00 0.19637138E-01 0.12627536E-03 0.12530431E-02 0.18257820E-01 7 | 0.73752642E+00 0.19567120E-01 0.53854286E-02 0.12898256E-01 0.12834346E-02 8 | 0.74523917E+00 0.43119604E-02 0.29193385E-02 0.13863956E-02 0.62262909E-05 9 | 0.74523994E+00 0.43090025E-02 0.51388920E-04 0.21467227E-03 0.40429414E-02 10 | 0.74524242E+00 0.43551398E-02 0.13452837E-02 0.27437152E-02 0.26614085E-03 11 | 0.74592816E+00 0.96021294E-08 0.65537114E-10 0.55801947E-11 0.95310121E-08 12 | -------------------------------------------------------------------------------- /examples/qe/tddfpt/lanczos/README: -------------------------------------------------------------------------------- 1 | 2 | This example shows how to use pw.x, turbo_lanczos.x, and turbo_spectrum.x 3 | to calculate the absorption spectrum of the CH4 molecule in water 4 | using a fully self-consistent dielectric defined on the electronic density 5 | and using the Liouville-Lanczos approach within the time-dependent density 6 | functional perturbation theory according to 7 | I. Timrov, O. Andreussi, A. Biancardi, N. Marzari, and S. Baroni, J. Chem. Phys. 142, 034111 (2015). 8 | 9 | The description of the keywords for turbo_lanczos.x and tubro_spectrum.x codes 10 | can be found in TDDFPT/Doc of the Quantum ESPRESSO package. 11 | -------------------------------------------------------------------------------- /examples/qe/tddfpt/lanczos/reference/CH4_solvent.turbo-spectrum.out: -------------------------------------------------------------------------------- 1 | Warning: Only a single CPU will be used! 2 | 3 | Program TDDFPT_PP v.7.0 starts on 3May2022 at 8: 5: 6 4 | 5 | This program is part of the open-source Quantum ESPRESSO suite 6 | for quantum simulation of materials; please cite 7 | "P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009); 8 | "P. Giannozzi et al., J. Phys.:Condens. Matter 29 465901 (2017); 9 | "P. Giannozzi et al., J. Chem. Phys. 152 154105 (2020); 10 | URL http://www.quantum-espresso.org", 11 | in publications or presentations arising from this work. More details at 12 | http://www.quantum-espresso.org/quote 13 | 14 | Parallel version (MPI), running on 1 processors 15 | 16 | MPI processes distributed on 1 nodes 17 | 19190 MiB available memory on the printing compute node when the environment starts 18 | 19 | 20 | Reading 3000 Lanczos steps for direction 1 21 | 3000 steps will be considered 22 | 23 | 24 | Reading 3000 Lanczos steps for direction 2 25 | 3000 steps will be considered 26 | 27 | 28 | Reading 3000 Lanczos steps for direction 3 29 | 3000 steps will be considered 30 | 31 | 32 | Polarization direction:1 33 | Lanczos coefficients: 34 | Average = 13.02966785 35 | Average oscillation amplitude = 0.36682049 36 | 37 | Polarization direction:2 38 | Lanczos coefficients: 39 | Average = 13.02942529 40 | Average oscillation amplitude = 0.36661831 41 | 42 | Polarization direction:3 43 | Lanczos coefficients: 44 | Average = 13.02946966 45 | Average oscillation amplitude = 0.36660867 46 | 47 | Data ready, starting to calculate observables... 48 | 49 | Broadening = 0.01000000 Ry 50 | 51 | Output file name: CH4_solvent.plot_chi 52 | 53 | Output file name for the oscillator strength S CH4_solvent.plot_S.d 54 | 55 | chi_i_j: dipole polarizability tensor in units of e^2*a_0^2/energy 56 | 57 | S: oscillator strength in units of 1/energy 58 | 59 | S(\hbar \omega) = 2m/( 3 \pi e^2 \hbar) \omega sum_j chi_j_j 60 | 61 | S(\hbar \omega) satisfies the f-sum rule: \int_0^\infty dE S(E) = N_el 62 | 63 | Functions are reported in \hbar.\omega Energy unit is (Ry) 64 | 65 | TDDFPT_PP : 10.95s CPU 11.01s WALL 66 | 67 | 68 | This run was terminated on: 8: 5:17 3May2022 69 | 70 | =------------------------------------------------------------------------------= 71 | JOB DONE. 72 | =------------------------------------------------------------------------------= 73 | -------------------------------------------------------------------------------- /examples/qe/tddfpt/lanczos/reference/CH4_vacuum.turbo-spectrum.out: -------------------------------------------------------------------------------- 1 | Warning: Only a single CPU will be used! 2 | 3 | Program TDDFPT_PP v.7.0 starts on 3May2022 at 7:51: 7 4 | 5 | This program is part of the open-source Quantum ESPRESSO suite 6 | for quantum simulation of materials; please cite 7 | "P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009); 8 | "P. Giannozzi et al., J. Phys.:Condens. Matter 29 465901 (2017); 9 | "P. Giannozzi et al., J. Chem. Phys. 152 154105 (2020); 10 | URL http://www.quantum-espresso.org", 11 | in publications or presentations arising from this work. More details at 12 | http://www.quantum-espresso.org/quote 13 | 14 | Parallel version (MPI), running on 1 processors 15 | 16 | MPI processes distributed on 1 nodes 17 | 19187 MiB available memory on the printing compute node when the environment starts 18 | 19 | 20 | Reading 3000 Lanczos steps for direction 1 21 | 3000 steps will be considered 22 | 23 | 24 | Reading 3000 Lanczos steps for direction 2 25 | 3000 steps will be considered 26 | 27 | 28 | Reading 3000 Lanczos steps for direction 3 29 | 3000 steps will be considered 30 | 31 | 32 | Polarization direction:1 33 | Lanczos coefficients: 34 | Average = 13.02594041 35 | Average oscillation amplitude = 0.39186135 36 | 37 | Polarization direction:2 38 | Lanczos coefficients: 39 | Average = 13.02546079 40 | Average oscillation amplitude = 0.39218273 41 | 42 | Polarization direction:3 43 | Lanczos coefficients: 44 | Average = 13.02537244 45 | Average oscillation amplitude = 0.39013739 46 | 47 | Data ready, starting to calculate observables... 48 | 49 | Broadening = 0.01000000 Ry 50 | 51 | Output file name: CH4_vacuum.plot_chi. 52 | 53 | Output file name for the oscillator strength S CH4_vacuum.plot_S.da 54 | 55 | chi_i_j: dipole polarizability tensor in units of e^2*a_0^2/energy 56 | 57 | S: oscillator strength in units of 1/energy 58 | 59 | S(\hbar \omega) = 2m/( 3 \pi e^2 \hbar) \omega sum_j chi_j_j 60 | 61 | S(\hbar \omega) satisfies the f-sum rule: \int_0^\infty dE S(E) = N_el 62 | 63 | Functions are reported in \hbar.\omega Energy unit is (Ry) 64 | 65 | TDDFPT_PP : 14.29s CPU 14.39s WALL 66 | 67 | 68 | This run was terminated on: 7:51:21 3May2022 69 | 70 | =------------------------------------------------------------------------------= 71 | JOB DONE. 72 | =------------------------------------------------------------------------------= 73 | -------------------------------------------------------------------------------- /examples/qe/tddfpt/run_all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -eu 4 | 5 | examples=" \ 6 | lanczos \ 7 | davidson \ 8 | " 9 | 10 | for dir in $examples; do 11 | cd "$dir" 12 | ./run_example.sh 13 | cd ../ 14 | done -------------------------------------------------------------------------------- /examples/qe/xspectra/README.md: -------------------------------------------------------------------------------- 1 | # Environ XSpectra Examples 2 | 3 | SiO2: pw.x xspectra.x 4 | 5 | Slab version of Quantum ESPRESSO's XSpectra SiO2 example 6 | -------------------------------------------------------------------------------- /examples/qe/xspectra/run_all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -eu 4 | 5 | examples=" \ 6 | SiO2 \ 7 | " 8 | 9 | for dir in $examples; do 10 | cd "$dir" 11 | ./run_example.sh 12 | cd ../ 13 | done -------------------------------------------------------------------------------- /install/aclocal.m4: -------------------------------------------------------------------------------- 1 | # generated automatically by aclocal 1.16.5 -*- Autoconf -*- 2 | 3 | # Copyright (C) 1996-2021 Free Software Foundation, Inc. 4 | 5 | # This file is free software; the Free Software Foundation 6 | # gives unlimited permission to copy and/or distribute it, 7 | # with or without modifications, as long as this notice is preserved. 8 | 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 12 | # PARTICULAR PURPOSE. 13 | 14 | m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) 15 | m4_include([m4/ax_check_compile_flag.m4]) 16 | m4_include([m4/x_ac_env_aix_dflags.m4]) 17 | m4_include([m4/x_ac_env_ar.m4]) 18 | m4_include([m4/x_ac_env_arch.m4]) 19 | m4_include([m4/x_ac_env_blas.m4]) 20 | m4_include([m4/x_ac_env_cc.m4]) 21 | m4_include([m4/x_ac_env_cpp.m4]) 22 | m4_include([m4/x_ac_env_cuda.m4]) 23 | m4_include([m4/x_ac_env_default_env.m4]) 24 | m4_include([m4/x_ac_env_f90.m4]) 25 | m4_include([m4/x_ac_env_f90rule.m4]) 26 | m4_include([m4/x_ac_env_fft.m4]) 27 | m4_include([m4/x_ac_env_lapack.m4]) 28 | m4_include([m4/x_ac_env_ld.m4]) 29 | m4_include([m4/x_ac_env_mass.m4]) 30 | m4_include([m4/x_ac_env_mpi.m4]) 31 | m4_include([m4/x_ac_env_mpif90.m4]) 32 | m4_include([m4/x_ac_env_openmp.m4]) 33 | m4_include([m4/x_ac_env_qe.m4]) 34 | m4_include([m4/x_ac_env_ranlib.m4]) 35 | m4_include([m4/x_ac_env_wget.m4]) 36 | -------------------------------------------------------------------------------- /install/configure.ac: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2021 Quantum ESPRESSO group 3 | # 4 | # This program is free software; you can redistribute it and/or 5 | # modify it under the terms of the GNU General Public License 6 | # as published by the Free Software Foundation; either version 2 7 | # of the License. See the file `License' in the root directory 8 | # of the present distribution. 9 | 10 | AC_INIT(ENVIRON, 3.0, , environ) 11 | 12 | AC_PREREQ(2.64) 13 | AC_CONFIG_MACRO_DIR([m4/]) 14 | 15 | # Initialize variables, filling with one comes from the environment... 16 | X_AC_ENV_DEFAULT_ENV() 17 | 18 | # configure for current directory by default 19 | if test "$topdir" = "" ; then topdir="`pwd`" ; fi 20 | 21 | # check system type (no cross-compilation for now) 22 | AC_CANONICAL_BUILD 23 | 24 | # Checking Architecture... 25 | X_AC_ENV_ARCH() 26 | 27 | # Add all needed -D options to try_dflags 28 | try_dflags="" 29 | 30 | # Checking archiver... 31 | X_AC_ENV_AR() 32 | 33 | # Checking OpenMP... 34 | X_AC_ENV_OPENMP() 35 | 36 | # Checking MPIF90... 37 | X_AC_ENV_MPIF90() 38 | 39 | # Checking CC... 40 | X_AC_ENV_CC() 41 | 42 | # Checking F90... 43 | X_AC_ENV_F90() 44 | 45 | # Checking preprocessor... 46 | X_AC_ENV_CPP() 47 | 48 | # Checking linker... 49 | X_AC_ENV_LD() 50 | 51 | # Checking CUDA... 52 | X_AC_ENV_CUDA() 53 | 54 | # Checking F90 rule... 55 | X_AC_ENV_F90RULE() 56 | 57 | AC_LANG_PUSH(Fortran 77) 58 | F77=$f90 # use Fortran 90 actually 59 | FFLAGS="$test_fflags" 60 | LDFLAGS="$test_ldflags" 61 | 62 | # Checking BLAS... 63 | X_AC_ENV_BLAS() 64 | 65 | # Checking LAPACK... 66 | X_AC_ENV_LAPACK() 67 | 68 | # Checking for FFT... 69 | X_AC_ENV_FFT() 70 | 71 | # Checking for IBM MASS library... 72 | X_AC_ENV_MASS() 73 | 74 | # check for MPI library... 75 | X_AC_ENV_MPI() 76 | 77 | # Checking Quantum ESPRESSO coupling... 78 | X_AC_ENV_QE() 79 | 80 | # Checking for ranlib... 81 | X_AC_ENV_RANLIB() 82 | 83 | # Checking wget or curl... 84 | X_AC_ENV_WGET() 85 | 86 | # Show dflags before adding $(MANUAL_DFLAGS) and adapt to XLF (if needed) 87 | if test "$dflags" = "" ; then dflags="$try_dflags" ; fi 88 | echo setting DFLAGS... $try_dflags 89 | 90 | # xlf compilers (AIX and powerpc) want comma-separated -D directives 91 | X_AC_ENV_AIX_DFLAGS() 92 | 93 | if test "$iflags" = "" ; then iflags="$try_iflags" ; fi 94 | echo setting IFLAGS... $iflags 95 | 96 | # export additional settings to generated files 97 | AC_SUBST(dflags) 98 | AC_SUBST(fdflags) 99 | AC_SUBST(iflags) 100 | AC_SUBST(ld_libs) 101 | AC_SUBST(topdir) 102 | 103 | AC_CONFIG_FILES(make.inc) 104 | AC_CONFIG_FILES(configure.msg) 105 | 106 | AC_OUTPUT 107 | 108 | # final messages 109 | sed '/@delete@/d' configure.msg 110 | echo configure: success 111 | -------------------------------------------------------------------------------- /install/configure.msg.in: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------- 2 | ENVIRON can take advantage of several optimized numerical libraries 3 | (essl, fftw, mkl...). This configure script attempts to find them, 4 | but may fail if they have been installed in non-standard locations. 5 | If a required library is not found, the local copy will be compiled. 6 | 7 | The following libraries have been found: 8 | @blas_line@ 9 | @lapack_line@ 10 | @fft_line@ 11 | @mpi_line@ 12 | @mass_line@ 13 | 14 | Please check if this is what you expect. 15 | 16 | If any libraries are missing, you may specify a list of directories 17 | to search and retry, as follows: 18 | ./configure LIBDIRS="list of directories, separated by spaces" 19 | 20 | @parallel_report@ 21 | 22 | For more info, read the ESPRESSO User's Guide (Doc/users-guide.tex). 23 | -------------------------------------------------------------------- 24 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_aix_dflags.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_AIX_DFLAGS], [ 5 | 6 | # xlf compilers (AIX and powerpc) want comma-separated -D directives 7 | if test "$xlf_flags" -ne 0 8 | then 9 | fdflags="`echo $dflags | sed 's/ */,/g'`" 10 | else 11 | # Because of the way xlf handle pre-processing, agile $(MANUAL_DFLAGS) 12 | # passed to make works only on non XLF environments... (NdFilippo) 13 | fdflags="\$(DFLAGS) \$(MANUAL_DFLAGS)" 14 | fi 15 | ] 16 | ) 17 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_ar.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_AR], [ 5 | 6 | # default from the environment (shouldn't be needed) 7 | ar=$AR 8 | arflags=$ARFLAGS 9 | 10 | try_ar="ar" 11 | AC_MSG_CHECKING([setting AR... ]) 12 | if test "$arch" = "necsx"; then 13 | try_ar="sxar" 14 | fi 15 | if test "$ar" = "" ; then ar="$try_ar" ; fi 16 | AC_MSG_RESULT(${ar}) 17 | AC_SUBST(ar) 18 | 19 | try_arflags="ruv" 20 | AC_MSG_CHECKING([setting ARFLAGS... ]) 21 | if test "$arch" = "necsx"; then 22 | try_arflags="rv" 23 | fi 24 | if test "$arflags" = "" ; then arflags="$try_arflags" ; fi 25 | AC_MSG_RESULT(${arflags}) 26 | AC_SUBST(arflags) 27 | 28 | ] 29 | ) 30 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_arch.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_ARCH], [ 5 | 6 | AC_MSG_CHECKING([ARCH]) 7 | 8 | # many HPC systems are configured so that running parallel programs 9 | # interactively is disabled: on those systems, AC_PROG_FC / _CC 10 | # would fail because they can't run the compiled executables. 11 | # to work around that, let's pretend we are cross-compiling even if we aren't 12 | # !!! this relies on undocumented Autoconf behavior !!! 13 | 14 | # This is used to distinguish between true and fake cross compilation 15 | # (only on NEC SX8 actually) 16 | if test "$host" != "" ; then ranlib=echo; fi 17 | 18 | 19 | # cross compiling? Why? 20 | #cross_compiling=yes 21 | 22 | if test "$host" = "" ; then host=$build; fi 23 | 24 | # identify host architecture 25 | if test "$arch" = "" 26 | then 27 | case $host in 28 | ia64-*-linux-gnu ) arch=ia64 ;; 29 | x86_64-*-linux-gnu ) arch=x86_64 ;; 30 | arm-*linux* ) arch=arm ;; 31 | aarch64-*-linux-gnu ) arch=arm ;; 32 | *-pc-linux-gnu ) arch=ia32 ;; 33 | *-apple-darwin* ) arch=mac686 ;; 34 | *-pc-cygwin ) arch=cygwin ;; 35 | sx*-nec* ) arch=necsx ;; 36 | powerpc64-*-linux-gnu ) arch=ppc64 ;; 37 | powerpc64le-*-linux-gnu ) arch=ppc64le ;; 38 | *-*-mingw32 ) arch=mingw32;; 39 | *-*-mingw64 ) arch=mingw64;; 40 | * ) AC_MSG_WARN(Unrecognized build architecture) 41 | ;; 42 | esac 43 | # workaround for Cray-XT machines 44 | test -d /proc/cray_xt && arch=crayxt 45 | # workaround for IBM BG machines 46 | test -d /bgsys && arch=ppc64-bg 47 | test -f /bgsys/drivers/ppcfloor/bin/runjob && arch=ppc64-bgq 48 | fi 49 | case $arch in 50 | ia32 | ia64 | necsx | crayxt | ppc64-bg ) 51 | AC_MSG_WARN(Obsolete architecture? $arch) 52 | ;; 53 | esac 54 | AC_MSG_RESULT(${arch}) 55 | AC_SUBST(arch) 56 | 57 | ]) 58 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_cc.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_CC], [ 5 | 6 | # candidate C compilers good for all cases 7 | try_cc="cc gcc" 8 | 9 | case "$arch:$f90_flavor" in 10 | *:ifort* ) 11 | try_cc="icc ecc $try_cc" 12 | ;; 13 | *:ifx* ) 14 | try_cc="icx $try_cc" 15 | ;; 16 | *:pgf90 | *:nvfortran ) 17 | try_cc="pgcc $try_cc" 18 | ;; 19 | cray*:* ) 20 | try_cc="cc" 21 | ;; 22 | necsx:* ) 23 | try_cc="sxcc" 24 | ;; 25 | ppc64-bg*:*xlf90_r ) 26 | try_cc="bgxlc_r" 27 | ;; 28 | ppc64-bg*:*xlf90 ) 29 | try_cc="bgxlc" 30 | ;; 31 | ppc64:*xlf* | ppc64le:*xlf* ) 32 | try_cc="xlc_r $try_cc" 33 | ;; 34 | esac 35 | 36 | # check serial C compiler 37 | if test "$env_cc" = "" ; then cc="$try_cc" ; else cc="$env_cc"; fi 38 | AC_PROG_CC($cc) 39 | cc=$CC 40 | 41 | echo setting CC... $cc 42 | 43 | AC_SUBST(cc) 44 | 45 | # tentative C and loader flags, good for many cases 46 | try_cflags="-O3" 47 | c_ldflags="" 48 | try_cpp="cpp" 49 | 50 | case "$arch:$cc" in 51 | *:pgcc ) 52 | try_cflags="-fast -Mpreprocess" 53 | # Workaround for BEEF compilation with PGI v.19 and previous 54 | if test "$f90_flavor" = "pgf90"; then try_cflags="-c11 $try_cflags"; fi 55 | ;; 56 | crayxt*:cc ) 57 | # Actually we need something like is done for ftn to detect 58 | # the proper compiler used (NdFilippo) 59 | try_cflags="-O3" 60 | ;; 61 | necsx:* ) 62 | #try_cflags="-D__SX6 \$(IFLAGS) \$(MODFLAGS)" 63 | try_cflags="" 64 | ;; 65 | ppc64le:* ) 66 | try_cflags="-O3" 67 | ;; 68 | ppc64-bg:* ) 69 | try_cflags="-O3 -q32" 70 | ;; 71 | ppc64-bgq:* ) 72 | try_cflags="-O3" 73 | ;; 74 | ppc64:xlc*) 75 | try_cflags="-O3 -q64 -qthreaded" 76 | c_ldflags="-q64" 77 | ;; 78 | 79 | esac 80 | if test "$cflags" = "" ; then cflags=$try_cflags ; fi 81 | echo setting CFLAGS... $cflags 82 | 83 | # compilation flags for all subsequent tests 84 | test_cflags="`echo $cflags | sed 's/\$([[^)]]*)//g'`" 85 | 86 | AC_SUBST(cflags) 87 | ]) 88 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_cpp.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_CPP], [ 5 | 6 | # preprocessor - try cpp in all cases; the preprocessor returned by 7 | # AC_PROG_CPP 8 | # may sometimes refuse to preprocess fortran files 9 | if test "$cpp" = "" ; then cpp=$try_cpp; fi 10 | # if test "$cpp" = "" ; then cpp=$CPP; fi 11 | echo setting CPP... $cpp 12 | 13 | echo $ECHO_N "setting CPPFLAGS... $ECHO_C" 14 | # Note: option -C makes trouble with recent gcc versions and pgi 15 | case $cpp in 16 | cpp) try_cppflags="-P -traditional -Uvector" ;; 17 | fpp) try_cppflags="-P -allow nofpp_comments" ;; 18 | *) try_cppflags="" ;; 19 | esac 20 | if test "$cppflags" = "" ; then cppflags=$try_cppflags ; fi 21 | echo "${ECHO_T}$cppflags" 22 | 23 | # compilation flags for all subsequent tests 24 | test_cppflags="$test_cflags" 25 | 26 | AC_SUBST(cpp) 27 | AC_SUBST(cppflags) 28 | 29 | ] 30 | ) 31 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_default_env.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_DEFAULT_ENV], [ 5 | 6 | # store variables from the environment, if set (may be or not be set) 7 | # If set, they take precedence over configure internal choice. 8 | # Flags and libraries are accepted without further testing; 9 | # compilers are tested. Specify compiler name only, not the full path 10 | # (i.e. F90=/usr/local/bin/f90 may not work, use F90=f90) 11 | 12 | topdir=$TOPDIR # current directory 13 | arch=$ARCH # see below for recognized architectures 14 | env_cc=$CC # C compiler (must be in the execution path) 15 | cpp=$CPP # C preprocessor (as above) 16 | cflags=$CFLAGS # Flags for C compiler 17 | cppflags=$CPPFLAGS # Flags for C preprocessor 18 | dflags=$DFLAGS # Fortran file preprocessing options, e.g. -D__DEFINE_THIS 19 | iflags=$IFLAGS # Location of include files - shouldn't be needed 20 | f90=$F90 # Fortran 90 serial compiler (must be in execution path) 21 | mpif90=$MPIF90 # Fortran 90 parallel compiler (must be in execution path) 22 | fflags=$FFLAGS # Flags for Fortran 77 and 90 compilers 23 | fflags_nomain=$FFLAGS_NOMAIN # Flags for linking Fortran sources with main in a different language 24 | fflags_noopt=$FFLAGS_NOOPT # as FFLAGS With optimization disabled 25 | f90flags=$F90FLAGS # Flags for Fortran 90 compiler only 26 | ld=$LD # Loader (must be in the execution path) 27 | ldflags=$LDFLAGS # Flags for loader 28 | ld_libs=$LD_LIBS # Additional libraries 29 | blas_libs=$BLAS_LIBS # blas library - specify e.g. /my/blas/lib/libmyblas.a 30 | # or -L/my/blas/lib -lmyblas 31 | lapack_libs=$LAPACK_LIBS # lapack library, similar to above 32 | fft_libs=$FFT_LIBS # FFT libraries - may depend upon DFLAGS 33 | mpi_libs=$MPI_LIBS # MPI libraries - shouldn't be needed 34 | mass_libs=$MASS_LIBS # MASS libraries (IBM only) 35 | libdirs=$LIBDIRS # Where to look for libraries (e.g. /my/blas/lib) 36 | scalapack_libs=$SCALAPACK_LIBS # scalapack libs 37 | scalapack_dir=$SCALAPACK_LIB # Where to look for scalapack libs 38 | blacs_dir=$BLACS_LIB # Where to look for libblacs.a 39 | ar=$AR # ar (shouldn't be needed) 40 | arflags=$ARFLAGS # Flags for ar (as above) 41 | 42 | ] 43 | ) 44 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_f90rule.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_F90RULE], [ 5 | 6 | AC_PROG_MAKE_SET 7 | echo $ECHO_N "checking whether Fortran files must be preprocessed... $ECHO_C" 8 | if test "$have_cpp" -ne 0 9 | then 10 | f90rule="\$(MPIF90) \$(F90FLAGS) -c \$<" 11 | echo "${ECHO_T}no" 12 | else 13 | f90rule="\$(CPP) \$(CPPFLAGS) \$< -o \$(*)_tmp.f90 ; \\ 14 | \$(MPIF90) \$(F90FLAGS) -c \$(*)_tmp.f90 -o \$(*).o" 15 | echo "${ECHO_T}yes" 16 | fi 17 | 18 | AC_SUBST(f90rule) 19 | 20 | ]) 21 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_ld.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_LD], [ 5 | 6 | # linker and archiver 7 | # note that from this point on, further additions to 8 | # linker flags should be added to ldflags rather than try_ldflags 9 | if test "$ld" = "" ; then ld="$mpif90" ; fi 10 | if test "$ldflags" = "" ; then ldflags="$try_ldflags" ; fi 11 | echo setting LD... $ld 12 | echo setting LDFLAGS... $ldflags 13 | 14 | # compilation flags for all subsequent tests 15 | test_ldflags="`echo $ldflags | sed 's/\$([[^)]]*)//g'`" 16 | 17 | AC_SUBST(ld) 18 | AC_SUBST(ldflags) 19 | 20 | ] 21 | ) 22 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_mpi.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_MPI], [ 5 | 6 | have_mpi=0 7 | parallel=0 8 | 9 | # some architectures require to link mpi libraries explicitly 10 | F77=$mpif90 # use parallel compiler 11 | if test "$mpi_libs" = "" 12 | then 13 | # check directories in LD_LIBRARY_PATH too 14 | # (maybe they are already searched by default, but I'm not sure) 15 | ld_library_path=`echo $LD_LIBRARY_PATH | sed 's/:/ /g'` 16 | 17 | if test "$use_parallel" -ne 0 18 | then 19 | if test "$have_mpi" -eq 0 20 | # check for mpi 21 | then 22 | unset ac_cv_search_mpi_init # clear cached value 23 | LDFLAGS="$test_ldflags" 24 | LIBS="$mpi_libs" 25 | AC_SEARCH_LIBS(mpi_init, mpi, 26 | have_mpi=1 parallel=1 mpi_libs="$LIBS" try_dflags="$try_dflags -D__MPI") 27 | fi 28 | fi 29 | else 30 | if test "$use_parallel" -ne 0 31 | then 32 | have_mpi=1 33 | parallel=1 34 | try_dflags="$try_dflags -D__MPI" 35 | fi 36 | fi 37 | 38 | # Configuring output message 39 | if test "$mpi_libs" != "" ; then 40 | mpi_line="MPI_LIBS=$mpi_libs" 41 | else 42 | mpi_line="@delete@" 43 | fi 44 | 45 | # Parallel report 46 | if test "$use_parallel" -ne 0 47 | then 48 | if test "$parallel" -ne 0 49 | then 50 | parallel_report="Parallel environment detected successfully.\\ 51 | Configured for compilation of parallel executables." 52 | else 53 | parallel_report="Parallel environment not detected \ 54 | \(is this a parallel machine?\).\\ 55 | Configured for compilation of serial executables." 56 | fi 57 | else 58 | parallel_report="Configured for compilation of serial executables." 59 | fi 60 | 61 | AC_SUBST(mpi_libs) 62 | AC_SUBST(mpi_line) 63 | AC_SUBST(parallel_report) 64 | 65 | ] 66 | ) 67 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_openmp.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_OPENMP], [ 5 | 6 | AC_ARG_ENABLE(openmp, 7 | [AS_HELP_STRING([--enable-openmp], 8 | [compile for openmp execution if possible (default: no)])], 9 | [if test "$enableval" = "yes" ; then 10 | use_openmp=1 11 | else 12 | use_openmp=0 13 | fi], 14 | [use_openmp=0]) 15 | 16 | ]) 17 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_qe.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # 3 | AC_DEFUN([X_AC_ENV_QE], [ 4 | 5 | AC_MSG_CHECKING([for QE]) 6 | 7 | AC_ARG_WITH(qe, 8 | [AS_HELP_STRING([--with-qe], [absolute path to QE root directory])], 9 | [ 10 | if test "$withval" != yes ; 11 | then 12 | qedir="$withval" 13 | else 14 | qedir="$topdir/../" 15 | fi 16 | 17 | if test -d $qedir; then 18 | AC_MSG_RESULT(found at $qedir) 19 | else 20 | AC_MSG_ERROR([$qedir is not a valid path]) 21 | fi 22 | 23 | ], 24 | [AC_MSG_RESULT(not coupled)] 25 | ) 26 | 27 | sed "s|^PREFIX=|PREFIX=$qedir|" examples/qe/environment.in > examples/qe/environment 28 | sed "s|^export ESPRESSO_ROOT=|export ESPRESSO_ROOT=$qedir|" tests/environment.in > tests/environment 29 | 30 | AC_SUBST(qedir) 31 | ] 32 | ) 33 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_ranlib.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | # 4 | AC_DEFUN([X_AC_ENV_RANLIB], [ 5 | 6 | 7 | if test "$ranlib" != "echo" 8 | then 9 | AC_CHECK_PROG(ranlib,ranlib,ranlib,echo) 10 | fi 11 | 12 | if test "$arch" = "mac686"; then 13 | if test "$ranlib" = "ranlib"; then 14 | ranlib="ranlib -c" 15 | fi 16 | fi 17 | 18 | AC_SUBST(ranlib) 19 | 20 | ] 21 | ) 22 | -------------------------------------------------------------------------------- /install/m4/x_ac_env_wget.m4: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 2 | # Copyright (C) 2001-2016 Quantum ESPRESSO Foundation 3 | 4 | AC_DEFUN([X_AC_ENV_WGET], [ 5 | 6 | AC_CHECK_PROG(wget, wget, wget -O) 7 | if test "$wget" = ""; then 8 | AC_CHECK_PROG(wget, curl, curl -o) 9 | fi 10 | echo setting WGET... $wget 11 | 12 | AC_SUBST(wget) 13 | 14 | ] 15 | ) 16 | -------------------------------------------------------------------------------- /install/moduledep.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # moduledep.sh -- script that computes dependencies on Fortran 90 modules 3 | 4 | # make sure there is no locale setting creating unneeded differences. 5 | LC_ALL=C 6 | export LC_ALL 7 | 8 | # files whose dependencies must be computed 9 | sources=`echo *.f90 | 10 | sed 's/\*\.f90//g'` # remove the "*.f90" that remains 11 | # # when there are no such files 12 | if test "$sources" = "" ; then exit ; fi 13 | 14 | # files that may contain modules 15 | # extra directories can be specified on the command line 16 | sources_all="$sources" 17 | for dir in $* 18 | do 19 | sources_all="$sources_all `echo $dir/*.f90`" 20 | done 21 | sources_all=`echo $sources_all | 22 | sed 's/[^ ]*\*\.f90//g'` # remove the "dir/*.f90" that remain 23 | # # when there are no such files 24 | 25 | rm -f moduledep.tmp1 moduledep.tmp2 # destroy previous contents 26 | 27 | # create list of module dependencies 28 | # each line is of the form: 29 | # file_name.o : @module_name@ 30 | # cast all module names to lowercase because Fortran is case insensitive 31 | egrep -H -i "^ *use " $sources | # look for "USE name" 32 | sed 's/f90:/o / 33 | s/,/ /' | # replace extension, insert space 34 | # # and remove trailing comma 35 | awk '{print $1 " : @" tolower($3) "@"}' | # create dependency entry 36 | sort | uniq > moduledep.tmp1 # remove duplicates 37 | 38 | # create list of available modules 39 | # for each module, create a line of the form: 40 | # s/@module_name@/file_name/g 41 | egrep -H -i "^ *module " $sources_all | # look for "MODULE name" 42 | sed 's/f90:/o / 43 | s/\//\\\//g' | # replace extension, insert 44 | # # space and escape slashes 45 | awk '{print "s/@" tolower($3) "@/" $1 "/" }' | # create substitution line 46 | sort | uniq > moduledep.tmp2 # remove duplicates 47 | 48 | # replace module names with file names 49 | # by applying the file of substitution patterns just created 50 | sed -f moduledep.tmp2 moduledep.tmp1 | 51 | awk '{if ($1 != $3) print}' | # remove self dependencies 52 | sort | uniq # remove duplicates 53 | 54 | rm -f moduledep.tmp1 moduledep.tmp2 # remove temporary files 55 | -------------------------------------------------------------------------------- /install/refresh-configure.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 4 | # Copyright (C) 2001-2016 Quantum ESPRESSO group 5 | # 6 | # This program is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU General Public License 8 | # as published by the Free Software Foundation; either version 2 9 | # of the License. See the file `License' in the root directory 10 | # of the present distribution. 11 | # 12 | # Dependency: GNU AUTOCONF (minimum 2.60, 2.69 suggested) 13 | # 14 | # Tested using: 15 | # - autoconf (GNU Autoconf) 2.63 16 | # - aclocal (GNU automake) 1.11.1 17 | # - m4 (GNU M4) 1.4.13 18 | 19 | aclocal -I m4 --install 20 | 21 | autoconf -f -v --output=configure configure.ac 22 | -------------------------------------------------------------------------------- /programs/cmdline_args.f90: -------------------------------------------------------------------------------- 1 | !---------------------------------------------------------------------------------------- 2 | ! 3 | ! Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 4 | ! 5 | !---------------------------------------------------------------------------------------- 6 | ! 7 | ! This file is part of Environ version 3.0 8 | ! 9 | ! Environ 3.0 is free software: you can redistribute it and/or modify 10 | ! it under the terms of the GNU General Public License as published by 11 | ! the Free Software Foundation, either version 2 of the License, or 12 | ! (at your option) any later version. 13 | ! 14 | ! Environ 3.0 is distributed in the hope that it will be useful, 15 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | ! GNU General Public License for more detail, either the file 18 | ! `License' in the root directory of the present distribution, or 19 | ! online at . 20 | ! 21 | !---------------------------------------------------------------------------------------- 22 | ! 23 | ! Authors: Edan Bainglass (Department of Physics, UNT) 24 | ! 25 | !---------------------------------------------------------------------------------------- 26 | MODULE cmdline_args 27 | ! 28 | USE environ_param, ONLY: DP 29 | !------------------------------------------------------------------------------------ 30 | ! 31 | IMPLICIT NONE 32 | ! 33 | CHARACTER(LEN=80) :: inputfile = 'environ.in' 34 | CHARACTER(LEN=80) :: cubefile = 'density.cube' 35 | ! 36 | LOGICAL :: use_internal_pbc_corr = .FALSE. 37 | ! 38 | LOGICAL :: no_density = .FALSE. 39 | ! 40 | LOGICAL :: calc_energy = .FALSE. 41 | ! 42 | LOGICAL :: calc_force = .FALSE. 43 | ! 44 | REAL(DP) :: alpha_min = -1.D0 45 | REAL(DP) :: alpha_max = -1.D0 46 | REAL(DP) :: alpha_step = -1.D0 47 | ! 48 | !------------------------------------------------------------------------------------ 49 | END MODULE cmdline_args 50 | !---------------------------------------------------------------------------------------- 51 | -------------------------------------------------------------------------------- /src/Makefile: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------------------------- 2 | # 3 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 4 | # 5 | #---------------------------------------------------------------------------------------- 6 | # 7 | # This file is part of Environ version 3.0 8 | # 9 | # Environ 3.0 is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 2 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # Environ 3.0 is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more detail, either the file 18 | # `License' in the root directory of the present distribution, or 19 | # online at . 20 | # 21 | #---------------------------------------------------------------------------------------- 22 | # 23 | # Authors: Oliviero Andreussi (Department of Physics, UNT) 24 | # Francesco Nattino (THEOS and NCCR-MARVEL, EPFL) 25 | # Edan Bainglass (Department of Physics, UNT) 26 | # 27 | #---------------------------------------------------------------------------------------- 28 | # 29 | # Makefile for src 30 | # 31 | #---------------------------------------------------------------------------------------- 32 | 33 | include ../make.inc 34 | 35 | MODFLAGS = $(BASEMOD_FLAGS) 36 | 37 | OBJS = $(patsubst %.f90,%.o,$(wildcard *.f90)) 38 | 39 | all: libsdir libenvsrc.a 40 | 41 | libenvsrc.a: $(OBJS) 42 | $(AR) $(ARFLAGS) $@ $? 43 | $(RANLIB) $@ 44 | @ /bin/mv libenvsrc.a ../libs 45 | 46 | libsdir: 47 | @ test -d ../libs || mkdir ../libs 48 | 49 | clean: 50 | @ /bin/rm -f *.o *~ *.a *.d *.i *.L *.mod *.F90 *.x *.i90 51 | 52 | include make.depend 53 | 54 | # DO NOT DELETE 55 | -------------------------------------------------------------------------------- /src/README.md: -------------------------------------------------------------------------------- 1 | # Environ Source Code 2 | 3 | Primary codebase for Environ. 4 | 5 | ### Changes in v3.0 6 | 7 | --- 8 | 9 | - Added API for use by host software 10 | - Made atom species input more flexible (now by label, number, or weight) 11 | - Redesigned boundaries in OOP hierarchal structure 12 | - Improved performance when using soft spheres (ionic boundary) 13 | - Added ms-gcs functionality 14 | 15 | ### Changes in v2.0 16 | 17 | --- 18 | 19 | - Added double-cell and Mott-Schottky functionalities 20 | - Forces now computed with a Gaussian-spread description of ions 21 | - Redesigned modules as classes with type-bound procedures 22 | - Redesigned solvers, cores, and functions using OOP inheritance 23 | - Packaged calculation routines in a calculator class 24 | - Packaged cleaning routines in a destructor class 25 | - Packaged simulation parameters and numerical base in setup class 26 | - Isolated environment objects (including potentials) in environment class 27 | -------------------------------------------------------------------------------- /tests/README.md: -------------------------------------------------------------------------------- 1 | # Environ Test Suite 2 | 3 | Environ test suite. Modelled after the test suite of QE. 4 | 5 | ### Changes in v2.0 6 | 7 | --- 8 | 9 | - Added tests for: 10 | 11 | - Semiconductor embedding 12 | - Martyna-Tuckerman correction 13 | - Double-cell functionality 14 | 15 | - Updated benchmarks against QE 6.7 16 | - Added dblcell=true option to MakeFile targets 17 | -------------------------------------------------------------------------------- /tests/check_pseudo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #---------------------------------------------------------------------------------------- 3 | # 4 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 5 | # Copyright (C) 2001-2017 Quantum ESPRESSO (www.quantum-espresso.org) 6 | # 7 | #---------------------------------------------------------------------------------------- 8 | # 9 | # This file is part of Environ version 3.0 10 | # 11 | # Environ 3.0 is free software: you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation, either version 2 of the License, or 14 | # (at your option) any later version. 15 | # 16 | # Environ 3.0 is distributed in the hope that it will be useful, 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | # GNU General Public License for more detail, either the file 20 | # `License' in the root directory of the present distribution, or 21 | # online at . 22 | # 23 | #---------------------------------------------------------------------------------------- 24 | # 25 | # Authors: Oliviero Andreussi (Department of Physics, UNT) 26 | # Edan Bainglass (Department of Physics, UNT) 27 | # 28 | #---------------------------------------------------------------------------------------- 29 | # 30 | # This file was adapted from the following Quantum ESPRESSO v6.1 file: 31 | # 32 | # QE/test-suite/check_pseudo.sh 33 | # 34 | #---------------------------------------------------------------------------------------- 35 | 36 | if test "`which curl`" = "" ; then 37 | if test "`which wget`" = "" ; then 38 | echo "### wget or curl not found: will not be able to download missing PP ###" 39 | else 40 | DOWNLOADER="wget -O" 41 | # echo "wget found" 42 | fi 43 | else 44 | DOWNLOADER="curl -o" 45 | # echo "curl found" 46 | fi 47 | 48 | inputs=`find $1* -type f -name "*.in" -not -name "test.*" -not -name "benchmark.*"` 49 | pp_files=`for x in ${inputs}; do grep UPF ${x} | awk '{print $3}'; done` 50 | 51 | for pp_file in ${pp_files} ; do 52 | if ! test -f ${ESPRESSO_PSEUDO}/${pp_file} ; then 53 | #echo -n "Downloading ${pp_file} to ${ESPRESSO_PSEUDO} ... " 54 | ${DOWNLOADER} ${ESPRESSO_PSEUDO}/${pp_file} ${NETWORK_PSEUDO}/${pp_file} 2> /dev/null 55 | if test $? != 0 ; then 56 | echo "FAILED, do it manually -- Testing aborted!" 57 | exit -1 58 | #else 59 | #echo "done." 60 | fi 61 | #else 62 | #echo "No need to download ${pp_file}." 63 | fi 64 | done 65 | -------------------------------------------------------------------------------- /tests/doublecell/pw_confine/confine-sccs-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | environ_thr = 10.0 3 | environ_type = 'vacuum' 4 | env_confine = 0.5 5 | env_nrep(1) = 1 6 | env_nrep(2) = 1 7 | env_nrep(3) = 1 8 | / 9 | &BOUNDARY 10 | solvent_mode = 'full' 11 | rhomax = 0.005 12 | rhomin = 0.0001 13 | / 14 | &ELECTROSTATIC 15 | / 16 | 17 | -------------------------------------------------------------------------------- /tests/doublecell/pw_confine/confine-ss-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | environ_thr = 10.0 3 | environ_type = 'vacuum' 4 | env_confine = 0.5 5 | env_nrep(1) = 1 6 | env_nrep(2) = 1 7 | env_nrep(3) = 1 8 | / 9 | &BOUNDARY 10 | solvent_mode = 'ionic' 11 | alpha = 1.2 12 | / 13 | &ELECTROSTATIC 14 | / 15 | 16 | -------------------------------------------------------------------------------- /tests/doublecell/pw_confine/confine-system-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | environ_thr = 10.0 3 | environ_type = 'vacuum' 4 | env_confine = 0.5 5 | system_dim = 0 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | / 10 | &BOUNDARY 11 | solvent_mode = 'system' 12 | solvent_distance = 4.5 13 | / 14 | &ELECTROSTATIC 15 | / 16 | 17 | -------------------------------------------------------------------------------- /tests/doublecell/pw_confine/pw-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | calculation = 'scf' 3 | restart_mode = 'from_scratch' 4 | tprnfor = .true. 5 | / 6 | &SYSTEM 7 | tot_charge = -1 8 | ecutwfc = 40 9 | ecutrho = 320 10 | nosym = .true. 11 | nspin = 1 12 | assume_isolated = 'm-t' 13 | ntyp = 1 14 | nat = 1 15 | ibrav = 1 16 | celldm(1) = 10. 17 | / 18 | &ELECTRONS 19 | conv_thr = 5e-08 20 | diagonalization = 'cg' 21 | / 22 | &IONS 23 | / 24 | &CELL 25 | / 26 | 27 | ATOMIC_SPECIES 28 | H 1 H.pbe-rrkjus.UPF 29 | 30 | K_POINTS gamma 31 | 32 | ATOMIC_POSITIONS angstrom 33 | H 0.000000000 0.00000000 0.00000000 34 | 35 | -------------------------------------------------------------------------------- /tests/doublecell/pw_dielectric/charged-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 15 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 5.D-6 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | N 14 N.pbe-rrkjus.UPF 29 | O 16 O.pbe-rrkjus.UPF 30 | ATOMIC_POSITIONS (angstrom) 31 | C 0.00000000 0.00000000 0.00000000 32 | C 0.00000000 0.00000000 1.54000000 33 | N 1.23930016 0.00000000 -0.57682849 34 | H 0.50443009 -0.87363574 1.89666635 35 | H -1.00880561 -0.00003153 1.89666685 36 | H 0.50437546 0.87366728 1.89666635 37 | O -1.04142313 -0.00001984 -0.67873289 38 | H 1.33683990 -0.00001602 -1.56165223 39 | H 2.05812401 0.00014187 -0.02721695 40 | H -0.81532010 -0.00004711 -1.61172668 41 | -------------------------------------------------------------------------------- /tests/doublecell/pw_dielectric/dielectric-sccs-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | / 13 | &ELECTROSTATIC 14 | / 15 | -------------------------------------------------------------------------------- /tests/doublecell/pw_dielectric/dielectric-sccs-iter-aux-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | / 13 | &ELECTROSTATIC 14 | ! 15 | solver = 'fixed-point' 16 | auxiliary = 'full' 17 | ! 18 | / 19 | -------------------------------------------------------------------------------- /tests/doublecell/pw_dielectric/dielectric-ss-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'ionic' 14 | ! 15 | / 16 | &ELECTROSTATIC 17 | / 18 | -------------------------------------------------------------------------------- /tests/doublecell/pw_dielectric/dielectric-ss-iter-aux-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'ionic' 14 | ! 15 | / 16 | &ELECTROSTATIC 17 | ! 18 | solver = 'fixed-point' 19 | auxiliary = 'full' 20 | ! 21 | / 22 | -------------------------------------------------------------------------------- /tests/doublecell/pw_dielectric/dielectric-sys-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'system' 14 | solvent_distance = 6.D0 15 | solvent_spread = 0.5D0 16 | ! 17 | / 18 | &ELECTROSTATIC 19 | / 20 | -------------------------------------------------------------------------------- /tests/doublecell/pw_dielectric/dielectric-sys-iter-aux-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'system' 14 | solvent_distance = 6.D0 15 | solvent_spread = 0.5D0 16 | ! 17 | / 18 | &ELECTROSTATIC 19 | ! 20 | solver = 'fixed-point' 21 | auxiliary = 'full' 22 | ! 23 | / 24 | -------------------------------------------------------------------------------- /tests/doublecell/pw_dielectric/neutral-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | -------------------------------------------------------------------------------- /tests/doublecell/pw_electrolyte/electrolyte-lmpb-sccs-stern_full-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | rion = 2.D0 13 | electrolyte_linearized = .true. 14 | env_nrep(1) = 1 15 | env_nrep(2) = 1 16 | env_nrep(3) = 1 17 | ! 18 | / 19 | &BOUNDARY 20 | ! 21 | electrolyte_rhomax=0.000700 22 | electrolyte_rhomin=0.000015 23 | ! 24 | / 25 | &ELECTROSTATIC 26 | ! 27 | pbc_correction = 'parabolic' 28 | pbc_dim = 0 29 | ! 30 | / 31 | -------------------------------------------------------------------------------- /tests/doublecell/pw_electrolyte/electrolyte-lmpb-sccs-stern_ions-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | rion = 2.D0 13 | electrolyte_entropy = 'ions' 14 | electrolyte_linearized = .true. 15 | env_nrep(1) = 1 16 | env_nrep(2) = 1 17 | env_nrep(3) = 1 18 | ! 19 | / 20 | &BOUNDARY 21 | ! 22 | electrolyte_rhomax=0.000700 23 | electrolyte_rhomin=0.000015 24 | ! 25 | / 26 | &ELECTROSTATIC 27 | ! 28 | pbc_correction = 'parabolic' 29 | pbc_dim = 0 30 | ! 31 | / 32 | -------------------------------------------------------------------------------- /tests/doublecell/pw_electrolyte/electrolyte-lmpb-ss-stern_full-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | rion = 2.D0 13 | electrolyte_linearized = .true. 14 | env_nrep(1) = 1 15 | env_nrep(2) = 1 16 | env_nrep(3) = 1 17 | ! 18 | / 19 | &BOUNDARY 20 | ! 21 | electrolyte_mode = 'ionic' 22 | electrolyte_alpha = 1.5D0 23 | ! 24 | / 25 | &ELECTROSTATIC 26 | ! 27 | pbc_correction = 'parabolic' 28 | pbc_dim = 0 29 | ! 30 | / 31 | -------------------------------------------------------------------------------- /tests/doublecell/pw_electrolyte/electrolyte-lmpb-ss-stern_ions-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | rion = 2.D0 13 | electrolyte_entropy = 'ions' 14 | electrolyte_linearized = .true. 15 | env_nrep(1) = 1 16 | env_nrep(2) = 1 17 | env_nrep(3) = 1 18 | ! 19 | / 20 | &BOUNDARY 21 | ! 22 | electrolyte_mode = 'ionic' 23 | electrolyte_alpha = 1.5D0 24 | ! 25 | / 26 | &ELECTROSTATIC 27 | ! 28 | pbc_correction = 'parabolic' 29 | pbc_dim = 0 30 | ! 31 | / 32 | -------------------------------------------------------------------------------- /tests/doublecell/pw_electrolyte/electrolyte-lpb-sccs-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | electrolyte_linearized = .true. 13 | env_nrep(1) = 1 14 | env_nrep(2) = 1 15 | env_nrep(3) = 1 16 | ! 17 | / 18 | &BOUNDARY 19 | ! 20 | electrolyte_rhomax=0.000700 21 | electrolyte_rhomin=0.000015 22 | ! 23 | / 24 | &ELECTROSTATIC 25 | ! 26 | pbc_correction = 'parabolic' 27 | pbc_dim = 0 28 | ! 29 | / 30 | -------------------------------------------------------------------------------- /tests/doublecell/pw_electrolyte/electrolyte-lpb-ss-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | electrolyte_linearized = .true. 13 | env_nrep(1) = 1 14 | env_nrep(2) = 1 15 | env_nrep(3) = 1 16 | ! 17 | / 18 | &BOUNDARY 19 | ! 20 | electrolyte_mode = 'ionic' 21 | electrolyte_alpha = 1.5D0 22 | ! 23 | / 24 | &ELECTROSTATIC 25 | ! 26 | pbc_correction = 'parabolic' 27 | pbc_dim = 0 28 | ! 29 | / 30 | -------------------------------------------------------------------------------- /tests/doublecell/pw_electrolyte/pw-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 11 15 | ntyp = 3 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-4 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | N 14 N.pbe-rrkjus.UPF 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | ATOMIC_POSITIONS (angstrom) 29 | N -1.29405370 0.00000009 0.00160193 30 | C -0.65255172 1.18925086 0.00109798 31 | C 0.72927125 1.20927160 0.00077403 32 | C 1.42556924 0.00000010 0.00069792 33 | C 0.72927138 -1.20927146 0.00140341 34 | C -0.65255153 -1.18925032 0.00187670 35 | H -1.27676235 2.08397459 0.00090457 36 | H 1.24837996 2.16895032 0.00042522 37 | H 2.51813531 -0.00000009 0.00001054 38 | H 1.24838024 -2.16895013 0.00169726 39 | H -1.27676191 -2.08397409 0.00258267 40 | -------------------------------------------------------------------------------- /tests/doublecell/pw_externals/externals_0d_dielectric_default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_external_charges = 1 7 | env_nrep(1) = 1 8 | ! 9 | / 10 | &BOUNDARY 11 | ! 12 | solvent_mode = 'full' 13 | ! 14 | / 15 | &ELECTROSTATIC 16 | tol = 1.d-7 17 | / 18 | EXTERNAL_CHARGES ( bohr ) 19 | -1.0 0. 0. 15. 20 | -------------------------------------------------------------------------------- /tests/doublecell/pw_externals/externals_0d_vacuum_default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_external_charges = 1 6 | env_nrep(1) = 1 7 | ! 8 | / 9 | &ELECTROSTATIC 10 | / 11 | EXTERNAL_CHARGES ( bohr ) 12 | -1.0 0. 0. 15. 13 | -------------------------------------------------------------------------------- /tests/doublecell/pw_externals/externals_2d_dielectric_default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_external_charges = 1 7 | env_nrep(1) = 1 8 | ! 9 | / 10 | &BOUNDARY 11 | ! 12 | solvent_mode = 'full' 13 | ! 14 | / 15 | &ELECTROSTATIC 16 | / 17 | EXTERNAL_CHARGES ( bohr ) 18 | -1.0 0. 0. 15. 0.5 2 3 19 | -------------------------------------------------------------------------------- /tests/doublecell/pw_externals/externals_2d_vacuum_default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_external_charges = 1 6 | env_nrep(1) = 1 7 | ! 8 | / 9 | &ELECTROSTATIC 10 | / 11 | EXTERNAL_CHARGES ( bohr ) 12 | -1.0 0. 0. 15. 0.5 2 3 13 | -------------------------------------------------------------------------------- /tests/doublecell/pw_externals/isolated-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 5.D-6 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | N 14 N.pbe-rrkjus.UPF 29 | O 16 O.pbe-rrkjus.UPF 30 | ATOMIC_POSITIONS (angstrom) 31 | C 0.00000000 0.00000000 0.00000000 32 | C 0.00000000 0.00000000 1.54000000 33 | N 1.23930016 0.00000000 -0.57682849 34 | H 0.50443009 -0.87363574 1.89666635 35 | H -1.00880561 -0.00003153 1.89666685 36 | H 0.50437546 0.87366728 1.89666635 37 | O -1.04142313 -0.00001984 -0.67873289 38 | H 1.33683990 -0.00001602 -1.56165223 39 | H 2.05812401 0.00014187 -0.02721695 40 | H -0.81532010 -0.00004711 -1.61172668 41 | -------------------------------------------------------------------------------- /tests/doublecell/pw_externals/slab-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ibrav = 8 11 | celldm(1) = 10.6881 12 | celldm(2) = 0.866025 13 | celldm(3) = 2 14 | nat = 10 15 | ntyp = 3 16 | ecutwfc = 35 17 | ecutrho = 300 18 | occupations = 'smearing' 19 | degauss = 0.03 20 | smearing = 'mv' 21 | nbnd = 80 22 | tot_charge = 1 23 | ! 24 | / 25 | &ELECTRONS 26 | ! 27 | conv_thr = 5.D-6 28 | ! 29 | / 30 | K_POINTS gamma 31 | ATOMIC_SPECIES 32 | C 1 C.pbe-rrkjus.UPF 33 | O 1 O.pbe-rrkjus.UPF 34 | Pt 1 Pt.pbe-n-rrkjus_psl.0.1.UPF 35 | ATOMIC_POSITIONS (bohr) 36 | C 5.335084148 4.646723426 8.296403369 37 | O 5.335009643 4.619623254 10.475227761 38 | Pt 8.061327071 0.098057998 4.387516393 39 | Pt 2.608989366 0.098058283 4.387514077 40 | Pt 0.000036609 4.720846294 4.364130427 41 | Pt 5.335159557 4.721612729 4.775569927 42 | Pt 0.000041121 7.802951963 0.000000000 43 | Pt 5.335161233 7.697749113 0.148862900 44 | Pt 2.697860636 3.152173889 0.083785821 45 | Pt 7.972463687 3.152174491 0.083788701 46 | -------------------------------------------------------------------------------- /tests/doublecell/pw_mt/charged-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | assume_isolated = 'martyna-tuckerman' 18 | ! 19 | / 20 | &ELECTRONS 21 | ! 22 | conv_thr = 5.D-3 23 | ! 24 | / 25 | K_POINTS gamma 26 | ATOMIC_SPECIES 27 | C 12 C.pbe-rrkjus.UPF 28 | H 1 H.pbe-rrkjus.UPF 29 | N 14 N.pbe-rrkjus.UPF 30 | O 16 O.pbe-rrkjus.UPF 31 | ATOMIC_POSITIONS (angstrom) 32 | C 0.00000000 0.00000000 0.00000000 33 | C 0.00000000 0.00000000 1.54000000 34 | N 1.23930016 0.00000000 -0.57682849 35 | H 0.50443009 -0.87363574 1.89666635 36 | H -1.00880561 -0.00003153 1.89666685 37 | H 0.50437546 0.87366728 1.89666635 38 | O -1.04142313 -0.00001984 -0.67873289 39 | H 1.33683990 -0.00001602 -1.56165223 40 | H 2.05812401 0.00014187 -0.02721695 41 | H -0.81532010 -0.00004711 -1.61172668 42 | -------------------------------------------------------------------------------- /tests/doublecell/pw_mt/dielectric-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | / 13 | &ELECTROSTATIC 14 | ! 15 | pbc_dim = 0 16 | ! 17 | / 18 | -------------------------------------------------------------------------------- /tests/doublecell/pw_mt/externals_0d_dielectric_default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_external_charges = 1 7 | env_nrep(1) = 1 8 | env_nrep(2) = 1 9 | env_nrep(3) = 1 10 | ! 11 | / 12 | &BOUNDARY 13 | ! 14 | solvent_mode = 'full' 15 | ! 16 | / 17 | &ELECTROSTATIC 18 | / 19 | EXTERNAL_CHARGES ( bohr ) 20 | -1.0 0. 0. 15. 21 | -------------------------------------------------------------------------------- /tests/doublecell/pw_mt/externals_0d_vacuum_default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_external_charges = 1 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &ELECTROSTATIC 12 | / 13 | EXTERNAL_CHARGES ( bohr ) 14 | -1.0 0. 0. 15. 15 | -------------------------------------------------------------------------------- /tests/doublecell/pw_mt/isolated-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | assume_isolated = 'martyna-tuckerman' 18 | ! 19 | / 20 | &ELECTRONS 21 | ! 22 | conv_thr = 5.D-6 23 | ! 24 | / 25 | K_POINTS gamma 26 | ATOMIC_SPECIES 27 | C 12 C.pbe-rrkjus.UPF 28 | H 1 H.pbe-rrkjus.UPF 29 | N 14 N.pbe-rrkjus.UPF 30 | O 16 O.pbe-rrkjus.UPF 31 | ATOMIC_POSITIONS (angstrom) 32 | C 0.00000000 0.00000000 0.00000000 33 | C 0.00000000 0.00000000 1.54000000 34 | N 1.23930016 0.00000000 -0.57682849 35 | H 0.50443009 -0.87363574 1.89666635 36 | H -1.00880561 -0.00003153 1.89666685 37 | H 0.50437546 0.87366728 1.89666635 38 | O -1.04142313 -0.00001984 -0.67873289 39 | H 1.33683990 -0.00001602 -1.56165223 40 | H 2.05812401 0.00014187 -0.02721695 41 | H -0.81532010 -0.00004711 -1.61172668 42 | -------------------------------------------------------------------------------- /tests/doublecell/pw_mt/neutral-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 3 15 | ntyp = 2 16 | assume_isolated = 'martyna-tuckerman' 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 5.D-3 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | H 1 H.pbe-rrkjus.UPF 27 | O 16 O.pbe-rrkjus.UPF 28 | ATOMIC_POSITIONS (bohr) 29 | O 11.79 12.05 11.50 30 | H 13.45 11.22 11.50 31 | H 10.56 10.66 11.50 32 | -------------------------------------------------------------------------------- /tests/doublecell/pw_periodic/charged-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 5.D-3 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | N 14 N.pbe-rrkjus.UPF 29 | O 16 O.pbe-rrkjus.UPF 30 | ATOMIC_POSITIONS (angstrom) 31 | C 0.00000000 0.00000000 0.00000000 32 | C 0.00000000 0.00000000 1.54000000 33 | N 1.23930016 0.00000000 -0.57682849 34 | H 0.50443009 -0.87363574 1.89666635 35 | H -1.00880561 -0.00003153 1.89666685 36 | H 0.50437546 0.87366728 1.89666635 37 | O -1.04142313 -0.00001984 -0.67873289 38 | H 1.33683990 -0.00001602 -1.56165223 39 | H 2.05812401 0.00014187 -0.02721695 40 | H -0.81532010 -0.00004711 -1.61172668 41 | -------------------------------------------------------------------------------- /tests/doublecell/pw_periodic/neutral-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | -------------------------------------------------------------------------------- /tests/doublecell/pw_periodic/periodic-dielectric-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | / 13 | &ELECTROSTATIC 14 | ! 15 | pbc_correction = 'parabolic' 16 | pbc_dim = 0 17 | ! 18 | / 19 | -------------------------------------------------------------------------------- /tests/doublecell/pw_periodic/periodic-vacuum-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_electrostatic = .true. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &ELECTROSTATIC 12 | ! 13 | pbc_dim = 0 14 | pbc_correction = 'parabolic' 15 | ! 16 | / 17 | -------------------------------------------------------------------------------- /tests/doublecell/pw_regions/insphere-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_dielectric_regions = 1 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | / 13 | &ELECTROSTATIC 14 | ! 15 | tol = 1.D-13 16 | ! 17 | / 18 | DIELECTRIC_REGIONS (bohr) 19 | 100 1 11.79 12.05 11.50 6.0 20 | 21 | 22 | -------------------------------------------------------------------------------- /tests/doublecell/pw_regions/outslab-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_dielectric_regions = 1 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | / 13 | &ELECTROSTATIC 14 | ! 15 | tol = 1.D-15 16 | ! 17 | / 18 | DIELECTRIC_REGIONS (bohr) 19 | 100 1 0. 0. 6. 2.0 0.5 2 3 20 | 21 | 22 | -------------------------------------------------------------------------------- /tests/doublecell/pw_regions/pw-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | mixing_beta = 0.3 21 | conv_thr = 1.D-8 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | H 1 H.pbe-rrkjus.UPF 27 | O 16 O.pbe-rrkjus.UPF 28 | ATOMIC_POSITIONS (bohr) 29 | O 11.79 12.05 11.50 30 | H 13.45 11.22 11.50 31 | H 10.56 10.66 11.50 32 | -------------------------------------------------------------------------------- /tests/doublecell/pw_slab/charged-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ibrav = 8 11 | celldm(1) = 10.6881 12 | celldm(2) = 0.866025 13 | celldm(3) = 2.0000 14 | nat = 10 15 | ntyp = 3 16 | ecutwfc = 35 17 | ecutrho = 300 18 | occupations = 'smearing' 19 | degauss = 0.03 20 | smearing = 'mv' 21 | nbnd = 80 22 | tot_charge = 1 23 | ! 24 | / 25 | &ELECTRONS 26 | ! 27 | conv_thr = 5.D-5 28 | ! 29 | / 30 | K_POINTS gamma 31 | ATOMIC_SPECIES 32 | C 1 C.pbe-rrkjus.UPF 33 | O 1 O.pbe-rrkjus.UPF 34 | Pt 1 Pt.pbe-n-rrkjus_psl.0.1.UPF 35 | ATOMIC_POSITIONS (bohr) 36 | C 5.335084148 4.646723426 12.901029877 37 | O 5.335009643 4.619623254 15.079854269 38 | Pt 8.061327071 0.098057998 8.992142901 39 | Pt 2.608989366 0.098058283 8.992140585 40 | Pt 0.000036609 4.720846294 8.968756935 41 | Pt 5.335159557 4.721612729 9.380196435 42 | Pt 0.000041121 7.802951963 4.604626508 43 | Pt 5.335161233 7.697749113 4.753489408 44 | Pt 2.697860636 3.152173889 4.688412329 45 | Pt 7.972463687 3.152174491 4.688415209 46 | -------------------------------------------------------------------------------- /tests/doublecell/pw_slab/neutral-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ibrav = 8 11 | celldm(1) = 10.6881 12 | celldm(2) = 0.866025 13 | celldm(3) = 2.0000 14 | nat = 10 15 | ntyp = 3 16 | ecutwfc = 35 17 | ecutrho = 300 18 | occupations = 'smearing' 19 | degauss = 0.03 20 | smearing = 'mv' 21 | nbnd = 80 22 | tot_charge = 0 23 | ! 24 | / 25 | &ELECTRONS 26 | ! 27 | conv_thr = 5.D-6 28 | ! 29 | / 30 | K_POINTS gamma 31 | ATOMIC_SPECIES 32 | C 1 C.pbe-rrkjus.UPF 33 | O 1 O.pbe-rrkjus.UPF 34 | Pt 1 Pt.pbe-n-rrkjus_psl.0.1.UPF 35 | ATOMIC_POSITIONS (bohr) 36 | C 5.335084148 4.646723426 12.901029877 37 | O 5.335009643 4.619623254 15.079854269 38 | Pt 8.061327071 0.098057998 8.992142901 39 | Pt 2.608989366 0.098058283 8.992140585 40 | Pt 0.000036609 4.720846294 8.968756935 41 | Pt 5.335159557 4.721612729 9.380196435 42 | Pt 0.000041121 7.802951963 4.604626508 43 | Pt 5.335161233 7.697749113 4.753489408 44 | Pt 2.697860636 3.152173889 4.688412329 45 | Pt 7.972463687 3.152174491 4.688415209 46 | -------------------------------------------------------------------------------- /tests/doublecell/pw_slab/periodic-dielectric-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_nrep(3) = 1 7 | ! 8 | / 9 | &BOUNDARY 10 | ! 11 | solvent_mode = 'full' 12 | ! 13 | / 14 | &ELECTROSTATIC 15 | pbc_dim = 2 16 | pbc_axis = 3 17 | pbc_correction = 'parabolic' 18 | tol = 1d-6 19 | / 20 | -------------------------------------------------------------------------------- /tests/doublecell/pw_slab/periodic-vacuum-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_electrostatic = .true. 6 | env_nrep(3) = 1 7 | ! 8 | / 9 | &ELECTROSTATIC 10 | ! 11 | pbc_dim = 2 12 | pbc_axis = 3 13 | pbc_correction = 'parabolic' 14 | ! 15 | / 16 | -------------------------------------------------------------------------------- /tests/doublecell/pw_solvent-aware/local-sccs-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_pressure = 0.5 7 | env_nrep(1) = 1 8 | env_nrep(2) = 1 9 | env_nrep(3) = 1 10 | ! 11 | / 12 | &BOUNDARY 13 | / 14 | -------------------------------------------------------------------------------- /tests/doublecell/pw_solvent-aware/local-ss-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_pressure = 0.5 7 | env_nrep(1) = 1 8 | env_nrep(2) = 1 9 | env_nrep(3) = 1 10 | ! 11 | / 12 | &BOUNDARY 13 | ! 14 | solvent_mode = 'ionic' 15 | ! 16 | / 17 | -------------------------------------------------------------------------------- /tests/doublecell/pw_solvent-aware/pw-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 15 14 | nat = 6 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | O 11.79 12.05 19.00 32 | H 13.45 11.22 19.00 33 | H 10.56 10.66 19.00 34 | 35 | -------------------------------------------------------------------------------- /tests/doublecell/pw_solvent-aware/sa-sccs-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_pressure = 0.5 7 | env_nrep(1) = 1 8 | env_nrep(2) = 1 9 | env_nrep(3) = 1 10 | ! 11 | / 12 | &BOUNDARY 13 | ! 14 | solvent_radius = 3.0 15 | filling_threshold = 0.30 16 | ! 17 | / 18 | -------------------------------------------------------------------------------- /tests/doublecell/pw_solvent-aware/sa-ss-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_pressure = 0.5 7 | env_nrep(1) = 1 8 | env_nrep(2) = 1 9 | env_nrep(3) = 1 10 | ! 11 | / 12 | &BOUNDARY 13 | ! 14 | solvent_mode = 'ionic' 15 | solvent_radius = 3.0 16 | filling_threshold = 0.30 17 | ! 18 | / 19 | -------------------------------------------------------------------------------- /tests/doublecell/pw_spin/dielectric-pcc-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | / 13 | &ELECTROSTATIC 14 | ! 15 | pbc_correction = 'parabolic' 16 | pbc_dim = 0 17 | ! 18 | / 19 | -------------------------------------------------------------------------------- /tests/doublecell/pw_spin/radical-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm( 1 ) = 10 14 | nat = 2 15 | ntyp = 2 16 | nbnd = 6 17 | tot_charge = 0 18 | nspin = 2 19 | starting_magnetization(1) = 1 20 | occupations = 'smearing' 21 | smearing = 'gaussian' 22 | degauss = 0.01 23 | nosym = .true. 24 | ! 25 | / 26 | &ELECTRONS 27 | ! 28 | conv_thr = 5.D-3 29 | ! 30 | / 31 | K_POINTS (gamma) 32 | ATOMIC_SPECIES 33 | C 12 C.pbe-rrkjus.UPF 34 | H 1 H.pbe-rrkjus.UPF 35 | ATOMIC_POSITIONS (angstrom) 36 | C 0.00000000 0.00000000 0.16007400 37 | H 0.00000000 0.00000000 -0.96044600 38 | 39 | -------------------------------------------------------------------------------- /tests/doublecell/pw_spin/vacuum-pcc-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_electrostatic = .true. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &ELECTROSTATIC 12 | ! 13 | pbc_dim = 0 14 | pbc_correction = 'parabolic' 15 | ! 16 | / 17 | -------------------------------------------------------------------------------- /tests/doublecell/pw_surface/pw-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | -------------------------------------------------------------------------------- /tests/doublecell/pw_surface/surface-sccs-fft-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | deriv_method = 'fft' 14 | ! 15 | / 16 | -------------------------------------------------------------------------------- /tests/doublecell/pw_surface/surface-ss-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'ionic' 14 | ! 15 | / 16 | -------------------------------------------------------------------------------- /tests/doublecell/pw_surface/surface-ss-fft-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'ionic' 14 | deriv_method = 'fft' 15 | ! 16 | / 17 | -------------------------------------------------------------------------------- /tests/doublecell/pw_surface/surface-sys-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'system' 14 | solvent_distance = 3.D0 15 | solvent_spread = 0.5D0 16 | ! 17 | / 18 | -------------------------------------------------------------------------------- /tests/doublecell/pw_surface/surface-sys-fft-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'system' 14 | solvent_distance = 3.D0 15 | solvent_spread = 0.5D0 16 | deriv_method = 'fft' 17 | ! 18 | / 19 | -------------------------------------------------------------------------------- /tests/doublecell/pw_volume/pw-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | -------------------------------------------------------------------------------- /tests/doublecell/pw_volume/volume-ss-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_pressure = 10. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'ionic' 14 | ! 15 | / 16 | -------------------------------------------------------------------------------- /tests/doublecell/pw_volume/volume-sys-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_pressure = 10. 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'system' 14 | solvent_distance = 3.D0 15 | solvent_spread = 0.5D0 16 | ! 17 | / 18 | -------------------------------------------------------------------------------- /tests/doublecell/pw_water/anion-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 4 15 | ntyp = 2 16 | tot_charge = -1 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 1.D-3 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | ATOMIC_POSITIONS (angstrom) 29 | C 0.0000 0.0000 0.3144 30 | H -0.0000 1.0390 -0.0700 31 | H 0.9000 -0.5198 -0.0700 32 | H -0.9000 -0.5198 -0.0700 33 | -------------------------------------------------------------------------------- /tests/doublecell/pw_water/cation-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 1.D-3 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | N 14 N.pbe-rrkjus.UPF 29 | O 16 O.pbe-rrkjus.UPF 30 | ATOMIC_POSITIONS (angstrom) 31 | C 0.00000000 0.00000000 0.00000000 32 | C 0.00000000 0.00000000 1.54000000 33 | N 1.23930016 0.00000000 -0.57682849 34 | H 0.50443009 -0.87363574 1.89666635 35 | H -1.00880561 -0.00003153 1.89666685 36 | H 0.50437546 0.87366728 1.89666635 37 | O -1.04142313 -0.00001984 -0.67873289 38 | H 1.33683990 -0.00001602 -1.56165223 39 | H 2.05812401 0.00014187 -0.02721695 40 | H -0.81532010 -0.00004711 -1.61172668 41 | -------------------------------------------------------------------------------- /tests/doublecell/pw_water/neutral-dblcell.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 10 14 | nat = 9 15 | ntyp = 4 16 | tot_charge = 0 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 1.D-3 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | N 14 N.pbe-rrkjus.UPF 29 | O 16 O.pbe-rrkjus.UPF 30 | ATOMIC_POSITIONS (angstrom) 31 | C 0.00000000 0.00000000 0.00000000 32 | C 0.00000000 0.00000000 1.54000000 33 | N 1.23930016 0.00000000 -0.57682849 34 | H 0.50443009 -0.87363574 1.89666635 35 | H -1.00880561 -0.00003153 1.89666685 36 | H 0.50437546 0.87366728 1.89666635 37 | O -1.04142313 -0.00001984 -0.67873289 38 | H 1.33683990 -0.00001602 -1.56165223 39 | H 2.05812401 0.00014187 -0.02721695 40 | -------------------------------------------------------------------------------- /tests/doublecell/pw_water/water-anion-sccs-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water-anion' 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | / 13 | &ELECTROSTATIC 14 | / 15 | -------------------------------------------------------------------------------- /tests/doublecell/pw_water/water-anion-ss-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water-anion' 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'ionic' 14 | ! 15 | / 16 | &ELECTROSTATIC 17 | / 18 | -------------------------------------------------------------------------------- /tests/doublecell/pw_water/water-cation-sccs-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water-cation' 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | / 13 | &ELECTROSTATIC 14 | / 15 | -------------------------------------------------------------------------------- /tests/doublecell/pw_water/water-cation-ss-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water-cation' 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'ionic' 14 | ! 15 | / 16 | &ELECTROSTATIC 17 | / 18 | -------------------------------------------------------------------------------- /tests/doublecell/pw_water/water-neutral-sccs-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water' 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | / 13 | &ELECTROSTATIC 14 | / 15 | -------------------------------------------------------------------------------- /tests/doublecell/pw_water/water-neutral-ss-default-dblcell.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water' 6 | env_nrep(1) = 1 7 | env_nrep(2) = 1 8 | env_nrep(3) = 1 9 | ! 10 | / 11 | &BOUNDARY 12 | ! 13 | solvent_mode = 'ionic' 14 | ! 15 | / 16 | &ELECTROSTATIC 17 | / 18 | -------------------------------------------------------------------------------- /tests/environment.in: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------------------------- 2 | # 3 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 4 | # Copyright (C) 2001-2017 Quantum ESPRESSO (www.quantum-espresso.org) 5 | # 6 | #---------------------------------------------------------------------------------------- 7 | # 8 | # This file is part of Environ version 3.0 9 | # 10 | # Environ 3.0 is free software: you can redistribute it and/or modify 11 | # it under the terms of the GNU General Public License as published by 12 | # the Free Software Foundation, either version 2 of the License, or 13 | # (at your option) any later version. 14 | # 15 | # Environ 3.0 is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | # GNU General Public License for more detail, either the file 19 | # `License' in the root directory of the present distribution, or 20 | # online at . 21 | # 22 | #---------------------------------------------------------------------------------------- 23 | # 24 | # Authors: Oliviero Andreussi (Department of Physics, UNT) 25 | # Edan Bainglass (Department of Physics, UNT) 26 | # 27 | #---------------------------------------------------------------------------------------- 28 | # 29 | # This file was adapted from the following Quantum ESPRESSO v6.1 file: 30 | # 31 | # QE/test-suite/ENVIRONMENT 32 | # 33 | #---------------------------------------------------------------------------------------- 34 | 35 | # Edit this line every time a new reference is created 36 | export REFERENCE_VERSION=GIT 37 | 38 | #################################################################################### 39 | 40 | # Edit this line _ONLY_ iff you run test-code outside the QE main directory 41 | export ENVIRON_ROOT=${PWD}/../ 42 | export ESPRESSO_ROOT= 43 | 44 | export ESPRESSO_PSEUDO=${ESPRESSO_ROOT}/pseudo 45 | export ESPRESSO_TMPDIR=${ESPRESSO_ROOT}/tempdir 46 | export NETWORK_PSEUDO=https://www.quantum-espresso.org/wp-content/uploads/upf_files/ 47 | export TESTCODE_DIR=${ENVIRON_ROOT}/tests/testcode 48 | 49 | export TESTCODE_NPROCS=4 50 | 51 | export JOBCONFIG=jobconfig 52 | -------------------------------------------------------------------------------- /tests/extract-pw.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #---------------------------------------------------------------------------------------- 3 | # 4 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 5 | # Copyright (C) 2001-2017 Quantum ESPRESSO (www.quantum-espresso.org) 6 | # 7 | #---------------------------------------------------------------------------------------- 8 | # 9 | # This file is part of Environ version 3.0 10 | # 11 | # Environ 3.0 is free software: you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation, either version 2 of the License, or 14 | # (at your option) any later version. 15 | # 16 | # Environ 3.0 is distributed in the hope that it will be useful, 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | # GNU General Public License for more detail, either the file 20 | # `License' in the root directory of the present distribution, or 21 | # online at . 22 | # 23 | #---------------------------------------------------------------------------------------- 24 | # 25 | # Authors: Oliviero Andreussi (Department of Physics, UNT) 26 | # 27 | #---------------------------------------------------------------------------------------- 28 | # 29 | # This file was adapted from the following Quantum ESPRESSO v6.1 file: 30 | # 31 | # QE/test-suite/extract-pw.sh 32 | # 33 | #---------------------------------------------------------------------------------------- 34 | 35 | fname=$1 36 | 37 | # SCF 38 | e1=`grep ! $fname | tail -1 | awk '{printf "%12.6f\n", $5}'` 39 | n1=`grep 'convergence has' $fname | tail -1 | awk '{print $6}'` 40 | f1=`grep "Total force" $fname | head -1 | awk '{printf "%8.4f\n", $4}'` 41 | p1=`grep "P= " $fname | tail -1 | awk '{print $6}'` 42 | 43 | if test "$e1" != ""; then 44 | echo e1 45 | echo $e1 46 | fi 47 | 48 | if test "$n1" != ""; then 49 | echo n1 50 | echo $n1 51 | fi 52 | 53 | if test "$f1" != ""; then 54 | echo f1 55 | echo $f1 56 | fi 57 | 58 | if test "$p1" != ""; then 59 | echo p1 60 | echo $p1 61 | fi 62 | -------------------------------------------------------------------------------- /tests/pw_confine/confine-sccs.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | environ_thr = 10.0 3 | environ_type = 'vacuum' 4 | env_confine = 0.5 5 | / 6 | &BOUNDARY 7 | solvent_mode = 'full' 8 | rhomax = 0.005 9 | rhomin = 0.0001 10 | / 11 | &ELECTROSTATIC 12 | / 13 | 14 | -------------------------------------------------------------------------------- /tests/pw_confine/confine-ss.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | environ_thr = 10.0 3 | environ_type = 'vacuum' 4 | env_confine = 0.5 5 | / 6 | &BOUNDARY 7 | solvent_mode = 'ionic' 8 | alpha = 1.2 9 | / 10 | &ELECTROSTATIC 11 | / 12 | 13 | -------------------------------------------------------------------------------- /tests/pw_confine/confine-system.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | environ_thr = 10.0 3 | environ_type = 'vacuum' 4 | env_confine = 0.5 5 | system_dim = 0 6 | / 7 | &BOUNDARY 8 | solvent_mode = 'system' 9 | solvent_distance = 4.5 10 | / 11 | &ELECTROSTATIC 12 | / 13 | 14 | -------------------------------------------------------------------------------- /tests/pw_confine/pw.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | calculation = 'scf' 3 | restart_mode = 'from_scratch' 4 | tprnfor = .true. 5 | / 6 | &SYSTEM 7 | tot_charge = -1 8 | ecutwfc = 40 9 | ecutrho = 320 10 | nosym = .true. 11 | nspin = 1 12 | assume_isolated = 'm-t' 13 | ntyp = 1 14 | nat = 1 15 | ibrav = 1 16 | celldm(1) = 20. 17 | / 18 | &ELECTRONS 19 | conv_thr = 5e-08 20 | diagonalization = 'cg' 21 | / 22 | &IONS 23 | / 24 | &CELL 25 | / 26 | 27 | ATOMIC_SPECIES 28 | H 1 H.pbe-rrkjus.UPF 29 | 30 | K_POINTS gamma 31 | 32 | ATOMIC_POSITIONS angstrom 33 | H 0.000000000 0.00000000 0.00000000 34 | 35 | -------------------------------------------------------------------------------- /tests/pw_dielectric/charged.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 5.D-6 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | N 14 N.pbe-rrkjus.UPF 29 | O 16 O.pbe-rrkjus.UPF 30 | ATOMIC_POSITIONS (angstrom) 31 | C 0.00000000 0.00000000 0.00000000 32 | C 0.00000000 0.00000000 1.54000000 33 | N 1.23930016 0.00000000 -0.57682849 34 | H 0.50443009 -0.87363574 1.89666635 35 | H -1.00880561 -0.00003153 1.89666685 36 | H 0.50437546 0.87366728 1.89666635 37 | O -1.04142313 -0.00001984 -0.67873289 38 | H 1.33683990 -0.00001602 -1.56165223 39 | H 2.05812401 0.00014187 -0.02721695 40 | H -0.81532010 -0.00004711 -1.61172668 41 | -------------------------------------------------------------------------------- /tests/pw_dielectric/dielectric-sccs-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | / 12 | -------------------------------------------------------------------------------- /tests/pw_dielectric/dielectric-sccs-iter-aux.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | ! 12 | solver = 'fixed-point' 13 | auxiliary = 'full' 14 | ! 15 | / 16 | -------------------------------------------------------------------------------- /tests/pw_dielectric/dielectric-sccs-psd.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | ! 12 | solver = 'sd' 13 | ! 14 | / 15 | -------------------------------------------------------------------------------- /tests/pw_dielectric/dielectric-ss-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'ionic' 11 | ! 12 | / 13 | &ELECTROSTATIC 14 | / 15 | -------------------------------------------------------------------------------- /tests/pw_dielectric/dielectric-ss-iter-aux.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'ionic' 11 | ! 12 | / 13 | &ELECTROSTATIC 14 | ! 15 | solver = 'fixed-point' 16 | auxiliary = 'full' 17 | ! 18 | / 19 | -------------------------------------------------------------------------------- /tests/pw_dielectric/dielectric-sys-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'system' 11 | solvent_distance = 6.D0 12 | solvent_spread = 0.5D0 13 | ! 14 | / 15 | &ELECTROSTATIC 16 | / 17 | -------------------------------------------------------------------------------- /tests/pw_dielectric/dielectric-sys-iter-aux.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'system' 11 | solvent_distance = 6.D0 12 | solvent_spread = 0.5D0 13 | ! 14 | / 15 | &ELECTROSTATIC 16 | ! 17 | solver = 'fixed-point' 18 | auxiliary = 'full' 19 | ! 20 | / 21 | -------------------------------------------------------------------------------- /tests/pw_dielectric/neutral.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | -------------------------------------------------------------------------------- /tests/pw_electrolyte/electrolyte-lmpb-sccs-stern_full.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | rion = 2.D0 13 | electrolyte_linearized = .true. 14 | ! 15 | / 16 | &BOUNDARY 17 | ! 18 | electrolyte_rhomax=0.000700 19 | electrolyte_rhomin=0.000015 20 | ! 21 | / 22 | &ELECTROSTATIC 23 | ! 24 | pbc_correction = 'parabolic' 25 | pbc_dim = 0 26 | ! 27 | / 28 | -------------------------------------------------------------------------------- /tests/pw_electrolyte/electrolyte-lmpb-sccs-stern_ions.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | rion = 2.D0 13 | electrolyte_entropy = 'ions' 14 | electrolyte_linearized = .true. 15 | ! 16 | / 17 | &BOUNDARY 18 | ! 19 | electrolyte_rhomax=0.000700 20 | electrolyte_rhomin=0.000015 21 | ! 22 | / 23 | &ELECTROSTATIC 24 | ! 25 | pbc_correction = 'parabolic' 26 | pbc_dim = 0 27 | ! 28 | / 29 | -------------------------------------------------------------------------------- /tests/pw_electrolyte/electrolyte-lmpb-ss-stern_full.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | rion = 2.D0 13 | electrolyte_linearized = .true. 14 | ! 15 | / 16 | &BOUNDARY 17 | ! 18 | electrolyte_mode = 'ionic' 19 | electrolyte_alpha = 1.5D0 20 | ! 21 | / 22 | &ELECTROSTATIC 23 | ! 24 | pbc_correction = 'parabolic' 25 | pbc_dim = 0 26 | ! 27 | / 28 | -------------------------------------------------------------------------------- /tests/pw_electrolyte/electrolyte-lmpb-ss-stern_ions.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | rion = 2.D0 13 | electrolyte_entropy = 'ions' 14 | electrolyte_linearized = .true. 15 | ! 16 | / 17 | &BOUNDARY 18 | ! 19 | electrolyte_mode = 'ionic' 20 | electrolyte_alpha = 1.5D0 21 | ! 22 | / 23 | &ELECTROSTATIC 24 | ! 25 | pbc_correction = 'parabolic' 26 | pbc_dim = 0 27 | ! 28 | / 29 | -------------------------------------------------------------------------------- /tests/pw_electrolyte/electrolyte-lpb-sccs.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | electrolyte_linearized = .true. 13 | ! 14 | / 15 | &BOUNDARY 16 | ! 17 | electrolyte_rhomax=0.000700 18 | electrolyte_rhomin=0.000015 19 | ! 20 | / 21 | &ELECTROSTATIC 22 | ! 23 | pbc_correction = 'parabolic' 24 | pbc_dim = 0 25 | ! 26 | / 27 | -------------------------------------------------------------------------------- /tests/pw_electrolyte/electrolyte-lpb-ss.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 20. 6 | env_electrolyte_ntyp = 2 7 | temperature = 300. 8 | cion(1) = 8.D0 9 | cion(2) = 8.D0 10 | zion(1) = 1 11 | zion(2) = -1 12 | electrolyte_linearized = .true. 13 | ! 14 | / 15 | &BOUNDARY 16 | ! 17 | electrolyte_mode = 'ionic' 18 | electrolyte_alpha = 1.5D0 19 | ! 20 | / 21 | &ELECTROSTATIC 22 | ! 23 | pbc_correction = 'parabolic' 24 | pbc_dim = 0 25 | ! 26 | / 27 | -------------------------------------------------------------------------------- /tests/pw_electrolyte/pw.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 11 15 | ntyp = 3 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-4 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | N 14 N.pbe-rrkjus.UPF 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | ATOMIC_POSITIONS (angstrom) 29 | N -1.29405370 0.00000009 0.00160193 30 | C -0.65255172 1.18925086 0.00109798 31 | C 0.72927125 1.20927160 0.00077403 32 | C 1.42556924 0.00000010 0.00069792 33 | C 0.72927138 -1.20927146 0.00140341 34 | C -0.65255153 -1.18925032 0.00187670 35 | H -1.27676235 2.08397459 0.00090457 36 | H 1.24837996 2.16895032 0.00042522 37 | H 2.51813531 -0.00000009 0.00001054 38 | H 1.24838024 -2.16895013 0.00169726 39 | H -1.27676191 -2.08397409 0.00258267 40 | -------------------------------------------------------------------------------- /tests/pw_externals/externals_0d_dielectric_default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_external_charges = 1 7 | ! 8 | / 9 | &BOUNDARY 10 | ! 11 | solvent_mode = 'full' 12 | ! 13 | / 14 | &ELECTROSTATIC 15 | / 16 | EXTERNAL_CHARGES ( bohr ) 17 | -1.0 0. 0. 15. 18 | -------------------------------------------------------------------------------- /tests/pw_externals/externals_0d_vacuum_default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_external_charges = 1 6 | ! 7 | / 8 | &ELECTROSTATIC 9 | / 10 | EXTERNAL_CHARGES ( bohr ) 11 | -1.0 0. 0. 15. 12 | -------------------------------------------------------------------------------- /tests/pw_externals/externals_2d_dielectric_default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_external_charges = 1 7 | ! 8 | / 9 | &BOUNDARY 10 | ! 11 | solvent_mode = 'full' 12 | ! 13 | / 14 | &ELECTROSTATIC 15 | / 16 | EXTERNAL_CHARGES ( bohr ) 17 | -1.0 0. 0. 15. 0.5 2 3 18 | -------------------------------------------------------------------------------- /tests/pw_externals/externals_2d_vacuum_default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_external_charges = 1 6 | ! 7 | / 8 | &ELECTROSTATIC 9 | / 10 | EXTERNAL_CHARGES ( bohr ) 11 | -1.0 0. 0. 15. 0.5 2 3 12 | -------------------------------------------------------------------------------- /tests/pw_externals/isolated.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 5.D-6 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | N 14 N.pbe-rrkjus.UPF 29 | O 16 O.pbe-rrkjus.UPF 30 | ATOMIC_POSITIONS (angstrom) 31 | C 0.00000000 0.00000000 0.00000000 32 | C 0.00000000 0.00000000 1.54000000 33 | N 1.23930016 0.00000000 -0.57682849 34 | H 0.50443009 -0.87363574 1.89666635 35 | H -1.00880561 -0.00003153 1.89666685 36 | H 0.50437546 0.87366728 1.89666635 37 | O -1.04142313 -0.00001984 -0.67873289 38 | H 1.33683990 -0.00001602 -1.56165223 39 | H 2.05812401 0.00014187 -0.02721695 40 | H -0.81532010 -0.00004711 -1.61172668 41 | -------------------------------------------------------------------------------- /tests/pw_externals/slab.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ibrav = 8 11 | celldm(1) = 10.6881 12 | celldm(2) = 0.866025 13 | celldm(3) = 3.95422 14 | nat = 10 15 | ntyp = 3 16 | ecutwfc = 35 17 | ecutrho = 300 18 | occupations = 'smearing' 19 | degauss = 0.03 20 | smearing = 'mv' 21 | nbnd = 80 22 | tot_charge = 1 23 | ! 24 | / 25 | &ELECTRONS 26 | ! 27 | conv_thr = 5.D-6 28 | ! 29 | / 30 | K_POINTS gamma 31 | ATOMIC_SPECIES 32 | C 1 C.pbe-rrkjus.UPF 33 | O 1 O.pbe-rrkjus.UPF 34 | Pt 1 Pt.pbe-n-rrkjus_psl.0.1.UPF 35 | ATOMIC_POSITIONS (bohr) 36 | C 5.335084148 4.646723426 8.296403369 37 | O 5.335009643 4.619623254 10.475227761 38 | Pt 8.061327071 0.098057998 4.387516393 39 | Pt 2.608989366 0.098058283 4.387514077 40 | Pt 0.000036609 4.720846294 4.364130427 41 | Pt 5.335159557 4.721612729 4.775569927 42 | Pt 0.000041121 7.802951963 0.000000000 43 | Pt 5.335161233 7.697749113 0.148862900 44 | Pt 2.697860636 3.152173889 0.083785821 45 | Pt 7.972463687 3.152174491 0.083788701 46 | -------------------------------------------------------------------------------- /tests/pw_field-aware/fa-ss.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_pressure = 0.5 7 | ! 8 | / 9 | &BOUNDARY 10 | ! 11 | solvent_mode = 'ionic' 12 | field_aware = .TRUE. 13 | ! 14 | / 15 | -------------------------------------------------------------------------------- /tests/pw_field-aware/pw.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 25 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | -------------------------------------------------------------------------------- /tests/pw_gcs/gcs-solvent.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | verbose = 1, 3 | environ_thr = 10., 4 | system_axis = 3, 5 | system_dim = 2, 6 | env_static_permittivity = 80, 7 | env_electrolyte_ntyp = 2, 8 | temperature = 300, 9 | electrolyte_linearized = .false., 10 | zion(1) = 1, 11 | cion(1) = 0.01, 12 | zion(2) = -1, 13 | cion(2) = 0.01 14 | / 15 | &BOUNDARY 16 | electrolyte_spread = 0.001, 17 | electrolyte_distance = 20.2137, 18 | electrolyte_mode = 'system', 19 | / 20 | &ELECTROSTATIC 21 | solver = 'fixed-point' 22 | auxiliary = 'full' 23 | pbc_correction = 'gcs' 24 | pbc_dim = 2 25 | pbc_axis = 3 26 | tol = 1e-11, 27 | / 28 | -------------------------------------------------------------------------------- /tests/pw_gcs/gcs-vacuum.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | verbose = 1, 3 | environ_thr = 10., 4 | system_axis = 3, 5 | system_dim = 2, 6 | env_electrolyte_ntyp = 2, 7 | temperature = 300, 8 | electrolyte_linearized = .false., 9 | zion(1) = 1, 10 | cion(1) = 0.01, 11 | zion(2) = -1, 12 | cion(2) = 0.01 13 | / 14 | &BOUNDARY 15 | electrolyte_spread = 0.001, 16 | electrolyte_distance = 20.2137, 17 | electrolyte_mode = 'system', 18 | / 19 | &ELECTROSTATIC 20 | pbc_correction = 'gcs' 21 | pbc_dim = 2 22 | pbc_axis = 3 23 | tol = 1e-11, 24 | / 25 | -------------------------------------------------------------------------------- /tests/pw_gcs/pw.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | calculation = 'scf', 3 | tprnfor = .true., 4 | / 5 | &SYSTEM 6 | nspin = 1, 7 | ecutwfc = 35, 8 | nat = 2, 9 | occupations = 'smearing', 10 | ibrav = 0, 11 | degauss = 0.01, 12 | smearing = 'marzari-vanderbilt', 13 | tot_charge = 0, 14 | ntyp = 1, 15 | ecutrho = 350, 16 | / 17 | &ELECTRONS 18 | mixing_beta = 0.3 19 | conv_thr = 1e-06, 20 | / 21 | &IONS 22 | / 23 | ATOMIC_SPECIES 24 | Ag 107.868000 Ag.pbe-n-rrkjus_psl.1.0.0.UPF 25 | ATOMIC_POSITIONS {bohr} 26 | Ag 2.771763 2.771763 18.897260 27 | Ag 0.000000 0.000000 22.740340 28 | K_POINTS {automatic} 29 | 1 1 1 0 0 0 30 | CELL_PARAMETERS {bohr} 31 | 5.543526 0.000000 0.000000 32 | 0.000000 5.543526 0.000000 33 | 0.000000 0.000000 65.08548 34 | -------------------------------------------------------------------------------- /tests/pw_ms/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/environ-developers/Environ/18d94213f633b8ba721b61251178feccaa51720f/tests/pw_ms/.DS_Store -------------------------------------------------------------------------------- /tests/pw_ms/ms-solvent.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | verbose = 1, 3 | environ_thr = 0.1, 4 | system_axis = 3, 5 | system_dim = 2, 6 | env_static_permittivity = 11, 7 | temperature = 300, 8 | sc_permittivity = 11, 9 | sc_carrier_density = 1.D17, 10 | / 11 | &BOUNDARY 12 | sc_spread = 0.001, 13 | sc_distance = 10.2137 14 | electrolyte_spread = 0.001, 15 | electrolyte_distance = 20.2137, 16 | electrolyte_mode = 'system', 17 | / 18 | &ELECTROSTATIC 19 | problem = 'generalized' 20 | solver = 'fixed-point' 21 | auxiliary = 'full' 22 | pbc_correction = 'ms' 23 | pbc_dim = 2 24 | pbc_axis = 3 25 | tol = 1e-11, 26 | / 27 | -------------------------------------------------------------------------------- /tests/pw_ms/ms-vacuum.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | verbose = 1, 3 | environ_thr = 0.1, 4 | system_axis = 3, 5 | system_dim = 2, 6 | temperature = 300, 7 | sc_permittivity = 11, 8 | sc_carrier_density = 1.D18, 9 | / 10 | &BOUNDARY 11 | sc_spread = 0.001, 12 | sc_distance = 10.2137 13 | electrolyte_spread = 0.001, 14 | electrolyte_distance = 20.2137, 15 | electrolyte_mode = 'system', 16 | / 17 | &ELECTROSTATIC 18 | problem = 'poisson' 19 | solver = 'direct' 20 | pbc_correction = 'ms' 21 | pbc_dim = 2 22 | pbc_axis = 3 23 | tol = 1e-11, 24 | / 25 | -------------------------------------------------------------------------------- /tests/pw_ms/pw.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | calculation = 'scf', 3 | tprnfor = .true., 4 | forc_conv_thr = 0.001, 5 | / 6 | &SYSTEM 7 | nspin = 1, 8 | ecutwfc = 35, 9 | nat = 2, 10 | occupations = 'smearing', 11 | ibrav = 0, 12 | degauss = 0.02, 13 | smearing = 'marzari-vanderbilt', 14 | tot_charge = 0.003, 15 | ntyp = 1, 16 | ecutrho = 350, 17 | / 18 | &ELECTRONS 19 | electron_maxstep = 200, 20 | conv_thr = 5e-09, 21 | / 22 | &IONS 23 | ion_dynamics = 'bfgs', 24 | / 25 | ATOMIC_SPECIES 26 | Ag 107.868000 Ag.pbe-n-rrkjus_psl.1.0.0.UPF 27 | ATOMIC_POSITIONS {bohr} 28 | Ag 2.771763 2.771763 18.897260 29 | Ag 0.000000 0.000000 22.740340 30 | K_POINTS {automatic} 31 | 1 1 1 0 0 0 32 | CELL_PARAMETERS {bohr} 33 | 5.543526 0.000000 0.000000 34 | 0.000000 5.543526 0.000000 35 | 0.000000 0.000000 65.08548 36 | -------------------------------------------------------------------------------- /tests/pw_mt/charged.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | assume_isolated = 'martyna-tuckerman' 18 | ! 19 | / 20 | &ELECTRONS 21 | ! 22 | conv_thr = 5.D-3 23 | ! 24 | / 25 | K_POINTS gamma 26 | ATOMIC_SPECIES 27 | C 12 C.pbe-rrkjus.UPF 28 | H 1 H.pbe-rrkjus.UPF 29 | N 14 N.pbe-rrkjus.UPF 30 | O 16 O.pbe-rrkjus.UPF 31 | ATOMIC_POSITIONS (angstrom) 32 | C 0.00000000 0.00000000 0.00000000 33 | C 0.00000000 0.00000000 1.54000000 34 | N 1.23930016 0.00000000 -0.57682849 35 | H 0.50443009 -0.87363574 1.89666635 36 | H -1.00880561 -0.00003153 1.89666685 37 | H 0.50437546 0.87366728 1.89666635 38 | O -1.04142313 -0.00001984 -0.67873289 39 | H 1.33683990 -0.00001602 -1.56165223 40 | H 2.05812401 0.00014187 -0.02721695 41 | H -0.81532010 -0.00004711 -1.61172668 42 | -------------------------------------------------------------------------------- /tests/pw_mt/dielectric-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | ! 12 | pbc_dim = 0 13 | ! 14 | / 15 | -------------------------------------------------------------------------------- /tests/pw_mt/externals_0d_dielectric_default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | env_external_charges = 1 7 | ! 8 | / 9 | &BOUNDARY 10 | ! 11 | solvent_mode = 'full' 12 | ! 13 | / 14 | &ELECTROSTATIC 15 | / 16 | EXTERNAL_CHARGES ( bohr ) 17 | -1.0 0. 0. 15. 18 | -------------------------------------------------------------------------------- /tests/pw_mt/externals_0d_vacuum_default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_external_charges = 1 6 | ! 7 | / 8 | &ELECTROSTATIC 9 | / 10 | EXTERNAL_CHARGES ( bohr ) 11 | -1.0 0. 0. 15. 12 | -------------------------------------------------------------------------------- /tests/pw_mt/isolated.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | assume_isolated = 'martyna-tuckerman' 18 | ! 19 | / 20 | &ELECTRONS 21 | ! 22 | conv_thr = 5.D-6 23 | ! 24 | / 25 | K_POINTS gamma 26 | ATOMIC_SPECIES 27 | C 12 C.pbe-rrkjus.UPF 28 | H 1 H.pbe-rrkjus.UPF 29 | N 14 N.pbe-rrkjus.UPF 30 | O 16 O.pbe-rrkjus.UPF 31 | ATOMIC_POSITIONS (angstrom) 32 | C 0.00000000 0.00000000 0.00000000 33 | C 0.00000000 0.00000000 1.54000000 34 | N 1.23930016 0.00000000 -0.57682849 35 | H 0.50443009 -0.87363574 1.89666635 36 | H -1.00880561 -0.00003153 1.89666685 37 | H 0.50437546 0.87366728 1.89666635 38 | O -1.04142313 -0.00001984 -0.67873289 39 | H 1.33683990 -0.00001602 -1.56165223 40 | H 2.05812401 0.00014187 -0.02721695 41 | H -0.81532010 -0.00004711 -1.61172668 42 | -------------------------------------------------------------------------------- /tests/pw_mt/neutral.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 3 15 | ntyp = 2 16 | assume_isolated = 'martyna-tuckerman' 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 5.D-3 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | H 1 H.pbe-rrkjus.UPF 27 | O 16 O.pbe-rrkjus.UPF 28 | ATOMIC_POSITIONS (bohr) 29 | O 11.79 12.05 11.50 30 | H 13.45 11.22 11.50 31 | H 10.56 10.66 11.50 32 | -------------------------------------------------------------------------------- /tests/pw_periodic/charged.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 5.D-6 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | N 14 N.pbe-rrkjus.UPF 29 | O 16 O.pbe-rrkjus.UPF 30 | ATOMIC_POSITIONS (angstrom) 31 | C 0.00000000 0.00000000 0.00000000 32 | C 0.00000000 0.00000000 1.54000000 33 | N 1.23930016 0.00000000 -0.57682849 34 | H 0.50443009 -0.87363574 1.89666635 35 | H -1.00880561 -0.00003153 1.89666685 36 | H 0.50437546 0.87366728 1.89666635 37 | O -1.04142313 -0.00001984 -0.67873289 38 | H 1.33683990 -0.00001602 -1.56165223 39 | H 2.05812401 0.00014187 -0.02721695 40 | H -0.81532010 -0.00004711 -1.61172668 41 | -------------------------------------------------------------------------------- /tests/pw_periodic/neutral.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | -------------------------------------------------------------------------------- /tests/pw_periodic/periodic-dielectric-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | ! 12 | pbc_correction = 'parabolic' 13 | pbc_dim = 0 14 | ! 15 | / 16 | -------------------------------------------------------------------------------- /tests/pw_periodic/periodic-vacuum-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_electrostatic = .true. 6 | ! 7 | / 8 | &ELECTROSTATIC 9 | ! 10 | pbc_dim = 0 11 | pbc_correction = 'parabolic' 12 | ! 13 | / 14 | -------------------------------------------------------------------------------- /tests/pw_regions/insphere-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_dielectric_regions = 1 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | ! 12 | tol = 1.D-13 13 | ! 14 | / 15 | DIELECTRIC_REGIONS (bohr) 16 | 100 1 11.79 12.05 11.50 6.0 17 | 18 | 19 | -------------------------------------------------------------------------------- /tests/pw_regions/outslab-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_dielectric_regions = 1 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | ! 12 | tol = 1.D-15 13 | ! 14 | / 15 | DIELECTRIC_REGIONS (bohr) 16 | 100 1 0. 0. 6. 2.0 0.5 2 3 17 | 18 | 19 | -------------------------------------------------------------------------------- /tests/pw_regions/pw.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | mixing_beta = 0.3 21 | conv_thr = 1.D-8 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | H 1 H.pbe-rrkjus.UPF 27 | O 16 O.pbe-rrkjus.UPF 28 | ATOMIC_POSITIONS (bohr) 29 | O 11.79 12.05 11.50 30 | H 13.45 11.22 11.50 31 | H 10.56 10.66 11.50 32 | -------------------------------------------------------------------------------- /tests/pw_slab/charged.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ibrav = 8 11 | celldm(1) = 10.6881 12 | celldm(2) = 0.866025 13 | celldm(3) = 3.95422 14 | nat = 10 15 | ntyp = 3 16 | ecutwfc = 35 17 | ecutrho = 300 18 | occupations = 'smearing' 19 | degauss = 0.03 20 | smearing = 'mv' 21 | nbnd = 80 22 | tot_charge = 1 23 | ! 24 | / 25 | &ELECTRONS 26 | ! 27 | conv_thr = 5.D-6 28 | ! 29 | / 30 | K_POINTS gamma 31 | ATOMIC_SPECIES 32 | C 1 C.pbe-rrkjus.UPF 33 | O 1 O.pbe-rrkjus.UPF 34 | Pt 1 Pt.pbe-n-rrkjus_psl.0.1.UPF 35 | ATOMIC_POSITIONS (bohr) 36 | C 5.335084148 4.646723426 12.901029877 37 | O 5.335009643 4.619623254 15.079854269 38 | Pt 8.061327071 0.098057998 8.992142901 39 | Pt 2.608989366 0.098058283 8.992140585 40 | Pt 0.000036609 4.720846294 8.968756935 41 | Pt 5.335159557 4.721612729 9.380196435 42 | Pt 0.000041121 7.802951963 4.604626508 43 | Pt 5.335161233 7.697749113 4.753489408 44 | Pt 2.697860636 3.152173889 4.688412329 45 | Pt 7.972463687 3.152174491 4.688415209 46 | -------------------------------------------------------------------------------- /tests/pw_slab/neutral.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ibrav = 8 11 | celldm(1) = 10.6881 12 | celldm(2) = 0.866025 13 | celldm(3) = 3.95422 14 | nat = 10 15 | ntyp = 3 16 | ecutwfc = 35 17 | ecutrho = 300 18 | occupations = 'smearing' 19 | degauss = 0.03 20 | smearing = 'mv' 21 | nbnd = 80 22 | tot_charge = 0 23 | ! 24 | / 25 | &ELECTRONS 26 | ! 27 | conv_thr = 5.D-6 28 | ! 29 | / 30 | K_POINTS gamma 31 | ATOMIC_SPECIES 32 | C 1 C.pbe-rrkjus.UPF 33 | O 1 O.pbe-rrkjus.UPF 34 | Pt 1 Pt.pbe-n-rrkjus_psl.0.1.UPF 35 | ATOMIC_POSITIONS (bohr) 36 | C 5.335084148 4.646723426 12.901029877 37 | O 5.335009643 4.619623254 15.079854269 38 | Pt 8.061327071 0.098057998 8.992142901 39 | Pt 2.608989366 0.098058283 8.992140585 40 | Pt 0.000036609 4.720846294 8.968756935 41 | Pt 5.335159557 4.721612729 9.380196435 42 | Pt 0.000041121 7.802951963 4.604626508 43 | Pt 5.335161233 7.697749113 4.753489408 44 | Pt 2.697860636 3.152173889 4.688412329 45 | Pt 7.972463687 3.152174491 4.688415209 46 | -------------------------------------------------------------------------------- /tests/pw_slab/periodic-dielectric-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'full' 11 | ! 12 | / 13 | &ELECTROSTATIC 14 | pbc_dim = 2 15 | pbc_axis = 3 16 | pbc_correction = 'parabolic' 17 | / 18 | -------------------------------------------------------------------------------- /tests/pw_slab/periodic-vacuum-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_electrostatic = .true. 6 | ! 7 | / 8 | &ELECTROSTATIC 9 | ! 10 | pbc_dim = 2 11 | pbc_axis = 3 12 | pbc_correction = 'parabolic' 13 | ! 14 | / 15 | -------------------------------------------------------------------------------- /tests/pw_solvent-aware/local-sccs.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_pressure = 0.5 7 | ! 8 | / 9 | &BOUNDARY 10 | / 11 | -------------------------------------------------------------------------------- /tests/pw_solvent-aware/local-ss.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_pressure = 0.5 7 | ! 8 | / 9 | &BOUNDARY 10 | ! 11 | solvent_mode = 'ionic' 12 | ! 13 | / 14 | -------------------------------------------------------------------------------- /tests/pw_solvent-aware/pw.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 25 14 | nat = 6 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | O 11.79 12.05 19.00 32 | H 13.45 11.22 19.00 33 | H 10.56 10.66 19.00 34 | 35 | -------------------------------------------------------------------------------- /tests/pw_solvent-aware/sa-sccs.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_pressure = 0.5 7 | ! 8 | / 9 | &BOUNDARY 10 | ! 11 | solvent_radius = 3.0 12 | filling_threshold = 0.30 13 | ! 14 | / 15 | -------------------------------------------------------------------------------- /tests/pw_solvent-aware/sa-ss.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | env_pressure = 0.5 7 | ! 8 | / 9 | &BOUNDARY 10 | ! 11 | solvent_mode = 'ionic' 12 | solvent_radius = 3.0 13 | filling_threshold = 0.30 14 | ! 15 | / 16 | -------------------------------------------------------------------------------- /tests/pw_spin/dielectric-pcc.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_static_permittivity = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | ! 12 | pbc_correction = 'parabolic' 13 | pbc_dim = 0 14 | ! 15 | / 16 | -------------------------------------------------------------------------------- /tests/pw_spin/radical.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm( 1 ) = 20 14 | nat = 2 15 | ntyp = 2 16 | nbnd = 6 17 | tot_charge = 0 18 | nspin = 2 19 | starting_magnetization(1) = 1 20 | occupations = 'smearing' 21 | smearing = 'gaussian' 22 | degauss = 0.01 23 | nosym = .true. 24 | ! 25 | / 26 | &ELECTRONS 27 | ! 28 | conv_thr = 5.D-3 29 | ! 30 | / 31 | K_POINTS (gamma) 32 | ATOMIC_SPECIES 33 | C 12 C.pbe-rrkjus.UPF 34 | H 1 H.pbe-rrkjus.UPF 35 | ATOMIC_POSITIONS (angstrom) 36 | C 0.00000000 0.00000000 0.16007400 37 | H 0.00000000 0.00000000 -0.96044600 38 | 39 | -------------------------------------------------------------------------------- /tests/pw_spin/vacuum-pcc.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_electrostatic = .true. 6 | ! 7 | / 8 | &ELECTROSTATIC 9 | ! 10 | pbc_dim = 0 11 | pbc_correction = 'parabolic' 12 | ! 13 | / 14 | -------------------------------------------------------------------------------- /tests/pw_surface/pw.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | -------------------------------------------------------------------------------- /tests/pw_surface/surface-sccs-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | -------------------------------------------------------------------------------- /tests/pw_surface/surface-sccs-fft.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | deriv_method = 'fft' 11 | ! 12 | / 13 | -------------------------------------------------------------------------------- /tests/pw_surface/surface-ss-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'ionic' 11 | ! 12 | / 13 | -------------------------------------------------------------------------------- /tests/pw_surface/surface-ss-fft.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'ionic' 11 | deriv_method = 'fft' 12 | ! 13 | / 14 | -------------------------------------------------------------------------------- /tests/pw_surface/surface-sys-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'system' 11 | solvent_distance = 3.D0 12 | solvent_spread = 0.5D0 13 | ! 14 | / 15 | -------------------------------------------------------------------------------- /tests/pw_surface/surface-sys-fft.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_surface_tension = 100. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'system' 11 | solvent_distance = 3.D0 12 | solvent_spread = 0.5D0 13 | deriv_method = 'fft' 14 | ! 15 | / 16 | -------------------------------------------------------------------------------- /tests/pw_volume/pw.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 3 15 | ntyp = 2 16 | ! 17 | / 18 | &ELECTRONS 19 | ! 20 | conv_thr = 5.D-3 21 | ! 22 | / 23 | K_POINTS gamma 24 | ATOMIC_SPECIES 25 | H 1 H.pbe-rrkjus.UPF 26 | O 16 O.pbe-rrkjus.UPF 27 | ATOMIC_POSITIONS (bohr) 28 | O 11.79 12.05 11.50 29 | H 13.45 11.22 11.50 30 | H 10.56 10.66 11.50 31 | -------------------------------------------------------------------------------- /tests/pw_volume/volume-sccs-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_pressure = 10. 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | -------------------------------------------------------------------------------- /tests/pw_volume/volume-ss-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_pressure = 10. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'ionic' 11 | ! 12 | / 13 | -------------------------------------------------------------------------------- /tests/pw_volume/volume-sys-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | env_pressure = 10. 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'system' 11 | solvent_distance = 3.D0 12 | solvent_spread = 0.5D0 13 | ! 14 | / 15 | -------------------------------------------------------------------------------- /tests/pw_water/anion.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 4 15 | ntyp = 2 16 | tot_charge = -1 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 1.D-3 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | ATOMIC_POSITIONS (angstrom) 29 | C 0.0000 0.0000 0.3144 30 | H -0.0000 1.0390 -0.0700 31 | H 0.9000 -0.5198 -0.0700 32 | H -0.9000 -0.5198 -0.0700 33 | -------------------------------------------------------------------------------- /tests/pw_water/cation.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 10 15 | ntyp = 4 16 | tot_charge = 1 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 1.D-3 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | N 14 N.pbe-rrkjus.UPF 29 | O 16 O.pbe-rrkjus.UPF 30 | ATOMIC_POSITIONS (angstrom) 31 | C 0.00000000 0.00000000 0.00000000 32 | C 0.00000000 0.00000000 1.54000000 33 | N 1.23930016 0.00000000 -0.57682849 34 | H 0.50443009 -0.87363574 1.89666635 35 | H -1.00880561 -0.00003153 1.89666685 36 | H 0.50437546 0.87366728 1.89666635 37 | O -1.04142313 -0.00001984 -0.67873289 38 | H 1.33683990 -0.00001602 -1.56165223 39 | H 2.05812401 0.00014187 -0.02721695 40 | H -0.81532010 -0.00004711 -1.61172668 41 | -------------------------------------------------------------------------------- /tests/pw_water/neutral.in: -------------------------------------------------------------------------------- 1 | &CONTROL 2 | ! 3 | calculation = 'scf' 4 | restart_mode = 'from_scratch' 5 | tprnfor = .TRUE. 6 | ! 7 | / 8 | &SYSTEM 9 | ! 10 | ecutrho = 300 11 | ecutwfc = 30 12 | ibrav = 1 13 | celldm(1) = 20 14 | nat = 9 15 | ntyp = 4 16 | tot_charge = 0 17 | ! 18 | / 19 | &ELECTRONS 20 | ! 21 | conv_thr = 1.D-3 22 | ! 23 | / 24 | K_POINTS gamma 25 | ATOMIC_SPECIES 26 | C 12 C.pbe-rrkjus.UPF 27 | H 1 H.pbe-rrkjus.UPF 28 | N 14 N.pbe-rrkjus.UPF 29 | O 16 O.pbe-rrkjus.UPF 30 | ATOMIC_POSITIONS (angstrom) 31 | C 0.00000000 0.00000000 0.00000000 32 | C 0.00000000 0.00000000 1.54000000 33 | N 1.23930016 0.00000000 -0.57682849 34 | H 0.50443009 -0.87363574 1.89666635 35 | H -1.00880561 -0.00003153 1.89666685 36 | H 0.50437546 0.87366728 1.89666635 37 | O -1.04142313 -0.00001984 -0.67873289 38 | H 1.33683990 -0.00001602 -1.56165223 39 | H 2.05812401 0.00014187 -0.02721695 40 | -------------------------------------------------------------------------------- /tests/pw_water/water-anion-sccs-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water-anion' 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | / 12 | -------------------------------------------------------------------------------- /tests/pw_water/water-anion-ss-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water-anion' 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'ionic' 11 | ! 12 | / 13 | &ELECTROSTATIC 14 | / 15 | -------------------------------------------------------------------------------- /tests/pw_water/water-cation-sccs-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water-cation' 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | / 12 | -------------------------------------------------------------------------------- /tests/pw_water/water-cation-ss-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water-cation' 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'ionic' 11 | ! 12 | / 13 | &ELECTROSTATIC 14 | / 15 | -------------------------------------------------------------------------------- /tests/pw_water/water-neutral-sccs-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water' 6 | ! 7 | / 8 | &BOUNDARY 9 | / 10 | &ELECTROSTATIC 11 | / 12 | -------------------------------------------------------------------------------- /tests/pw_water/water-neutral-ss-default.in: -------------------------------------------------------------------------------- 1 | &ENVIRON 2 | ! 3 | verbose = 1 4 | environ_thr = 1.d2 5 | environ_type = 'water' 6 | ! 7 | / 8 | &BOUNDARY 9 | ! 10 | solvent_mode = 'ionic' 11 | ! 12 | / 13 | &ELECTROSTATIC 14 | / 15 | -------------------------------------------------------------------------------- /tests/run-pw.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #---------------------------------------------------------------------------------------- 3 | # 4 | # Copyright (C) 2018-2022 ENVIRON (www.quantum-environ.org) 5 | # Copyright (C) 2001-2017 Quantum ESPRESSO (www.quantum-espresso.org) 6 | # 7 | #---------------------------------------------------------------------------------------- 8 | # 9 | # This file is part of Environ version 3.0 10 | # 11 | # Environ 3.0 is free software: you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation, either version 2 of the License, or 14 | # (at your option) any later version. 15 | # 16 | # Environ 3.0 is distributed in the hope that it will be useful, 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | # GNU General Public License for more detail, either the file 20 | # `License' in the root directory of the present distribution, or 21 | # online at . 22 | # 23 | #---------------------------------------------------------------------------------------- 24 | # 25 | # Authors: Oliviero Andreussi (Department of Physics, UNT) 26 | # 27 | #---------------------------------------------------------------------------------------- 28 | # 29 | # This file was adapted from the following Quantum ESPRESSO v6.1 file: 30 | # 31 | # QE/test-suite/run-pw.sh 32 | # 33 | #---------------------------------------------------------------------------------------- 34 | 35 | if [ $QE_USE_MPI = 1 ]; then 36 | export PARA_PREFIX="mpirun -np ${TESTCODE_NPROCS}" 37 | else 38 | unset PARA_PREFIX 39 | fi 40 | 41 | # Additional stuff before run special test-cases 42 | 43 | ${PARA_PREFIX} ${ESPRESSO_ROOT}/bin/pw.x --environ "$@" 44 | 45 | if [ -f environ.debug ]; then 46 | cat environ.debug 47 | rm environ.debug 48 | fi 49 | 50 | rm -f input_tmp.in environ.in 51 | -------------------------------------------------------------------------------- /tests/testcode/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 by James Spencer. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, 7 | this list of conditions and the following disclaimer. 8 | 2. Redistributions in binary form must reproduce the above copyright notice, 9 | this list of conditions and the following disclaimer in the documentation 10 | and/or other materials provided with the distribution. 11 | 3. The name of the author may not be used to endorse or promote products 12 | derived from this software without specific prior written permission. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED 15 | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 16 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 17 | EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 20 | OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 21 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 22 | OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 23 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /tests/testcode/README.rst: -------------------------------------------------------------------------------- 1 | testcode 2 | ======== 3 | 4 | testcode is a python module for testing for regression errors in numerical 5 | (principally scientific) software. Essentially testcode runs a set of 6 | calculations, and compares the output data to that generated by a previous 7 | calculation (which is regarded to be "correct"). It is designed to be 8 | lightweight and highly portable. 9 | 10 | testcode can run a set of tests and check the calculated data is within a the 11 | desired tolerance of results contained in previous output (using an internal 12 | data extraction engine, a user-supplied data extraction program or 13 | a user-supplied verification program). The programs to be tested can be run in 14 | serial and in parallel and tests can be run in either locally or submitted to 15 | a compute cluster running a queueing system such as PBS. Previous tests can be 16 | compared and diffed against other tests or benchmarks. 17 | 18 | Documentation 19 | ------------- 20 | 21 | Full documentation can be found in the ``docs/`` subdirectory and in the 22 | appropriate docstrings. Documentation can be compiled using `sphinx 23 | `_. 24 | 25 | Documentation can also be viewed at `readthedocs 26 | `_. 27 | 28 | Author 29 | ------ 30 | 31 | James Spencer, Imperial College London. 32 | 33 | Contributions and suggestions from: 34 | 35 | Keith Refson, Science and Technology Facilities Council. 36 | 37 | Shawn Chin, Science and Technology Facilities Council. 38 | 39 | LICENSE 40 | ------- 41 | 42 | Modified BSD license; see LICENSE for more details. 43 | 44 | See also 45 | -------- 46 | 47 | `testcode_buildbot.py `_: a custom buildbot BuildStep for running testcode by Shawn Chin. 48 | -------------------------------------------------------------------------------- /tests/testcode/docs/.static/dummy_file: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/environ-developers/Environ/18d94213f633b8ba721b61251178feccaa51720f/tests/testcode/docs/.static/dummy_file -------------------------------------------------------------------------------- /tests/testcode/docs/.templates/dummy_file: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/environ-developers/Environ/18d94213f633b8ba721b61251178feccaa51720f/tests/testcode/docs/.templates/dummy_file -------------------------------------------------------------------------------- /tests/testcode/docs/configuration_files.rst: -------------------------------------------------------------------------------- 1 | .. _config: 2 | 3 | Configuration files 4 | =================== 5 | 6 | For convenience, tests can be specified via configuration files rather than 7 | using the testcode API directly. These configuration files are required for 8 | work with the command-line interface. 9 | 10 | The two configuration files are, by default, :ref:`jobconfig` and 11 | :ref:`userconfig` in the working directory. Different names and/or paths can 12 | be specified if required. 13 | 14 | Both configuration files take options in the ini format (as understood by 15 | Python's `configparser `_ module). For example:: 16 | 17 | [section_1] 18 | a = 2 19 | b = test_option 20 | 21 | [section_2] 22 | v = 4.5 23 | hello = world 24 | 25 | defines an ini file with two sections (named 'section_1' and 'section_2'), each 26 | with two variables set. 27 | 28 | .. note:: 29 | 30 | Any paths can either be absolute or relative to the directory containing 31 | the configuration file. The full path need not be given for any program 32 | which exists on the user's PATH. Environment variables in **program** names will be expanded. 33 | -------------------------------------------------------------------------------- /tests/testcode/docs/index.rst: -------------------------------------------------------------------------------- 1 | testcode 2 | ======== 3 | 4 | testcode is a python module for testing for regression errors in numerical 5 | (principally scientific) software. Essentially testcode runs a set of 6 | calculations, and compares the output data to that generated by a previous 7 | calculation (which is regarded to be "correct"). It is designed to be 8 | lightweight and highly portable: it can be used both as part of the development 9 | process and to verify the correctness of a binary on a new architecture. 10 | testcode requires python 2.4-3.4. If these are not available, then `pypy 11 | `_ is recommended---for this purpose pypy serves as 12 | a portable, self-contained python implementation but this is a tiny aspect of 13 | the pypy project. 14 | 15 | testcode can run a set of tests and check the calculated data is within a the 16 | desired tolerance of results contained in previous output (using an internal 17 | data extraction engine, a user-supplied data extraction program or 18 | a user-supplied verification program). The programs to be tested can be run in 19 | serial and in parallel and tests can be run in either locally or submitted to 20 | a compute cluster running a queueing system such as PBS. Previous tests can be 21 | compared and diffed against other tests or benchmarks. 22 | 23 | testcode provides access to these features via an API. The supplied 24 | command-line interface, :ref:`testcode.py`, should be sufficient for most 25 | purposes. The command-line interface utilises simple :ref:`configuration files 26 | `, wich makes it easy to customise to the local environment and to add 27 | new tests. 28 | 29 | .. toctree:: 30 | :maxdepth: 1 31 | 32 | installation 33 | configuration_files 34 | jobconfig 35 | userconfig 36 | verification 37 | testcode.py 38 | 39 | Indices and tables 40 | ================== 41 | 42 | * :ref:`genindex` 43 | * :ref:`modindex` 44 | * :ref:`search` 45 | -------------------------------------------------------------------------------- /tests/testcode/docs/installation.rst: -------------------------------------------------------------------------------- 1 | Installation 2 | ============ 3 | 4 | testcode2 is designed to be very lightweight and portable, so it can easily and 5 | quickly be used on a variety of machines. Typically only downloading the 6 | testcode2 package is required. 7 | 8 | If the :ref:`testcode.py` script is used, then no additional installation steps 9 | are required assuming the directory structure is preserved. If the 10 | ``testcode2`` module is used or the files are split up and installed elsewhere, 11 | then the ``testcode2`` module must be able to be found by python (i.e. exists 12 | on $PYTHONPATH). 13 | -------------------------------------------------------------------------------- /tests/testcode/lib/testcode2/_functools_dummy.py: -------------------------------------------------------------------------------- 1 | ''' 2 | testcode2._dummy_functools 3 | -------------------------- 4 | 5 | Dummy stub functions of required functools objects used. 6 | 7 | This means that we can use python 2.4 and advanced features in later versions 8 | of python. 9 | 10 | :copyright: (c) 2012 James Spencer. 11 | :license: modified BSD; see LICENSE for more details. 12 | ''' 13 | 14 | def wraps(func1): 15 | '''Upgrade from python 2.4 to use functools.wraps.''' 16 | def wrapper(func2): 17 | '''Upgrade from python 2.4 to use functools.wraps.''' 18 | def decorated_func(*args, **kwargs): 19 | '''Upgrade from python 2.4 to use functools.wraps.''' 20 | return func2(*args, **kwargs) 21 | return decorated_func 22 | return wrapper 23 | -------------------------------------------------------------------------------- /tests/testcode/lib/testcode2/ansi.py: -------------------------------------------------------------------------------- 1 | ''' 2 | testcode2.ansi 3 | -------------- 4 | 5 | (A subset of) ANSI codes and functions to wrap codes around strings. 6 | 7 | :copyright: (c) 2012 James Spencer. 8 | :license: modified BSD; see LICENSE for more details. 9 | ''' 10 | 11 | import sys 12 | 13 | ANSI_START = '\033[' 14 | ANSI_END = '\033[0m' 15 | 16 | ANSI_SGR = dict( 17 | bold=1, 18 | ) 19 | 20 | ANSI_INTENSITY = dict( 21 | normal=0, 22 | bright=60, 23 | ) 24 | 25 | ANSI_COLOUR = dict( 26 | black=30, 27 | red=31, 28 | green=32, 29 | yellow=33, 30 | blue=34, 31 | magenta=35, 32 | cyan=36, 33 | white=37, 34 | ) 35 | 36 | def ansi_format(string, colour='black', intensity='normal', style=None, 37 | override=False): 38 | '''Return string wrapped in the appropriate ANSI codes. 39 | 40 | Note: if not writing to a true terminal and override is false, then the string 41 | is not modified. 42 | ''' 43 | 44 | if sys.stdout.isatty() or override: 45 | code = str(ANSI_COLOUR[colour]+ANSI_INTENSITY[intensity]) 46 | if style: 47 | code += ';%s' % (ANSI_SGR[style]) 48 | code += 'm' 49 | return ANSI_START + code + string + ANSI_END + ANSI_END 50 | else: 51 | return string 52 | -------------------------------------------------------------------------------- /tests/testcode/lib/testcode2/dir_lock.py: -------------------------------------------------------------------------------- 1 | ''' 2 | testcode2.dir_lock 3 | ------------------ 4 | 5 | Threading lock initialisation and helper. 6 | 7 | :copyright: (c) 2012 James Spencer. 8 | :license: modified BSD; see LICENSE for more details. 9 | ''' 10 | 11 | import os 12 | import threading 13 | import testcode2.compatibility as compat 14 | 15 | class DirLock: 16 | '''Helper class for working with threading locks.''' 17 | def __init__(self): 18 | self.lock = threading.Lock() 19 | def with_lock(self, func): 20 | '''Decorate function to be executed whilst holding the lock. 21 | 22 | :param function func: arbitary function. 23 | ''' 24 | @compat.functools.wraps(func) 25 | def decorated_func(*args, **kwargs): 26 | '''Function decorated by Lock.with_lock.''' 27 | self.lock.acquire() 28 | try: 29 | return func(*args, **kwargs) 30 | finally: 31 | self.lock.release() 32 | return decorated_func 33 | def in_dir(self, ddir): 34 | '''Decorate function so it is executed in the given directory ddir. 35 | 36 | The thread executing the function holds the lock whilst entering ddir and 37 | executing the function. This makes such actions thread-safe with respect to 38 | the directory location but is not appropriate for computationally-demanding 39 | functions. 40 | 41 | :param string ddir: directory in which the decorated function is executed. 42 | ''' 43 | # Because we wish to use this as a decorator with arguments passed to 44 | # the decorator, we must return a wrapper function which in turn 45 | # returns the decorated function. See the excellent explanation of 46 | # decorators at: http://stackoverflow.com/a/1594484 47 | def wrapper(func): 48 | '''Wrap func to hold lock whilst being executed in ddir. 49 | 50 | :param string func: arbitrary function. 51 | ''' 52 | @compat.functools.wraps(func) 53 | @self.with_lock 54 | def decorated_func(*args, **kwargs): 55 | '''Function decorated by Lock.in_dir.''' 56 | cwd = os.getcwd() 57 | os.chdir(ddir) 58 | try: 59 | val = func(*args, **kwargs) 60 | except Exception: 61 | # func has raised an error. Return to the original 62 | # directory and then re-raise the error to allow the caller 63 | # to handle it. 64 | os.chdir(cwd) 65 | raise 66 | os.chdir(cwd) 67 | return val 68 | return decorated_func 69 | return wrapper 70 | -------------------------------------------------------------------------------- /tests/testcode/lib/testcode2/exceptions.py: -------------------------------------------------------------------------------- 1 | ''' 2 | testcode2.exceptions 3 | -------------------- 4 | 5 | Custom exceptions. Initialise signal handler for the interrupt signal. 6 | 7 | :copyright: (c) 2012 James Spencer. 8 | :license: modified BSD; see LICENSE for more details. 9 | ''' 10 | 11 | import signal 12 | import sys 13 | 14 | def signal_handler(sig, frame): 15 | '''Capture signal and leave quietly.''' 16 | print('Signal: %s has been caught. Bye!' % (sig)) 17 | sys.exit(1) 18 | 19 | 20 | class RunError(Exception): 21 | '''Exception used for errors running test jobs.''' 22 | pass 23 | 24 | 25 | class AnalysisError(Exception): 26 | '''Exception used for errors running test jobs.''' 27 | pass 28 | 29 | 30 | class TestCodeError(Exception): 31 | '''Top level exception for testcode errors.''' 32 | pass 33 | 34 | signal.signal(signal.SIGINT, signal_handler) # Listen out for Ctrl-C. 35 | -------------------------------------------------------------------------------- /tests/testcode/lib/testcode2/vcs.py: -------------------------------------------------------------------------------- 1 | ''' 2 | testcode2.vcs 3 | ------------- 4 | 5 | Lightweight access to required version control system functions. 6 | 7 | :copyright: (c) 2012 James Spencer. 8 | :license: modified BSD; see LICENSE for more details. 9 | ''' 10 | 11 | import os 12 | import subprocess 13 | 14 | class VCSRepository(object): 15 | '''Handle information about a version control repository. 16 | 17 | vcs: version control system used. Currently git, mercurial and subversion are supported. 18 | repository: (local) directory containing a checked-out version of the repository. 19 | remote_repository: remote location of the repository. 20 | ''' 21 | def __init__(self, vcs, repository, remote_repository=None): 22 | if vcs in ['svn', 'git', 'hg']: 23 | self.vcs = vcs 24 | else: 25 | self.vcs = None 26 | self.repository = repository 27 | if remote_repository: 28 | self.remote_repository = remote_repository 29 | 30 | def get_code_id(self): 31 | '''Return the id (i.e. version number or hash) of the VCS repository.''' 32 | old_dir = os.getcwd() 33 | os.chdir(self.repository) 34 | code_id = 'UNKNOWN' 35 | id_popen = None 36 | if self.vcs == 'svn': 37 | id_popen = subprocess.Popen(['svnversion', '.'], 38 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 39 | elif self.vcs == 'git': 40 | id_popen = subprocess.Popen(['git', 'rev-parse', '--short', 'HEAD'], 41 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 42 | elif self.vcs == 'hg': 43 | id_popen = subprocess.Popen(['hg', 'id', '-i'], 44 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) 45 | if id_popen: 46 | id_popen.wait() 47 | code_id = id_popen.communicate()[0].decode('utf-8').strip() 48 | os.chdir(old_dir) 49 | return (code_id) 50 | -------------------------------------------------------------------------------- /tests/userconfig.tmp: -------------------------------------------------------------------------------- 1 | [PW] 2 | exe = XXXXXX/tests/run-pw.sh 3 | extract_program = XXXXXX/tests/extract-pw.sh 4 | inputs_args = ('*.in', '') 5 | run_cmd_template = cp tc.args environ.in; tc.program -input tc.input > tc.output 2> tc.error 6 | tolerance = ( (5.0e-5, None, 'e1'), 7 | (2.5, None, 'n1'), 8 | (1.0e-3, None, 'f1'), 9 | (1.0e-1, None, 'p1') ) 10 | skip_program = grep 11 | skip_args = 'not yet implemented' 12 | 13 | [user] 14 | benchmark = GIT 15 | date_fmt = %y%m%d 16 | diff = vimdiff 17 | 18 | --------------------------------------------------------------------------------