Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add WC for computing the isotherm in charged zeolites #50

Draft
wants to merge 4 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions aiida_lsmo/calcfunctions/ff_builder_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ def render_ff_mixing_def(ff_data, params):
# TODO: this needs to be sorted for python versions where dictionaries are not sorted! #pylint: disable=fixme
# If separate_interactions==True, prints only "none" interactions for the molecules
for atom_type, ff_pot in ff_data['framework'][params['ff_framework']]['atom_types'].items():
try: #correct if the atom_type has charges (e.g., zeolites)
ff_pot = ff_pot['force_field']
except TypeError:
pass
force_field_lines.append(' '.join([str(x) for x in [atom_type] + ff_pot]))
for molecule, ff_name in params['ff_molecules'].items():
for atom_type, val in ff_data[molecule][ff_name]['atom_types'].items():
Expand Down Expand Up @@ -127,6 +131,15 @@ def render_pseudo_atoms_def(ff_data, params):
output.append('# number of pseudo atoms')

pseudo_atoms_lines = []

#add framework charges (e.g., zeolites)
for atom_type, val in ff_data['framework'][params['ff_framework']]['atom_types'].items():
try:
type_settings = val['pseudo_atom']
pseudo_atoms_lines.append(' '.join([str(x) for x in [atom_type] + type_settings]))
except TypeError:
pass

for molecule, ff_name in params['ff_molecules'].items():
for atom_type, val in ff_data[molecule][ff_name]['atom_types'].items():
type_settings = val['pseudo_atom']
Expand Down
34 changes: 34 additions & 0 deletions aiida_lsmo/calcfunctions/ff_data.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,24 @@ framework:
Zn_: [lennard-jones, 27.67992, 4.04468]
Zr_: [lennard-jones, 34.7257, 2.7832]

Zeo-test:
description: >-
A zeolite FF for testing purpose.
Use Raspa to identify O and Oa: pseudo_atom/radii and connectivity are important
atom_types:
O:
force_field: [lennard-jones, 50.0, 3.0]
pseudo_atom: [yes, O, O, 0, 15.9994, -1.025, 0.0, 1.0, 0.5, 2, 0, absolute, 0]
Oa:
force_field: [lennard-jones, 50.0, 3.0]
pseudo_atom: [yes, O, O, 0, 15.9994, -1.2, 0.0, 1.0, 0.5, 2, 0, absolute, 0]
Si:
force_field: [lennard-jones, 32.0, 2.9]
pseudo_atom: [yes, Si, Si, 0, 28.08, +2.05, 0.0, 1.0, 1.18, 4, 0, absolute, 0]
Al:
force_field: [lennard-jones, 24.0, 3.1]
pseudo_atom: [yes, Al, Al, 0, 26.98, +1.75, 0.0, 1.0, 1.18, 4, 0, absolute, 0]

# Molecules parameters: ff_paremeters[molecule][force_field]
# pseudo_atom list: print, as, chem, oxidation, mass, charge, polarization, B-factor, radii, connectivity, anisotropic, anisotropic-type, tinker-type
# Except when stated in the description, critical constants (Tc(K), Pc(Pa), acentric factor) come from
Expand Down Expand Up @@ -1004,3 +1022,19 @@ Xe:
pseudo_atom: [yes, Xe, Xe, 0, 131.29, 0.0, 0.0, 1.0, 1.0, 0, 0, relative, 0]
atomic_positions:
- [Xe_gas 0, 0, 0]

# Cations for zeolite
Na:
critical_constants:
tc: 999.99
pc: 9999999
af: 0.0
Zeo-test:
description:
A Na+ testing purpose force field for zeolites.
atom_types:
Na_cat:
force_field: [lennard-jones, 5.0, 2.5]
pseudo_atom: [yes, Na, Na, 0, 22.98, +1.0, 0.0, 1.0, 1.0, 0, 0, relative, 0]
atomic_positions:
- [Na_cat 0, 0, 0]
Loading