SMF - Just Installed!

Main Menu

Very beginner question

Started by extremesonic01, May 22, 2023, 07:29:07 PM

Previous topic - Next topic



I never tried MC or RASPA before, and now I'm trying to learn raspa. I just tried some examples and tutorial during last few weeks, and I'm trying to set up my own MC simulation using RASPA adsorption of Co2 and H2O on some MOF structure for adsorption isotherm.

I prepared some input cif files from vasp. Then look for force field, found one publication:
Authors kindly provided force field parameters in supplementary files:

Now, I need to prepare pseudo atom, force field mixing rules, and force field files. But I'm not sure how should I use these parameters of supplementary files of the paper to input force field files. Should I need to write e/kb and sigma values to force field mixing rules? Or force field?

For pseudo atom file, I write down almost all data per each atoms from googling except charge. I'm not sure how could I determine the charge value for pseudo atom. Is this should be "partrial charge" values provided by supplementary file?




my experience with RASPA is not great, but it took me a few weeks to set my system up properly, so I can share with you some advice:

1) in the force_field_mixing_rules.def file you put the non-bonding interactions, which in your case probably means the Lennard-Jones epsilon and sigma values (yes, epsilon/kb as given the SI). Pay attention to the cut-off defined in the simulation.input as well as if there are tail corrections applied to the potential. In force_field.def you explicitly define interactions (meaning you'd have to define C-C, C-O, C-H, etc.). In most cases anyway, the forcefields utilize the mixing rules, so you do not have to do that. In that case, you leave the force_field.def "empty" (not literally empty, there is still some input that says there are no rules to overwrite. Just look at the example forcefields provided with RASPA).

2) in the pseudo_atoms.def file you define (in most cases) the atoms of your adsorbate. That means you define what atoms create your molecule by assigning appropriate chemical elements and masses to the atoms (as you can see in the provided files). The labels used in that file must correspond to the ones used in the molecule.def file later. As you want to study CO2/H2O adsorption, and the paper you linked is about alkanes, you have to find the parameters (both for LJ and charges) somewhere else. It can be TraPPE in the case of CO2, and you have plenty of water models to choose from. The charges should be provided there.

3) charges of the MOFs in the SI: the best option is to include them directly in the CIF file. Look at the CIFs distributed with RASPA, you just define a new field in the CIF and that's it. Of course, make sure you match atoms between your CIF file and the ones in the SI. Your CIF may have more atoms than in the SI: either your CIF does not describe the smallest asymmetric unit or/and your CIF describes different symmetry, hence the difference in the number of atoms. If you have used VASP for the geometry optimization, you can probably get the DDEC charges as well if there is a mismatch between their description of the MOF and yours. You can also use built-in charge equilibration method to get the charges, or use some machine learning-based charges (google for PACMOF, for example).

Again, I may be wrong as I still learn RASPA and MC in general. You will also have to spend a lot of hours learning how to use RASPA.


David Dubbeldam

For classical simulations and classical simulations software, you always need to define the same things:
1) the positions of all the atoms that are present at the start of the simulation, like the framework.
2) the types of atoms
3) the force field, including charges, VDW, and all the bond, bend, torsions for flexible adsorbates and flexible frameworks.
4) the simulation input parameters, like pressure, temperatures, and MC moves etc.

There is no way around that issue and is the nature of classical simulations. Most people working with RASPA, Towhee, GULP, DLPOLY, LAMMPS struggle with this simulation-theory side. But there are many good books on this topic.
RASPA is not the most difficult input, for example, you can just list the amount of molecules, and the code generates the positions atomically. In LAMMPS, DLPOLY etc you first need to create all the initial positions 'by hand'.