jewettaij / moltemplate

A general cross-platform tool for preparing simulations of molecules and complex molecular assemblies
http://www.moltemplate.org
MIT License
249 stars 98 forks source link

A question about how to build graphene/ polymer interfaces or hexagonal boron nitride /polymer interfaces #55

Closed ysdlucky closed 3 years ago

ysdlucky commented 3 years ago

Hello! Recently, I am building a polymer interface model. The polymer uses polyvinyl alcohol . The interface plans to use graphene sheet or hexagonal boron nitride sheet . Later, I will consider grafting other polymers on the interface. It is not difficult to build a polymer model using moltemplate,but it seems difficult to build a graphene sheet or hexagonal boron nitride sheet and polymer interface model. I checked the establishment of the graphene sheet in the example, and I found that the atom types were set by ourselves, such as “@atom:C",rather than gotten from oplsaa force field. The force field parameters of the polymer interface model can be divided into three parts, the polymer itself;graphene or hexagonal boron nitride;between the polymer and the interface.The first one can be obtained by moltemplate, the second is also simple , such as AIREBO or Tersoff.But the third one seems difficult, because I did not find the appropriate C, B, and N atomic types in oplsaa to build graphene and hexagonal boron nitride sheet, So it is hard for me to get correct pair_coeff parameters between polymer and boron nitride sheets or graphene sheets . I want to know whether it is possible to bulild a graphene or hexagonal boron nitride sheet in the oplsaa force field through molteplate, and obtain a reasonable pair_coeff parameter between the polymer and the interface? Thank you!

ysdlucky commented 3 years ago

I find a feasible method, which is to use LigParGen, http://zarbi.chem.yale.edu/ligpargen/index.html, we can submit graphene pdb files on this website to obtain the corresponding pair-coeff in OPLSAA. I hope this will help you.

jewettaij commented 3 years ago

Hi ALEXysd

I think the answer depends on whether you want to allow the atoms in the flat surface to move. The atoms in a thick slabs of graphite or boron nitride don't move very much compared to the atoms in the polymer. If you have more than one layer of graphene, then you can make all of the atoms in the graphine immobile. In the "functionalized nanotube" example, I made the atoms in the nanotube rigid (using "fix rigid") [example here[(https://github.com/jewettaij/moltemplate/tree/master/examples/all_atom/force_field_OPLSAA/functionalized_nanotubes_NH2)

Perhaps I should not have done this (?). A nanotube or a thin sheet of graphene or a single layer of boron nitride might be flexible.

I agree with you. I think it is a good idea to avoid using AIREBO, or similar pair_styles for this simulation. Those pair_styles require "units metal" which typically requires a smaller timestep, which will make your simulation very slow. (It's probably only necessary to use something like AIREBO or Stillinger-Weber if you plan to break the bonds in the graphene.)

If you want just to allow the atoms in the graphene to move, you connect the atoms together with explicit bonds, angles, and improper interactions, and use Lennard-Jones paramters to describe the interaction between graphene atoms with the polymers and other molecules. But where can we find these parameters?

I doubt that LigParGen will generate realistic parameters for graphene. It was not designed to work with graphene, so I do not trust it.

These paper looks relevant: https://link.springer.com/article/10.1007%2Fs00707-018-2115-5 https://pubs.rsc.org/en/content/articlehtml/2016/cp/c5cp03599f (especially section 4) https://aip.scitation.org/doi/10.1063/1.5023117

You can use the parameters from these papers in your simulation, converting them into moltemplate format. If you find good parameters, let me know and perhaps I can help you convert them into moltemplate format.

Incidentally, in this situation, I think it is okay to represent the graphene using DREIDING, and the polymers using OPLSAA. (They both use "pair_style lj/cut/coul/long")

Unfortunatley it is somewhat difficult to use moltemplate to automatically connect nearby carbon atoms together with bonds. But there is a way to do this, but it is not yet easy to use. If you get this far, I can share it with you.

Andrew

jewettaij commented 3 years ago

I just wanted to add a caveat: I did not search very carefully for the best empirical bonded parameters for graphene. There might be better papers that discuss this topic. Perhaps your google, bing, and baidu search skills will be necessary. I am certain other scientists have simulated graphene using these kinds of bonded parameters. I know you will find a good paper that discusses this topic. It might be harder to find empirical bonded parameters for boron nitride, but I have not looked. Good luck. If do you find a good source for bonded graphene parameters, please let me know.