├── .clang-format ├── .github └── workflows │ ├── create-doxygen.yml │ ├── create-release-aarch64.yml │ ├── create-release.yml │ ├── pull-request-checks.yml │ ├── pypa-publish.yml │ └── unit-test.yml ├── .gitignore ├── CMakeLists.txt ├── CMakePresets.json ├── LICENSE.md ├── README.md ├── STYLE_GUIDE.md ├── app ├── CMakeLists.txt └── main.cpp ├── benchmarks ├── CMakeLists.txt └── raspakit-benchmarks │ ├── CMakeLists.txt │ ├── interactions.cpp │ ├── main.cpp │ └── pow.cpp ├── bump_version.py ├── cli ├── CMakeLists.txt ├── commandline.cpp ├── commandline.ixx └── main.cpp ├── data ├── CMakeLists.txt ├── forcefields │ └── example_molecule_forcefield │ │ └── force_field.json ├── manual │ └── raspa-manual.pdf └── molecules │ └── example_definitions │ ├── co2.json │ ├── methane.json │ └── n2.json ├── docker └── x86_64 │ ├── almalinux-8 │ └── Dockerfile │ ├── almalinux-9 │ └── Dockerfile │ ├── archlinux │ └── Dockerfile │ ├── centos-6 │ └── Dockerfile │ ├── debian-10.13 │ └── Dockerfile │ ├── debian-11.11 │ └── Dockerfile │ ├── debian-12.10 │ └── Dockerfile │ ├── fedora-35 │ └── Dockerfile │ ├── fedora-36 │ └── Dockerfile │ ├── fedora-37 │ └── Dockerfile │ ├── fedora-38 │ └── Dockerfile │ ├── fedora-39 │ └── Dockerfile │ ├── fedora-40 │ └── Dockerfile │ ├── fedora-41 │ └── Dockerfile │ ├── opensuse-leap-15.2 │ └── Dockerfile │ ├── opensuse-leap-15.3 │ └── Dockerfile │ ├── opensuse-leap-15.4 │ └── Dockerfile │ ├── opensuse-leap-15.5 │ └── Dockerfile │ ├── opensuse-leap-15.6 │ └── Dockerfile │ ├── opensuse-tumbleweed │ └── Dockerfile │ ├── rocky-7 │ └── Dockerfile │ ├── rocky-8 │ └── Dockerfile │ ├── rocky-9 │ └── Dockerfile │ ├── ubuntu-20 │ └── Dockerfile │ ├── ubuntu-22 │ └── Dockerfile │ └── ubuntu-24 │ └── Dockerfile ├── docs ├── CMakeLists.txt ├── Doxyfile ├── doxygen-awesome-sidebar-only.css ├── doxygen-awesome.css ├── examples.md ├── examples │ └── basic_1.md ├── manual.md └── manual │ ├── commands.md │ ├── compiling.md │ ├── figure_binary_packages.jpg │ ├── figure_binary_packages.pdf │ ├── installing.md │ ├── manual.md │ ├── nu-110.jpg │ ├── rho.jpg │ ├── running.md │ └── units.md ├── env.yml ├── examples ├── CMakeLists.txt ├── advanced │ ├── 10_hmc_cfcmc_co2_in_mfi │ │ ├── CO2.json │ │ ├── MFI_SI.cif │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.py │ │ └── simulation.json │ ├── 7_mc_gibbs_co2 │ │ ├── CO2.json │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ ├── run.py │ │ └── simulation.json │ └── 9_mc_cfcmc_co2_in_mfi │ │ ├── CO2.json │ │ ├── MFI_SI.cif │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.py │ │ └── simulation.json ├── auxiliary │ ├── 6_make_grids │ │ ├── CO2.json │ │ ├── IRMOF-1.cif │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ └── simulation.json │ └── 8_charge_equilibration │ │ ├── IRMOF-1.cif │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ └── simulation.json ├── basic │ ├── 10_mc_henry_coefficient_of_co2_n2_methane_in_mfi │ │ ├── CO2.json │ │ ├── MFI_SI.cif │ │ ├── N2.json │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ ├── run.py │ │ └── simulation.json │ ├── 11_md_rdf_water_box │ │ ├── force_field.json │ │ ├── out │ │ ├── run.bat │ │ ├── simulation.json │ │ └── water.json │ ├── 12_mc_rdf_water_box │ │ ├── force_field.json │ │ ├── out │ │ ├── run.bat │ │ ├── run.py │ │ ├── simulation.json │ │ └── water.json │ ├── 1_mc_methane_in_box │ │ ├── CO2.json │ │ ├── force_field.json │ │ ├── from_json.py │ │ ├── methane.json │ │ ├── run.bat │ │ ├── run.py │ │ └── simulation.json │ ├── 2_mc_co2_n2_in_two_independent_boxes │ │ ├── CO2.json │ │ ├── N2.json │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ ├── run.py │ │ └── simulation.json │ ├── 3_mc_binary_mixture_in_box │ │ ├── CO2.json │ │ ├── N2.json │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ ├── run.py │ │ └── simulation.json │ ├── 4_mc_binarymixture_in_two_boxes │ │ ├── CO2.json │ │ ├── N2.json │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ ├── run.py │ │ └── simulation.json │ ├── 5_md_methane_in_box_msd │ │ ├── CO2.json │ │ ├── force_field.json │ │ ├── from_json.py │ │ ├── methane.json │ │ ├── run.bat │ │ └── simulation.json │ ├── 6_mc_enthalpy_of_adsorption_in_mfi_at_zero_loading │ │ ├── CO2.json │ │ ├── MFI_SI.cif │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ ├── run.py │ │ └── simulation.json │ ├── 7_mc_adsorption_of_methane_in_mfi │ │ ├── CO2.json │ │ ├── MFI_SI.cif │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ ├── run.py │ │ └── simulation.json │ ├── 8_mc_adsorption_of_co2_in_cu-btc │ │ ├── CO2.json │ │ ├── Cu-BTC.cif │ │ ├── force_field.json │ │ ├── run.bat │ │ ├── run.py │ │ └── simulation.json │ └── 9_mc_henry_coefficient_of_methane_in_mfi │ │ ├── CO2.json │ │ ├── MFI_SI.cif │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ ├── run.py │ │ └── simulation.json ├── non-basic │ ├── 10_tmmc_methane_in_tobacco-667 │ │ ├── 0 │ │ │ ├── force_field.json │ │ │ ├── methane.json │ │ │ ├── run.bat │ │ │ ├── simulation.json │ │ │ └── tobacco-667.cif │ │ ├── 1 │ │ │ ├── force_field.json │ │ │ ├── methane.json │ │ │ ├── run.bat │ │ │ ├── simulation.json │ │ │ └── tobacco-667.cif │ │ ├── 2 │ │ │ ├── force_field.json │ │ │ ├── methane.json │ │ │ ├── run.bat │ │ │ ├── simulation.json │ │ │ └── tobacco-667.cif │ │ ├── 3 │ │ │ ├── force_field.json │ │ │ ├── methane.json │ │ │ ├── run.bat │ │ │ ├── simulation.json │ │ │ └── tobacco-667.cif │ │ ├── 4 │ │ │ ├── force_field.json │ │ │ ├── methane.json │ │ │ ├── run.bat │ │ │ ├── simulation.json │ │ │ └── tobacco-667.cif │ │ ├── combine-tmmc-data.py │ │ └── combined_lnpi.png │ ├── 1_mc_adsorption_binary_mixture_co2_ch4_in_irmof-1 │ │ ├── CO2.json │ │ ├── IRMOF-1.cif │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ └── simulation.json │ ├── 2_mc_npt_methane │ │ ├── CO2.json │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ └── simulation.json │ ├── 4_mc_adsorption_co2_in_lta4a_sodium │ │ ├── CO2.json │ │ ├── LTA4A.cif │ │ ├── force_field.json │ │ ├── run.bat │ │ ├── simulation.json │ │ └── sodium.json │ ├── 5_md_diffusion_co2_in_lta4a_sodium │ │ ├── CO2.json │ │ ├── LTA4A.cif │ │ ├── force_field.json │ │ ├── run.bat │ │ ├── simulation.json │ │ └── sodium.json │ ├── 6_md_benzene_in_irmof-1 │ │ ├── IRMOF-1.cif │ │ ├── benzene.json │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ └── simulation.json │ └── 7_mc_gibbs_co2 │ │ ├── CO2.json │ │ ├── force_field.json │ │ ├── methane.json │ │ ├── run.bat │ │ └── simulation.json ├── reduced_units │ ├── 1_particles_in_box_nvt │ │ ├── force_field.json │ │ ├── particle.json │ │ ├── run.bat │ │ └── simulation.json │ └── 2_particles_in_box_nvt_cfcmc │ │ ├── bias_factors │ │ └── lambda_bias_particle.s0.json │ │ ├── force_field.json │ │ ├── particle.json │ │ ├── run.bat │ │ └── simulation.json └── run.cmake.in ├── packaging ├── CMakeLists.txt ├── Description.txt ├── Info.plist ├── PKGBUILD-core-avx2 ├── PKGBUILD-skylake-avx512 ├── Resources │ └── background.jpg ├── background.bmp ├── license.txt ├── raspa.icns ├── raspa.ico ├── readme.txt └── welcome.txt ├── pyproject.toml ├── raspa ├── CMakeLists.txt ├── raspa_pybindings.cpp └── raspa_pybindings.ixx ├── src ├── CMakeLists.txt ├── foundationkit │ ├── archive.cpp │ ├── archive.ixx │ ├── characterset.cpp │ ├── characterset.ixx │ ├── getopt.cpp │ ├── getopt.ixx │ ├── hdf5.cpp │ ├── hdf5.ixx │ ├── indexpath.cpp │ ├── indexpath.ixx │ ├── json.cpp │ ├── json.ixx │ ├── mdspan.ixx │ ├── scanner.cpp │ ├── scanner.ixx │ ├── stringutils.cpp │ ├── stringutils.ixx │ ├── threadpool.cpp │ └── threadpool.ixx ├── makefile-manual ├── mathkit │ ├── bool3.cpp │ ├── bool3.ixx │ ├── cubic.cpp │ ├── cubic.ixx │ ├── double2.cpp │ ├── double2.ixx │ ├── double3.cpp │ ├── double3.ixx │ ├── double3x3.cpp │ ├── double3x3.ixx │ ├── double3x3x3.cpp │ ├── double3x3x3.ixx │ ├── double4.cpp │ ├── double4.ixx │ ├── double4x3.cpp │ ├── double4x3.ixx │ ├── double4x4.cpp │ ├── double4x4.ixx │ ├── float2.cpp │ ├── float2.ixx │ ├── float3.cpp │ ├── float3.ixx │ ├── float3x3.cpp │ ├── float3x3.ixx │ ├── float3x4.cpp │ ├── float3x4.ixx │ ├── float4.cpp │ ├── float4.ixx │ ├── float4x4.cpp │ ├── float4x4.ixx │ ├── hashcombine.cpp │ ├── hashcombine.ixx │ ├── int3.cpp │ ├── int3.ixx │ ├── int3x3.cpp │ ├── int3x3.ixx │ ├── marchingcubes.cpp │ ├── marchingcubes.ixx │ ├── matrix.cpp │ ├── matrix.ixx │ ├── randomnumbers.cpp │ ├── randomnumbers.ixx │ ├── ring.cpp │ ├── ring.ixx │ ├── ringmatrix.cpp │ ├── ringmatrix.ixx │ ├── simd_quatd.cpp │ ├── simd_quatd.ixx │ ├── special_functions.cpp │ ├── special_functions.ixx │ ├── symmetric_matrix_layout.cpp │ └── symmetric_matrix_layout.ixx ├── raspakit │ ├── atom.cpp │ ├── atom.ixx │ ├── averages.cpp │ ├── averages.ixx │ ├── bond_potential.cpp │ ├── bond_potential.ixx │ ├── cbmc │ │ ├── cbmc.cpp │ │ ├── cbmc.ixx │ │ ├── chain_data.cpp │ │ ├── chain_data.ixx │ │ ├── first_bead_data.cpp │ │ ├── first_bead_data.ixx │ │ ├── flexible_insertion.cpp │ │ ├── flexible_insertion.ixx │ │ ├── growing_status.cpp │ │ ├── growing_status.ixx │ │ ├── interactions.cpp │ │ ├── interactions.ixx │ │ ├── interactions_external_field.cpp │ │ ├── interactions_external_field.ixx │ │ ├── interactions_framework_molecule.cpp │ │ ├── interactions_framework_molecule.ixx │ │ ├── interactions_intermolecular.cpp │ │ ├── interactions_intermolecular.ixx │ │ ├── multiple_first_bead.cpp │ │ ├── multiple_first_bead.ixx │ │ ├── rigid_deletion.cpp │ │ ├── rigid_deletion.ixx │ │ ├── rigid_insertion.cpp │ │ ├── rigid_insertion.ixx │ │ ├── rigid_reinsertion.cpp │ │ ├── rigid_reinsertion.ixx │ │ ├── util.cpp │ │ └── util.ixx │ ├── charge_equilibration_wilmer_snurr.cpp │ ├── charge_equilibration_wilmer_snurr.ixx │ ├── cif_reader.cpp │ ├── cif_reader.ixx │ ├── component.cpp │ ├── component.ixx │ ├── forcefield │ │ ├── forcefield.cpp │ │ ├── forcefield.ixx │ │ ├── pseudo_atom.cpp │ │ ├── pseudo_atom.ixx │ │ ├── vdwparameters.cpp │ │ └── vdwparameters.ixx │ ├── framework.cpp │ ├── framework.ixx │ ├── hardware_info.cpp │ ├── hardware_info.ixx │ ├── input_reader.cpp │ ├── input_reader.ixx │ ├── integrators │ │ ├── compute.cpp │ │ ├── compute.ixx │ │ ├── cputime.cpp │ │ ├── cputime.ixx │ │ ├── integrator.cpp │ │ ├── integrator.ixx │ │ ├── update.cpp │ │ └── update.ixx │ ├── interactions │ │ ├── ewald.cpp │ │ ├── ewald.ixx │ │ ├── external_field.cpp │ │ ├── external_field.ixx │ │ ├── framework_molecule.cpp │ │ ├── framework_molecule.ixx │ │ ├── framework_molecule_grid.cpp │ │ ├── framework_molecule_grid.ixx │ │ ├── intermolecular.cpp │ │ ├── intermolecular.ixx │ │ ├── polarization.cpp │ │ └── polarization.ixx │ ├── interpolation_energy_grid.cpp │ ├── interpolation_energy_grid.ixx │ ├── libtorch.ixx │ ├── mc_moves │ │ ├── component │ │ │ ├── deletion.cpp │ │ │ ├── deletion.ixx │ │ │ ├── deletion_cbmc.cpp │ │ │ ├── deletion_cbmc.ixx │ │ │ ├── identity_change.cpp │ │ │ ├── identity_change.ixx │ │ │ ├── insertion.cpp │ │ │ ├── insertion.ixx │ │ │ ├── insertion_cbmc.cpp │ │ │ ├── insertion_cbmc.ixx │ │ │ ├── random_rotation.cpp │ │ │ ├── random_rotation.ixx │ │ │ ├── random_translation.cpp │ │ │ ├── random_translation.ixx │ │ │ ├── reinsertion.cpp │ │ │ ├── reinsertion.ixx │ │ │ ├── rotation.cpp │ │ │ ├── rotation.ixx │ │ │ ├── swap_cfcmc.cpp │ │ │ ├── swap_cfcmc.ixx │ │ │ ├── swap_cfcmc_cbmc.cpp │ │ │ ├── swap_cfcmc_cbmc.ixx │ │ │ ├── translation.cpp │ │ │ ├── translation.ixx │ │ │ ├── widom.cpp │ │ │ └── widom.ixx │ │ ├── cputime.cpp │ │ ├── cputime.ixx │ │ ├── cross_system │ │ │ ├── gibbs_swap_cbmc.cpp │ │ │ ├── gibbs_swap_cbmc.ixx │ │ │ ├── gibbs_swap_cfcmc.cpp │ │ │ ├── gibbs_swap_cfcmc.ixx │ │ │ ├── gibbs_volume.cpp │ │ │ ├── gibbs_volume.ixx │ │ │ ├── parallel_tempering_swap.cpp │ │ │ └── parallel_tempering_swap.ixx │ │ ├── group │ │ │ ├── reaction.cpp │ │ │ ├── reaction.ixx │ │ │ ├── reaction_cfcmc.cpp │ │ │ ├── reaction_cfcmc.ixx │ │ │ ├── reaction_cfcmc_cbmc.cpp │ │ │ └── reaction_cfcmc_cbmc.ixx │ │ ├── mc_moves.cpp │ │ ├── mc_moves.ixx │ │ ├── move_statistics.cpp │ │ ├── move_statistics.ixx │ │ ├── move_types.cpp │ │ ├── move_types.ixx │ │ ├── probabilities.cpp │ │ ├── probabilities.ixx │ │ ├── statistics.cpp │ │ ├── statistics.ixx │ │ └── system │ │ │ ├── hybridmc.cpp │ │ │ ├── hybridmc.ixx │ │ │ ├── volume.cpp │ │ │ └── volume.ixx │ ├── molecular_dynamics.cpp │ ├── molecular_dynamics.ixx │ ├── molecule.cpp │ ├── molecule.ixx │ ├── monte_carlo.cpp │ ├── monte_carlo.ixx │ ├── monte_carlo_transition_matrix.cpp │ ├── monte_carlo_transition_matrix.ixx │ ├── opencl.cpp │ ├── opencl.ixx │ ├── potentials │ │ ├── correction_pressure.cpp │ │ ├── correction_pressure.ixx │ │ ├── correction_vdw.cpp │ │ ├── correction_vdw.ixx │ │ ├── electrostatics.cpp │ │ ├── electrostatics.ixx │ │ ├── energy_coulomb.cpp │ │ ├── energy_coulomb.ixx │ │ ├── energy_factor.cpp │ │ ├── energy_factor.ixx │ │ ├── energy_vdw.cpp │ │ ├── energy_vdw.ixx │ │ ├── gradient_coulomb.cpp │ │ ├── gradient_coulomb.ixx │ │ ├── gradient_factor.cpp │ │ ├── gradient_factor.ixx │ │ ├── gradient_vdw.cpp │ │ ├── gradient_vdw.ixx │ │ ├── hessian_coulomb.cpp │ │ ├── hessian_coulomb.ixx │ │ ├── hessian_factor.cpp │ │ ├── hessian_factor.ixx │ │ ├── hessian_vdw.cpp │ │ ├── hessian_vdw.ixx │ │ ├── tricubic_derivative_factor.cpp │ │ ├── tricubic_derivative_factor.ixx │ │ ├── tricubic_derivative_lj.cpp │ │ ├── tricubic_derivative_lj.ixx │ │ ├── tricubic_derivative_real_ewald.cpp │ │ ├── tricubic_derivative_real_ewald.ixx │ │ ├── tricubic_derivatives_external_field.cpp │ │ ├── tricubic_derivatives_external_field.ixx │ │ ├── triquintic_derivative_factor.cpp │ │ ├── triquintic_derivative_factor.ixx │ │ ├── triquintic_derivative_lj.cpp │ │ ├── triquintic_derivative_lj.ixx │ │ ├── triquintic_derivative_real_ewald.cpp │ │ ├── triquintic_derivative_real_ewald.ixx │ │ ├── triquintic_derivatives_external_field.cpp │ │ └── triquintic_derivatives_external_field.ixx │ ├── properties │ │ ├── conventional_radial_distribution_function.cpp │ │ ├── conventional_radial_distribution_function.ixx │ │ ├── density_grid.cpp │ │ ├── density_grid.ixx │ │ ├── energy.cpp │ │ ├── energy.ixx │ │ ├── energy_histogram.cpp │ │ ├── energy_histogram.ixx │ │ ├── energy_status.cpp │ │ ├── energy_status.ixx │ │ ├── energy_status_inter.cpp │ │ ├── energy_status_inter.ixx │ │ ├── energy_status_intra.cpp │ │ ├── energy_status_intra.ixx │ │ ├── enthalpy.cpp │ │ ├── enthalpy.ixx │ │ ├── enthalpy_of_adsorption.cpp │ │ ├── enthalpy_of_adsorption.ixx │ │ ├── lambda_probability_histogram.cpp │ │ ├── lambda_probability_histogram.ixx │ │ ├── loading.cpp │ │ ├── loading.ixx │ │ ├── loadings.cpp │ │ ├── loadings.ixx │ │ ├── mean_squared_displacement.cpp │ │ ├── mean_squared_displacement.ixx │ │ ├── number_of_molecules_histogram.cpp │ │ ├── number_of_molecules_histogram.ixx │ │ ├── pressure.cpp │ │ ├── pressure.ixx │ │ ├── radial_distribution_function.cpp │ │ ├── radial_distribution_function.ixx │ │ ├── sample_movies.cpp │ │ ├── sample_movies.ixx │ │ ├── simulationbox.cpp │ │ ├── simulationbox.ixx │ │ ├── temperature.cpp │ │ ├── temperature.ixx │ │ ├── transition_matrix.cpp │ │ ├── transition_matrix.ixx │ │ ├── velocity_autocorrelation_function.cpp │ │ ├── velocity_autocorrelation_function.ixx │ │ ├── widom.cpp │ │ └── widom.ixx │ ├── reaction.cpp │ ├── reaction.ixx │ ├── reactions.cpp │ ├── reactions.ixx │ ├── rigid.cpp │ ├── rigid.ixx │ ├── running_energy.cpp │ ├── running_energy.ixx │ ├── ruptura │ │ ├── breakthrough.cpp │ │ ├── breakthrough.ixx │ │ ├── breakthrough_simulation.cpp │ │ ├── breakthrough_simulation.ixx │ │ ├── equation_of_states.cpp │ │ ├── equation_of_states.ixx │ │ ├── isotherm.cpp │ │ ├── isotherm.ixx │ │ ├── isotherm_fitting.cpp │ │ ├── isotherm_fitting.ixx │ │ ├── isotherm_fitting_simulation.cpp │ │ ├── isotherm_fitting_simulation.ixx │ │ ├── mixture_prediction.cpp │ │ ├── mixture_prediction.ixx │ │ ├── mixture_prediction_simulation.cpp │ │ ├── mixture_prediction_simulation.ixx │ │ ├── multi_site_isotherm.cpp │ │ ├── multi_site_isotherm.ixx │ │ ├── pressure_range.cpp │ │ └── pressure_range.ixx │ ├── scaling.cpp │ ├── scaling.ixx │ ├── simulationbox.cpp │ ├── simulationbox.ixx │ ├── structure_properties │ │ ├── energy │ │ │ ├── energy_surface_area.cpp │ │ │ ├── energy_surface_area.ixx │ │ │ ├── energy_void_fraction.cpp │ │ │ └── energy_void_fraction.ixx │ │ ├── energy_opencl │ │ │ ├── energy_opencl_surface_area.cpp │ │ │ ├── energy_opencl_surface_area.ixx │ │ │ ├── energy_opencl_void_fraction.cpp │ │ │ └── energy_opencl_void_fraction.ixx │ │ ├── monte_carlo │ │ │ ├── pore_size_distribution.cpp │ │ │ ├── pore_size_distribution.ixx │ │ │ ├── surface_area.cpp │ │ │ ├── surface_area.ixx │ │ │ ├── void_fraction.cpp │ │ │ └── void_fraction.ixx │ │ └── monte_carlo_opencl │ │ │ ├── pore_size_distribution.cpp │ │ │ ├── pore_size_distribution.ixx │ │ │ ├── surface_area.cpp │ │ │ ├── surface_area.ixx │ │ │ ├── void_fraction.cpp │ │ │ └── void_fraction.ixx │ ├── system.cpp │ ├── system.ixx │ ├── thermostat.cpp │ ├── thermostat.ixx │ ├── units.cpp │ └── units.ixx ├── symmetrykit │ ├── skasymmetricatom.ixx │ ├── skasymmetricunit.cpp │ ├── skasymmetricunit.ixx │ ├── skatom.ixx │ ├── skatomcopy.ixx │ ├── skboundingbox.cpp │ ├── skboundingbox.ixx │ ├── skcell.cpp │ ├── skcell.ixx │ ├── skdefinitions.cpp │ ├── skdefinitions.ixx │ ├── skelement.cpp │ ├── skelement.ixx │ ├── skintegerchangeofbasis.cpp │ ├── skintegerchangeofbasis.ixx │ ├── skintegersymmetryoperationset.cpp │ ├── skintegersymmetryoperationset.ixx │ ├── skonethirdseitzmatrix.cpp │ ├── skonethirdseitzmatrix.ixx │ ├── skparser.cpp │ ├── skparser.ixx │ ├── skpointgroup.cpp │ ├── skpointgroup.ixx │ ├── skpointsymmetryset.cpp │ ├── skpointsymmetryset.ixx │ ├── skposcarlegacyparser.cpp │ ├── skposcarlegacyparser.ixx │ ├── skposcarparser.cpp │ ├── skposcarparser.ixx │ ├── skrotationalchangeofbasis.cpp │ ├── skrotationalchangeofbasis.ixx │ ├── skrotationaloccurancetable.cpp │ ├── skrotationaloccurancetable.ixx │ ├── skrotationmatrix.cpp │ ├── skrotationmatrix.ixx │ ├── skseitzintegermatrix.cpp │ ├── skseitzintegermatrix.ixx │ ├── skseitzmatrix.cpp │ ├── skseitzmatrix.ixx │ ├── skspacegroup.cpp │ ├── skspacegroup.ixx │ ├── skspacegroupdatabase.cpp │ ├── skspacegroupdatabase.ixx │ ├── skspacegroupsetting.cpp │ ├── skspacegroupsetting.ixx │ ├── skstructure.cpp │ ├── skstructure.ixx │ ├── sksymmetrycell.cpp │ ├── sksymmetrycell.ixx │ ├── sksymmetryoperationset.cpp │ ├── sksymmetryoperationset.ixx │ ├── sktransformationmatrix.cpp │ └── sktransformationmatrix.ixx └── utilitykit │ ├── factory.cpp │ └── factory.ixx └── tests ├── CMakeLists.txt ├── foundationkit-tests ├── CMakeLists.txt ├── archive.cpp ├── foundationkit-tests.vcxproj ├── main.cpp ├── packages.config └── test.bin ├── mathkit-tests ├── CMakeLists.txt ├── double3x3.cpp ├── main.cpp ├── mathkit-tests.vcxproj └── packages.config ├── raspakit-tests ├── CMakeLists.txt ├── RASPA2-ReferenceData │ └── raspa2_modification.txt ├── cbmc_interactions.cpp ├── dudlambda.cpp ├── electrostatic_field.cpp ├── electrostatic_polarization.cpp ├── electrostatic_potential.cpp ├── energy_decomposition.cpp ├── ewald.cpp ├── factories.h ├── gradients.cpp ├── grids.cpp ├── hessian_inter_lennard_jones.cpp ├── hessian_inter_real_ewald.cpp ├── insertion_deletion.cpp ├── integrators.cpp ├── main.cpp ├── mc.cpp ├── nist_water_1.cpp ├── nist_water_2.cpp ├── nist_water_3.cpp ├── nist_water_4.cpp ├── packages.config ├── pbc.cpp ├── pressure.cpp ├── raspakit-tests.vcxproj ├── rigid_gradient.cpp ├── spacegroup.cpp ├── static_energy.cpp ├── tricubic_derivative_inter_lennard_jones.cpp ├── tricubic_derivative_inter_real_ewald.cpp ├── triquintic_derivative_inter_lennard_jones.cpp └── triquintic_derivative_inter_real_ewald.cpp └── symmetrykit-tests ├── CMakeLists.txt ├── find_pointgroup.cpp ├── find_pointgroup_no_partial_occupancies.cpp ├── find_smallest_primitive_cell.cpp ├── find_smallest_primitive_cell_no_partial_occupancies.cpp ├── find_spacegroup.cpp ├── find_spacegroup_no_partial_occupancies.cpp ├── main.cpp ├── packages.config ├── spglibtestdata ├── cubic │ ├── POSCAR-195 │ ├── POSCAR-195-2 │ ├── POSCAR-196 │ ├── POSCAR-196-2 │ ├── POSCAR-197 │ ├── POSCAR-197-2 │ ├── POSCAR-198 │ ├── POSCAR-198-2 │ ├── POSCAR-199 │ ├── POSCAR-199-2 │ ├── POSCAR-200 │ ├── POSCAR-200-2 │ ├── POSCAR-205 │ ├── POSCAR-205-3 │ ├── POSCAR-206 │ ├── POSCAR-206-2 │ ├── POSCAR-207 │ ├── POSCAR-208 │ ├── POSCAR-208-2 │ ├── POSCAR-209 │ ├── POSCAR-210 │ ├── POSCAR-210-2 │ ├── POSCAR-211 │ ├── POSCAR-212 │ ├── POSCAR-212-2 │ ├── POSCAR-213 │ ├── POSCAR-213-2 │ ├── POSCAR-214 │ ├── POSCAR-214-2 │ ├── POSCAR-215 │ ├── POSCAR-215-2 │ ├── POSCAR-216 │ ├── POSCAR-216-2 │ ├── POSCAR-217 │ ├── POSCAR-217-2 │ ├── POSCAR-218 │ ├── POSCAR-218-2 │ ├── POSCAR-219 │ ├── POSCAR-219-2 │ ├── POSCAR-220 │ ├── POSCAR-220-2 │ ├── POSCAR-221 │ ├── POSCAR-221-2 │ ├── POSCAR-222 │ ├── POSCAR-222-2 │ ├── POSCAR-223 │ ├── POSCAR-223-2 │ ├── POSCAR-224 │ ├── POSCAR-224-2 │ ├── POSCAR-225 │ ├── POSCAR-225-2 │ ├── POSCAR-226 │ ├── POSCAR-226-2 │ ├── POSCAR-227 │ ├── POSCAR-227-2 │ ├── POSCAR-228 │ ├── POSCAR-228-2 │ ├── POSCAR-229 │ ├── POSCAR-229-2 │ ├── POSCAR-230 │ ├── POSCAR-230-2 │ ├── POSCAR-230-3 │ └── POSCAR-230-4 ├── distorted │ ├── POSCAR-161-1 │ ├── POSCAR-161-2 │ ├── POSCAR-36 │ ├── POSCAR-5 │ ├── POSCAR-6 │ ├── POSCAR-7-1 │ ├── POSCAR-7-2 │ └── POSCAR-8 ├── hexagonal │ ├── POSCAR-168 │ ├── POSCAR-169 │ ├── POSCAR-169-2 │ ├── POSCAR-170 │ ├── POSCAR-170-2 │ ├── POSCAR-171 │ ├── POSCAR-171-2 │ ├── POSCAR-172 │ ├── POSCAR-173 │ ├── POSCAR-173-2 │ ├── POSCAR-174 │ ├── POSCAR-174-2 │ ├── POSCAR-175 │ ├── POSCAR-175-2 │ ├── POSCAR-176 │ ├── POSCAR-176-2 │ ├── POSCAR-177 │ ├── POSCAR-179 │ ├── POSCAR-179-2 │ ├── POSCAR-180 │ ├── POSCAR-180-2 │ ├── POSCAR-181 │ ├── POSCAR-181-2 │ ├── POSCAR-182 │ ├── POSCAR-182-2 │ ├── POSCAR-183 │ ├── POSCAR-183-2 │ ├── POSCAR-184 │ ├── POSCAR-184-2 │ ├── POSCAR-185 │ ├── POSCAR-185-2 │ ├── POSCAR-186 │ ├── POSCAR-186-2 │ ├── POSCAR-187 │ ├── POSCAR-187-2 │ ├── POSCAR-188 │ ├── POSCAR-188-2 │ ├── POSCAR-189 │ ├── POSCAR-189-2 │ ├── POSCAR-190 │ ├── POSCAR-190-2 │ ├── POSCAR-191 │ ├── POSCAR-191-2 │ ├── POSCAR-192 │ ├── POSCAR-192-2 │ ├── POSCAR-193 │ ├── POSCAR-193-2 │ ├── POSCAR-194 │ └── POSCAR-194-2 ├── monoclinic │ ├── POSCAR-003 │ ├── POSCAR-004 │ ├── POSCAR-004-2 │ ├── POSCAR-005 │ ├── POSCAR-005-2 │ ├── POSCAR-006 │ ├── POSCAR-006-2 │ ├── POSCAR-007 │ ├── POSCAR-007-2 │ ├── POSCAR-008 │ ├── POSCAR-008-2 │ ├── POSCAR-009 │ ├── POSCAR-009-2 │ ├── POSCAR-010 │ ├── POSCAR-010-2 │ ├── POSCAR-011 │ ├── POSCAR-011-2 │ ├── POSCAR-012 │ ├── POSCAR-012-2 │ ├── POSCAR-012-3 │ ├── POSCAR-013 │ ├── POSCAR-013-2 │ ├── POSCAR-013-3 │ ├── POSCAR-014 │ ├── POSCAR-014-2 │ ├── POSCAR-015 │ ├── POSCAR-015-2 │ └── POSCAR-015-3 ├── orthorhombic │ ├── POSCAR-016 │ ├── POSCAR-016-2 │ ├── POSCAR-017-2 │ ├── POSCAR-018 │ ├── POSCAR-018-2 │ ├── POSCAR-019 │ ├── POSCAR-019-2 │ ├── POSCAR-020 │ ├── POSCAR-021 │ ├── POSCAR-021-2 │ ├── POSCAR-022 │ ├── POSCAR-023 │ ├── POSCAR-023-2 │ ├── POSCAR-024 │ ├── POSCAR-024-2 │ ├── POSCAR-025 │ ├── POSCAR-025-2 │ ├── POSCAR-026 │ ├── POSCAR-026-2 │ ├── POSCAR-027 │ ├── POSCAR-027-2 │ ├── POSCAR-028 │ ├── POSCAR-028-2 │ ├── POSCAR-029 │ ├── POSCAR-029-2 │ ├── POSCAR-030 │ ├── POSCAR-030-2 │ ├── POSCAR-031 │ ├── POSCAR-031-2 │ ├── POSCAR-032 │ ├── POSCAR-032-2 │ ├── POSCAR-033 │ ├── POSCAR-033-2 │ ├── POSCAR-033-3 │ ├── POSCAR-034 │ ├── POSCAR-034-2 │ ├── POSCAR-035 │ ├── POSCAR-035-2 │ ├── POSCAR-036 │ ├── POSCAR-036-2 │ ├── POSCAR-037 │ ├── POSCAR-037-2 │ ├── POSCAR-038 │ ├── POSCAR-038-2 │ ├── POSCAR-039 │ ├── POSCAR-039-2 │ ├── POSCAR-040 │ ├── POSCAR-040-2 │ ├── POSCAR-041 │ ├── POSCAR-041-2 │ ├── POSCAR-042 │ ├── POSCAR-043 │ ├── POSCAR-043-2 │ ├── POSCAR-044 │ ├── POSCAR-044-2 │ ├── POSCAR-045 │ ├── POSCAR-045-2 │ ├── POSCAR-046 │ ├── POSCAR-046-2 │ ├── POSCAR-047 │ ├── POSCAR-047-2 │ ├── POSCAR-048 │ ├── POSCAR-048-2 │ ├── POSCAR-049 │ ├── POSCAR-049-2 │ ├── POSCAR-050 │ ├── POSCAR-050-2 │ ├── POSCAR-051 │ ├── POSCAR-051-2 │ ├── POSCAR-051-3 │ ├── POSCAR-052 │ ├── POSCAR-052-2 │ ├── POSCAR-053 │ ├── POSCAR-053-2 │ ├── POSCAR-054 │ ├── POSCAR-054-2 │ ├── POSCAR-055 │ ├── POSCAR-055-2 │ ├── POSCAR-056 │ ├── POSCAR-056-2 │ ├── POSCAR-057 │ ├── POSCAR-057-2 │ ├── POSCAR-058 │ ├── POSCAR-058-2 │ ├── POSCAR-058-3 │ ├── POSCAR-059 │ ├── POSCAR-059-2 │ ├── POSCAR-060 │ ├── POSCAR-060-2 │ ├── POSCAR-060-3 │ ├── POSCAR-061 │ ├── POSCAR-061-2 │ ├── POSCAR-062 │ ├── POSCAR-062-2 │ ├── POSCAR-063 │ ├── POSCAR-063-2 │ ├── POSCAR-063-3 │ ├── POSCAR-064 │ ├── POSCAR-064-2 │ ├── POSCAR-064-3 │ ├── POSCAR-065 │ ├── POSCAR-065-2 │ ├── POSCAR-065-3 │ ├── POSCAR-066 │ ├── POSCAR-066-2 │ ├── POSCAR-067 │ ├── POSCAR-067-2 │ ├── POSCAR-067-3 │ ├── POSCAR-068 │ ├── POSCAR-068-2 │ ├── POSCAR-069 │ ├── POSCAR-069-2 │ ├── POSCAR-070 │ ├── POSCAR-070-2 │ ├── POSCAR-071 │ ├── POSCAR-071-2 │ ├── POSCAR-072 │ ├── POSCAR-072-2 │ ├── POSCAR-073 │ ├── POSCAR-073-2 │ ├── POSCAR-074 │ └── POSCAR-074-2 ├── reduction │ ├── Delaunay2D_A.data │ ├── Delaunay2D_B.data │ ├── Delaunay2D_C.data │ ├── Delaunay3D.data │ └── Niggli.data ├── tetragonal │ ├── POSCAR-075 │ ├── POSCAR-075-2 │ ├── POSCAR-076 │ ├── POSCAR-076-2 │ ├── POSCAR-077 │ ├── POSCAR-077-2 │ ├── POSCAR-077-3 │ ├── POSCAR-078 │ ├── POSCAR-078-2 │ ├── POSCAR-079 │ ├── POSCAR-079-2 │ ├── POSCAR-080 │ ├── POSCAR-080-2 │ ├── POSCAR-081 │ ├── POSCAR-081-2 │ ├── POSCAR-082 │ ├── POSCAR-082-2 │ ├── POSCAR-083 │ ├── POSCAR-083-2 │ ├── POSCAR-083-3 │ ├── POSCAR-084 │ ├── POSCAR-084-2 │ ├── POSCAR-085 │ ├── POSCAR-085-2 │ ├── POSCAR-086 │ ├── POSCAR-086-2 │ ├── POSCAR-087 │ ├── POSCAR-087-2 │ ├── POSCAR-088 │ ├── POSCAR-088-2 │ ├── POSCAR-090 │ ├── POSCAR-090-2 │ ├── POSCAR-091 │ ├── POSCAR-091-2 │ ├── POSCAR-092 │ ├── POSCAR-092-2 │ ├── POSCAR-092-3 │ ├── POSCAR-094 │ ├── POSCAR-094-2 │ ├── POSCAR-094-3 │ ├── POSCAR-095 │ ├── POSCAR-095-2 │ ├── POSCAR-096 │ ├── POSCAR-096-2 │ ├── POSCAR-097 │ ├── POSCAR-097-2 │ ├── POSCAR-098 │ ├── POSCAR-098-2 │ ├── POSCAR-099 │ ├── POSCAR-099-2 │ ├── POSCAR-100 │ ├── POSCAR-100-2 │ ├── POSCAR-102 │ ├── POSCAR-102-2 │ ├── POSCAR-103 │ ├── POSCAR-103-2 │ ├── POSCAR-104 │ ├── POSCAR-104-2 │ ├── POSCAR-105 │ ├── POSCAR-105-2 │ ├── POSCAR-106 │ ├── POSCAR-107 │ ├── POSCAR-107-2 │ ├── POSCAR-107-3 │ ├── POSCAR-108 │ ├── POSCAR-108-2 │ ├── POSCAR-109 │ ├── POSCAR-109-2 │ ├── POSCAR-110 │ ├── POSCAR-110-2 │ ├── POSCAR-111 │ ├── POSCAR-111-2 │ ├── POSCAR-112 │ ├── POSCAR-112-2 │ ├── POSCAR-113 │ ├── POSCAR-113-2 │ ├── POSCAR-114 │ ├── POSCAR-114-2 │ ├── POSCAR-115 │ ├── POSCAR-115-2 │ ├── POSCAR-115-3 │ ├── POSCAR-115-4 │ ├── POSCAR-115-5 │ ├── POSCAR-116 │ ├── POSCAR-116-2 │ ├── POSCAR-117 │ ├── POSCAR-117-2 │ ├── POSCAR-118 │ ├── POSCAR-118-2 │ ├── POSCAR-119 │ ├── POSCAR-119-2 │ ├── POSCAR-120 │ ├── POSCAR-120-2 │ ├── POSCAR-121 │ ├── POSCAR-121-2 │ ├── POSCAR-122 │ ├── POSCAR-122-2 │ ├── POSCAR-122-3 │ ├── POSCAR-123 │ ├── POSCAR-123-2 │ ├── POSCAR-123-3 │ ├── POSCAR-124 │ ├── POSCAR-124-2 │ ├── POSCAR-125 │ ├── POSCAR-125-2 │ ├── POSCAR-126 │ ├── POSCAR-126-2 │ ├── POSCAR-127 │ ├── POSCAR-127-2 │ ├── POSCAR-128 │ ├── POSCAR-128-2 │ ├── POSCAR-129 │ ├── POSCAR-129-2 │ ├── POSCAR-129-3 │ ├── POSCAR-130 │ ├── POSCAR-130-2 │ ├── POSCAR-131 │ ├── POSCAR-131-2 │ ├── POSCAR-132 │ ├── POSCAR-132-2 │ ├── POSCAR-133 │ ├── POSCAR-133-2 │ ├── POSCAR-134 │ ├── POSCAR-134-2 │ ├── POSCAR-135 │ ├── POSCAR-135-2 │ ├── POSCAR-136 │ ├── POSCAR-136-2 │ ├── POSCAR-136-3 │ ├── POSCAR-136-4 │ ├── POSCAR-136-5 │ ├── POSCAR-137 │ ├── POSCAR-137-2 │ ├── POSCAR-137-3 │ ├── POSCAR-138 │ ├── POSCAR-138-2 │ ├── POSCAR-139 │ ├── POSCAR-139-2 │ ├── POSCAR-140 │ ├── POSCAR-140-2 │ ├── POSCAR-141 │ ├── POSCAR-141-2 │ ├── POSCAR-142 │ ├── POSCAR-142-2 │ └── POSCAR-142-3 ├── triclinic │ ├── POSCAR-001 │ └── POSCAR-002 ├── trigonal │ ├── POSCAR-143 │ ├── POSCAR-143-2 │ ├── POSCAR-144 │ ├── POSCAR-144-2 │ ├── POSCAR-145 │ ├── POSCAR-145-2 │ ├── POSCAR-146 │ ├── POSCAR-146-2 │ ├── POSCAR-147 │ ├── POSCAR-147-2 │ ├── POSCAR-148 │ ├── POSCAR-148-2 │ ├── POSCAR-149 │ ├── POSCAR-149-2 │ ├── POSCAR-150 │ ├── POSCAR-150-2 │ ├── POSCAR-151 │ ├── POSCAR-151-2 │ ├── POSCAR-152 │ ├── POSCAR-152-2 │ ├── POSCAR-153 │ ├── POSCAR-154 │ ├── POSCAR-154-2 │ ├── POSCAR-154-3 │ ├── POSCAR-155 │ ├── POSCAR-155-2 │ ├── POSCAR-156 │ ├── POSCAR-156-2 │ ├── POSCAR-157 │ ├── POSCAR-157-2 │ ├── POSCAR-158 │ ├── POSCAR-158-2 │ ├── POSCAR-159 │ ├── POSCAR-159-2 │ ├── POSCAR-160 │ ├── POSCAR-160-2 │ ├── POSCAR-161 │ ├── POSCAR-161-2 │ ├── POSCAR-162 │ ├── POSCAR-162-2 │ ├── POSCAR-163 │ ├── POSCAR-163-2 │ ├── POSCAR-164 │ ├── POSCAR-164-2 │ ├── POSCAR-165 │ ├── POSCAR-165-2 │ ├── POSCAR-166 │ ├── POSCAR-166-2 │ ├── POSCAR-167 │ ├── POSCAR-167-2 │ └── POSCAR-167-3 └── virtual_structure │ ├── POSCAR-1-221-33 │ ├── POSCAR-1-222-33 │ ├── POSCAR-1-223-33 │ ├── POSCAR-1-224-33 │ ├── POSCAR-1-227-73 │ ├── POSCAR-1-227-93 │ ├── POSCAR-1-227-99 │ ├── POSCAR-1-230-conv-56 │ ├── POSCAR-1-230-prim-33 │ ├── POSCAR-1-bcc-33 │ ├── POSCAR-10-221-18 │ ├── POSCAR-10-223-18 │ ├── POSCAR-10-227-50 │ ├── POSCAR-102-224-13 │ ├── POSCAR-104-222-13 │ ├── POSCAR-105-223-13 │ ├── POSCAR-109-227-13 │ ├── POSCAR-11-227-48 │ ├── POSCAR-110-230-conv-15 │ ├── POSCAR-110-230-prim-13 │ ├── POSCAR-111-221-11 │ ├── POSCAR-111-224-11 │ ├── POSCAR-111-227-66 │ ├── POSCAR-112-222-11 │ ├── POSCAR-112-223-11 │ ├── POSCAR-113-227-68 │ ├── POSCAR-115-221-14 │ ├── POSCAR-115-223-14 │ ├── POSCAR-115-227-33 │ ├── POSCAR-116-230-conv-34 │ ├── POSCAR-117-230-conv-33 │ ├── POSCAR-118-222-14 │ ├── POSCAR-118-224-14 │ ├── POSCAR-12-221-19 │ ├── POSCAR-12-224-19 │ ├── POSCAR-12-227-21 │ ├── POSCAR-12-227-83 │ ├── POSCAR-120-230-conv-16 │ ├── POSCAR-120-230-prim-14 │ ├── POSCAR-122-230-conv-13 │ ├── POSCAR-122-230-prim-11 │ ├── POSCAR-123-221-05 │ ├── POSCAR-126-222-05 │ ├── POSCAR-13-222-18 │ ├── POSCAR-13-224-18 │ ├── POSCAR-13-227-49 │ ├── POSCAR-13-230-conv-44 │ ├── POSCAR-131-223-05 │ ├── POSCAR-134-224-05 │ ├── POSCAR-14-227-47 │ ├── POSCAR-14-227-51 │ ├── POSCAR-14-230-conv-45 │ ├── POSCAR-142-230-conv-05 │ ├── POSCAR-142-230-prim-05 │ ├── POSCAR-146-221-27 │ ├── POSCAR-146-222-27 │ ├── POSCAR-146-223-27 │ ├── POSCAR-146-224-27 │ ├── POSCAR-146-227-92 │ ├── POSCAR-146-230-conv-36 │ ├── POSCAR-146-230-conv-55 │ ├── POSCAR-146-230-prim-27 │ ├── POSCAR-146-bcc-27 │ ├── POSCAR-148-221-15 │ ├── POSCAR-148-222-15 │ ├── POSCAR-148-223-15 │ ├── POSCAR-148-224-15 │ ├── POSCAR-148-227-70 │ ├── POSCAR-148-230-conv-17 │ ├── POSCAR-148-230-conv-37 │ ├── POSCAR-148-230-prim-15 │ ├── POSCAR-148-bcc-15 │ ├── POSCAR-15-222-19 │ ├── POSCAR-15-223-19 │ ├── POSCAR-15-230-conv-21 │ ├── POSCAR-15-230-conv-22 │ ├── POSCAR-15-230-prim-18 │ ├── POSCAR-15-230-prim-19 │ ├── POSCAR-15-bcc-18 │ ├── POSCAR-15-bcc-19 │ ├── POSCAR-155-221-17 │ ├── POSCAR-155-222-17 │ ├── POSCAR-155-223-17 │ ├── POSCAR-155-224-17 │ ├── POSCAR-155-227-72 │ ├── POSCAR-155-230-conv-19 │ ├── POSCAR-155-230-conv-38 │ ├── POSCAR-155-230-prim-17 │ ├── POSCAR-155-bcc-17 │ ├── POSCAR-16-221-20 │ ├── POSCAR-16-222-20 │ ├── POSCAR-16-223-20 │ ├── POSCAR-16-224-20 │ ├── POSCAR-16-227-84 │ ├── POSCAR-160-221-16 │ ├── POSCAR-160-224-16 │ ├── POSCAR-160-227-16 │ ├── POSCAR-160-227-71 │ ├── POSCAR-160-fcc │ ├── POSCAR-161-222-16 │ ├── POSCAR-161-223-16 │ ├── POSCAR-161-230-conv-18 │ ├── POSCAR-161-230-prim-16 │ ├── POSCAR-161-bcc-16 │ ├── POSCAR-166-221-06 │ ├── POSCAR-166-224-06 │ ├── POSCAR-166-227-06 │ ├── POSCAR-166-227-38 │ ├── POSCAR-167-222-06 │ ├── POSCAR-167-223-06 │ ├── POSCAR-167-230-conv-06 │ ├── POSCAR-167-230-prim-06 │ ├── POSCAR-167-bcc-6 │ ├── POSCAR-17-227-60 │ ├── POSCAR-17-227-85 │ ├── POSCAR-17-230-conv-46 │ ├── POSCAR-18-227-86 │ ├── POSCAR-19-227-59 │ ├── POSCAR-19-227-89 │ ├── POSCAR-19-230-conv-51 │ ├── POSCAR-195-221-07 │ ├── POSCAR-195-222-07 │ ├── POSCAR-195-223-07 │ ├── POSCAR-195-224-07 │ ├── POSCAR-198-227-40 │ ├── POSCAR-198-230-conv-20 │ ├── POSCAR-199-230-conv-07 │ ├── POSCAR-199-230-prim-07 │ ├── POSCAR-2-221-28 │ ├── POSCAR-2-222-28 │ ├── POSCAR-2-223-28 │ ├── POSCAR-2-224-28 │ ├── POSCAR-2-227-41 │ ├── POSCAR-2-227-74 │ ├── POSCAR-2-227-94 │ ├── POSCAR-2-230-conv-39 │ ├── POSCAR-2-230-conv-57 │ ├── POSCAR-2-230-prim-28 │ ├── POSCAR-2-bcc-28 │ ├── POSCAR-20-227-53 │ ├── POSCAR-20-227-90 │ ├── POSCAR-20-230-conv-53 │ ├── POSCAR-200-221-02 │ ├── POSCAR-200-223-02 │ ├── POSCAR-201-222-02 │ ├── POSCAR-201-224-02 │ ├── POSCAR-205-230-conv-08 │ ├── POSCAR-206-230-conv-02 │ ├── POSCAR-206-230-prim-02 │ ├── POSCAR-207-221-04 │ ├── POSCAR-207-222-04 │ ├── POSCAR-208-223-04 │ ├── POSCAR-208-224-04 │ ├── POSCAR-21-221-23 │ ├── POSCAR-21-222-23 │ ├── POSCAR-21-223-23 │ ├── POSCAR-21-224-23 │ ├── POSCAR-21-230-conv-49 │ ├── POSCAR-212-227-19 │ ├── POSCAR-213-230-conv-09 │ ├── POSCAR-214-230-conv-04 │ ├── POSCAR-214-230-prim-04 │ ├── POSCAR-215-221-03 │ ├── POSCAR-215-224-03 │ ├── POSCAR-215-227-18 │ ├── POSCAR-216-227-03 │ ├── POSCAR-218-222-03 │ ├── POSCAR-218-223-03 │ ├── POSCAR-22-230-conv-26 │ ├── POSCAR-22-230-prim-23 │ ├── POSCAR-220-230-conv-03 │ ├── POSCAR-220-230-prim-03 │ ├── POSCAR-221-221-01 │ ├── POSCAR-222-222-01 │ ├── POSCAR-223-223-01 │ ├── POSCAR-224-224-01 │ ├── POSCAR-227-227-01 │ ├── POSCAR-230-230-conv-01 │ ├── POSCAR-230-230-conv-62 │ ├── POSCAR-230-230-prim-01 │ ├── POSCAR-24-230-conv-23 │ ├── POSCAR-24-230-prim-20 │ ├── POSCAR-25-221-21 │ ├── POSCAR-25-223-21 │ ├── POSCAR-25-227-54 │ ├── POSCAR-26-227-64 │ ├── POSCAR-27-230-conv-48 │ ├── POSCAR-28-227-62 │ ├── POSCAR-29-230-conv-52 │ ├── POSCAR-3-221-29 │ ├── POSCAR-3-222-29 │ ├── POSCAR-3-223-29 │ ├── POSCAR-3-224-29 │ ├── POSCAR-3-227-82 │ ├── POSCAR-3-227-95 │ ├── POSCAR-3-230-conv-58 │ ├── POSCAR-30-227-65 │ ├── POSCAR-31-227-58 │ ├── POSCAR-32-230-conv-47 │ ├── POSCAR-33-227-63 │ ├── POSCAR-34-222-21 │ ├── POSCAR-34-224-21 │ ├── POSCAR-35-221-22 │ ├── POSCAR-35-224-22 │ ├── POSCAR-35-227-87 │ ├── POSCAR-37-222-22 │ ├── POSCAR-37-223-22 │ ├── POSCAR-38-221-26 │ ├── POSCAR-39-224-26 │ ├── POSCAR-4-227-77 │ ├── POSCAR-4-227-81 │ ├── POSCAR-4-227-96 │ ├── POSCAR-4-230-conv-59 │ ├── POSCAR-40-223-26 │ ├── POSCAR-41-222-26 │ ├── POSCAR-43-230-conv-25 │ ├── POSCAR-43-230-conv-29 │ ├── POSCAR-43-230-prim-22 │ ├── POSCAR-43-230-prim-26 │ ├── POSCAR-43-bcc-22 │ ├── POSCAR-43-bcc-26 │ ├── POSCAR-44-227-24 │ ├── POSCAR-45-230-conv-24 │ ├── POSCAR-45-230-prim-21 │ ├── POSCAR-46-227-28 │ ├── POSCAR-47-221-08 │ ├── POSCAR-47-223-08 │ ├── POSCAR-48-222-08 │ ├── POSCAR-48-224-08 │ ├── POSCAR-5-221-32 │ ├── POSCAR-5-222-32 │ ├── POSCAR-5-223-32 │ ├── POSCAR-5-224-32 │ ├── POSCAR-5-227-45 │ ├── POSCAR-5-227-75 │ ├── POSCAR-5-227-98 │ ├── POSCAR-5-230-conv-40 │ ├── POSCAR-5-230-conv-43 │ ├── POSCAR-5-230-conv-61 │ ├── POSCAR-5-230-prim-29 │ ├── POSCAR-5-230-prim-32 │ ├── POSCAR-5-bcc-29 │ ├── POSCAR-5-bcc-32 │ ├── POSCAR-51-227-29 │ ├── POSCAR-53-227-32 │ ├── POSCAR-54-230-conv-30 │ ├── POSCAR-6-221-30 │ ├── POSCAR-6-223-30 │ ├── POSCAR-6-227-79 │ ├── POSCAR-61-230-conv-31 │ ├── POSCAR-62-227-31 │ ├── POSCAR-65-221-09 │ ├── POSCAR-66-223-09 │ ├── POSCAR-67-224-09 │ ├── POSCAR-68-222-09 │ ├── POSCAR-7-222-30 │ ├── POSCAR-7-224-30 │ ├── POSCAR-7-227-78 │ ├── POSCAR-7-227-80 │ ├── POSCAR-7-230-conv-60 │ ├── POSCAR-70-230-conv-11 │ ├── POSCAR-70-230-prim-09 │ ├── POSCAR-70-bcc-9 │ ├── POSCAR-73-230-conv-10 │ ├── POSCAR-73-230-prim-08 │ ├── POSCAR-74-227-09 │ ├── POSCAR-75-221-25 │ ├── POSCAR-75-222-25 │ ├── POSCAR-76-227-61 │ ├── POSCAR-77-223-25 │ ├── POSCAR-77-224-25 │ ├── POSCAR-78-227-91 │ ├── POSCAR-78-230-conv-54 │ ├── POSCAR-8-221-31 │ ├── POSCAR-8-224-31 │ ├── POSCAR-8-227-44 │ ├── POSCAR-8-227-97 │ ├── POSCAR-80-230-conv-28 │ ├── POSCAR-80-230-prim-25 │ ├── POSCAR-81-221-24 │ ├── POSCAR-81-222-24 │ ├── POSCAR-81-223-24 │ ├── POSCAR-81-224-24 │ ├── POSCAR-81-227-88 │ ├── POSCAR-81-230-conv-50 │ ├── POSCAR-82-230-conv-27 │ ├── POSCAR-82-230-prim-24 │ ├── POSCAR-83-221-10 │ ├── POSCAR-84-223-10 │ ├── POSCAR-85-222-10 │ ├── POSCAR-86-224-10 │ ├── POSCAR-88-230-conv-12 │ ├── POSCAR-88-230-prim-10 │ ├── POSCAR-89-221-12 │ ├── POSCAR-89-222-12 │ ├── POSCAR-9-222-31 │ ├── POSCAR-9-223-31 │ ├── POSCAR-9-227-43 │ ├── POSCAR-9-230-conv-41 │ ├── POSCAR-9-230-conv-42 │ ├── POSCAR-9-230-prim-30 │ ├── POSCAR-9-230-prim-31 │ ├── POSCAR-9-bcc-30 │ ├── POSCAR-9-bcc-31 │ ├── POSCAR-91-227-67 │ ├── POSCAR-92-227-35 │ ├── POSCAR-92-230-conv-35 │ ├── POSCAR-93-223-12 │ ├── POSCAR-93-224-12 │ ├── POSCAR-95-227-36 │ ├── POSCAR-95-230-conv-32 │ ├── POSCAR-96-227-69 │ ├── POSCAR-98-230-conv-14 │ ├── POSCAR-98-230-prim-12 │ └── POSCAR-99-221-13 ├── symmetrykit-tests.vcxproj └── transformation_matrix.cpp /.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: Google 2 | ColumnLimit: 120 3 | BreakBeforeBraces: Allman -------------------------------------------------------------------------------- /.github/workflows/pypa-publish.yml: -------------------------------------------------------------------------------- 1 | name: pypi 2 | on: 3 | workflow_dispatch: 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | container: 9 | image: ghcr.io/iraspa/ubuntu-22-llvm-18:latest 10 | strategy: 11 | matrix: 12 | python-version: [3.10, 3.11, 3.12] 13 | 14 | steps: 15 | - name: Checkout code 16 | uses: actions/checkout@v3 17 | 18 | - name: Set up Python 19 | uses: actions/setup-python@v5 20 | with: 21 | python-version: ${{ matrix.python-version }} 22 | 23 | - name: Install dependencies 24 | run: | 25 | python -m pip install --upgrade pip 26 | if [ -f "requirements.txt" ]; then pip install -r requirements.txt; fi 27 | 28 | - name: Build package 29 | run: | 30 | python -m pip install build 31 | python -m build 32 | 33 | - name: Publish to PyPI 34 | env: 35 | TWINE_USERNAME: __token__ 36 | TWINE_PASSWORD: ${{ secrets.TESTPYPI_TOKEN }} 37 | run: | 38 | python -m pip install twine 39 | twine upload -r testpypi dist/* 40 | 41 | -------------------------------------------------------------------------------- /benchmarks/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | include(FetchContent) 2 | FetchContent_Declare(googlebenchmark 3 | GIT_REPOSITORY https://github.com/google/benchmark.git 4 | GIT_TAG main) # need main for benchmark::benchmark 5 | 6 | if (MSVC) 7 | set(gtest_force_shared_crt on) # needed to avoid error LNK2038 8 | endif() 9 | 10 | FetchContent_MakeAvailable(googlebenchmark) 11 | 12 | add_subdirectory(raspakit-benchmarks) 13 | -------------------------------------------------------------------------------- /benchmarks/raspakit-benchmarks/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char** argv) 4 | { 5 | ::benchmark::Initialize(&argc, argv); 6 | ::benchmark::RunSpecifiedBenchmarks(); 7 | } 8 | -------------------------------------------------------------------------------- /data/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | install(DIRECTORY forcefields DESTINATION share/raspa3 COMPONENT app) 2 | install(DIRECTORY molecules DESTINATION share/raspa3 COMPONENT app) 3 | install(DIRECTORY manual DESTINATION share/raspa3 COMPONENT manual) 4 | -------------------------------------------------------------------------------- /data/manual/raspa-manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/data/manual/raspa-manual.pdf -------------------------------------------------------------------------------- /data/molecules/example_definitions/co2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /data/molecules/example_definitions/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /data/molecules/example_definitions/n2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 126.192, 3 | "CriticalPressure" : 3395800.0, 4 | "AcentricFactor" : 0.0372, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["N_n2", [0.0, 0.0, 0.55]], 9 | ["N_com", [0.0, 0.0, 0.0]], 10 | ["N_n2", [0.0, 0.0, -0.55]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /docker/x86_64/fedora-40/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM fedora:40 2 | 3 | RUN \ 4 | dnf update -y && \ 5 | dnf update -y && \ 6 | dnf install -y 'dnf-command(config-manager)' && \ 7 | dnf install -y --setopt=install_weak_deps=False wget git rpm-build && \ 8 | dnf install -y --setopt=install_weak_deps=False llvm cmake clang clang-tools-extra ninja-build && \ 9 | dnf install -y --setopt=install_weak_deps=False libomp-devel lld libomp-devel libcxx libcxxabi libcxx-devel libcxxabi-devel libcxx-static libcxxabi-static && \ 10 | dnf install -y --setopt=install_weak_deps=False lapack-devel lapack64 blas64 && \ 11 | dnf install -y --setopt=install_weak_deps=False python3 python3-devel python3-pybind11 && \ 12 | dnf install -y --setopt=install_weak_deps=False pybind11-devel && \ 13 | dnf clean all 14 | -------------------------------------------------------------------------------- /docker/x86_64/fedora-41/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM fedora:41 2 | 3 | RUN \ 4 | dnf update -y && \ 5 | dnf install -y --setopt=install_weak_deps=False llvm cmake clang clang-tools-extra ninja-build && \ 6 | dnf install -y --setopt=install_weak_deps=False wget git rpm-build && \ 7 | dnf install -y --setopt=install_weak_deps=False libomp-devel libcxx libcxxabi libcxx-devel libcxxabi-devel libcxx-static libcxxabi-static && \ 8 | dnf install -y --setopt=install_weak_deps=False lapack-devel lapack64 blas64 && \ 9 | dnf install -y --setopt=install_weak_deps=False python3 python3-devel python3-pybind11 && \ 10 | dnf install -y --setopt=install_weak_deps=False pybind11-devel && \ 11 | dnf clean all 12 | -------------------------------------------------------------------------------- /docker/x86_64/ubuntu-24/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:24.04 2 | 3 | RUN \ 4 | apt-get update && \ 5 | DEBIAN_FRONTEND=noninteractive TZ=Europe/Amsterdam apt-get -y install tzdata && \ 6 | apt-get install -y --no-install-recommends git ca-certificates cmake ninja-build libomp5 binutils-dev && \ 7 | apt-get install -y --no-install-recommends llvm lld clang clang-tools clang-tidy libc++-dev libc++abi-dev libomp-18-dev && \ 8 | apt-get install -y --no-install-recommends python3 pybind11-dev python3-pybind11 && \ 9 | apt-get install -y --no-install-recommends liblapack64-dev libblas64-dev && \ 10 | apt-get install -y --no-install-recommends libhdf5-cpp-103 libhdf5-dev python3-h5py python3-tables && \ 11 | apt-get clean 12 | 13 | -------------------------------------------------------------------------------- /docs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_program(DOXYGEN_PATH doxygen REQUIRED) 2 | 3 | if(DOXYGEN_PATH_NOTFOUND) 4 | message(FATAL_ERROR "Doxygen is needed to build the documentation. Please install it on your system") 5 | else() 6 | message(STATUS "Doxygen found.") 7 | 8 | file(DOWNLOAD https://raw.githubusercontent.com/jothepro/doxygen-awesome-css/v2.3.1/doxygen-awesome.css 9 | ${CMAKE_CURRENT_LIST_DIR}/doxygen-awesome.css) 10 | file(DOWNLOAD https://raw.githubusercontent.com/jothepro/doxygen-awesome-css/v2.3.1/doxygen-awesome-sidebar-only.css 11 | ${CMAKE_CURRENT_LIST_DIR}/doxygen-awesome-sidebar-only.css) 12 | 13 | add_custom_target(documentation COMMAND ${DOXYGEN_PATH} ${CMAKE_CURRENT_LIST_DIR}/Doxyfile WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 14 | BYPRODUCTS ${CMAKE_BINARY_DIR}/html/index.html) 15 | add_custom_command( 16 | TARGET documentation POST_BUILD COMMAND echo "Documentation successfully generated. You can preview at: ${CMAKE_BINARY_DIR}/html/index.html") 17 | endif() 18 | -------------------------------------------------------------------------------- /docs/examples.md: -------------------------------------------------------------------------------- 1 | # Examples 2 | 3 | ### Basic 4 | 1. \subpage basic1 -------------------------------------------------------------------------------- /docs/manual.md: -------------------------------------------------------------------------------- 1 | # User Manual 2 | 3 | - \subpage manual_main 4 | - \subpage installing 5 | - \subpage compiling 6 | - \subpage running 7 | - \subpage units 8 | - \subpage commands -------------------------------------------------------------------------------- /docs/manual/figure_binary_packages.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/docs/manual/figure_binary_packages.jpg -------------------------------------------------------------------------------- /docs/manual/figure_binary_packages.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/docs/manual/figure_binary_packages.pdf -------------------------------------------------------------------------------- /docs/manual/nu-110.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/docs/manual/nu-110.jpg -------------------------------------------------------------------------------- /docs/manual/rho.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/docs/manual/rho.jpg -------------------------------------------------------------------------------- /env.yml: -------------------------------------------------------------------------------- 1 | name: raspa 2 | channels: 3 | - conda-forge 4 | - pkgs/main 5 | dependencies: 6 | - clang 7 | - clangxx 8 | - clang-tools 9 | - llvm-tools 10 | - libcxx 11 | - libcxx-devel 12 | - llvm-openmp 13 | - lld 14 | - cmake 15 | - ninja 16 | - python=3.12 17 | - hdf5 18 | - lapack 19 | - blas 20 | - zlib 21 | - gtest 22 | -------------------------------------------------------------------------------- /examples/advanced/10_hmc_cfcmc_co2_in_mfi/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/advanced/10_hmc_cfcmc_co2_in_mfi/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/advanced/10_hmc_cfcmc_co2_in_mfi/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType": "MonteCarlo", 3 | "NumberOfCycles": 10000, 4 | "NumberOfInitializationCycles": 5000, 5 | "NumberOfEquilibrationCycles": 5000, 6 | "PrintEvery": 1000, 7 | "Systems": [ 8 | { 9 | "Type": "Framework", 10 | "Name": "MFI_SI", 11 | "NumberOfUnitCells": [ 12 | 2, 13 | 2, 14 | 2 15 | ], 16 | "ExternalTemperature": 353.0, 17 | "ExternalPressure": 1.0e5, 18 | "ChargeMethod": "Ewald", 19 | "HybridMCProbability": 0.01, 20 | "HybridMCMoveNumberOfSteps": 100, 21 | "TimeStep": 0.005, 22 | "Ensemble": "NVE" 23 | } 24 | ], 25 | "Components": [ 26 | { 27 | "Name": "CO2", 28 | "MoleculeDefinition": "ExampleDefinitions", 29 | "FugacityCoefficient": 1.0, 30 | "ThermodynamicIntegration": true, 31 | "TranslationProbability": 0.5, 32 | "RotationProbability": 0.5, 33 | "CFCMC_CBMC_SwapProbability": 1.0, 34 | "CreateNumberOfMolecules": 0 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /examples/advanced/7_mc_gibbs_co2/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/advanced/7_mc_gibbs_co2/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/advanced/7_mc_gibbs_co2/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/advanced/7_mc_gibbs_co2/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 20000, 4 | "NumberOfInitializationCycles" : 10000, 5 | "NumberOfEquilibrationCycles" : 10000, 6 | "PrintEvery" : 1000, 7 | 8 | "Systems" : 9 | [ 10 | { 11 | "Type" : "Box", 12 | "BoxLengths" : [30.0, 30.0, 30.0], 13 | "ExternalTemperature" : 240.0, 14 | "ChargeMethod" : "Ewald", 15 | "GibbsVolumeMoveProbability" : 0.01 16 | }, 17 | { 18 | "Type" : "Box", 19 | "BoxLengths" : [30.0, 30.0, 30.0], 20 | "ExternalTemperature" : 240.0, 21 | "ChargeMethod" : "Ewald", 22 | "GibbsVolumeMoveProbability" : 0.01 23 | } 24 | ], 25 | 26 | "Components" : 27 | [ 28 | { 29 | "Name" : "CO2", 30 | "MoleculeDefinition" : "ExampleDefinitions", 31 | "TranslationProbability" : 0.5, 32 | "RotationProbability" : 0.5, 33 | "ReinsertionProbability" : 0.5, 34 | "Gibbs_CFCMC_SwapProbability" : 1.0, 35 | "CreateNumberOfMolecules" : [256, 256] 36 | } 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /examples/advanced/9_mc_cfcmc_co2_in_mfi/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/advanced/9_mc_cfcmc_co2_in_mfi/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/advanced/9_mc_cfcmc_co2_in_mfi/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 100000, 4 | "NumberOfInitializationCycles" : 50000, 5 | "NumberOfEquilibrationCycles" : 50000, 6 | "PrintEvery" : 1000, 7 | 8 | "Systems" : 9 | [ 10 | { 11 | "Type" : "Framework", 12 | "Name" : "MFI_SI", 13 | "NumberOfUnitCells" : [2, 2, 2], 14 | "ExternalTemperature" : 353.0, 15 | "ExternalPressure" : 1.0e5, 16 | "ChargeMethod" : "Ewald", 17 | "ComputeDensityGrid" : true, 18 | "SampleDensityGridEvery" : 10, 19 | "WriteDensityGridEvery" : 5000, 20 | "DensityGridSize" : [128, 128, 128] 21 | } 22 | ], 23 | 24 | "Components" : 25 | [ 26 | { 27 | "Name" : "CO2", 28 | "MoleculeDefinition" : "ExampleDefinitions", 29 | "FugacityCoefficient" : 1.0, 30 | "ThermodynamicIntegration" : true, 31 | "TranslationProbability" : 0.5, 32 | "RotationProbability" : 0.5, 33 | "ReinsertionProbability" : 0.5, 34 | "CFCMC_CBMC_SwapProbability" : 1.0, 35 | "CreateNumberOfMolecules" : 0 36 | } 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /examples/auxiliary/6_make_grids/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/auxiliary/6_make_grids/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/auxiliary/6_make_grids/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/auxiliary/6_make_grids/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 100000, 4 | "NumberOfInitializationCycles" : 0, 5 | "NumberOfEquilibrationCycles" : 50000, 6 | "PrintEvery" : 5000, 7 | 8 | "Systems" : [ 9 | { 10 | "Type" : "Framework", 11 | "Name" : "IRMOF-1", 12 | "NumberOfUnitCells" : [2, 2, 2], 13 | "ChargeMethod" : "Ewald", 14 | "CutOff" : 12.0, 15 | "ExternalTemperature" : 298.0, 16 | "ExternalPressure" : 1e5 17 | } 18 | ], 19 | 20 | "Components" : [ 21 | { 22 | "Name" : "CO2", 23 | "ThermodynamicIntegration" : true, 24 | "TranslationProbability" : 0.5, 25 | "RotationProbability" : 0.5, 26 | "ReinsertionProbability" : 0.5, 27 | "CFCMC_CBMC_SwapProbability" : 1.0, 28 | "CreateNumberOfMolecules" :16 29 | } 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /examples/auxiliary/8_charge_equilibration/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/auxiliary/8_charge_equilibration/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/auxiliary/8_charge_equilibration/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 0, 4 | "NumberOfInitializationCycles" : 0, 5 | "NumberOfEquilibrationCycles" : 0, 6 | "PrintEvery" : 5000, 7 | 8 | "Systems" : [ 9 | { 10 | "Type" : "Framework", 11 | "Name" : "IRMOF-1", 12 | "NumberOfUnitCells" : [1, 1, 1], 13 | "UseChargesFrom" : "ChargeEquilibration", 14 | "ChargeMethod" : "Ewald", 15 | "ExternalTemperature" : 300.0 16 | } 17 | ], 18 | 19 | "Components" : [ 20 | { 21 | "Name" : "methane", 22 | "TranslationProbability" : 1.0, 23 | "CreateNumberOfMolecules" :0 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /examples/basic/10_mc_henry_coefficient_of_co2_n2_methane_in_mfi/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/10_mc_henry_coefficient_of_co2_n2_methane_in_mfi/N2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 126.192, 3 | "CriticalPressure" : 3395800.0, 4 | "AcentricFactor" : 0.0372, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["N_n2", [0.0, 0.0, 1.149]], 9 | ["N_com", [0.0, 0.0, 0.0]], 10 | ["N_n2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/10_mc_henry_coefficient_of_co2_n2_methane_in_mfi/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/basic/10_mc_henry_coefficient_of_co2_n2_methane_in_mfi/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/10_mc_henry_coefficient_of_co2_n2_methane_in_mfi/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 20000, 4 | "NumberOfInitializationCycles" : 0, 5 | "PrintEvery" : 1000, 6 | 7 | "ForceField" : ".", 8 | 9 | "Systems" : [ 10 | { 11 | "Type" : "Framework", 12 | "Name" : "MFI_SI", 13 | "NumberOfUnitCells" : [2, 2, 2], 14 | "ExternalTemperature" : 300.0, 15 | "ExternalPressure" : 1.0e5, 16 | "ChargeMethod" : "None" 17 | } 18 | ], 19 | 20 | "Components" : [ 21 | { 22 | "Name" : "CO2", 23 | "WidomProbability" : 1.0, 24 | "CreateNumberOfMolecules" : 0 25 | }, 26 | { 27 | "Name" : "N2", 28 | "WidomProbability" : 1.0, 29 | "CreateNumberOfMolecules" : 0 30 | }, 31 | { 32 | "Name" : "methane", 33 | "WidomProbability" : 1.0, 34 | "CreateNumberOfMolecules" : 0 35 | } 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /examples/basic/11_md_rdf_water_box/force_field.json: -------------------------------------------------------------------------------- 1 | { 2 | "PseudoAtoms" : 3 | [ 4 | { 5 | "name" : "Ow", 6 | "framework" : false, 7 | "print_to_output" : true, 8 | "element" : "O", 9 | "print_as" : "O", 10 | "mass" : 15.9996, 11 | "charge" : 0.0 12 | }, 13 | { 14 | "name" : "Hw", 15 | "framework" : false, 16 | "print_to_output" : true, 17 | "element" : "H", 18 | "print_as" : "H", 19 | "mass" : 1.0008, 20 | "charge" : 0.241 21 | }, 22 | { 23 | "name" : "Lw", 24 | "framework" : false, 25 | "print_to_output" : false, 26 | "element" : "", 27 | "print_as" : "", 28 | "mass" : 0.0, 29 | "charge" : -0.241 30 | } 31 | ], 32 | "SelfInteractions" : 33 | [ 34 | { 35 | "name" : "Ow", 36 | "type" : "lennard-jones", 37 | "parameters" : [89.633, 3.097] 38 | } 39 | ], 40 | "MixingRule" : "Lorentz-Berthelot", 41 | "TruncationMethod" : "shifted", 42 | "TailCorrections" : false 43 | } 44 | -------------------------------------------------------------------------------- /examples/basic/11_md_rdf_water_box/out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/examples/basic/11_md_rdf_water_box/out -------------------------------------------------------------------------------- /examples/basic/11_md_rdf_water_box/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/11_md_rdf_water_box/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MolecularDynamics", 3 | "NumberOfCycles" : 10000, 4 | "NumberOfInitializationCycles" : 5000, 5 | "NumberOfEquilibrationCycles" : 20000, 6 | "PrintEvery" : 5000, 7 | 8 | "Systems" : 9 | [ 10 | { 11 | "Type" : "Box", 12 | "BoxLengths" : [24.83, 24.83, 24.83], 13 | "ExternalTemperature" : 298.0, 14 | "Ensemble" : "NVT", 15 | "ChargeMethod" : "Ewald", 16 | "OutputPDBMovie" : false, 17 | "SampleMovieEvery" : 10, 18 | "ComputeConventionalRDF" : true, 19 | "NumberOfBinsConventionalRDF" : 128, 20 | "RangeConventionalRDF" : 12.0, 21 | "WriteConventionalRDFEvery" : 100 22 | } 23 | ], 24 | 25 | "Components" : 26 | [ 27 | { 28 | "Name" : "water", 29 | "TranslationProbability" : 0.5, 30 | "RotationProbability" : 0.5, 31 | "ReinsertionProbability" : 1.0, 32 | "CreateNumberOfMolecules" : 512 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /examples/basic/11_md_rdf_water_box/water.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 647.096, 3 | "CriticalPressure" : 2.2064e7, 4 | "AcentricFactor" : 0.3442920843, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["Ow",[ 0.0, 0.0, 0.0]], 9 | ["Hw",[-0.75695032726366118157, 0.0, -0.58588227661829499395]], 10 | ["Hw",[ 0.75695032726366118157, 0.0, -0.58588227661829499395]], 11 | ["Lw",[ 0.0, -0.57154330164408200866, 0.40415127656087122858]], 12 | ["Lw",[ 0.0, 0.57154330164408200866, 0.40415127656087122858]] 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /examples/basic/12_mc_rdf_water_box/force_field.json: -------------------------------------------------------------------------------- 1 | { 2 | "PseudoAtoms" : 3 | [ 4 | { 5 | "name" : "Ow", 6 | "framework" : false, 7 | "print_to_output" : true, 8 | "element" : "O", 9 | "print_as" : "O", 10 | "mass" : 15.9996, 11 | "charge" : 0.0 12 | }, 13 | { 14 | "name" : "Hw", 15 | "framework" : false, 16 | "print_to_output" : true, 17 | "element" : "H", 18 | "print_as" : "H", 19 | "mass" : 1.0008, 20 | "charge" : 0.241 21 | }, 22 | { 23 | "name" : "Lw", 24 | "framework" : false, 25 | "print_to_output" : false, 26 | "element" : "", 27 | "print_as" : "", 28 | "mass" : 0.0, 29 | "charge" : -0.241 30 | } 31 | ], 32 | "SelfInteractions" : 33 | [ 34 | { 35 | "name" : "Ow", 36 | "type" : "lennard-jones", 37 | "parameters" : [89.633, 3.097] 38 | } 39 | ], 40 | "MixingRule" : "Lorentz-Berthelot", 41 | "TruncationMethod" : "shifted", 42 | "TailCorrections" : false 43 | } 44 | -------------------------------------------------------------------------------- /examples/basic/12_mc_rdf_water_box/out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/examples/basic/12_mc_rdf_water_box/out -------------------------------------------------------------------------------- /examples/basic/12_mc_rdf_water_box/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/12_mc_rdf_water_box/run.py: -------------------------------------------------------------------------------- 1 | import raspalib 2 | import numpy as np 3 | 4 | ff = raspalib.ForceField("force_field.json") 5 | 6 | mcmoves = raspalib.MCMoveProbabilities(translationProbability=0.5, rotationProbability=0.5, reinsertionCBMCProbability=1.0) 7 | 8 | water = raspalib.Component( 9 | componentId=0, 10 | forceField=ff, 11 | componentName="water", 12 | fileName="water.json", 13 | particleProbabilities=mcmoves, 14 | ) 15 | 16 | box = raspalib.SimulationBox(24.83, 24.83, 24.83) 17 | 18 | system = raspalib.System( 19 | systemId=0, 20 | externalTemperature=300.0, 21 | forceField=ff, 22 | components=[water], 23 | initialNumberOfMolecules=[512], 24 | simulationBox=box, 25 | sampleMoviesEvery=10, 26 | ) 27 | 28 | mc = raspalib.MonteCarlo( 29 | numberOfCycles=10000, 30 | numberOfInitializationCycles=1000, 31 | printEvery=100, 32 | systems=[system], 33 | outputToFiles=True, 34 | ) 35 | mc.run() 36 | -------------------------------------------------------------------------------- /examples/basic/12_mc_rdf_water_box/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 10000, 4 | "NumberOfInitializationCycles" : 10000, 5 | "PrintEvery" : 100, 6 | 7 | "Systems" : 8 | [ 9 | { 10 | "Type" : "Box", 11 | "BoxLengths" : [24.83, 24.83, 24.83], 12 | "ExternalTemperature" : 298.0, 13 | "ChargeMethod" : "Ewald", 14 | "OutputPDBMovie" : false, 15 | "SampleMovieEvery" : 10, 16 | "ComputeConventionalRDF" : true, 17 | "NumberOfBinsConventionalRDF" : 128, 18 | "RangeConventionalRDF" : 12.0, 19 | "WriteConventionalRDFEvery" : 100 20 | } 21 | ], 22 | 23 | "Components" : 24 | [ 25 | { 26 | "Name" : "water", 27 | "TranslationProbability" : 0.5, 28 | "RotationProbability" : 0.5, 29 | "ReinsertionProbability" : 1.0, 30 | "CreateNumberOfMolecules" : 512 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /examples/basic/12_mc_rdf_water_box/water.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 647.096, 3 | "CriticalPressure" : 2.2064e7, 4 | "AcentricFactor" : 0.3442920843, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["Ow",[ 0.0, 0.0, 0.0]], 9 | ["Hw",[-0.75695032726366118157, 0.0, -0.58588227661829499395]], 10 | ["Hw",[ 0.75695032726366118157, 0.0, -0.58588227661829499395]], 11 | ["Lw",[ 0.0, -0.57154330164408200866, 0.40415127656087122858]], 12 | ["Lw",[ 0.0, 0.57154330164408200866, 0.40415127656087122858]] 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /examples/basic/1_mc_methane_in_box/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/1_mc_methane_in_box/force_field.json: -------------------------------------------------------------------------------- 1 | { 2 | "PseudoAtoms" : 3 | [ 4 | { 5 | "name" : "CH4", 6 | "framework": false, 7 | "print_to_output" : true, 8 | "element" : "C", 9 | "print_as" : "C", 10 | "mass" : 16.04246, 11 | "charge" : 0.0, 12 | "source" : "M. G. Martin et al., J. Chem. Phys. 2001, 114, 7174-7181" 13 | } 14 | ], 15 | "SelfInteractions" : 16 | [ 17 | { 18 | "name" : "CH4", 19 | "type" : "lennard-jones", 20 | "parameters" : [158.5, 3.72], 21 | "source" : "M. G. Martin et al., J. Chem. Phys. 2001, 114, 7174-7181." 22 | } 23 | ], 24 | "MixingRule" : "Lorentz-Berthelot", 25 | "TruncationMethod" : "shifted", 26 | "TailCorrections" : false 27 | } 28 | -------------------------------------------------------------------------------- /examples/basic/1_mc_methane_in_box/from_json.py: -------------------------------------------------------------------------------- 1 | import raspa 2 | 3 | mc = raspa.MonteCarlo(inputReader=raspa.InputReader()) 4 | mc.run() -------------------------------------------------------------------------------- /examples/basic/1_mc_methane_in_box/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/basic/1_mc_methane_in_box/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/1_mc_methane_in_box/run.py: -------------------------------------------------------------------------------- 1 | import raspalib 2 | import numpy as np 3 | 4 | ff = raspalib.ForceField("force_field.json") 5 | ff.useCharge = False 6 | 7 | mcmoves = raspalib.MCMoveProbabilities(translationProbability=1.0) 8 | 9 | methane = raspalib.Component( 10 | componentId=0, 11 | forceField=ff, 12 | componentName="methane", 13 | fileName="methane.json", 14 | particleProbabilities=mcmoves, 15 | ) 16 | 17 | box = raspalib.SimulationBox(30.0, 30.0, 30.0) 18 | 19 | system = raspalib.System( 20 | systemId=0, 21 | externalTemperature=300.0, 22 | forceField=ff, 23 | components=[methane], 24 | initialNumberOfMolecules=[100], 25 | simulationBox=box, 26 | sampleMoviesEvery=10, 27 | ) 28 | 29 | mc = raspalib.MonteCarlo( 30 | numberOfCycles=10000, 31 | numberOfInitializationCycles=1000, 32 | systems=[system], 33 | outputToFiles=True, 34 | ) 35 | mc.run() 36 | -------------------------------------------------------------------------------- /examples/basic/1_mc_methane_in_box/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 10000, 4 | "NumberOfInitializationCycles" : 1000, 5 | "PrintEvery" : 1000, 6 | 7 | "Systems" : 8 | [ 9 | { 10 | "Type" : "Box", 11 | "BoxLengths" : [30.0, 30.0, 30.0], 12 | "ExternalTemperature" : 300.0, 13 | "ChargeMethod" : "None", 14 | "OutputPDBMovie" : true, 15 | "SampleMovieEvery" : 10 16 | } 17 | ], 18 | 19 | "Components" : 20 | [ 21 | { 22 | "Name" : "methane", 23 | "MoleculeDefinition" : "ExampleDefinitions", 24 | "TranslationProbability" : 0.5, 25 | "CreateNumberOfMolecules" : 100 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /examples/basic/2_mc_co2_n2_in_two_independent_boxes/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/2_mc_co2_n2_in_two_independent_boxes/N2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 126.192, 3 | "CriticalPressure" : 3395800.0, 4 | "AcentricFactor" : 0.0372, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["N_n2", [0.0, 0.0, 0.55]], 9 | ["N_com", [0.0, 0.0, 0.0]], 10 | ["N_n2", [0.0, 0.0, -0.55]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/2_mc_co2_n2_in_two_independent_boxes/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/basic/2_mc_co2_n2_in_two_independent_boxes/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/3_mc_binary_mixture_in_box/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/3_mc_binary_mixture_in_box/N2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 126.192, 3 | "CriticalPressure" : 3395800.0, 4 | "AcentricFactor" : 0.0372, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["N_n2", [0.0, 0.0, 0.55]], 9 | ["N_com", [0.0, 0.0, 0.0]], 10 | ["N_n2", [0.0, 0.0, -0.55]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/3_mc_binary_mixture_in_box/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/basic/3_mc_binary_mixture_in_box/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/3_mc_binary_mixture_in_box/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 10000, 4 | "NumberOfInitializationCycles" : 1000, 5 | "PrintEvery" : 1000, 6 | 7 | "Systems" : 8 | [ 9 | { 10 | "Type" : "Box", 11 | "BoxLengths" : [30.0, 30.0, 30.0], 12 | "ExternalTemperature" : 500.0, 13 | "ChargeMethod" : "Ewald" 14 | } 15 | ], 16 | 17 | "Components" : 18 | [ 19 | { 20 | "Name" : "CO2", 21 | "MoleculeDefinition" : "ExampleDefinitions", 22 | "TranslationProbability" : 1.0, 23 | "RotationProbability" : 1.0, 24 | "ReinsertionProbability" : 1.0, 25 | "CreateNumberOfMolecules" : 50 26 | }, 27 | { 28 | "Name" : "N2", 29 | "MoleculeDefinition" : "ExampleDefinitions", 30 | "TranslationProbability" : 1.0, 31 | "RotationProbability" : 1.0, 32 | "ReinsertionProbability" : 1.0, 33 | "CreateNumberOfMolecules" : 50 34 | } 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /examples/basic/4_mc_binarymixture_in_two_boxes/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/4_mc_binarymixture_in_two_boxes/N2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 126.192, 3 | "CriticalPressure" : 3395800.0, 4 | "AcentricFactor" : 0.0372, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["N_n2", [0.0, 0.0, 0.55]], 9 | ["N_com", [0.0, 0.0, 0.0]], 10 | ["N_n2", [0.0, 0.0, -0.55]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/4_mc_binarymixture_in_two_boxes/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/basic/4_mc_binarymixture_in_two_boxes/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/5_md_methane_in_box_msd/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/5_md_methane_in_box_msd/force_field.json: -------------------------------------------------------------------------------- 1 | { 2 | "PseudoAtoms" : 3 | [ 4 | { 5 | "name" : "CH4", 6 | "framework": false, 7 | "print_to_output" : true, 8 | "element" : "C", 9 | "print_as" : "C", 10 | "mass" : 16.04246, 11 | "charge" : 0.0, 12 | "source" : "M. G. Martin et al., J. Chem. Phys. 2001, 114, 7174-7181" 13 | } 14 | ], 15 | "SelfInteractions" : 16 | [ 17 | { 18 | "name" : "CH4", 19 | "type" : "lennard-jones", 20 | "parameters" : [158.5, 3.72], 21 | "source" : "M. G. Martin et al., J. Chem. Phys. 2001, 114, 7174-7181." 22 | } 23 | ], 24 | "MixingRule" : "Lorentz-Berthelot", 25 | "TruncationMethod" : "shifted", 26 | "TailCorrections" : false 27 | } 28 | -------------------------------------------------------------------------------- /examples/basic/5_md_methane_in_box_msd/from_json.py: -------------------------------------------------------------------------------- 1 | import raspa 2 | 3 | mc = raspa.MonteCarlo(inputReader=raspa.InputReader()) 4 | mc.run() -------------------------------------------------------------------------------- /examples/basic/5_md_methane_in_box_msd/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/basic/5_md_methane_in_box_msd/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/5_md_methane_in_box_msd/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MolecularDynamics", 3 | "NumberOfCycles" : 1000000, 4 | "NumberOfInitializationCycles" : 1000, 5 | "NumberOfEquilibrationCycles" : 10000, 6 | "PrintEvery" : 10000, 7 | 8 | "Systems" : 9 | [ 10 | { 11 | "Type" : "Box", 12 | "BoxLengths" : [30.0, 30.0, 30.0], 13 | "ExternalTemperature" : 300.0, 14 | "ChargeMethod" : "None", 15 | "Ensemble" : "NVT", 16 | "ComputeMSD" : true, 17 | "SampleMSDEvery" : 10, 18 | "WriteMSDEvery" : 5000 19 | } 20 | ], 21 | 22 | "Components" : 23 | [ 24 | { 25 | "Name" : "methane", 26 | "TranslationProbability" : 0.5, 27 | "ReinsertionProbability" : 0.5, 28 | "CreateNumberOfMolecules" : 100 29 | } 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /examples/basic/6_mc_enthalpy_of_adsorption_in_mfi_at_zero_loading/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/6_mc_enthalpy_of_adsorption_in_mfi_at_zero_loading/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/basic/6_mc_enthalpy_of_adsorption_in_mfi_at_zero_loading/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/6_mc_enthalpy_of_adsorption_in_mfi_at_zero_loading/run.py: -------------------------------------------------------------------------------- 1 | import raspalib 2 | 3 | ff = raspalib.ForceField("force_field.json") 4 | ff.useCharge = False 5 | 6 | mcmoves = raspalib.MCMoveProbabilities( 7 | translationProbability=0.5, 8 | reinsertionCBMCProbability=0.5, 9 | ) 10 | 11 | methane = raspalib.Component( 12 | componentId=0, 13 | forceField=ff, 14 | componentName="methane", 15 | fileName="methane.json", 16 | particleProbabilities=mcmoves, 17 | ) 18 | 19 | mfi = raspalib.Framework( 20 | frameworkId=0, 21 | forceField=ff, 22 | componentName="MFI_SI", 23 | fileName="MFI_SI.cif", 24 | numberOfUnitCells=raspalib.int3(2, 2, 2), 25 | ) 26 | 27 | system = raspalib.System( 28 | systemId=0, 29 | externalTemperature=300.0, 30 | forceField=ff, 31 | components=[methane], 32 | initialNumberOfMolecules=[1], 33 | frameworkComponents=[mfi], 34 | ) 35 | 36 | mc = raspalib.MonteCarlo(numberOfCycles=5000, numberOfInitializationCycles=5000, systems=[system], outputToFiles=True) 37 | 38 | mc.run() 39 | -------------------------------------------------------------------------------- /examples/basic/6_mc_enthalpy_of_adsorption_in_mfi_at_zero_loading/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 5000, 4 | "NumberOfInitializationCycles" : 5000, 5 | "PrintEvery" : 1000, 6 | 7 | "Systems" : 8 | [ 9 | { 10 | "Type" : "Framework", 11 | "Name" : "MFI_SI", 12 | "NumberOfUnitCells" : [2, 2, 2], 13 | "HeliumVoidFraction" : 0.29, 14 | "ExternalTemperature" : 300.0, 15 | "ChargeMethod" : "Ewald" 16 | } 17 | ], 18 | 19 | "Components" : 20 | [ 21 | { 22 | "Name" : "methane", 23 | "MoleculeDefinition" : "ExampleDefinitions", 24 | "TranslationProbability" : 0.5, 25 | "ReinsertionProbability" : 0.5, 26 | "CreateNumberOfMolecules" : 1 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /examples/basic/7_mc_adsorption_of_methane_in_mfi/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/7_mc_adsorption_of_methane_in_mfi/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/basic/7_mc_adsorption_of_methane_in_mfi/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/7_mc_adsorption_of_methane_in_mfi/run.py: -------------------------------------------------------------------------------- 1 | import raspalib 2 | 3 | 4 | ff = raspalib.ForceField("force_field.json") 5 | ff.useCharge = False 6 | 7 | mcmoves = raspalib.MCMoveProbabilities(translationProbability=0.5, reinsertionCBMCProbability=0.5, swapProbability=1.0) 8 | 9 | methane = raspalib.Component( 10 | componentId=0, 11 | forceField=ff, 12 | componentName="methane", 13 | fileName="methane.json", 14 | particleProbabilities=mcmoves, 15 | ) 16 | 17 | mfi = raspalib.Framework( 18 | frameworkId=0, 19 | forceField=ff, 20 | componentName="MFI_SI", 21 | fileName="MFI_SI.cif", 22 | numberOfUnitCells=raspalib.int3(2, 2, 2), 23 | ) 24 | 25 | system = raspalib.System( 26 | systemId=0, 27 | externalTemperature=300.0, 28 | externalPressure=1e5, 29 | forceField=ff, 30 | components=[methane], 31 | initialNumberOfMolecules=[0], 32 | frameworkComponents=[mfi], 33 | ) 34 | 35 | mc = raspalib.MonteCarlo(numberOfCycles=10000, numberOfInitializationCycles=2000, systems=[system], outputToFiles=True) 36 | 37 | mc.run() 38 | -------------------------------------------------------------------------------- /examples/basic/7_mc_adsorption_of_methane_in_mfi/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 10000, 4 | "NumberOfInitializationCycles" : 2000, 5 | "PrintEvery" : 1000, 6 | 7 | "ForceField" : ".", 8 | 9 | "Systems" : [ 10 | { 11 | "Type" : "Framework", 12 | "Name" : "MFI_SI", 13 | "NumberOfUnitCells" : [2, 2, 2], 14 | "ExternalTemperature" : 300.0, 15 | "ExternalPressure" : 1.0e5, 16 | "ChargeMethod" : "None", 17 | "ComputeDensityGrid" : true, 18 | "SampleDensityGridEvery" : 10, 19 | "WriteDensityGridEvery" : 5000, 20 | "DensityGridSize" : [128, 128, 128] 21 | } 22 | ], 23 | 24 | "Components" : [ 25 | { 26 | "Name" : "methane", 27 | "MoleculeDefinition" : "ExampleDefinitions", 28 | "FugacityCoefficient" : 1.0, 29 | "TranslationProbability" : 0.5, 30 | "ReinsertionProbability" : 0.5, 31 | "SwapProbability" : 1.0, 32 | "CreateNuMberofmolecules" : 0 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /examples/basic/8_mc_adsorption_of_co2_in_cu-btc/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/8_mc_adsorption_of_co2_in_cu-btc/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/8_mc_adsorption_of_co2_in_cu-btc/run.py: -------------------------------------------------------------------------------- 1 | import raspalib 2 | 3 | ff = raspalib.ForceField("force_field.json") 4 | 5 | mcmoves = raspalib.MCMoveProbabilities( 6 | translationProbability=0.5, 7 | rotationProbability=0.5, 8 | reinsertionCBMCProbability=0.5, 9 | swapProbability=1.0, 10 | widomProbability=1.0, 11 | ) 12 | 13 | co2 = raspalib.Component( 14 | componentId=0, 15 | forceField=ff, 16 | componentName="CO2", 17 | fileName="CO2.json", 18 | particleProbabilities=mcmoves, 19 | ) 20 | 21 | cubtc = raspalib.Framework( 22 | frameworkId=0, 23 | forceField=ff, 24 | componentName="Cu-BTC", 25 | fileName="Cu-BTC.cif", 26 | numberOfUnitCells=raspalib.int3(1, 1, 1), 27 | ) 28 | 29 | system = raspalib.System( 30 | systemId=0, 31 | externalTemperature=300.0, 32 | externalPressure=1e4, 33 | forceField=ff, 34 | components=[co2], 35 | initialNumberOfMolecules=[0], 36 | frameworkComponents=[cubtc], 37 | ) 38 | 39 | mc = raspalib.MonteCarlo(numberOfCycles=10000, numberOfInitializationCycles=2000, systems=[system], outputToFiles=True) 40 | 41 | mc.run() 42 | -------------------------------------------------------------------------------- /examples/basic/8_mc_adsorption_of_co2_in_cu-btc/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 100000, 4 | "NumberOfInitializationCycles" : 20000, 5 | "PrintEvery" : 5000, 6 | 7 | "Systems" : [ 8 | { 9 | "Type" : "Framework", 10 | "Name" : "Cu-BTC", 11 | "NumberOfUnitCells" : [1, 1, 1], 12 | "ChargeMethod" : "Ewald", 13 | "ExternalTemperature" : 323.0, 14 | "ExternalPressure" : 1.0e4 15 | } 16 | ], 17 | 18 | "Components" : [ 19 | { 20 | "Name" : "CO2", 21 | "MoleculeDefinition" : "ExampleDefinitions", 22 | "FugacityCoefficient" : 1.0, 23 | "TranslationProbability" : 0.5, 24 | "RotationProbability" : 0.5, 25 | "ReinsertionProbability" : 0.5, 26 | "SwapProbability" : 1.0, 27 | "WidomProbability" : 1.0, 28 | "CreateNuMberofmolecules" : 0 29 | } 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /examples/basic/9_mc_henry_coefficient_of_methane_in_mfi/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/basic/9_mc_henry_coefficient_of_methane_in_mfi/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/basic/9_mc_henry_coefficient_of_methane_in_mfi/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/basic/9_mc_henry_coefficient_of_methane_in_mfi/run.py: -------------------------------------------------------------------------------- 1 | import raspalib 2 | 3 | 4 | ff = raspalib.ForceField("force_field.json") 5 | ff.useCharge = False 6 | 7 | mcmoves = raspalib.MCMoveProbabilities( 8 | translationProbability=0.5, 9 | reinsertionCBMCProbability=0.5, 10 | swapProbability=1.0, 11 | ) 12 | 13 | methane = raspalib.Component( 14 | componentId=0, 15 | forceField=ff, 16 | componentName="methane", 17 | fileName="methane.json", 18 | particleProbabilities=mcmoves, 19 | ) 20 | 21 | mfi = raspalib.Framework( 22 | frameworkId=0, 23 | forceField=ff, 24 | componentName="MFI_SI", 25 | fileName="MFI_SI.cif", 26 | numberOfUnitCells=raspalib.int3(2, 2, 2), 27 | ) 28 | 29 | system = raspalib.System( 30 | systemId=0, 31 | externalTemperature=300.0, 32 | externalPressure=1e5, 33 | forceField=ff, 34 | components=[methane], 35 | initialNumberOfMolecules=[0], 36 | frameworkComponents=[mfi], 37 | ) 38 | 39 | mc = raspalib.MonteCarlo(numberOfCycles=10000, numberOfInitializationCycles=2000, systems=[system], outputToFiles=True) 40 | 41 | mc.run() 42 | -------------------------------------------------------------------------------- /examples/basic/9_mc_henry_coefficient_of_methane_in_mfi/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 20000, 4 | "NumberOfInitializationCycles" : 0, 5 | "PrintEvery" : 1000, 6 | 7 | "ForceField" : ".", 8 | 9 | "Systems" : [ 10 | { 11 | "Type" : "Framework", 12 | "Name" : "MFI_SI", 13 | "NumberOfUnitCells" : [2, 2, 2], 14 | "ExternalTemperature" : 300.0, 15 | "ExternalPressure" : 1.0e5, 16 | "ChargeMethod" : "None" 17 | } 18 | ], 19 | 20 | "Components" : [ 21 | { 22 | "Name" : "methane", 23 | "WidomProbability" : 1.0, 24 | "CreateNumberOfMolecules" : 0 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/0/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/0/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/0/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarloTransitionMatrix", 3 | "NumberOfCycles" : 200000, 4 | "NumberOfInitializationCycles" : 100000, 5 | "PrintEvery" : 5000, 6 | 7 | "Systems" : [ 8 | { 9 | "Type" : "Framework", 10 | "Name" : "tobacco-667", 11 | "HeliumVoidFraction" : 0.29, 12 | "NumberOfUnitCells" : [1, 1, 1], 13 | "ExternalTemperature" : 111.58, 14 | "ExternalPressure" : 36000, 15 | "ChargeMethod" : "None", 16 | "MacroStateUseBias" : true, 17 | "MacroStateMinimumNumberOfMolecules" : 0, 18 | "MacroStateMaximumNumberOfMolecules" : 84 19 | } 20 | ], 21 | 22 | "Components" : [ 23 | { 24 | "Name" : "methane", 25 | "MoleculeDefinition" : "ExampleDefinitions", 26 | "TranslationProbability" : 1.0, 27 | "ReinsertionProbability" : 1.0, 28 | "SwapProbability" : 1.0, 29 | "CreateNuMberofmolecules" : 10 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/1/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/1/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/1/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarloTransitionMatrix", 3 | "NumberOfCycles" : 200000, 4 | "NumberOfInitializationCycles" : 100000, 5 | "PrintEvery" : 5000, 6 | 7 | "Systems" : [ 8 | { 9 | "Type" : "Framework", 10 | "Name" : "tobacco-667", 11 | "HeliumVoidFraction" : 0.29, 12 | "NumberOfUnitCells" : [1, 1, 1], 13 | "ExternalTemperature" : 111.58, 14 | "ExternalPressure" : 36000, 15 | "ChargeMethod" : "None", 16 | "MacroStateUseBias" : true, 17 | "MacroStateMinimumNumberOfMolecules" : 84, 18 | "MacroStateMaximumNumberOfMolecules" : 168 19 | } 20 | ], 21 | 22 | "Components" : [ 23 | { 24 | "Name" : "methane", 25 | "MoleculeDefinition" : "ExampleDefinitions", 26 | "TranslationProbability" : 1.0, 27 | "ReinsertionProbability" : 1.0, 28 | "SwapProbability" : 1.0, 29 | "CreateNuMberofmolecules" : 120 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/2/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/2/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/2/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarloTransitionMatrix", 3 | "NumberOfCycles" : 200000, 4 | "NumberOfInitializationCycles" : 100000, 5 | "PrintEvery" : 5000, 6 | 7 | "Systems" : [ 8 | { 9 | "Type" : "Framework", 10 | "Name" : "tobacco-667", 11 | "HeliumVoidFraction" : 0.29, 12 | "NumberOfUnitCells" : [1, 1, 1], 13 | "ExternalTemperature" : 111.58, 14 | "ExternalPressure" : 36000, 15 | "ChargeMethod" : "None", 16 | "MacroStateUseBias" : true, 17 | "MacroStateMinimumNumberOfMolecules" : 168, 18 | "MacroStateMaximumNumberOfMolecules" : 252 19 | } 20 | ], 21 | 22 | "Components" : [ 23 | { 24 | "Name" : "methane", 25 | "MoleculeDefinition" : "ExampleDefinitions", 26 | "TranslationProbability" : 1.0, 27 | "ReinsertionProbability" : 1.0, 28 | "SwapProbability" : 1.0, 29 | "CreateNuMberofmolecules" : 200 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/3/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/3/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/3/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarloTransitionMatrix", 3 | "NumberOfCycles" : 200000, 4 | "NumberOfInitializationCycles" : 100000, 5 | "PrintEvery" : 5000, 6 | 7 | "Systems" : [ 8 | { 9 | "Type" : "Framework", 10 | "Name" : "tobacco-667", 11 | "HeliumVoidFraction" : 0.29, 12 | "NumberOfUnitCells" : [1, 1, 1], 13 | "ExternalTemperature" : 111.58, 14 | "ExternalPressure" : 36000, 15 | "ChargeMethod" : "None", 16 | "MacroStateUseBias" : true, 17 | "MacroStateMinimumNumberOfMolecules" : 252, 18 | "MacroStateMaximumNumberOfMolecules" : 336 19 | } 20 | ], 21 | 22 | "Components" : [ 23 | { 24 | "Name" : "methane", 25 | "MoleculeDefinition" : "ExampleDefinitions", 26 | "TranslationProbability" : 1.0, 27 | "ReinsertionProbability" : 1.0, 28 | "SwapProbability" : 1.0, 29 | "CreateNuMberofmolecules" : 300 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/4/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/4/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/4/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarloTransitionMatrix", 3 | "NumberOfCycles" : 200000, 4 | "NumberOfInitializationCycles" : 100000, 5 | "PrintEvery" : 5000, 6 | 7 | "Systems" : [ 8 | { 9 | "Type" : "Framework", 10 | "Name" : "tobacco-667", 11 | "HeliumVoidFraction" : 0.29, 12 | "NumberOfUnitCells" : [1, 1, 1], 13 | "ExternalTemperature" : 111.58, 14 | "ExternalPressure" : 36000, 15 | "ChargeMethod" : "None", 16 | "MacroStateUseBias" : true, 17 | "MacroStateMinimumNumberOfMolecules" : 336, 18 | "MacroStateMaximumNumberOfMolecules" : 420 19 | } 20 | ], 21 | 22 | "Components" : [ 23 | { 24 | "Name" : "methane", 25 | "MoleculeDefinition" : "ExampleDefinitions", 26 | "TranslationProbability" : 1.0, 27 | "ReinsertionProbability" : 1.0, 28 | "SwapProbability" : 1.0, 29 | "CreateNuMberofmolecules" : 400 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /examples/non-basic/10_tmmc_methane_in_tobacco-667/combined_lnpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/examples/non-basic/10_tmmc_methane_in_tobacco-667/combined_lnpi.png -------------------------------------------------------------------------------- /examples/non-basic/1_mc_adsorption_binary_mixture_co2_ch4_in_irmof-1/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/non-basic/1_mc_adsorption_binary_mixture_co2_ch4_in_irmof-1/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/non-basic/1_mc_adsorption_binary_mixture_co2_ch4_in_irmof-1/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/2_mc_npt_methane/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/non-basic/2_mc_npt_methane/force_field.json: -------------------------------------------------------------------------------- 1 | { 2 | "PseudoAtoms" : 3 | [ 4 | { 5 | "name" : "CH4", 6 | "framework": false, 7 | "print_to_output" : true, 8 | "element" : "C", 9 | "print_as" : "C", 10 | "mass" : 16.04246, 11 | "charge" : 0.0, 12 | "source" : "M. G. Martin et al., J. Chem. Phys. 2001, 114, 7174-7181" 13 | } 14 | ], 15 | "SelfInteractions" : 16 | [ 17 | { 18 | "name" : "CH4", 19 | "type" : "lennard-jones", 20 | "parameters" : [158.5, 3.72], 21 | "source" : "M. G. Martin et al., J. Chem. Phys. 2001, 114, 7174-7181." 22 | } 23 | ], 24 | "MixingRule" : "Lorentz-Berthelot", 25 | "TruncationMethod" : "shifted", 26 | "TailCorrections" : false 27 | } 28 | -------------------------------------------------------------------------------- /examples/non-basic/2_mc_npt_methane/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/non-basic/2_mc_npt_methane/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/2_mc_npt_methane/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 50000, 4 | "NumberOfInitializationCycles" : 10000, 5 | "PrintEvery" : 1000, 6 | 7 | "Systems" : 8 | [ 9 | { 10 | "Type" : "Box", 11 | "BoxLengths" : [30.0, 30.0, 30.0], 12 | "ExternalTemperature" : 300.0, 13 | "ExternalPressure" : 1e6, 14 | "ChargeMethod" : "None", 15 | "VolumeMoveProbability" : 0.05 16 | } 17 | ], 18 | 19 | "Components" : 20 | [ 21 | { 22 | "Name" : "methane", 23 | "MoleculeDefinition" : "ExampleDefinitions", 24 | "TranslationProbability" : 0.5, 25 | "ReinsertionProbability" : 0.5, 26 | "CreateNumberOfMolecules" : 256 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /examples/non-basic/4_mc_adsorption_co2_in_lta4a_sodium/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/non-basic/4_mc_adsorption_co2_in_lta4a_sodium/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/4_mc_adsorption_co2_in_lta4a_sodium/sodium.json: -------------------------------------------------------------------------------- 1 | { 2 | "Type" : "rigid", 3 | "pseudoAtoms" : 4 | [ 5 | ["Na",[0.0, 0.0, 0.0]] 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /examples/non-basic/5_md_diffusion_co2_in_lta4a_sodium/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/non-basic/5_md_diffusion_co2_in_lta4a_sodium/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/5_md_diffusion_co2_in_lta4a_sodium/sodium.json: -------------------------------------------------------------------------------- 1 | { 2 | "Type" : "rigid", 3 | "pseudoAtoms" : 4 | [ 5 | ["Na",[0.0, 0.0, 0.0]] 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /examples/non-basic/6_md_benzene_in_irmof-1/benzene.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 562.05, 3 | "CriticalPressure" : 4894000.0, 4 | "AcentricFactor" : 0.2092, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["C_benz", [ 0.00000000, 0.00000000, 0.00000000]], 9 | ["C_benz", [ 1.39200000, 0.00000000, 0.00000000]], 10 | ["C_benz", [ 2.08800000, 1.20550736, 0.00000000]], 11 | ["C_benz", [ 1.39200051, 2.41101443, -0.00119599]], 12 | ["C_benz", [ 0.00000000, 2.41101459, -0.00167420]], 13 | ["C_benz", [-0.69600000, 1.20550717, -0.00068061]], 14 | ["H_benz", [-0.54000000, -0.93530733, 0.00044182]], 15 | ["H_benz", [ 1.93200000, -0.93530654, 0.00129125]], 16 | ["H_benz", [ 3.16799982, 1.20550747, 0.00062273]], 17 | ["H_benz", [ 1.93200056, 3.34632183, -0.00125416]], 18 | ["H_benz", [-0.53999901, 3.34632180, -0.00260212]], 19 | ["H_benz", [-1.77600000, 1.20550708, -0.00085731]] 20 | ], 21 | "Bonds" : [[0,1], [1,2], [2,3], [3,4], [4,5], [5,0], [0,6], [1,7], [2,8], [3,9], [4,10], [5,11]] 22 | } 23 | -------------------------------------------------------------------------------- /examples/non-basic/6_md_benzene_in_irmof-1/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/non-basic/6_md_benzene_in_irmof-1/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/6_md_benzene_in_irmof-1/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MolecularDynamics", 3 | "NumberOfCycles" : 500000, 4 | "NumberOfInitializationCycles" : 1000, 5 | "NumberOfEquilibrationCycles" : 100000, 6 | "PrintEvery" : 5000, 7 | 8 | "Systems" : [ 9 | { 10 | "Type" : "Framework", 11 | "Name" : "IRMOF-1", 12 | "NumberOfUnitCells" : [1, 1, 1], 13 | "ChargeMethod" : "Ewald", 14 | "CutOff" : 12.0, 15 | "ExternalTemperature" : 300.0, 16 | "Ensemble" : "NVT", 17 | "ComputeMSD" : true, 18 | "SampleMSDEvery" : 10, 19 | "WriteMSDEvery" : 5000 20 | } 21 | ], 22 | 23 | "Components" : [ 24 | { 25 | "Name" : "benzene", 26 | "TranslationProbability" : 0.5, 27 | "RotationProbability" : 0.5, 28 | "ReinsertionProbability" : 0.5, 29 | "CreateNumberOfMolecules" : 16 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /examples/non-basic/7_mc_gibbs_co2/CO2.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 304.1282, 3 | "CriticalPressure" : 7377300.0, 4 | "AcentricFactor" : 0.22394, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["O_co2", [0.0, 0.0, 1.149]], 9 | ["C_co2", [0.0, 0.0, 0.0]], 10 | ["O_co2", [0.0, 0.0, -1.149]] 11 | ], 12 | "Bonds" : [[0,1], [1,2]] 13 | } 14 | -------------------------------------------------------------------------------- /examples/non-basic/7_mc_gibbs_co2/methane.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 190.564, 3 | "CriticalPressure" : 4599200.0, 4 | "AcentricFactor" : 0.01142, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["CH4",[0.0, 0.0, 1.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/non-basic/7_mc_gibbs_co2/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/non-basic/7_mc_gibbs_co2/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 25000, 4 | "NumberOfInitializationCycles" : 10000, 5 | "PrintEvery" : 1000, 6 | 7 | "Systems" : 8 | [ 9 | { 10 | "Type" : "Box", 11 | "BoxLengths" : [30.0, 30.0, 30.0], 12 | "ExternalTemperature" : 240.0, 13 | "ChargeMethod" : "Ewald", 14 | "GibbsVolumeMoveProbability" : 0.01 15 | }, 16 | { 17 | "Type" : "Box", 18 | "BoxLengths" : [30.0, 30.0, 30.0], 19 | "ExternalTemperature" : 240.0, 20 | "ChargeMethod" : "Ewald", 21 | "GibbsVolumeMoveProbability" : 0.01 22 | } 23 | ], 24 | 25 | "Components" : 26 | [ 27 | { 28 | "Name" : "CO2", 29 | "MoleculeDefinition" : "ExampleDefinitions", 30 | "TranslationProbability" : 0.5, 31 | "RotationProbability" : 0.5, 32 | "ReinsertionProbability" : 0.5, 33 | "GibbsSwapProbability" : 1.0, 34 | "CreateNumberOfMolecules" : [256, 256] 35 | } 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /examples/reduced_units/1_particles_in_box_nvt/force_field.json: -------------------------------------------------------------------------------- 1 | { 2 | "PseudoAtoms" : 3 | [ 4 | { 5 | "name" : "H", 6 | "framework": false, 7 | "print_to_output" : true, 8 | "element" : "H", 9 | "print_as" : "H", 10 | "mass" : 1.0, 11 | "charge" : 0.0 12 | } 13 | ], 14 | "SelfInteractions" : 15 | [ 16 | { 17 | "name" : "H", 18 | "type" : "lennard-jones", 19 | "parameters" : [1.0, 1.0] 20 | } 21 | ], 22 | "MixingRule" : "Lorentz-Berthelot", 23 | "TruncationMethod" : "truncated", 24 | "TailCorrections" : true 25 | } 26 | -------------------------------------------------------------------------------- /examples/reduced_units/1_particles_in_box_nvt/particle.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 0.0, 3 | "CriticalPressure" : 0.0, 4 | "AcentricFactor" : 0.0, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["C",[0.0, 0.0, 0.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/reduced_units/1_particles_in_box_nvt/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/reduced_units/1_particles_in_box_nvt/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 10000, 4 | "NumberOfInitializationCycles" : 5000, 5 | "PrintEvery" : 5000, 6 | "Units" : "Reduced", 7 | 8 | "Systems" : 9 | [ 10 | { 11 | "Type" : "Box", 12 | "BoxLengths" : [9.49914251593, 9.49914251593, 9.49914251593], 13 | "ExternalTemperature" : 1.2, 14 | "ChargeMethod" : "None", 15 | "CutOff" : 4.0, 16 | "OutputPDBMovie" : false, 17 | "SampleMovieEvery" : 10 18 | } 19 | ], 20 | 21 | "Components" : 22 | [ 23 | { 24 | "Name" : "particle", 25 | "MoleculeDefinition" : "ExampleDefinitions", 26 | "TranslationProbability" : 1.0, 27 | "ReinsertionProbability" : 0.25, 28 | "WidomProbability" : 0.25, 29 | "CreateNumberOfMolecules" : 600 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /examples/reduced_units/2_particles_in_box_nvt_cfcmc/force_field.json: -------------------------------------------------------------------------------- 1 | { 2 | "PseudoAtoms" : 3 | [ 4 | { 5 | "name" : "C", 6 | "framework": false, 7 | "print_to_output" : true, 8 | "element" : "C", 9 | "print_as" : "C", 10 | "mass" : 1.0, 11 | "charge" : 0.0 12 | } 13 | ], 14 | "SelfInteractions" : 15 | [ 16 | { 17 | "name" : "C", 18 | "type" : "lennard-jones", 19 | "parameters" : [1.0, 1.0] 20 | } 21 | ], 22 | "MixingRule" : "Lorentz-Berthelot", 23 | "TruncationMethod" : "truncated", 24 | "TailCorrections" : true 25 | } 26 | -------------------------------------------------------------------------------- /examples/reduced_units/2_particles_in_box_nvt_cfcmc/particle.json: -------------------------------------------------------------------------------- 1 | { 2 | "CriticalTemperature" : 0.0, 3 | "CriticalPressure" : 0.0, 4 | "AcentricFactor" : 0.0, 5 | "Type" : "rigid", 6 | "pseudoAtoms" : 7 | [ 8 | ["C",[0.0, 0.0, 0.0]] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /examples/reduced_units/2_particles_in_box_nvt_cfcmc/run.bat: -------------------------------------------------------------------------------- 1 | raspa3.exe 2 | -------------------------------------------------------------------------------- /examples/reduced_units/2_particles_in_box_nvt_cfcmc/simulation.json: -------------------------------------------------------------------------------- 1 | { 2 | "SimulationType" : "MonteCarlo", 3 | "NumberOfCycles" : 100000, 4 | "NumberOfInitializationCycles" : 50000, 5 | "NumberOfEquilibrationCycles" : 50000, 6 | "PrintEvery" : 25000, 7 | "Units" : "Reduced", 8 | 9 | "Systems" : 10 | [ 11 | { 12 | "Type" : "Box", 13 | "BoxLengths" : [9.49914251593, 9.49914251593, 9.49914251593], 14 | "ExternalTemperature" : 1.2, 15 | "ChargeMethod" : "None", 16 | "CutOff" : 4.0, 17 | "OutputPDBMovie" : false, 18 | "SampleMovieEvery" : 10 19 | } 20 | ], 21 | 22 | "Components" : 23 | [ 24 | { 25 | "Name" : "particle", 26 | "MoleculeDefinition" : "ExampleDefinitions", 27 | "ThermoDynamicIntegration" : true, 28 | "TranslationProbability" : 1.0, 29 | "ReinsertionProbability" : 0.25, 30 | "WidomProbability" : 0.25, 31 | "CFCMC_CBMC_WidomProbability" : 0.25, 32 | "CreateNumberOfMolecules" : 600 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /examples/run.cmake.in: -------------------------------------------------------------------------------- 1 | #! /bin/sh -f 2 | export RASPA_DIR="@PACKAGE_INSTALL_PREFIX@/share/raspa3" 3 | "@PACKAGE_INSTALL_PREFIX@/bin/raspa3" 4 | -------------------------------------------------------------------------------- /packaging/Description.txt: -------------------------------------------------------------------------------- 1 | raspa3: 2 | -------------------------------------------------------------------------------- /packaging/PKGBUILD-core-avx2: -------------------------------------------------------------------------------- 1 | # Maintainer: David Dubbeldam 2 | pkgname=raspa 3 | pkgver=3.0.5 4 | pkgrel=1 5 | pkgdesc="Molecular simulation code for adsorption and diffusion in nanoporours materials." 6 | arch=('x86_64') 7 | url="https://www.iraspa.org" 8 | license=('MIT') 9 | makedepends=() 10 | depends=('glibc' 'blas64' 'lapack64' 'gcc-libs' 'openmp') 11 | source=(raspa3.tar.gz) 12 | md5sums=('SKIP') 13 | 14 | build() { 15 | cmake -B build --preset linux-x86_64-core-avx2-archlinux -DCMAKE_INSTALL_PREFIX=${pkgdir}/usr -DCMAKE_POLICY_VERSION_MINIMUM=3.5 16 | cmake --build build 17 | } 18 | 19 | package() { 20 | cmake --install build 21 | } 22 | 23 | -------------------------------------------------------------------------------- /packaging/PKGBUILD-skylake-avx512: -------------------------------------------------------------------------------- 1 | # Maintainer: David Dubbeldam 2 | pkgname=raspa 3 | pkgver=3.0.5 4 | pkgrel=1 5 | pkgdesc="Molecular simulation code for adsorption and diffusion in nanoporours materials." 6 | arch=('x86_64') 7 | url="https://www.iraspa.org" 8 | license=('MIT') 9 | makedepends=() 10 | depends=('glibc' 'blas64' 'lapack64' 'gcc-libs' 'openmp') 11 | source=(raspa3.tar.gz) 12 | md5sums=('SKIP') 13 | 14 | build() { 15 | cmake -B build --preset linux-x86_64-skylake-avx512-archlinux -DCMAKE_INSTALL_PREFIX=${pkgdir}/usr -DCMAKE_POLICY_VERSION_MINIMUM=3.5 16 | cmake --build build 17 | } 18 | 19 | package() { 20 | cmake --install build 21 | } 22 | 23 | -------------------------------------------------------------------------------- /packaging/Resources/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/packaging/Resources/background.jpg -------------------------------------------------------------------------------- /packaging/background.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/packaging/background.bmp -------------------------------------------------------------------------------- /packaging/raspa.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/packaging/raspa.icns -------------------------------------------------------------------------------- /packaging/raspa.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/packaging/raspa.ico -------------------------------------------------------------------------------- /packaging/readme.txt: -------------------------------------------------------------------------------- 1 | More information on RASPA: 2 | https://iraspa.org/raspa/ 3 | -------------------------------------------------------------------------------- /packaging/welcome.txt: -------------------------------------------------------------------------------- 1 | RASPA3 is a molecular simulation code for computing adsorption and 2 | diffusion in nanoporous materials, and thermodynamic and transport 3 | properties of fluids. It implements force field based classical 4 | Monte Carlo/Molecular Dynamics in various ensembles. RASPA3 can be 5 | used for the simulation of molecules in gases, fluids, zeolites, 6 | aluminosilicates, metal-organic frameworks, and carbon nanotubes. 7 | 8 | One of the main applications of RASPA3 is to compute adsorption 9 | isotherms and to understand the atomic-level mechanism of adsorption 10 | and separations. 11 | 12 | Authors: 13 | ======= 14 | Drs. Youri Ran, University of Amsterdam 15 | Drs. Shrinjay Sharma, Delft University of Technology 16 | Dr. Salvador R.G. Balestra, Universidad Pablo de Olavide 17 | Drs. Zhao Li, Northwestern University 18 | Prof. Sofia Calero, Eindhoven University of Technology 19 | Prof. Thijs Vlugt, Delft University of Technology 20 | Prof. Randall Q. Snurr, Northwestern University 21 | Dr. David Dubbeldam, University of Amsterdam 22 | -------------------------------------------------------------------------------- /raspa/raspa_pybindings.ixx: -------------------------------------------------------------------------------- 1 | export module raspa_pybindings; 2 | -------------------------------------------------------------------------------- /src/foundationkit/archive.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module archive; 4 | -------------------------------------------------------------------------------- /src/foundationkit/characterset.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | module characterset; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | CharacterSet::CharacterSet() {} 15 | 16 | CharacterSet::CharacterSet(std::string chars) { _string = chars; } 17 | 18 | // \x0A \n Linefeed (LF) 19 | // \x0B \e Escape (ESC) 20 | // \x0C \f Formfeed (FF) 21 | // \x0D \r Carriage return (CR) 22 | // \x85 23 | 24 | CharacterSet CharacterSet::newlineCharacter() { return CharacterSet(std::string("\x0A", 1)); } 25 | 26 | CharacterSet CharacterSet::newlineCharacterSet() { return CharacterSet(std::string("\x0A\x0B\x0C\x0D\x85", 5)); } 27 | 28 | CharacterSet CharacterSet::whitespaceAndNewlineCharacterSet() 29 | { 30 | return CharacterSet(std::string("\x0A\x0B\x0C\x0D\x85\x0D\x85\x20\x09\xA0", 8)); 31 | } 32 | 33 | CharacterSet CharacterSet::whitespaceCharacterSet() { return CharacterSet(std::string("\x20\x09\xA0", 3)); } 34 | -------------------------------------------------------------------------------- /src/foundationkit/characterset.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #endif 8 | 9 | export module characterset; 10 | 11 | #ifndef USE_LEGACY_HEADERS 12 | import ; 13 | import ; 14 | #endif 15 | 16 | export class CharacterSet 17 | { 18 | public: 19 | CharacterSet(); 20 | CharacterSet(std::string chars); 21 | std::string string() { return _string; } 22 | static CharacterSet newlineCharacter(); 23 | static CharacterSet newlineCharacterSet(); 24 | static CharacterSet whitespaceAndNewlineCharacterSet(); 25 | static CharacterSet whitespaceCharacterSet(); 26 | 27 | private: 28 | std::string _string; 29 | }; 30 | -------------------------------------------------------------------------------- /src/foundationkit/getopt.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | 4 | module getopt; 5 | 6 | -------------------------------------------------------------------------------- /src/foundationkit/hdf5.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module hdf5; 4 | -------------------------------------------------------------------------------- /src/foundationkit/indexpath.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | export module indexpath; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | export class IndexPath 15 | { 16 | public: 17 | IndexPath(); 18 | IndexPath(const size_t index); 19 | size_t& operator[](const size_t index); 20 | const size_t& operator[](const size_t index) const; 21 | inline size_t lastIndex() const 22 | { 23 | if (!_path.empty()) return _path.back(); 24 | return 0; 25 | } 26 | const IndexPath operator+(const IndexPath& rhs); 27 | void increaseValueAtLastIndex(); 28 | void decreaseValueAtLastIndex(); 29 | size_t size(); 30 | bool empty() const { return _path.empty(); } 31 | IndexPath appending(size_t index); 32 | IndexPath removingLastIndex() const; 33 | 34 | bool operator<(const IndexPath& otherObject) const; 35 | bool operator>(const IndexPath& otherObject) const; 36 | bool operator==(const IndexPath& otherObject) const; 37 | 38 | private: 39 | std::vector _path; 40 | }; 41 | -------------------------------------------------------------------------------- /src/foundationkit/json.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/src/foundationkit/json.cpp -------------------------------------------------------------------------------- /src/foundationkit/stringutils.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/src/foundationkit/stringutils.cpp -------------------------------------------------------------------------------- /src/foundationkit/threadpool.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/src/foundationkit/threadpool.cpp -------------------------------------------------------------------------------- /src/mathkit/bool3.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module bool3; 4 | 5 | bool3::bool3() {} -------------------------------------------------------------------------------- /src/mathkit/bool3.ixx: -------------------------------------------------------------------------------- 1 | export module bool3; 2 | 3 | export class bool3 4 | { 5 | public: 6 | bool b[3]; 7 | struct 8 | { 9 | bool x, y, z; 10 | }; 11 | 12 | bool3(); 13 | bool3(bool x, bool y, bool z) : x(x), y(y), z(z) {}; 14 | }; -------------------------------------------------------------------------------- /src/mathkit/cubic.ixx: -------------------------------------------------------------------------------- 1 | export module cubic; 2 | 3 | export int cubic(double A[4], double X[3], int* L); -------------------------------------------------------------------------------- /src/mathkit/double2.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | module double2; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | std::ostream& operator<<(std::ostream& stream, const double2& vec) { return stream << vec.x << vec.y; } 15 | 16 | std::istream& operator>>(std::istream& stream, double2& vec) { return stream >> vec.x >> vec.y; } 17 | -------------------------------------------------------------------------------- /src/mathkit/double2.ixx: -------------------------------------------------------------------------------- 1 | export module double2; 2 | 3 | export union double2 4 | { 5 | double v[2]; 6 | struct 7 | { 8 | double x, y; 9 | }; 10 | 11 | inline double2(double x = 0, double y = 0) : x(x), y(y) {}; 12 | inline double& operator[](int i) { return v[i]; } 13 | inline const double& operator[](int i) const { return v[i]; } 14 | 15 | inline double2& operator+=(const double2& rhs) 16 | { 17 | x += rhs.x; 18 | y += rhs.y; 19 | return *this; 20 | } 21 | inline double2& operator-=(const double2& rhs) 22 | { 23 | x -= rhs.x; 24 | y -= rhs.y; 25 | return *this; 26 | } 27 | 28 | inline static double dot(const double2& v1, const double2& v2) { return v1.x * v2.x + v1.y * v2.y; } 29 | }; 30 | 31 | export inline double2 operator+(const double2& a, const double2& b) { return double2(a.x + b.x, a.y + b.y); } 32 | 33 | export inline double2 operator-(const double2& a, const double2& b) { return double2(a.x - b.x, a.y - b.y); } -------------------------------------------------------------------------------- /src/mathkit/double3x3x3.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #endif 15 | 16 | module double3x3x3; 17 | 18 | #ifndef USE_LEGACY_HEADERS 19 | import ; 20 | import ; 21 | import ; 22 | import ; 23 | import ; 24 | import ; 25 | import ; 26 | import ; 27 | import ; 28 | #endif 29 | 30 | import int3x3; 31 | import double3x3; 32 | import simd_quatd; 33 | import double3; 34 | import archive; 35 | -------------------------------------------------------------------------------- /src/mathkit/double4.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #endif 13 | 14 | module double4; 15 | 16 | #ifndef USE_LEGACY_HEADERS 17 | import ; 18 | import ; 19 | import ; 20 | import ; 21 | import ; 22 | import ; 23 | import ; 24 | #endif 25 | 26 | import archive; 27 | 28 | void double4::normalise() 29 | { 30 | double magnitude = std::sqrt((x * x) + (y * y) + (z * z) * (w * w)); 31 | 32 | if (magnitude != 0) 33 | { 34 | x /= magnitude; 35 | y /= magnitude; 36 | z /= magnitude; 37 | w /= magnitude; 38 | } 39 | } 40 | 41 | Archive &operator<<(Archive &archive, const double4 &vec) 42 | { 43 | archive << vec.x << vec.y << vec.z << vec.w; 44 | return archive; 45 | } 46 | 47 | Archive &operator>>(Archive &archive, double4 &vec) 48 | { 49 | archive >> vec.x >> vec.y >> vec.z >> vec.w; 50 | return archive; 51 | } 52 | -------------------------------------------------------------------------------- /src/mathkit/double4x3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/src/mathkit/double4x3.cpp -------------------------------------------------------------------------------- /src/mathkit/double4x3.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #endif 6 | 7 | export module double4x3; 8 | 9 | #ifndef USE_LEGACY_HEADERS 10 | import ; 11 | #endif 12 | 13 | import double3; 14 | import double4; 15 | 16 | export union double4x3 17 | { 18 | double m[12]; 19 | double mm[4][3]; 20 | double3 v[4]; 21 | struct 22 | { 23 | double m11, m21, m31, m12, m22, m32, m13, m23, m33, m14, m24, m34; 24 | }; 25 | struct 26 | { 27 | double ax, ay, az, bx, by, bz, cx, cy, cz, wx, wy, wz; 28 | }; 29 | 30 | double4x3(double3 v1, double3 v2, double3 v3, double3 v4) : v{v1, v2, v3, v4} {} 31 | 32 | inline double3& operator[](size_t i) { return v[i]; } 33 | inline const double3& operator[](size_t i) const { return v[i]; } 34 | }; 35 | -------------------------------------------------------------------------------- /src/mathkit/float2.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | module float2; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | std::ostream& operator<<(std::ostream& stream, const float2& vec) { return stream << vec.x << vec.y; } 15 | 16 | std::istream& operator>>(std::istream& stream, float2& vec) { return stream >> vec.x >> vec.y; } 17 | -------------------------------------------------------------------------------- /src/mathkit/float2.ixx: -------------------------------------------------------------------------------- 1 | export module float2; 2 | 3 | export union float2 4 | { 5 | float v[2]; 6 | struct 7 | { 8 | float x, y; 9 | }; 10 | 11 | inline float2(float x = 0, float y = 0) : x(x), y(y) {}; 12 | 13 | inline float& operator[](int i) { return v[i]; } 14 | inline const float& operator[](int i) const { return v[i]; } 15 | 16 | inline float2& operator+=(const float2& rhs) 17 | { 18 | x += rhs.x; 19 | y += rhs.y; 20 | return *this; 21 | } 22 | inline float2& operator-=(const float2& rhs) 23 | { 24 | x -= rhs.x; 25 | y -= rhs.y; 26 | return *this; 27 | } 28 | 29 | inline static float dot(const float2& v1, const float2& v2) { return v1.x * v2.x + v1.y * v2.y; } 30 | }; 31 | 32 | export inline float2 operator+(const float2& a, const float2& b) { return float2(a.x + b.x, a.y + b.y); } 33 | 34 | export inline float2 operator-(const float2& a, const float2& b) { return float2(a.x - b.x, a.y - b.y); } 35 | 36 | export inline float2 operator*(const float2& a, const float2& b) { return float2(a.x * b.x, a.y * b.y); } 37 | -------------------------------------------------------------------------------- /src/mathkit/float3x4.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | module float3x4; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | #endif 17 | 18 | float3x4::float3x4(const float3x4& a) // copy constructor 19 | { 20 | m11 = a.m11; 21 | m21 = a.m21; 22 | m31 = a.m31; 23 | m41 = a.m41; 24 | m12 = a.m12; 25 | m22 = a.m22; 26 | m32 = a.m32; 27 | m42 = a.m42; 28 | m13 = a.m13; 29 | m23 = a.m23; 30 | m33 = a.m33; 31 | m43 = a.m43; 32 | } 33 | 34 | float3x4& float3x4::operator=(const float3x4& a) // assignment operator 35 | { 36 | if (this != &a) // protect against self-assingment 37 | { 38 | m11 = a.m11; 39 | m21 = a.m21; 40 | m31 = a.m31; 41 | m41 = a.m41; 42 | m12 = a.m12; 43 | m22 = a.m22; 44 | m32 = a.m32; 45 | m42 = a.m42; 46 | m13 = a.m13; 47 | m23 = a.m23; 48 | m33 = a.m33; 49 | m43 = a.m43; 50 | } 51 | return *this; 52 | } 53 | -------------------------------------------------------------------------------- /src/mathkit/float4.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | module float4; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | void float4::normalise() 15 | { 16 | float magnitude = std::sqrt((x * x) + (y * y) + (z * z) * (w * w)); 17 | 18 | if (magnitude != 0) 19 | { 20 | x /= magnitude; 21 | y /= magnitude; 22 | z /= magnitude; 23 | w /= magnitude; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/mathkit/hashcombine.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module hashcombine; 4 | -------------------------------------------------------------------------------- /src/mathkit/hashcombine.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module hashcombine; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | #endif 17 | 18 | // https://stackoverflow.com/questions/35985960/c-why-is-boosthash-combine-the-best-way-to-combine-hash-values/50978188 19 | 20 | export inline void hash_combine([[maybe_unused]] std::size_t& seed) {} 21 | 22 | export template 23 | inline void hash_combine(std::size_t& seed, const T& v, Rest... rest) 24 | { 25 | std::hash hasher; 26 | seed ^= hasher(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); 27 | hash_combine(seed, rest...); 28 | } 29 | -------------------------------------------------------------------------------- /src/mathkit/int3.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #endif 12 | 13 | module int3; 14 | 15 | #ifndef USE_LEGACY_HEADERS 16 | import ; 17 | import ; 18 | import ; 19 | import ; 20 | import ; 21 | import ; 22 | #endif 23 | 24 | import ring; 25 | import archive; 26 | 27 | int3 int3::greatestCommonDivisor(int3 a, int b) 28 | { 29 | return int3(Ring::greatestCommonDivisor(a.x, b), Ring::greatestCommonDivisor(a.y, b), 30 | Ring::greatestCommonDivisor(a.z, b)); 31 | } 32 | 33 | Archive &operator<<(Archive &archive, const int3 &vec) 34 | { 35 | archive << vec.x << vec.y << vec.z; 36 | return archive; 37 | } 38 | 39 | Archive &operator>>(Archive &archive, int3 &vec) 40 | { 41 | archive >> vec.x >> vec.y >> vec.z; 42 | return archive; 43 | } 44 | -------------------------------------------------------------------------------- /src/mathkit/matrix.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | module matrix; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | #endif 17 | 18 | Matrix::Matrix(size_t rows, size_t columns, double initialValue) : _rows(rows), _columns(columns), _grid(rows * columns) 19 | { 20 | std::fill(_grid.begin(), _grid.end(), initialValue); 21 | } 22 | 23 | Matrix operator*(const Matrix& lhs, const Matrix& rhs) 24 | { 25 | Matrix results = Matrix(lhs._rows, rhs._columns, 0); 26 | for (size_t i = 0; i < lhs._rows; i++) 27 | { 28 | for (size_t j = 0; j < rhs._columns; j++) 29 | { 30 | double v = 0; 31 | for (size_t k = 0; k < lhs.columns(); k++) 32 | { 33 | v += lhs(i, k) * rhs(k, j); 34 | } 35 | results(i, j) = v; 36 | } 37 | } 38 | return results; 39 | } 40 | -------------------------------------------------------------------------------- /src/mathkit/ring.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | export module ring; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | export struct Ring 15 | { 16 | Ring(); 17 | static int floorDivision(int a, int b); 18 | static int modulo(int a, int b); 19 | static int greatestCommonDivisor(int a, int b); 20 | static std::tuple extendedGreatestCommonDivisor(int a, int b); 21 | static std::pair divisionModulo(int a, int b); 22 | }; 23 | -------------------------------------------------------------------------------- /src/mathkit/special_functions.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #endif 10 | 11 | export module special_functions; 12 | 13 | #ifndef USE_LEGACY_HEADERS 14 | import ; 15 | import ; 16 | import ; 17 | import ; 18 | #endif 19 | 20 | export extern double li2(double x); 21 | export extern double hypergeometric2F1(double a, double b, double c, double z); 22 | export extern double hypergeometric(double a, double b, double c, double x); 23 | 24 | export template 25 | std::vector sort_indexes(const std::vector &v) 26 | { 27 | // initialize original index locations 28 | std::vector idx(v.size()); 29 | std::iota(idx.begin(), idx.end(), 0); 30 | 31 | // sort indexes based on comparing values in v 32 | // using std::stable_sort instead of std::sort 33 | // to avoid unnecessary index re-orderings 34 | // when v contains elements of equal values 35 | stable_sort(idx.begin(), idx.end(), [&v](size_t i1, size_t i2) { return v[i1] < v[i2]; }); 36 | 37 | return idx; 38 | } 39 | -------------------------------------------------------------------------------- /src/mathkit/symmetric_matrix_layout.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module symmetric_matrix_layout; 4 | -------------------------------------------------------------------------------- /src/raspakit/cbmc/chain_data.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module cbmc_chain_data; 4 | -------------------------------------------------------------------------------- /src/raspakit/cbmc/chain_data.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | export module cbmc_chain_data; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | import atom; 15 | import molecule; 16 | import double3x3; 17 | import double3; 18 | import randomnumbers; 19 | import running_energy; 20 | 21 | export struct ChainData 22 | { 23 | Molecule molecule; 24 | std::vector atom; 25 | RunningEnergy energies; 26 | double RosenbluthWeight; 27 | double storedR; 28 | 29 | ChainData(const Molecule &molecule, std::vector atom, RunningEnergy energies, double RosenbluthWeight, 30 | double storedR) noexcept 31 | : molecule(molecule), atom(atom), energies(energies), RosenbluthWeight(RosenbluthWeight), storedR(storedR) 32 | { 33 | } 34 | }; 35 | -------------------------------------------------------------------------------- /src/raspakit/cbmc/first_bead_data.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module cbmc_first_bead_data; 4 | -------------------------------------------------------------------------------- /src/raspakit/cbmc/first_bead_data.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | export module cbmc_first_bead_data; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | import atom; 15 | import double3x3; 16 | import double3; 17 | import randomnumbers; 18 | import running_energy; 19 | 20 | export struct FirstBeadData 21 | { 22 | Atom atom; 23 | RunningEnergy energies; 24 | double RosenbluthWeight; 25 | double storedR; 26 | 27 | FirstBeadData() noexcept = delete; 28 | FirstBeadData(Atom atom, RunningEnergy energies, double RosenbluthWeight, double storedR) noexcept 29 | : atom(atom), energies(energies), RosenbluthWeight(RosenbluthWeight), storedR(storedR) 30 | { 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /src/raspakit/cbmc/flexible_insertion.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module cbmc_flexible_insertion; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | #endif 17 | 18 | import atom; 19 | import double3x3; 20 | import double3; 21 | import randomnumbers; 22 | import cbmc_chain_data; 23 | import component; 24 | 25 | // export [[nodiscard]] std::optional 26 | // growFlexibleMoleculeSwapInsertion(const Component &component, RandomNumber &random, double cutOff, 27 | // double cutOffCoulomb, size_t selectedComponent, size_t selectedMolecule, 28 | // double scaling, std::vector atoms) noexcept; 29 | -------------------------------------------------------------------------------- /src/raspakit/cbmc/growing_status.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module cbmc_growing_status; 4 | -------------------------------------------------------------------------------- /src/raspakit/cbmc/util.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #endif 10 | 11 | export module cbmc_util; 12 | 13 | #ifndef USE_LEGACY_HEADERS 14 | import ; 15 | import ; 16 | import ; 17 | import ; 18 | #endif 19 | 20 | import atom; 21 | import double3x3; 22 | import double3; 23 | import simd_quatd; 24 | import randomnumbers; 25 | 26 | export namespace CBMC 27 | { 28 | std::vector rotateRandomlyAround(RandomNumber &random, std::vector atoms, size_t startingBead); 29 | std::vector rotateRandomlyAround(simd_quatd &q, std::vector atoms, size_t startingBead); 30 | 31 | // LogBoltzmannFactors are (-Beta U) 32 | size_t selectTrialPosition(RandomNumber &random, std::vector LogBoltzmannFactors); 33 | } // namespace CBMC 34 | -------------------------------------------------------------------------------- /src/raspakit/interactions/polarization.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #endif 11 | 12 | export module interactions_polarization; 13 | 14 | #ifndef USE_LEGACY_HEADERS 15 | import ; 16 | import ; 17 | import ; 18 | import ; 19 | import ; 20 | #endif 21 | 22 | import double3; 23 | import double3x3; 24 | import atom; 25 | import running_energy; 26 | import energy_status; 27 | import simulationbox; 28 | import gradient_factor; 29 | import forcefield; 30 | import framework; 31 | import component; 32 | 33 | export namespace Interactions 34 | { 35 | RunningEnergy computePolarizationEnergyDifference(const ForceField &forceField, std::span electricField, 36 | std::span electricFieldNew, 37 | std::span moleculeAtomPositions); 38 | } 39 | -------------------------------------------------------------------------------- /src/raspakit/mc_moves/component/identity_change.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module mc_moves_identity_change; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | import ; 17 | #endif 18 | 19 | import double3; 20 | import randomnumbers; 21 | import running_energy; 22 | import atom; 23 | import system; 24 | 25 | export namespace MC_Moves 26 | { 27 | std::optional identityChangeMove([[maybe_unused]] RandomNumber& random, [[maybe_unused]] System& system, 28 | [[maybe_unused]] size_t selectedComponent, 29 | [[maybe_unused]] size_t selectedMolecule, 30 | [[maybe_unused]] std::span atoms); 31 | } 32 | -------------------------------------------------------------------------------- /src/raspakit/mc_moves/component/rotation.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module mc_moves_rotation; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | import ; 17 | #endif 18 | 19 | import randomnumbers; 20 | import running_energy; 21 | import atom; 22 | import molecule; 23 | import component; 24 | import system; 25 | 26 | export namespace MC_Moves 27 | { 28 | std::optional rotationMove(RandomNumber &random, System &system, size_t selectedComponent, 29 | const std::vector &components, Molecule &molecule, 30 | std::span molecule_atoms); 31 | } 32 | -------------------------------------------------------------------------------- /src/raspakit/mc_moves/group/reaction.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #endif 10 | 11 | export module mc_moves_reaction; 12 | 13 | #ifndef USE_LEGACY_HEADERS 14 | import ; 15 | import ; 16 | import ; 17 | import ; 18 | import ; 19 | #endif 20 | 21 | import double3; 22 | import randomnumbers; 23 | import running_energy; 24 | import atom; 25 | import system; 26 | 27 | export namespace MC_Moves 28 | { 29 | std::optional reactionMove([[maybe_unused]] RandomNumber& random, System& system, 30 | [[maybe_unused]] const std::vector reactantStoichiometry, 31 | [[maybe_unused]] const std::vector productStoichiometry); 32 | } 33 | -------------------------------------------------------------------------------- /src/raspakit/mc_moves/group/reaction_cfcmc.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #endif 10 | 11 | export module mc_moves_reaction_cfcmc; 12 | 13 | #ifndef USE_LEGACY_HEADERS 14 | import ; 15 | import ; 16 | import ; 17 | import ; 18 | import ; 19 | #endif 20 | 21 | import double3; 22 | import randomnumbers; 23 | import running_energy; 24 | import atom; 25 | import system; 26 | 27 | export namespace MC_Moves 28 | { 29 | std::optional reactionMove_CFCMC([[maybe_unused]] RandomNumber& random, System& system, 30 | [[maybe_unused]] const std::vector reactantStoichiometry, 31 | [[maybe_unused]] const std::vector productStoichiometry); 32 | } 33 | -------------------------------------------------------------------------------- /src/raspakit/mc_moves/group/reaction_cfcmc_cbmc.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #endif 10 | 11 | export module mc_moves_reaction_cfcmc_cbmc; 12 | 13 | #ifndef USE_LEGACY_HEADERS 14 | import ; 15 | import ; 16 | import ; 17 | import ; 18 | import ; 19 | #endif 20 | 21 | import double3; 22 | import randomnumbers; 23 | import running_energy; 24 | import atom; 25 | import system; 26 | 27 | export namespace MC_Moves 28 | { 29 | std::optional reactionMove_CFCMC_CBMC([[maybe_unused]] RandomNumber& random, System& system, 30 | [[maybe_unused]] const std::vector reactantStoichiometry, 31 | [[maybe_unused]] const std::vector productStoichiometry); 32 | } 33 | -------------------------------------------------------------------------------- /src/raspakit/mc_moves/move_statistics.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module move_statistics; 4 | -------------------------------------------------------------------------------- /src/raspakit/mc_moves/move_types.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module mc_moves_move_types; -------------------------------------------------------------------------------- /src/raspakit/mc_moves/system/volume.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module mc_moves_volume; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | import ; 17 | #endif 18 | 19 | import double3; 20 | import randomnumbers; 21 | import running_energy; 22 | import atom; 23 | import system; 24 | 25 | export namespace MC_Moves 26 | { 27 | /** 28 | * \brief Performs a volume move in a Monte Carlo simulation. 29 | * 30 | * Attempts to change the system volume by a random amount, scaling the simulation box and molecule positions 31 | * accordingly. Computes the new energies and decides whether to accept the move based on the Metropolis criterion. 32 | * 33 | * \param random A random number generator. 34 | * \param system The simulation system to modify. 35 | * \return The new total energy if the move is accepted; std::nullopt otherwise. 36 | */ 37 | std::optional volumeMove(RandomNumber &random, System &system); 38 | } // namespace MC_Moves 39 | -------------------------------------------------------------------------------- /src/raspakit/opencl.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #include 4 | #include 5 | #include 6 | #ifdef __APPLE__ 7 | #include 8 | #else 9 | #include 10 | #endif 11 | 12 | export module opencl; 13 | 14 | export namespace OpenCL 15 | { 16 | extern std::optional clContext; 17 | extern std::optional clDeviceId; 18 | extern std::optional clCommandQueue; 19 | 20 | void initialize(void); 21 | std::optional bestOpenCLDevice(cl_device_type device_type); 22 | std::string printBestOpenCLDevice(); 23 | bool supportsImageFormatCapabilities(cl_context &trial_clContext, cl_device_id &trial_clDeviceId); 24 | } 25 | 26 | -------------------------------------------------------------------------------- /src/raspakit/potentials/correction_pressure.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_correction_pressure; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/correction_vdw.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_correction_vdw; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/electrostatics.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_electrostatics; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/energy_coulomb.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_energy_coulomb; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/energy_vdw.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_energy_vdw; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/gradient_coulomb.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_gradient_coulomb; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/gradient_vdw.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_gradient_vdw; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/hessian_coulomb.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_hessian_coulomb; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/hessian_vdw.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_hessian_vdw; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/tricubic_derivative_lj.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_tricubic_derivative_lj; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/tricubic_derivative_real_ewald.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_tricubic_derivative_real_ewald; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/triquintic_derivative_lj.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_triquintic_derivative_lj; 4 | -------------------------------------------------------------------------------- /src/raspakit/potentials/triquintic_derivative_real_ewald.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module potential_triquintic_derivative_real_ewald; 4 | -------------------------------------------------------------------------------- /src/raspakit/properties/sample_movies.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #endif 12 | 13 | export module sample_movies; 14 | 15 | #ifndef USE_LEGACY_HEADERS 16 | import ; 17 | import ; 18 | import ; 19 | import ; 20 | import ; 21 | import ; 22 | #endif 23 | 24 | import atom; 25 | import simulationbox; 26 | import forcefield; 27 | 28 | export struct SampleMovie 29 | { 30 | SampleMovie(size_t systemId, size_t sampleEvery); 31 | 32 | void update(const ForceField &forceField, size_t systemId, const SimulationBox simulationBox, 33 | const std::span atomPositions, size_t currentCycle); 34 | 35 | size_t sampleEvery{10}; 36 | 37 | int modelNumber{1}; 38 | }; 39 | -------------------------------------------------------------------------------- /src/raspakit/ruptura/breakthrough_simulation.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #endif 11 | 12 | export module breakthrough_simulation; 13 | 14 | #ifndef USE_LEGACY_HEADERS 15 | import ; 16 | import ; 17 | import ; 18 | import ; 19 | import ; 20 | #endif 21 | 22 | import input_reader; 23 | import component; 24 | import system; 25 | import mixture_prediction; 26 | 27 | export struct BreakthroughSimulation 28 | { 29 | public: 30 | BreakthroughSimulation(InputReader &inputreader); 31 | 32 | void run(); 33 | 34 | private: 35 | std::vector systems; 36 | }; 37 | -------------------------------------------------------------------------------- /src/raspakit/ruptura/isotherm_fitting_simulation.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #endif 11 | 12 | export module isotherm_fitting_simulation; 13 | 14 | #ifndef USE_LEGACY_HEADERS 15 | import ; 16 | import ; 17 | import ; 18 | import ; 19 | import ; 20 | #endif 21 | 22 | import input_reader; 23 | import component; 24 | import system; 25 | import multi_site_isotherm; 26 | import isotherm_fitting; 27 | 28 | export struct IsothermFittingSimulation 29 | { 30 | public: 31 | IsothermFittingSimulation(InputReader &inputreader); 32 | 33 | void run(); 34 | 35 | private: 36 | std::vector systems; 37 | }; 38 | -------------------------------------------------------------------------------- /src/raspakit/ruptura/mixture_prediction_simulation.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #endif 11 | 12 | export module mixture_prediction_simulation; 13 | 14 | #ifndef USE_LEGACY_HEADERS 15 | import ; 16 | import ; 17 | import ; 18 | import ; 19 | import ; 20 | #endif 21 | 22 | import input_reader; 23 | import component; 24 | import system; 25 | import multi_site_isotherm; 26 | import mixture_prediction; 27 | 28 | export struct MixturePredictionSimulation 29 | { 30 | public: 31 | MixturePredictionSimulation(InputReader &inputreader); 32 | 33 | void run(); 34 | 35 | private: 36 | std::vector systems; 37 | }; 38 | -------------------------------------------------------------------------------- /src/raspakit/scaling.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module scaling; 4 | -------------------------------------------------------------------------------- /src/raspakit/structure_properties/energy/energy_surface_area.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module energy_surface_area; 11 | 12 | import int3; 13 | import double2; 14 | import double3; 15 | import double3x3; 16 | import forcefield; 17 | import framework; 18 | 19 | export struct EnergySurfaceArea 20 | { 21 | EnergySurfaceArea(); 22 | 23 | void run(const ForceField &forceField, const Framework &framework); 24 | }; 25 | -------------------------------------------------------------------------------- /src/raspakit/structure_properties/energy/energy_void_fraction.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module energy_void_fraction; 11 | 12 | import int3; 13 | import double2; 14 | import double3; 15 | import double3x3; 16 | import forcefield; 17 | import framework; 18 | 19 | export struct EnergyVoidFraction 20 | { 21 | EnergyVoidFraction(); 22 | ~EnergyVoidFraction(); 23 | 24 | void run(const ForceField &forceField, const Framework &framework); 25 | }; 26 | -------------------------------------------------------------------------------- /src/raspakit/structure_properties/energy_opencl/energy_opencl_void_fraction.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #define CL_TARGET_OPENCL_VERSION 120 9 | #ifdef __APPLE__ 10 | #include 11 | #elif _WIN32 12 | #include 13 | #else 14 | #include 15 | #endif 16 | #endif 17 | 18 | export module energy_opencl_void_fraction; 19 | 20 | import int3; 21 | import double2; 22 | import double3; 23 | import double3x3; 24 | import forcefield; 25 | import framework; 26 | 27 | export struct EnergyOpenCLVoidFraction 28 | { 29 | EnergyOpenCLVoidFraction(); 30 | ~EnergyOpenCLVoidFraction(); 31 | 32 | cl_program energyGridProgram; 33 | cl_kernel energyGridKernel; 34 | static const char* energyGridKernelSource; 35 | size_t energyGridWorkGroupSize; 36 | 37 | cl_program energyVoidFractionProgram; 38 | cl_kernel energyVoidFractionKernel; 39 | static const char* energyVoidFractionKernelSource; 40 | size_t energyVoidFractionWorkGroupSize; 41 | 42 | void run(const ForceField &forceField, const Framework &framework); 43 | }; 44 | -------------------------------------------------------------------------------- /src/raspakit/structure_properties/monte_carlo/pore_size_distribution.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module mc_pore_size_distribution; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | import ; 17 | #endif 18 | 19 | import framework; 20 | import forcefield; 21 | 22 | export struct MC_PoreSizeDistribution 23 | { 24 | std::vector data; 25 | 26 | MC_PoreSizeDistribution(size_t numberOfBins): 27 | data(numberOfBins) 28 | { 29 | }; 30 | 31 | void run(const ForceField &forceField, const Framework &framework, double well_depth_factor, size_t number_of_iterations); 32 | 33 | }; 34 | -------------------------------------------------------------------------------- /src/raspakit/structure_properties/monte_carlo/surface_area.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module mc_surface_area; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | import ; 17 | #endif 18 | 19 | import framework; 20 | import forcefield; 21 | 22 | export struct MC_SurfaceArea 23 | { 24 | std::vector data; 25 | 26 | MC_SurfaceArea() 27 | { 28 | }; 29 | 30 | void run(const ForceField &forceField, const Framework &framework, double probe_distance, 31 | std::string probe_pseudo_atom, size_t number_of_iterations) const; 32 | 33 | }; 34 | 35 | -------------------------------------------------------------------------------- /src/raspakit/structure_properties/monte_carlo/void_fraction.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module mc_void_fraction; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | import ; 17 | #endif 18 | 19 | import framework; 20 | import forcefield; 21 | 22 | export struct MC_VoidFraction 23 | { 24 | std::vector data; 25 | 26 | MC_VoidFraction() 27 | { 28 | }; 29 | 30 | void run(const ForceField &forceField, const Framework &framework, size_t number_of_iterations); 31 | 32 | }; 33 | -------------------------------------------------------------------------------- /src/raspakit/structure_properties/monte_carlo_opencl/pore_size_distribution.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module mc_opencl_pore_size_distribution; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | import ; 17 | #endif 18 | 19 | import framework; 20 | import forcefield; 21 | 22 | export struct MC_OpenCL_PoreSizeDistribution 23 | { 24 | std::vector data; 25 | 26 | MC_OpenCL_PoreSizeDistribution(size_t numberOfBins): 27 | data(numberOfBins) 28 | { 29 | }; 30 | 31 | void run(const ForceField &forceField, const Framework &framework, double well_depth_factor, size_t number_of_iterations); 32 | }; 33 | -------------------------------------------------------------------------------- /src/raspakit/structure_properties/monte_carlo_opencl/surface_area.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module mc_opencl_surface_area; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | import ; 17 | #endif 18 | 19 | import framework; 20 | import forcefield; 21 | 22 | export struct MC_OpenCL_SurfaceArea 23 | { 24 | std::vector data; 25 | 26 | MC_OpenCL_SurfaceArea() 27 | { 28 | }; 29 | 30 | void run(const ForceField &forceField, const Framework &framework, double probe_distance, 31 | std::string probe_pseudo_atom, size_t number_of_iterations) const; 32 | 33 | }; 34 | 35 | -------------------------------------------------------------------------------- /src/raspakit/structure_properties/monte_carlo_opencl/void_fraction.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module mc_opencl_void_fraction; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | import ; 17 | #endif 18 | 19 | import framework; 20 | import forcefield; 21 | 22 | export struct MC_OpenCL_VoidFraction 23 | { 24 | std::vector data; 25 | 26 | MC_OpenCL_VoidFraction() 27 | { 28 | }; 29 | 30 | void run(const ForceField &forceField, const Framework &framework, size_t number_of_iterations); 31 | 32 | }; 33 | -------------------------------------------------------------------------------- /src/symmetrykit/skasymmetricunit.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #endif 8 | 9 | export module skasymmetricunit; 10 | 11 | #ifndef USE_LEGACY_HEADERS 12 | import ; 13 | import ; 14 | #endif 15 | 16 | import int3; 17 | import int3x3; 18 | import double3; 19 | import double3x3; 20 | 21 | export struct SKAsymmetricUnit 22 | { 23 | std::pair a; 24 | std::pair b; 25 | std::pair c; 26 | 27 | SKAsymmetricUnit(); 28 | SKAsymmetricUnit(std::pair p1, std::pair p2, std::pair p3) : a(p1), b(p2), c(p3) {}; 29 | 30 | SKAsymmetricUnit(const SKAsymmetricUnit& t) 31 | { 32 | this->a = t.a; 33 | this->b = t.b; 34 | this->c = t.c; 35 | } 36 | 37 | SKAsymmetricUnit& operator=(const SKAsymmetricUnit& other) 38 | { 39 | this->a = other.a; 40 | this->b = other.b; 41 | this->c = other.c; 42 | return *this; 43 | } 44 | 45 | bool contains(double3 point); 46 | bool isInsideRange(double point, double leftBoundary, int equalLeft, double rightBoundary, int equalRight); 47 | }; 48 | -------------------------------------------------------------------------------- /src/symmetrykit/skatom.ixx: -------------------------------------------------------------------------------- 1 | export module skatom; 2 | 3 | export import :skasymmetricatom; 4 | export import :skatomcopy; 5 | -------------------------------------------------------------------------------- /src/symmetrykit/skdefinitions.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module skdefinitions; 4 | -------------------------------------------------------------------------------- /src/symmetrykit/skdefinitions.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #endif 8 | 9 | export module skdefinitions; 10 | 11 | #ifndef USE_LEGACY_HEADERS 12 | import ; 13 | import ; 14 | #endif 15 | 16 | export enum class Symmorphicity : size_t { asymmorphic = 0, symmorphic = 1, hemisymmorphic = 2 }; 17 | 18 | export enum class Centring : size_t { 19 | none = 0, 20 | primitive = 1, 21 | body = 2, 22 | a_face = 3, 23 | b_face = 4, 24 | c_face = 5, 25 | face = 6, 26 | base = 7, 27 | r = 8, 28 | h = 9, 29 | d = 10 30 | }; 31 | 32 | export enum class Holohedry : size_t { 33 | none = 0, 34 | triclinic = 1, 35 | monoclinic = 2, 36 | orthorhombic = 3, 37 | tetragonal = 4, 38 | trigonal = 5, 39 | hexagonal = 6, 40 | cubic = 7 41 | }; 42 | -------------------------------------------------------------------------------- /src/symmetrykit/skintegerchangeofbasis.ixx: -------------------------------------------------------------------------------- 1 | export module skintegerchangeofbasis; 2 | 3 | import int3; 4 | import int3x3; 5 | import double3; 6 | import double3x3; 7 | 8 | import sktransformationmatrix; 9 | 10 | export class SKIntegerChangeOfBasis 11 | { 12 | public: 13 | SKIntegerChangeOfBasis() { ; } 14 | SKIntegerChangeOfBasis(SKTransformationMatrix inversionTransformation); 15 | SKIntegerChangeOfBasis inverse(); 16 | SKTransformationMatrix operator*(const SKTransformationMatrix& b) const; 17 | double3 operator*(const double3& b) const; 18 | int3 operator*(const int3& b) const; 19 | 20 | private: 21 | SKTransformationMatrix _changeOfBasis; 22 | SKTransformationMatrix _inverseChangeOfBasis; 23 | int _changeOfBasisDeterminant = 1; 24 | int _inverseChangeOfBasisDeterminant = 1; 25 | }; 26 | -------------------------------------------------------------------------------- /src/symmetrykit/skonethirdseitzmatrix.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #endif 8 | 9 | module skonethirdseitzmatrix; 10 | 11 | #ifndef USE_LEGACY_HEADERS 12 | import ; 13 | #endif 14 | 15 | SKOneThirdSeitzMatrix::SKOneThirdSeitzMatrix(std::string text, uint8_t encoding, int8_t r1, int8_t r2, int8_t r3, 16 | int8_t t) 17 | { 18 | _text = text; 19 | _encoding = encoding; 20 | _r1 = r1; 21 | _r2 = r2; 22 | _r3 = r3; 23 | _t = t; 24 | } 25 | -------------------------------------------------------------------------------- /src/symmetrykit/skonethirdseitzmatrix.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #endif 8 | 9 | export module skonethirdseitzmatrix; 10 | 11 | #ifndef USE_LEGACY_HEADERS 12 | import ; 13 | #endif 14 | 15 | export class SKOneThirdSeitzMatrix 16 | { 17 | public: 18 | SKOneThirdSeitzMatrix(std::string text, uint8_t encoding, int8_t r1, int8_t r2, int8_t r3, int8_t t); 19 | std::string text() { return _text; } 20 | uint8_t encoding() { return _encoding; } 21 | int8_t r1() { return _r1; } 22 | int8_t r2() { return _r2; } 23 | int8_t r3() { return _r3; } 24 | int8_t t() { return _t; } 25 | 26 | private: 27 | std::string _text; 28 | uint8_t _encoding; 29 | int8_t _r1; 30 | int8_t _r2; 31 | int8_t _r3; 32 | int8_t _t; 33 | }; 34 | -------------------------------------------------------------------------------- /src/symmetrykit/skparser.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #endif 11 | 12 | export module skparser; 13 | 14 | #ifndef USE_LEGACY_HEADERS 15 | import ; 16 | import ; 17 | import ; 18 | import ; 19 | import ; 20 | #endif 21 | 22 | import double3; 23 | import skstructure; 24 | 25 | export class SKParser 26 | { 27 | public: 28 | enum class ImportType : int64_t 29 | { 30 | asSeperateProjects = 0, 31 | asSingleProject = 1, 32 | asMovieFrames = 2 33 | }; 34 | SKParser(); 35 | virtual ~SKParser(); 36 | virtual void startParsing() noexcept(false) = 0; 37 | std::vector>> movies(); 38 | 39 | std::vector> firstTestFrame(); 40 | 41 | protected: 42 | double _a, _b, _c; 43 | double _alpha, _beta, _gamma; 44 | std::vector>> _movies; 45 | }; 46 | -------------------------------------------------------------------------------- /src/symmetrykit/skpointsymmetryset.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | module skpointsymmetryset; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | import skrotationmatrix; 15 | 16 | SKPointSymmetrySet::SKPointSymmetrySet(std::vector rotations) : _rotations(rotations) {} 17 | -------------------------------------------------------------------------------- /src/symmetrykit/skpointsymmetryset.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | export module skpointsymmetryset; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | import skrotationmatrix; 15 | 16 | export class SKPointSymmetrySet 17 | { 18 | public: 19 | SKPointSymmetrySet(std::vector rotations); 20 | const std::vector& rotations() { return _rotations; } 21 | 22 | private: 23 | std::vector _rotations; 24 | }; 25 | -------------------------------------------------------------------------------- /src/symmetrykit/skrotationaloccurancetable.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #endif 8 | 9 | export module skrotationaloccurancetable; 10 | 11 | #ifndef USE_LEGACY_HEADERS 12 | import ; 13 | import ; 14 | #endif 15 | 16 | export struct SKRotationalOccuranceTable 17 | { 18 | std::map, std::make_signed_t> occurance; 19 | 20 | SKRotationalOccuranceTable(std::make_signed_t axis_6m, std::make_signed_t axis_4m, 21 | std::make_signed_t axis_3m, std::make_signed_t axis_2m, 22 | std::make_signed_t axis_1m, std::make_signed_t axis_1, 23 | std::make_signed_t axis_2, std::make_signed_t axis_3, 24 | std::make_signed_t axis_4, std::make_signed_t axis_6); 25 | 26 | inline bool operator==(const SKRotationalOccuranceTable& b) const { return (this->occurance == b.occurance); } 27 | }; 28 | -------------------------------------------------------------------------------- /src/symmetrykit/skseitzmatrix.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module skseitzmatrix; 4 | 5 | import int3; 6 | import int3x3; 7 | import double3; 8 | import double3x3; 9 | 10 | import skrotationmatrix; 11 | 12 | SKSeitzMatrix::SKSeitzMatrix() {} 13 | 14 | SKSeitzMatrix::SKSeitzMatrix(SKRotationMatrix rotation, double3 translation) 15 | { 16 | this->rotation = rotation; 17 | this->translation = translation; 18 | } 19 | -------------------------------------------------------------------------------- /src/symmetrykit/skseitzmatrix.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | export module skseitzmatrix; 11 | 12 | #ifndef USE_LEGACY_HEADERS 13 | import ; 14 | import ; 15 | import ; 16 | #endif 17 | 18 | import int3; 19 | import int3x3; 20 | import double3; 21 | import double3x3; 22 | import skrotationmatrix; 23 | import skonethirdseitzmatrix; 24 | 25 | export struct SKSeitzMatrix 26 | { 27 | SKRotationMatrix rotation; 28 | double3 translation; 29 | 30 | SKSeitzMatrix(); 31 | SKSeitzMatrix(SKRotationMatrix rotation, double3 translation); 32 | 33 | inline bool operator==(const SKSeitzMatrix& b) 34 | { 35 | double3 dr = (this->translation - b.translation); 36 | dr.x -= rint(dr.x); 37 | dr.y -= rint(dr.y); 38 | dr.z -= rint(dr.z); 39 | 40 | return (this->rotation == b.rotation) && (dr.length_squared() < 1e-5); 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /src/symmetrykit/skspacegroupdatabase.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #include 7 | #endif 8 | 9 | export module skspacegroupdatabase; 10 | 11 | #ifndef USE_LEGACY_HEADERS 12 | import ; 13 | import ; 14 | #endif 15 | 16 | import skspacegroupsetting; 17 | 18 | export struct SKSpaceGroupDataBase 19 | { 20 | SKSpaceGroupDataBase(); 21 | 22 | static const std::array spaceGroupData; 23 | static const std::vector> spaceGroupHallData; 24 | }; 25 | -------------------------------------------------------------------------------- /src/symmetrykit/skstructure.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/src/symmetrykit/skstructure.cpp -------------------------------------------------------------------------------- /src/symmetrykit/sksymmetryoperationset.ixx: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | #ifdef USE_LEGACY_HEADERS 4 | #include 5 | #include 6 | #endif 7 | 8 | export module sksymmetryoperationset; 9 | 10 | #ifndef USE_LEGACY_HEADERS 11 | import ; 12 | #endif 13 | 14 | import skdefinitions; 15 | import skseitzmatrix; 16 | import skrotationmatrix; 17 | import sktransformationmatrix; 18 | import sksymmetrycell; 19 | 20 | export struct SKSymmetryOperationSet 21 | { 22 | std::vector operations; 23 | Centring centring; 24 | 25 | SKSymmetryOperationSet(); 26 | SKSymmetryOperationSet(std::vector operations); 27 | 28 | inline size_t size() { return this->operations.size(); } 29 | 30 | SKSymmetryOperationSet fullSeitzMatrices(); 31 | const std::vector rotations() const; 32 | const std::vector properRotations() const; 33 | 34 | const SKSymmetryOperationSet changedBasis(SKTransformationMatrix transformationMatrix) const; 35 | const SKSymmetryOperationSet addingCenteringOperations(Centring centering) const; 36 | }; 37 | -------------------------------------------------------------------------------- /src/utilitykit/factory.cpp: -------------------------------------------------------------------------------- 1 | module; 2 | 3 | module factory; -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | enable_testing() 2 | 3 | include(FetchContent) 4 | FetchContent_Declare(googletest 5 | GIT_REPOSITORY https://github.com/google/googletest.git 6 | GIT_TAG v1.16.0) 7 | # For Windows: Prevent overriding the parent project's compiler/linker settings 8 | set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) 9 | FetchContent_MakeAvailable(googletest) 10 | 11 | include(GoogleTest) 12 | 13 | add_subdirectory(mathkit-tests) 14 | add_subdirectory(foundationkit-tests) 15 | add_subdirectory(symmetrykit-tests) 16 | add_subdirectory(raspakit-tests) 17 | -------------------------------------------------------------------------------- /tests/foundationkit-tests/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char** argv) 4 | { 5 | ::testing::InitGoogleTest(&argc, argv); 6 | return RUN_ALL_TESTS(); 7 | } 8 | -------------------------------------------------------------------------------- /tests/foundationkit-tests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /tests/foundationkit-tests/test.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iRASPA/RASPA3/782a9de518c0fb379e8b6f7ae90a066c23a86435/tests/foundationkit-tests/test.bin -------------------------------------------------------------------------------- /tests/mathkit-tests/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char** argv) 4 | { 5 | ::testing::InitGoogleTest(&argc, argv); 6 | return RUN_ALL_TESTS(); 7 | } -------------------------------------------------------------------------------- /tests/mathkit-tests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /tests/raspakit-tests/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | int main(int argc, char** argv) 6 | { 7 | testing::InitGoogleTest(&argc, argv); 8 | return RUN_ALL_TESTS(); 9 | } 10 | -------------------------------------------------------------------------------- /tests/raspakit-tests/mc.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | import int3; 12 | import double3; 13 | import double3x3; 14 | import factory; 15 | import units; 16 | import atom; 17 | import pseudo_atom; 18 | import vdwparameters; 19 | import forcefield; 20 | import framework; 21 | import component; 22 | import system; 23 | import simulationbox; 24 | import mc_moves_statistics; 25 | import mc_moves_move_types; 26 | import mc_moves_probabilities; 27 | 28 | TEST(MC, translation) 29 | { 30 | ForceField forceField = TestFactories::makeDefaultFF(12.0, true, false, true); 31 | Framework f = TestFactories::makeMFI_Si(forceField, int3(2, 2, 2)); 32 | Component methane = TestFactories::makeMethane(forceField, 0); 33 | Component co2 = TestFactories::makeCO2(forceField, 1, true); 34 | 35 | System system = System(0, forceField, std::nullopt, 300.0, 1e4, 1.0, {f}, {methane, co2}, {5, 3}, 5); 36 | 37 | [[maybe_unused]] std::span atomPositions = system.spanOfMoleculeAtoms(); 38 | } 39 | -------------------------------------------------------------------------------- /tests/raspakit-tests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /tests/raspakit-tests/pbc.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | import double3; 9 | import double3x3; 10 | import simulationbox; 11 | import interactions_intermolecular; 12 | import interactions_framework_molecule; 13 | import interactions_ewald; 14 | 15 | TEST(pbc, triclinic) 16 | { 17 | // double3x3 m{ double3{25.0, 2.5e-6, 0.0}, double3{0.0, 25.0, 0.0}, double3{0.0, 0.0, 25.0} }; 18 | // SimulationBox rect_box = SimulationBox(m, SimulationBox::Type::Rectangular); 19 | // SimulationBox triclinic_box = SimulationBox(m, SimulationBox::Type::Triclinic); 20 | // double3 dr = double3{6.8015008307321985, -8.0937084818712712, -13.749755827850278}; 21 | // double3 res = rect_box.applyPeriodicBoundaryConditions(dr); 22 | // double3 s = triclinic_box.inverseCell * dr; 23 | // double3 r = triclinic_box.cell * s; 24 | // 25 | // double3 test = triclinic_box.applyPeriodicBoundaryConditions(dr); 26 | } 27 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char** argv) 4 | { 5 | ::testing::InitGoogleTest(&argc, argv); 6 | return RUN_ALL_TESTS(); 7 | } 8 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/cubic/POSCAR-200-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 5.4499974355473464 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 5.4499974355473464 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.4499974355473464 6 | 1 1 3 6 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Rb1 9 | 0.5000000000000004 0.5000000000000004 0.5000000000000004 # Hg1 10 | 0.0000000000000000 0.5000000000000004 0.5000000000000004 # N1 11 | 0.5000000000000004 0.0000000000000000 0.5000000000000004 # N2 12 | 0.5000000000000004 0.5000000000000004 0.0000000000000000 # N3 13 | 0.0000000000000000 0.2399999999999999 0.5000000000000004 # O1 14 | 0.0000000000000000 0.7600000000000000 0.5000000000000004 # O2 15 | 0.5000000000000004 0.0000000000000000 0.2399999999999999 # O3 16 | 0.5000000000000004 0.0000000000000000 0.7600000000000000 # O4 17 | 0.2399999999999999 0.5000000000000004 0.0000000000000000 # O5 18 | 0.7600000000000000 0.5000000000000004 0.0000000000000000 # O6 19 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/cubic/POSCAR-205: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 5.62399735367308 0.00000000000000 0.00000000000000 4 | 0.00000000000000 5.62399735367308 0.00000000000000 5 | 0.00000000000000 0.00000000000000 5.62399735367308 6 | 4 8 7 | Direct 8 | 0.00000000000000 0.00000000000000 0.00000000000000 # C1 9 | 0.50000000000000 0.00000000000000 0.50000000000000 # C2 10 | 0.50000000000000 0.50000000000000 0.00000000000000 # C3 11 | 0.00000000000000 0.50000000000000 0.50000000000000 # C4 12 | 0.11850000000000 0.11850000000000 0.11850000000000 # O1 13 | -0.11850000000000 -0.11850000000000 -0.11850000000000 # O2 14 | 0.38150000000000 -0.11850000000000 0.61850000000000 # O3 15 | 0.61850000000000 0.11850000000000 0.38150000000000 # O4 16 | 0.61850000000000 0.38150000000000 -0.11850000000000 # O5 17 | 0.38150000000000 0.61850000000000 0.11850000000000 # O6 18 | -0.11850000000000 0.61850000000000 0.38150000000000 # O7 19 | 0.11850000000000 0.38150000000000 0.61850000000000 # O8 20 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/cubic/POSCAR-215: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 5.3929974623682275 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 5.3929974623682275 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.3929974623682275 6 | 1 3 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # V1 9 | 0.5000000000000004 0.0000000000000000 0.0000000000000000 # Cu1 10 | 0.0000000000000000 0.5000000000000004 0.0000000000000000 # Cu2 11 | 0.0000000000000000 0.0000000000000000 0.5000000000000004 # Cu3 12 | 0.2371999999999996 0.2372000000000005 0.2371999999999996 # S1 13 | 0.2372000000000005 0.7628000000000003 0.7628000000000003 # S2 14 | 0.7628000000000003 0.7628000000000003 0.2371999999999996 # S3 15 | 0.7628000000000003 0.2372000000000005 0.7628000000000003 # S4 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/cubic/POSCAR-221-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 5.7949972732104360 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 5.7949972732104360 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.7949972732104360 6 | 1 1 3 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Cs1 9 | 0.5000000000000000 0.5000000000000000 0.5000000000000000 # Sn1 10 | 0.0000000000000000 0.5000000000000000 0.5000000000000000 # Br1 11 | 0.5000000000000000 0.0000000000000000 0.5000000000000000 # Br2 12 | 0.5000000000000000 0.5000000000000000 0.0000000000000000 # Br3 13 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/cubic/POSCAR-223: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 6.6699968614863874 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 6.6699968614863874 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.6699968614863874 6 | 8 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # F1 9 | 0.2500000000000004 0.5000000000000000 0.0000000000000000 # F2 10 | 0.7499999999999997 0.5000000000000000 0.0000000000000000 # F3 11 | 0.5000000000000000 0.5000000000000000 0.5000000000000000 # F4 12 | 0.0000000000000000 0.7499999999999997 0.5000000000000000 # F5 13 | 0.0000000000000000 0.2500000000000004 0.5000000000000000 # F6 14 | 0.5000000000000000 0.0000000000000000 0.2499999999999996 # F7 15 | 0.5000000000000000 0.0000000000000000 0.7499999999999997 # F8 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/cubic/POSCAR-224: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.9039976924631548 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.9039976924631548 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.9039976924631548 6 | 4 6 7 | Direct 8 | 0.2500000000000000 0.2500000000000000 0.2500000000000000 # Ag1 9 | 0.2500000000000000 0.7500000000000000 0.7500000000000000 # Ag2 10 | 0.7500000000000000 0.7500000000000000 0.2500000000000000 # Ag3 11 | 0.7500000000000000 0.2500000000000000 0.7500000000000000 # Ag4 12 | 0.5000000000000000 0.0000000000000000 0.0000000000000000 # O1 13 | 0.0000000000000000 0.5000000000000000 0.5000000000000000 # O2 14 | 0.5000000000000000 0.0000000000000000 0.5000000000000000 # O3 15 | 0.5000000000000000 0.5000000000000000 0.0000000000000000 # O4 16 | 0.0000000000000000 0.5000000000000000 0.0000000000000000 # O5 17 | 0.0000000000000000 0.0000000000000000 0.5000000000000000 # O6 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/cubic/POSCAR-224-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.9039976924631548 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.9039976924631548 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.9039976924631548 6 | 4 6 7 | Direct 8 | 0.2500000000000000 0.2500000000000000 0.2500000000000000 # Ag1 9 | 0.2500000000000000 0.7500000000000000 0.7500000000000000 # Ag2 10 | 0.7500000000000000 0.7500000000000000 0.2500000000000000 # Ag3 11 | 0.7500000000000000 0.2500000000000000 0.7500000000000000 # Ag4 12 | 0.5000000000000000 0.0000000000000000 0.0000000000000000 # O1 13 | 0.0000000000000000 0.5000000000000000 0.5000000000000000 # O2 14 | 0.5000000000000000 0.0000000000000000 0.5000000000000000 # O3 15 | 0.5000000000000000 0.5000000000000000 0.0000000000000000 # O4 16 | 0.0000000000000000 0.5000000000000000 0.0000000000000000 # O5 17 | 0.0000000000000000 0.0000000000000000 0.5000000000000000 # O6 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/hexagonal/POSCAR-173: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 7.1329966436255470 0.0000000000000000 0.0000000000000000 4 | -3.5664983218127717 6.1773562984888608 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 7.4139965114033100 6 | 6 2 7 | Direct 8 | 0.0337000000000000 0.3475000000000000 0.0000000000000000 # 11 9 | 0.6862000000000000 0.0337000000000000 0.5000000000000000 # 12 10 | 0.6525000000000000 0.6862000000000000 0.0000000000000000 # 13 11 | 0.9662999999999999 0.6525000000000000 0.5000000000000000 # 14 12 | 0.3138000000000001 0.9662999999999999 0.0000000000000000 # 15 13 | 0.3475000000000000 0.3138000000000001 0.5000000000000000 # 16 14 | 0.3333333333333333 0.6666666666666666 0.1460000000000000 # 21 15 | 0.6666666666666666 0.3333333333333333 0.6460000000000000 # 22 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/hexagonal/POSCAR-176: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 6.4179969800629095 0.0000000000000000 0.0000000000000000 4 | -3.2089984900314534 5.5581484261462890 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 3.7429982387621501 6 | 2 6 7 | Direct 8 | 0.3333333333333333 0.6666666666666666 0.2500000000000000 # 11 9 | 0.6666666666666666 0.3333333333333333 0.7500000000000000 # 12 10 | 0.3923000000000000 0.3108000000000001 0.2500000000000000 # 21 11 | 0.6077000000000000 0.6892000000000000 0.7500000000000000 # 22 12 | 0.0815000000000000 0.3923000000000000 0.7500000000000000 # 23 13 | 0.9185000000000000 0.6077000000000000 0.2500000000000000 # 24 14 | 0.6892000000000000 0.0815000000000000 0.2500000000000000 # 25 15 | 0.3108000000000001 0.9185000000000000 0.7500000000000000 # 26 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/hexagonal/POSCAR-180: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.8189977324592039 0.0000000000000000 0.0000000000000000 4 | -2.4094988662295993 4.1733744570892739 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.5919968981886443 6 | 3 6 7 | Direct 8 | 0.5000000000000007 0.0000000000000000 0.4999999999999999 # Nb1 9 | 0.5000000000000001 0.5000000000000001 0.8333333333333329 # Nb2 10 | -0.0000000000000006 0.5000000000000001 0.1666666666666669 # Nb3 11 | 0.1599000000000003 0.3198000000000009 0.4999999999999999 # Si1 12 | 0.8401000000000004 0.1598999999999998 0.8333333333333329 # Si2 13 | 0.6801999999999997 0.8401000000000004 0.1666666666666669 # Si3 14 | 0.8401000000000005 0.6802000000000006 0.4999999999999999 # Si4 15 | 0.1598999999999998 0.8401000000000004 0.8333333333333329 # Si5 16 | 0.3198000000000004 0.1598999999999998 0.1666666666666669 # Si6 17 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/hexagonal/POSCAR-180-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.8999976943453252 0.0000000000000000 0.0000000000000000 4 | -2.4499988471726595 4.2435224817882276 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.3799974684852732 6 | 3 6 7 | Direct 8 | 0.4999999999999993 0.0000000000000000 0.0000000000000000 # Be1 9 | 0.4999999999999990 0.4999999999999994 0.3333333333333333 # Be2 10 | -0.0000000000000003 0.4999999999999994 0.6666666666666665 # Be3 11 | 0.2109999999999998 0.4220000000000002 0.4999999999999994 # F1 12 | 0.7889999999999990 0.2109999999999995 0.8333333333333328 # F2 13 | 0.5779999999999992 0.7889999999999994 0.1666666666666662 # F3 14 | 0.7889999999999988 0.5779999999999998 0.4999999999999994 # F4 15 | 0.2109999999999991 0.7889999999999994 0.8333333333333328 # F5 16 | 0.4219999999999990 0.2109999999999995 0.1666666666666662 # F6 17 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/hexagonal/POSCAR-181: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 4.4282979162998792 0.0000000000000000 0.0000000000000000 4 | -2.2141489581499387 3.8350184910413914 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.3679970035900002 6 | 3 6 7 | Direct 8 | 0.5000000000000000 0.0000000000000000 0.0000000000000000 # 11 9 | 0.5000000000000000 0.5000000000000000 0.6666666666666667 # 12 10 | 0.0000000000000000 0.5000000000000000 0.3333333333333333 # 13 11 | 0.1657500000000000 0.3315000000000000 0.0000000000000000 # 21 12 | 0.8342500000000002 0.1657500000000000 0.6666666666666667 # 22 13 | 0.6685000000000000 0.8342500000000002 0.3333333333333333 # 23 14 | 0.8342500000000002 0.6685000000000000 0.0000000000000000 # 24 15 | 0.1657500000000000 0.8342500000000002 0.6666666666666667 # 25 16 | 0.3315000000000000 0.1657500000000000 0.3333333333333333 # 26 17 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/hexagonal/POSCAR-183-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.3959984020401435 0.0000000000000000 0.0000000000000000 4 | -1.6979992010200717 2.9410208873781261 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.0919976040013033 6 | 1 1 1 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Au1 9 | 0.0000000000000000 0.0000000000000000 0.4040000000000003 # C1 10 | 0.0000000000000000 0.0000000000000000 0.6419999999999999 # N1 11 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/hexagonal/POSCAR-187: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 2.9064986323703392 0.0000000000000000 0.0000000000000000 4 | -1.4532493161851689 2.5171016516974420 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 2.8365986652612101 6 | 1 1 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # 11 9 | 0.6666666666666666 0.3333333333333333 0.5000000000000000 # 21 10 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/hexagonal/POSCAR-188: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 6.1199971202843626 0.0000000000000000 0.0000000000000000 4 | -3.0599985601421800 5.3000729772538673 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.6579973376746597 6 | 2 6 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # 11 9 | 0.0000000000000000 0.0000000000000000 0.5000000000000000 # 12 10 | 0.3170000000000000 0.0260000000000000 0.2500000000000000 # 21 11 | 0.7090000000000000 0.6830000000000002 0.2500000000000000 # 22 12 | 0.9740000000000000 0.2910000000000000 0.2500000000000000 # 23 13 | 0.9740000000000000 0.6830000000000002 0.7500000000000000 # 24 14 | 0.7090000000000000 0.0260000000000000 0.7500000000000000 # 25 15 | 0.3170000000000000 0.2910000000000000 0.7500000000000000 # 26 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/hexagonal/POSCAR-191: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 3.9599981366545900 0.0000000000000000 0.0000000000000000 4 | -1.9799990683272899 3.4294589852819102 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 3.8439981912374299 6 | 1 2 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # 11 9 | 0.3333333333333333 0.6666666666666666 0.5000000000000000 # 21 10 | 0.6666666666666666 0.3333333333333333 0.5000000000000000 # 22 11 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/hexagonal/POSCAR-194: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 3.5869983121666702 0.0000000000000000 0.0000000000000000 4 | -1.7934991560833300 3.1064316616682399 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 15.4919927103668797 6 | 4 4 7 | Direct 8 | 0.3333333333333333 0.6666666666666666 0.1710000000000000 # 11 9 | 0.6666666666666666 0.3333333333333333 0.8290000000000000 # 12 10 | 0.6666666666666666 0.3333333333333333 0.6710000000000002 # 13 11 | 0.3333333333333333 0.6666666666666666 0.3290000000000000 # 14 12 | 0.3333333333333333 0.6666666666666666 0.6016000000000000 # 21 13 | 0.6666666666666666 0.3333333333333333 0.3984000000000000 # 22 14 | 0.6666666666666666 0.3333333333333333 0.1016000000000000 # 23 15 | 0.3333333333333333 0.6666666666666666 0.8984000000000000 # 24 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/monoclinic/POSCAR-012: -------------------------------------------------------------------------------- 1 | Li4Mn2O6 (C2/m) 2 | 1.00000000000000 3 | 2.5087734371281813 -4.3370210904945425 -0.0001864449730122 4 | 2.5087734371281813 4.3370210904945425 -0.0001864449730122 5 | -1.7018015993144393 0.0000000000000000 4.8033156256069098 6 | 4 2 6 7 | Direct 8 | 0.5000000000000000 0.5000000000000000 0.0000000000000000 9 | 0.0000000000000000 0.0000000000000000 0.5000000000000000 10 | 0.3387119401258474 0.6612880598741455 0.5000000000000000 11 | 0.6612880598741526 0.3387119401258545 0.5000000000000000 12 | 0.8329283854622389 0.1670716145377540 0.0000000000000000 13 | 0.1670716145377540 0.8329283854622389 0.0000000000000000 14 | 0.2192352407565039 0.2192352407565039 0.2279647293171934 15 | 0.7807647592434890 0.7807647592434890 0.7720352706827924 16 | 0.9330229577916995 0.5756434868853120 0.2241889911961508 17 | 0.4243565131146880 0.0669770422083076 0.7758110088038492 18 | 0.5756434868853120 0.9330229577916995 0.2241889911961508 19 | 0.0669770422083076 0.4243565131146880 0.7758110088038492 20 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-019: -------------------------------------------------------------------------------- 1 | cell 2 | 1.00000000000000 3 | 3.5183598274731080 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 3.6304070168529856 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.3802740221553069 6 | 4 8 7 | Direct 8 | 0.3644957786015373 0.3291588793038034 0.0046162797490634 9 | 0.1355042213984628 0.8291588793038178 0.2453837202509365 10 | 0.6355042213984625 0.6708411206961822 0.5046162797490706 11 | 0.8644957786015375 0.1708411206962036 0.7453837202509294 12 | 0.2446454943852583 0.1729234922155920 0.2511000671435190 13 | 0.2623034245667540 0.6795513892502183 0.4950115114362526 14 | 0.7553545056147417 0.8270765077843938 0.7511000671435258 15 | 0.7376965754332457 0.3204486107497891 0.9950115114362594 16 | 0.7446454943852583 0.3270765077843937 0.4988999328564739 17 | 0.2553545056147488 0.6729234922155920 0.9988999328564813 18 | 0.2376965754332460 0.1795513892502111 0.7549884885637406 19 | 0.7623034245667543 0.8204486107497817 0.2549884885637474 20 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-025: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 2.9189986264885719 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 5.6179973564963293 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 3.0659985573189306 6 | 1 1 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # In1 9 | 0.0000000000000000 0.5000000000000003 0.2499999999999991 # Sb1 10 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-028-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 5.1847975603350243 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 6.0979971306362835 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.1915975571353430 6 | 4 4 7 | Direct 8 | 0.2500000000000000 1.0000000000000000 0.2425000000000002 # Tl1 9 | 0.2500000000000000 0.4876999999999997 0.7348000000000000 # Tl2 10 | 0.7500000000000000 1.0000000000000000 0.7574999999999997 # Tl3 11 | 0.7500000000000000 0.4876999999999997 0.2651999999999998 # Tl4 12 | 0.2500000000000000 0.5199999999999995 1.2000000000000000 # F1 13 | 0.2500000000000000 0.8599999999999999 0.6700000000000002 # F2 14 | 0.7500000000000000 0.5199999999999995 -0.2000000000000002 # F3 15 | 0.7500000000000000 0.8599999999999999 0.3299999999999997 # F4 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-033: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.00000000000000 3 | 4.1085543821297383 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 5.5910714829032732 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.0556376957516144 6 | 4 8 7 | Direct 8 | 0.0552404277620372 0.6243403796084981 0.9976529545055615 9 | 0.9447595722379627 0.3756596203915018 0.4976529545055615 10 | 0.4447595722379627 0.1243403796084982 0.4976529545055615 11 | 0.5552404277620370 0.8756596203915018 0.9976529545055615 12 | 0.0304379475560083 0.5867245522234480 0.3412098299435093 13 | 0.1177476461925874 0.1698515023077087 0.4111372155509292 14 | 0.9695620524439846 0.4132754477765522 0.8412098299435093 15 | 0.8822523538074127 0.8301484976922841 0.9111372155509293 16 | 0.4695620524439917 0.0867245522234479 0.8412098299435093 17 | 0.3822523538074126 0.6698515023077158 0.9111372155509293 18 | 0.5304379475560154 0.9132754477765519 0.3412098299435093 19 | 0.6177476461925873 0.3301484976922913 0.4111372155509292 20 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-044: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.6519982815814536 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 5.6519973404979131 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.3619974769550245 6 | 2 2 4 7 | Direct 8 | 0.0000000000000000 0.5447999999999996 0.0000000000000000 # Na1 9 | 0.4999999999999993 0.0447999999999996 0.4999999999999996 # Na2 10 | 0.0000000000000000 1.0782999999999996 0.0000000000000000 # N1 11 | 0.4999999999999993 0.5782999999999995 0.4999999999999996 # N2 12 | 0.0000000000000000 0.9589999999999991 0.1930000000000004 # O1 13 | 0.4999999999999993 0.4590000000000001 0.6929999999999999 # O2 14 | 0.0000000000000000 0.9589999999999991 -0.1930000000000004 # O3 15 | 0.4999999999999993 0.4590000000000001 0.3070000000000002 # O4 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-047: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.5849983131077505 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 5.8489972478011802 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 3.0049985860219754 6 | 1 1 2 7 | Direct 8 | 0.5000000000000000 0.5000000000000000 0.0000000000000000 # K1 9 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Au1 10 | 0.0000000000000000 0.2470000000000004 0.5000000000000000 # O1 11 | 0.0000000000000000 0.7530000000000004 0.5000000000000000 # O2 12 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-051-3: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 2.9659986043731084 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.5219978722101111 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.3699979437324581 6 | 2 2 4 7 | Direct 8 | 0.0000000000000000 0.2941000000000001 0.2499999999999997 # Fe1 9 | 0.0000000000000000 0.7058999999999997 0.7500000000000002 # Fe2 10 | 0.4999999999999992 0.7570000000000006 0.2499999999999997 # Ti1 11 | 0.4999999999999992 0.2430000000000005 0.7500000000000002 # Ti2 12 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # H1 13 | 0.4999999999999992 0.3000000000000004 0.2499999999999997 # H2 14 | 0.0000000000000000 0.0000000000000000 0.5000000000000004 # H3 15 | 0.4999999999999992 0.6999999999999996 0.7500000000000002 # H4 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-053-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 7.3949965203436037 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 8.0149962286077052 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 3.7299982448791922 6 | 2 4 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Cu1 9 | 0.5000000000000000 0.5000000000000003 0.0000000000000000 # Cu2 10 | 0.2389999999999999 0.0000000000000000 0.3780000000000006 # Cl1 11 | -0.2389999999999999 0.0000000000000000 -0.3780000000000006 # Cl2 12 | 0.2610000000000002 0.5000000000000003 0.3780000000000006 # Cl3 13 | 0.7389999999999999 0.5000000000000003 -0.3780000000000006 # Cl4 14 | 0.0000000000000000 0.2500000000000002 0.0000000000000000 # O1 15 | 0.0000000000000000 -0.2500000000000002 0.0000000000000000 # O2 16 | 0.5000000000000000 0.2500000000000002 0.0000000000000000 # O3 17 | 0.5000000000000000 0.7499999999999999 0.0000000000000000 # O4 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-058-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.8729977070499482 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.3319979616130500 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 2.9629986057847320 6 | 2 4 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Cr1 9 | 0.5000000000000004 0.4999999999999999 0.5000000000000009 # Cr2 10 | 0.3499000000000003 0.2421000000000005 0.0000000000000000 # O1 11 | 0.6501000000000007 0.7578999999999995 0.0000000000000000 # O2 12 | 0.8498999999999998 0.2578999999999996 0.5000000000000009 # O3 13 | 0.1501000000000002 0.7420999999999992 0.5000000000000009 # O4 14 | 0.4562000000000000 0.0401000000000002 0.0000000000000000 # H1 15 | 0.5438000000000000 0.9598999999999998 0.0000000000000000 # H2 16 | 0.9562000000000004 0.4598999999999998 0.5000000000000009 # H3 17 | 0.0438000000000005 0.5401000000000001 0.5000000000000009 # H4 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-058-3: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.00000000000000 3 | 4.0215465742408556 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 3.8912820645002619 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 2.5724917259521778 6 | 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 9 | 0.5000000000000000 0.5000000000000000 0.5000000000000000 10 | 0.3196866917909955 0.2832479410964548 0.0000000000000000 11 | 0.6803133082090044 0.7167520589035382 0.0000000000000000 12 | 0.1803133082090045 0.7832479410964618 0.5000000000000000 13 | 0.8196866917909956 0.2167520589035381 0.5000000000000000 14 | 15 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 16 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 17 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 18 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 19 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 20 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 21 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-059-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.6449978143334745 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 2.8649986518978281 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.0449980966585333 6 | 2 4 7 | Direct 8 | 0.2499999999999994 0.2499999999999991 0.1507999999999997 # Ru1 9 | 0.7499999999999993 0.7499999999999991 0.8492000000000003 # Ru2 10 | 0.0590000000000003 0.2499999999999991 0.6389999999999998 # B1 11 | 0.9409999999999995 0.7499999999999991 0.3610000000000002 # B2 12 | 0.4409999999999996 0.2499999999999991 0.6389999999999998 # B3 13 | 0.5589999999999991 0.7499999999999991 0.3610000000000002 # B4 14 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-060-3: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.00000000000000 3 | 5.3672739847803425 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 6.5883789814747588 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 3.8726073153830897 6 | 4 8 7 | Direct 8 | 0.0000000000000000 -0.0000398395736797 0.2500000000000000 9 | 0.5000000000000000 0.5000398395736797 0.7500000000000000 10 | 0.0000000000000000 0.0000398395736798 0.7500000000000000 11 | 0.5000000000000000 0.4999601604263131 0.2500000000000000 12 | 0.3648332981900670 0.3908864276666857 0.4999790735520644 13 | 0.1351667018099331 0.1091135723333142 -0.0000209264479496 14 | 0.6351667018099542 0.3908864276666857 0.0000209264479427 15 | 0.8648332981900457 0.1091135723333142 0.5000209264479354 16 | 0.6351667018099542 0.6091135723333140 0.5000209264479354 17 | 0.8648332981900457 0.8908864276666859 0.0000209264479427 18 | 0.3648332981900670 0.6091135723333140 -0.0000209264479496 19 | 0.1351667018099331 0.8908864276666859 0.4999790735520644 20 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-065-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 5.7599972896793989 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 6.3799969979435005 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.0599980896004100 6 | 2 2 6 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Na1 9 | 0.5000000000000000 0.5000000000000003 0.0000000000000000 # Na2 10 | 0.5000000000000000 0.0000000000000000 0.4999999999999993 # I1 11 | 0.0000000000000000 0.5000000000000003 0.4999999999999993 # I2 12 | 0.0000000000000000 0.0000000000000000 0.4999999999999993 # O1 13 | 0.2500000000000000 0.2499999999999998 0.0000000000000000 # O2 14 | 0.7500000000000000 0.7500000000000002 0.0000000000000000 # O3 15 | 0.7500000000000000 0.2499999999999998 0.0000000000000000 # O4 16 | 0.5000000000000000 0.5000000000000003 0.4999999999999993 # O5 17 | 0.2500000000000000 0.7500000000000002 0.0000000000000000 # O6 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-065-3: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.9091981605581103 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 3.8712981783916436 0.0000000000000000 5 | -0.0511698229299495 0.0000000000000000 3.9088632500680052 6 | 1 1 3 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Na1 9 | 0.4999999999999992 0.4999999999999994 0.5000000000000007 # Nb1 10 | 0.4999999999999992 0.0000000000000000 0.5000000000000007 # O1 11 | 0.0000000000000000 0.4999999999999994 0.5000000000000007 # O2 12 | 0.4999999999999992 0.4999999999999994 0.0000000000000000 # O3 13 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/orthorhombic/POSCAR-071-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.5419983333410485 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 12.6959940260016726 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 3.8269981992366424 6 | 2 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # V1 9 | 0.4999999999999992 0.4999999999999998 0.5000000000000000 # V2 10 | 0.4999999999999992 0.4999999999999998 0.0000000000000000 # O1 11 | 0.0000000000000000 0.0000000000000000 0.5000000000000000 # O2 12 | 0.0000000000000000 0.3649999999999999 0.5000000000000000 # Br1 13 | 0.4999999999999992 0.8650000000000002 0.0000000000000000 # Br2 14 | 0.0000000000000000 0.6349999999999998 0.5000000000000000 # Br3 15 | 0.4999999999999992 0.1350000000000000 0.0000000000000000 # Br4 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-092-3: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.00000000000000 3 | 4.0643712983834455 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.0643712983838070 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.6346473254990181 6 | 4 8 7 | Direct 8 | 0.3104835876939455 0.3104835876939455 0.0000000000000000 9 | 0.1895164123060545 0.8104835876939452 0.2500000000000000 10 | 0.6895164123060548 0.6895164123060548 0.5000000000000000 11 | 0.8104835876939452 0.1895164123060545 0.7500000000000000 12 | 0.2285875164715268 0.1552150730745774 0.2088186912759548 13 | 0.3447849269254225 0.7285875164715337 0.4588186912759548 14 | 0.7714124835284663 0.8447849269254226 0.7088186912759549 15 | 0.6552150730745774 0.2714124835284803 0.9588186912759549 16 | 0.7285875164715337 0.3447849269254225 0.5411813087240451 17 | 0.2714124835284803 0.6552150730745774 0.0411813087240452 18 | 0.1552150730745774 0.2285875164715268 0.7911813087240451 19 | 0.8447849269254226 0.7714124835284663 0.2911813087240452 20 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-099: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.8989981653576335 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 3.8989981653576335 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.1669980392524382 6 | 1 1 3 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Pb1 9 | 0.4999999999999999 0.4999999999999999 0.5410000000000003 # Ti1 10 | 0.4999999999999999 0.4999999999999999 0.1147999999999999 # O1 11 | 0.4999999999999999 0.0000000000000000 0.6208000000000005 # O2 12 | 0.0000000000000000 0.4999999999999999 0.6208000000000005 # O3 13 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-099-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.8071982085533707 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 3.8071982085533707 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.6981977893006528 6 | 1 1 3 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Pb1 9 | 0.5000000000000000 0.5000000000000000 0.5674000000000002 # V1 10 | 0.5000000000000000 0.5000000000000000 0.2101999999999996 # O1 11 | 0.5000000000000000 0.0000000000000000 0.6915000000000003 # O2 12 | 0.0000000000000000 0.5000000000000000 0.6915000000000003 # O3 13 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-103: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 6.5509969174808598 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 6.5509969174808598 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.8469967782004941 6 | 2 8 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.2419999999999997 # Nb1 9 | 0.0000000000000000 0.0000000000000000 0.7420000000000001 # Nb2 10 | 0.1440000000000003 0.3275999999999999 0.0000000000000000 # Te1 11 | 0.6724000000000002 0.1440000000000003 0.0000000000000000 # Te2 12 | 0.8559999999999998 0.6724000000000002 0.0000000000000000 # Te3 13 | 0.3275999999999999 0.8559999999999998 0.0000000000000000 # Te4 14 | 0.8559999999999998 0.3275999999999999 0.4999999999999997 # Te5 15 | 0.1440000000000003 0.6724000000000002 0.4999999999999997 # Te6 16 | 0.6724000000000002 0.8559999999999998 0.4999999999999997 # Te7 17 | 0.3275999999999999 0.1440000000000003 0.4999999999999997 # Te8 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-103-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 6.5139969348909057 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 6.5139969348909057 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.8089967960810807 6 | 2 8 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.2245000000000001 # Ta1 9 | 0.0000000000000000 0.0000000000000000 0.7244999999999998 # Ta2 10 | 0.1440000000000002 0.3280000000000000 0.0000000000000000 # Te1 11 | 0.6719999999999999 0.1440000000000002 0.0000000000000000 # Te2 12 | 0.8559999999999998 0.6719999999999999 0.0000000000000000 # Te3 13 | 0.3280000000000000 0.8559999999999998 0.0000000000000000 # Te4 14 | 0.8559999999999998 0.3280000000000000 0.4999999999999996 # Te5 15 | 0.1440000000000002 0.6719999999999999 0.4999999999999996 # Te6 16 | 0.6719999999999999 0.8559999999999998 0.4999999999999996 # Te7 17 | 0.3280000000000000 0.1440000000000002 0.4999999999999996 # Te8 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-107-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.1199980613679008 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.1199980613679008 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 10.4749950710749467 6 | 2 6 2 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Pd1 9 | 0.5000000000000000 0.5000000000000000 0.5000000000000000 # Pd2 10 | 0.0000000000000000 0.5000000000000000 0.2519999999999998 # Si1 11 | 0.0000000000000000 0.0000000000000000 0.3910000000000001 # Si2 12 | 0.5000000000000000 0.0000000000000000 0.7519999999999999 # Si3 13 | 0.5000000000000000 0.0000000000000000 0.2519999999999998 # Si4 14 | 0.0000000000000000 0.5000000000000000 0.7519999999999999 # Si5 15 | 0.5000000000000000 0.5000000000000000 0.8909999999999999 # Si6 16 | 0.0000000000000000 0.0000000000000000 0.6260000000000000 # Li1 17 | 0.5000000000000000 0.5000000000000000 0.1259999999999999 # Li2 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-109: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.4516983758309689 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 3.4516983758309689 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 11.6799945040721109 6 | 4 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Nb1 9 | 0.5000000000000008 0.0000000000000000 0.7500000000000002 # Nb2 10 | 0.5000000000000008 0.5000000000000008 0.5000000000000000 # Nb3 11 | 0.0000000000000000 0.5000000000000008 0.2500000000000003 # Nb4 12 | 0.0000000000000000 0.0000000000000000 0.4160000000000002 # As1 13 | 0.5000000000000008 0.0000000000000000 0.1659999999999999 # As2 14 | 0.5000000000000008 0.5000000000000008 0.9160000000000000 # As3 15 | 0.0000000000000000 0.5000000000000008 0.6659999999999999 # As4 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-111-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 5.8150972637525484 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 5.8150972637525484 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.8013972701989722 6 | 1 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Cd1 9 | 0.5000000000000000 0.0000000000000000 0.4999999999999995 # In1 10 | 0.0000000000000000 0.5000000000000000 0.4999999999999995 # In2 11 | 0.2706999999999999 0.2706999999999999 0.2300000000000003 # Se1 12 | 0.2706999999999999 0.7293000000000002 0.7699999999999997 # Se2 13 | 0.7293000000000002 0.7293000000000002 0.2300000000000003 # Se3 14 | 0.7293000000000002 0.2706999999999999 0.7699999999999997 # Se4 15 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-113-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 6.4023969874033648 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 6.4023969874033648 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.2785979867399773 6 | 6 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Cu1 9 | 0.6470000000000000 0.8530000000000002 0.2190000000000003 # Cu2 10 | 0.8530000000000002 0.3530000000000002 0.7809999999999997 # Cu3 11 | 0.3530000000000002 0.1469999999999999 0.2190000000000003 # Cu4 12 | 0.1469999999999999 0.6470000000000000 0.7809999999999997 # Cu5 13 | 0.5000000000000000 0.5000000000000000 0.0000000000000000 # Cu6 14 | 0.2719999999999997 0.7719999999999997 0.2640000000000002 # Se1 15 | 0.7719999999999997 0.7279999999999996 0.7359999999999998 # Se2 16 | 0.7279999999999996 0.2280000000000004 0.2640000000000002 # Se3 17 | 0.2280000000000004 0.2720000000000005 0.7359999999999998 # Se4 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-115: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.3269984345075292 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 3.3269984345075292 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.1509971056975674 6 | 3 2 7 | Direct 8 | 0.0000000000000000 0.4999999999999998 0.3691999999999995 # Rh1 9 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Rh2 10 | 0.4999999999999998 0.0000000000000000 0.6307999999999997 # Rh3 11 | 0.0000000000000000 0.4999999999999998 0.7469999999999997 # P1 12 | 0.4999999999999998 0.0000000000000000 0.2530000000000002 # P2 13 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-115-3: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.00000000000000 3 | 3.2989861563198493 0.0000000000000001 0.0000000000000000 4 | 0.0000000000000001 3.2989861563198493 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.7886334409887343 6 | 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.2500000000000000 9 | 0.5000000000000000 0.5000000000000000 0.2500000000000000 10 | 0.2500000000000000 0.2500000000000000 0.0775811333791551 11 | 0.7500000000000000 0.7500000000000000 0.0775811333791551 12 | 0.2500000000000000 0.7500000000000000 0.4224188666208449 13 | 0.7500000000000000 0.2500000000000000 0.4224188666208449 14 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-115-5: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 5.2799975155394518 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 5.2799975155394518 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.2049975508300834 6 | 2 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Cu1 9 | 0.5000000000000000 0.5000000000000000 0.0000000000000000 # Cu2 10 | 0.5000000000000000 0.0000000000000000 0.5000000000000000 # Fe1 11 | 0.0000000000000000 0.5000000000000000 0.5000000000000000 # Fe2 12 | 0.2500000000000000 0.2500000000000000 0.1900000000000004 # S1 13 | 0.2500000000000000 0.7500000000000000 0.8099999999999998 # S2 14 | 0.7500000000000000 0.7500000000000000 0.1900000000000004 # S3 15 | 0.7500000000000000 0.2500000000000000 0.8099999999999998 # S4 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-118: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 6.5959968963064783 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 6.5959968963064783 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.1646975697929172 6 | 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Zn1 9 | 0.5000000000000000 0.5000000000000000 0.4999999999999996 # Zn2 10 | 0.3400000000000003 0.1599999999999998 0.2499999999999998 # Sb1 11 | 0.1599999999999998 0.6599999999999999 0.7499999999999992 # Sb2 12 | 0.6599999999999999 0.8400000000000003 0.2499999999999998 # Sb3 13 | 0.8400000000000003 0.3400000000000003 0.7499999999999992 # Sb4 14 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-119-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.9199981554762582 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 3.9199981554762582 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 15.2199928383542424 6 | 2 2 4 7 | Direct 8 | 0.0000000000000000 0.5000000000000000 0.2499999999999999 # Ag1 9 | 0.5000000000000000 0.0000000000000000 0.7500000000000001 # Ag2 10 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Tl1 11 | 0.5000000000000000 0.5000000000000000 0.5000000000000002 # Tl2 12 | 0.0000000000000000 0.0000000000000000 0.3690000000000002 # Te1 13 | 0.5000000000000000 0.5000000000000000 0.1310000000000001 # Te2 14 | 0.5000000000000000 0.5000000000000000 0.8690000000000003 # Te3 15 | 0.0000000000000000 0.0000000000000000 0.6310000000000002 # Te4 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-123: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.0189981088926210 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.0189981088926210 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 3.2789984570935329 6 | 1 1 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # La1 9 | 0.5000000000000006 0.5000000000000006 0.4999999999999991 # Sb1 10 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-123-3: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.1999980237245627 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.1999980237245627 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 7.9599962544875025 6 | 1 3 1 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Hg1 9 | 0.5000000000000000 0.5000000000000000 0.0000000000000000 # Cl1 10 | 0.0000000000000000 0.0000000000000000 0.2943999999999997 # Cl2 11 | 0.0000000000000000 0.0000000000000000 -0.2943999999999997 # Cl3 12 | 0.5000000000000000 0.5000000000000000 0.4999999999999997 # N1 13 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-127-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 7.1049966568007168 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 7.1049966568007168 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.1439980500749014 6 | 2 4 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Li1 9 | 0.5000000000000003 0.5000000000000003 0.0000000000000000 # Li2 10 | 0.1810000000000001 0.6809999999999997 0.5000000000000000 # Y1 11 | 0.6809999999999997 0.8189999999999997 0.5000000000000000 # Y2 12 | 0.3190000000000002 0.1810000000000001 0.5000000000000000 # Y3 13 | 0.8189999999999997 0.3190000000000002 0.5000000000000000 # Y4 14 | 0.3830000000000004 0.8829999999999999 0.0000000000000000 # Si1 15 | 0.8829999999999999 0.6170000000000003 0.0000000000000000 # Si2 16 | 0.1170000000000000 0.3830000000000004 0.0000000000000000 # Si3 17 | 0.6170000000000003 0.1170000000000000 0.0000000000000000 # Si4 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-129: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.2819979851401362 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.2819979851401362 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.1819970911107696 6 | 2 2 7 | Direct 8 | 0.0000000000000000 0.4999999999999994 0.2020000000000000 # K1 9 | 0.5000000000000006 0.0000000000000000 0.7979999999999998 # K2 10 | 0.0000000000000000 0.5000000000000006 0.7370000000000007 # N1 11 | 0.4999999999999994 0.0000000000000000 0.2630000000000001 # N2 12 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-129-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 5.0049976449384346 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 5.0049976449384346 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.8099977366940800 6 | 2 2 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # In1 9 | 0.5000000000000007 0.5000000000000007 0.0000000000000000 # In2 10 | 0.0000000000000000 0.5000000000000007 0.3887999999999995 # Bi1 11 | 0.5000000000000007 0.0000000000000000 0.6112000000000006 # Bi2 12 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-129-3: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.2819979851401362 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.2819979851401362 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.1819970911107696 6 | 2 2 7 | Direct 8 | 0.0000000000000000 0.5000000000000006 0.7370000000000007 # N1 9 | 0.4999999999999994 0.0000000000000000 0.2630000000000001 # N2 10 | 0.0000000000000000 0.4999999999999994 0.2020000000000000 # K1 11 | 0.5000000000000006 0.0000000000000000 0.7979999999999998 # K2 12 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-131: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.0199985789638522 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 3.0199985789638522 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.3099975014231937 6 | 2 2 7 | Direct 8 | 0.4999999999999991 0.0000000000000000 0.0000000000000000 # Pd1 9 | 0.0000000000000000 0.4999999999999991 0.5000000000000000 # Pd2 10 | 0.0000000000000000 0.0000000000000000 0.2500000000000000 # O1 11 | 0.0000000000000000 0.0000000000000000 0.7500000000000001 # O2 12 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-131-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.9262976819700732 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.9262976819700732 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 8.2849961015614273 6 | 2 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.2500000000000003 # Rb1 9 | 0.0000000000000000 0.0000000000000000 0.7500000000000001 # Rb2 10 | 0.5000000000000007 0.5000000000000007 0.0000000000000000 # Cu1 11 | 0.5000000000000007 0.5000000000000007 0.4999999999999999 # Cu2 12 | 0.1218999999999999 0.5000000000000007 0.4999999999999999 # C1 13 | 0.8781000000000002 0.5000000000000007 0.4999999999999999 # C2 14 | 0.5000000000000007 0.1218999999999999 0.0000000000000000 # C3 15 | 0.5000000000000007 0.8781000000000002 0.0000000000000000 # C4 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-136: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.3982979304161285 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.3982979304161285 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 2.8729986481334930 6 | 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Mn1 9 | 0.5000000000000000 0.5000000000000000 0.4999999999999992 # Mn2 10 | 0.3050999999999995 0.3050999999999995 0.0000000000000000 # O1 11 | 0.6949000000000006 0.6949000000000006 0.0000000000000000 # O2 12 | 0.1949000000000005 0.8050999999999996 0.4999999999999992 # O3 13 | 0.8050999999999996 0.1949000000000005 0.4999999999999992 # O4 14 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-136-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.5844978428012535 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.5844978428012535 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 2.9532986103489849 6 | 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Ti1 9 | 0.5000000000000000 0.5000000000000000 0.5000000000000010 # Ti2 10 | 0.3049000000000000 0.3049000000000000 0.0000000000000000 # O1 11 | 0.6951000000000001 0.6951000000000001 0.0000000000000000 # O2 12 | 0.1951000000000000 0.8049000000000001 0.5000000000000010 # O3 13 | 0.8049000000000001 0.1951000000000000 0.5000000000000010 # O4 14 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-136-3: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.00000000000000 3 | 4.2266540199664249 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.2266540199664249 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 2.6888359272289208 6 | 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 9 | 0.5000000000000000 0.5000000000000000 0.5000000000000000 10 | 0.3067891334429594 0.3067891334429594 0.0000000000000000 11 | 0.6932108665570406 0.6932108665570406 0.0000000000000000 12 | 0.1932108665570406 0.8067891334429594 0.5000000000000000 13 | 0.8067891334429594 0.1932108665570406 0.5000000000000000 14 | 15 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 16 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 17 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 18 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 19 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 20 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 21 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-136-5: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 6.7539968219608788 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 6.7539968219608788 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.1099980660733237 6 | 4 7 | Direct 8 | 0.2199999999999999 0.2799999999999997 0.0000000000000000 # S1 9 | 0.7199999999999995 0.2199999999999999 0.5000000000000000 # S2 10 | 0.7799999999999999 0.7199999999999995 0.0000000000000000 # S3 11 | 0.2799999999999997 0.7799999999999999 0.5000000000000000 # S4 12 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-137-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 3.6399982872279524 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 3.6399982872279524 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.2699975202448686 6 | 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Zr1 9 | 0.5000000000000000 0.5000000000000000 0.4999999999999995 # Zr2 10 | 0.0000000000000000 0.5000000000000000 0.1879999999999995 # O1 11 | 0.5000000000000000 0.0000000000000000 0.3119999999999999 # O2 12 | 0.5000000000000000 0.0000000000000000 0.8119999999999994 # O3 13 | 0.0000000000000000 0.5000000000000000 0.6879999999999999 # O4 14 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-137-3: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.00000000000000 3 | 2.2423146612608544 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 2.2423146612608535 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.8505089201520102 6 | 2 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 9 | 0.5000000000000000 0.5000000000000000 0.5000000000000000 10 | 0.5000000000000000 0.0000000000000000 0.1174487711550606 11 | 0.0000000000000000 0.5000000000000000 0.3825512288449394 12 | 0.5000000000000000 0.0000000000000000 0.6174487711550606 13 | 0.0000000000000000 0.5000000000000000 0.8825512288449394 14 | 15 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 16 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 17 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 18 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 19 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 20 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 21 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-138-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.3499979531432977 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.3499979531432977 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 13.7299935394614856 6 | 4 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Au1 9 | 0.5000000000000000 0.0000000000000000 0.4999999999999999 # Au2 10 | 0.5000000000000000 0.5000000000000000 0.0000000000000000 # Au3 11 | 0.0000000000000000 0.5000000000000000 0.4999999999999999 # Au4 12 | 0.2500000000000001 0.2500000000000001 0.1530000000000000 # I1 13 | 0.7500000000000001 0.7500000000000001 0.8469999999999996 # I2 14 | 0.2500000000000001 0.2500000000000001 0.6529999999999999 # I3 15 | 0.7500000000000001 0.7500000000000001 0.3469999999999999 # I4 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/tetragonal/POSCAR-139-2: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.1699980378408146 0.0000000000000000 0.0000000000000000 4 | 0.0000000000000000 4.1699980378408146 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 10.8799948805055333 6 | 2 4 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Ca1 9 | 0.5000000000000006 0.5000000000000006 0.4999999999999997 # Ca2 10 | 0.0000000000000000 0.5000000000000006 0.2499999999999998 # Mn1 11 | 0.5000000000000006 0.0000000000000000 0.7499999999999996 # Mn2 12 | 0.0000000000000000 0.5000000000000006 0.7499999999999996 # Mn3 13 | 0.4999999999999993 0.0000000000000000 0.2499999999999998 # Mn4 14 | 0.0000000000000000 0.0000000000000000 0.3809999999999999 # Ge1 15 | 0.5000000000000006 0.5000000000000006 0.8810000000000000 # Ge2 16 | 0.0000000000000000 0.0000000000000000 0.6190000000000000 # Ge3 17 | 0.4999999999999993 0.4999999999999993 0.1189999999999998 # Ge4 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/triclinic/POSCAR-001: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 4.9159976868166551 0.0000000000000000 0.0000000000000000 4 | -2.4584988431730541 4.2582449067250403 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.4069974557806448 6 | 3 6 7 | Direct 8 | 0.4702000000000005 0.0000000000000000 0.3332999999999998 # Si1 9 | 0.0000000000000002 0.4700000000000001 0.6667000000000002 # Si2 10 | 0.5306000000000005 0.5305000000000006 0.0000000000000000 # Si3 11 | 0.8533000000000004 0.5861000000000003 0.8812999999999998 # O1 12 | 0.5862000000000002 0.8539000000000000 0.1180000000000003 # O2 13 | 0.1476999999999999 0.7326000000000009 0.4532000000000003 # O3 14 | 0.4139999999999999 0.2679000000000000 0.2158999999999997 # O4 15 | 0.2673999999999999 0.4137000000000005 0.7858999999999999 # O5 16 | 0.7338000000000003 0.1465000000000006 0.5489999999999994 # O6 17 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/trigonal/POSCAR-149: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 5.0219976369392230 0.0000000000000000 0.0000000000000000 4 | -2.5109988184696101 4.3491775313347878 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.3759969998256700 6 | 1 1 1 6 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # 11 9 | 0.6666666666666666 0.3333333333333333 0.5000000000000000 # 21 10 | 0.3333333333333333 0.6666666666666666 0.5000000000000000 # 31 11 | 0.6340000000000000 0.0090000000000000 0.3670000000000000 # 41 12 | 0.9910000000000000 0.6250000000000000 0.3670000000000000 # 42 13 | 0.3750000000000000 0.3660000000000000 0.3670000000000000 # 43 14 | 0.9910000000000000 0.3660000000000000 0.6330000000000000 # 44 15 | 0.3750000000000000 0.0090000000000000 0.6330000000000000 # 45 16 | 0.6340000000000000 0.6250000000000000 0.6330000000000000 # 46 17 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/trigonal/POSCAR-154: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 4.9133976880400603 0.0000000000000000 0.0000000000000000 4 | -2.4566988440200292 4.2551272167384209 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.4051974566276204 6 | 3 6 7 | Direct 8 | 0.4698000000000000 0.0000000000000000 0.6666666666666666 # 11 9 | 0.0000000000000000 0.4698000000000000 0.3333333333333333 # 12 10 | 0.5302000000000000 0.5302000000000000 0.0000000000000000 # 13 11 | 0.4141000000000001 0.2681000000000000 0.7855000000000000 # 21 12 | 0.7319000000000000 0.1460000000000000 0.4521666666666668 # 22 13 | 0.8540000000000000 0.5859000000000000 0.1188333333333333 # 23 14 | 0.1460000000000000 0.7319000000000000 0.5478333333333334 # 24 15 | 0.5859000000000000 0.8540000000000000 0.8811666666666668 # 25 16 | 0.2681000000000000 0.4141000000000001 0.2145000000000000 # 26 17 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/trigonal/POSCAR-154-3: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.00000000000000 3 | 3.5185386123395598 -2.0314292149883366 0.0000000000000000 4 | 0.0000000000000000 4.0628584299766732 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.6155767045048108 6 | 3 6 7 | Direct 8 | 0.4647039739275505 0.0000000000000000 0.6666666666666642 9 | 0.0000000000000000 0.4647039739275505 0.3333333333333357 10 | 0.5352960260724497 0.5352960260724497 0.0000000000000000 11 | 0.3926740737001666 0.2848805436603805 0.7634020028802487 12 | 0.7151194563396196 0.1077935300397861 0.4300686695469201 13 | 0.8922064699602136 0.6073259262998333 0.0967353362135845 14 | 0.1077935300397861 0.7151194563396196 0.5699313304530798 15 | 0.6073259262998333 0.8922064699602136 0.9032646637864155 16 | 0.2848805436603805 0.3926740737001666 0.2365979971197512 17 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/trigonal/POSCAR-156: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 3.7332982433264039 0.0000000000000000 0.0000000000000000 4 | -1.8666491216632011 3.2331311186244847 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 6.0979971306362799 6 | 1 1 2 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # 11 9 | 0.3333333333333333 0.6666666666666666 0.4126000000000001 # 21 10 | 0.3333333333333333 0.6666666666666666 0.7760000000000000 # 31 11 | 0.6666666666666666 0.3333333333333333 0.2542000000000000 # 32 12 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/trigonal/POSCAR-156-2: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 3.9149981578289608 0.0000000000000000 0.0000000000000000 4 | -1.9574990789144795 3.3904878604491593 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 12.7249940123559604 6 | 1 1 1 4 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.5370000000000000 # 11 9 | 0.3333333333333333 0.6666666666666666 0.8040000000000002 # 21 10 | 0.3333333333333333 0.6666666666666666 0.2860000000000000 # 31 11 | 0.3333333333333333 0.6666666666666666 0.1020000000000000 # 41 12 | 0.0000000000000000 0.0000000000000000 0.3420000000000001 # 42 13 | 0.3333333333333333 0.6666666666666666 0.6110000000000000 # 43 14 | 0.6666666666666666 0.3333333333333333 0.9229999999999999 # 44 15 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/trigonal/POSCAR-158: -------------------------------------------------------------------------------- 1 | $cell vectors 2 | 1.0 3 | 6.1199971202843608 0.0000000000000000 0.0000000000000000 4 | -3.0599985601421777 5.3000729772538655 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.6579973376746597 6 | 2 6 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # Ru1 9 | 0.0000000000000000 0.0000000000000000 0.4999999999999996 # Ru2 10 | 0.3180000000000004 0.0270000000000001 0.2369999999999997 # Cl1 11 | 0.9729999999999999 0.2909999999999996 0.2369999999999997 # Cl2 12 | 0.7090000000000002 0.6820000000000005 0.2369999999999997 # Cl3 13 | 0.7089999999999997 0.0270000000000001 0.7370000000000002 # Cl4 14 | 0.3179999999999997 0.2909999999999996 0.7370000000000002 # Cl5 15 | 0.9730000000000005 0.6820000000000005 0.7370000000000002 # Cl6 16 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/trigonal/POSCAR-162-2: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 4.9899976519965588 0.0000000000000000 0.0000000000000000 4 | -2.4949988259982785 4.3214647314537205 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 4.6219978251559297 6 | 1 2 6 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # 11 9 | 0.3333333333333333 0.6666666666666666 0.5000000000000000 # 21 10 | 0.6666666666666666 0.3333333333333333 0.5000000000000000 # 22 11 | 0.3410000000000001 0.0000000000000000 0.2664000000000001 # 31 12 | 0.6590000000000000 0.0000000000000000 0.7336000000000000 # 32 13 | 0.0000000000000000 0.3410000000000001 0.2664000000000001 # 33 14 | 0.0000000000000000 0.6590000000000000 0.7336000000000000 # 34 15 | 0.6590000000000000 0.6590000000000000 0.2664000000000001 # 35 16 | 0.3410000000000001 0.3410000000000001 0.7336000000000000 # 36 17 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/trigonal/POSCAR-164: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 4.0469980957174512 0.0000000000000000 0.0000000000000000 4 | -2.0234990478587247 3.5048031599585601 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.3299974920123603 6 | 1 2 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # 11 9 | 0.3333333333333333 0.6666666666666666 0.4320000000000000 # 21 10 | 0.6666666666666666 0.3333333333333333 0.5679999999999999 # 22 11 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/trigonal/POSCAR-164-2: -------------------------------------------------------------------------------- 1 | POSCAR generated by cell class 2 | 1.0 3 | 6.2489970595844690 0.0000000000000000 0.0000000000000000 4 | -3.1244985297922332 5.4117902017744104 0.0000000000000000 5 | 0.0000000000000000 0.0000000000000000 5.0859976068245603 6 | 1 1 2 6 7 | Direct 8 | 0.0000000000000000 0.0000000000000000 0.0000000000000000 # 11 9 | 0.0000000000000000 0.0000000000000000 0.5000000000000000 # 21 10 | 0.3333333333333333 0.6666666666666666 0.2699000000000000 # 31 11 | 0.6666666666666666 0.3333333333333333 0.7301000000000000 # 32 12 | 0.1388000000000000 0.2776000000000000 0.7618000000000000 # 41 13 | 0.8612000000000000 0.7223999999999999 0.2382000000000000 # 42 14 | 0.7223999999999999 0.8612000000000000 0.7618000000000000 # 43 15 | 0.2776000000000000 0.1388000000000000 0.2382000000000000 # 44 16 | 0.1388000000000000 0.8612000000000000 0.7618000000000000 # 45 17 | 0.8612000000000000 0.1388000000000000 0.2382000000000000 # 46 18 | -------------------------------------------------------------------------------- /tests/symmetrykit-tests/spglibtestdata/virtual_structure/POSCAR-160-fcc: -------------------------------------------------------------------------------- 1 | rhomb 2 | 1 3 | 0 5 5 4 | 5 0 5 5 | 5 5 0 6 | 1 1 7 | Direct 8 | 0 0 0 9 | 0.7 0.9 0.7 10 | --------------------------------------------------------------------------------