I build a polymer with pcff force filed via EMC, but the response infromation shows the total charge of the system does not zero. How can I deal this problem?
Non-zero charges can happen during typing and are typically occurring for exotic chemistries. Could you provide your .esh for which the described issue occurs?
Thanks for your response to my question. Please see my .esh settings as following. Hoping for your help!
ITEM OPTIONS replace true field pcff density 0.1 ntotal 41 field_increment ignore #field_debug reduced ITEM END # Groups ITEM GROUPS pmda_oda *N1C(=O)c2cc3C(=O)N(C(=O)c3(cc2(C1(=O))))c4ccc(cc4)Oc5ccc(cc5)*,2,pmda_oda:1 caping_h *H,1,pmda_oda:1,1,pmda_oda:2 ITEM END # Clusters ITEM CLUSTERS poly alternate 1 ITEM END # Polymers ITEM POLYMERS poly 1 pmda_oda,1,caping_h,2 ITEM END
The error you are experiencing has to do with a quirk of EMC. EMC types per group and iterates over connections. This generally works, but seems to be problematic in certain cases, e.g. your particular case. You can circumvent the issue by creating two terminal groups, which are very similar to your original repeat unit. The latter is reflected by the following example script:
ITEM OPTIONS replace true field pcff field_increment warn number true focus true ntotal 10 density 0.1 emc_execute true ITEM END ITEM GROUPS mono *N1C(=O)c2cc3C(=O)N(C(=O)c3(cc2(C1(=O))))c4ccc(cc4)Oc5ccc(cc5)*,1,mono:2 term1 N1C(=O)c2cc3C(=O)N(C(=O)c3(cc2(C1(=O))))c4ccc(cc4)Oc5ccc(cc5)*,1,mono:1 term2 *N1C(=O)c2cc3C(=O)N(C(=O)c3(cc2(C1(=O))))c4ccc(cc4)Oc5ccc(cc5),1,mono:2 ITEM END ITEM CLUSTERS poly alternate,1 ITEM END ITEM POLYMERS poly 1 mono,1,term1,1,term2,1 ITEM END
Thank you for debuging this problem for me. it works under the pcff force field.
However, when I replace the pcff with opls, the simlar error occurs.
The observed error can indicate missing rules. In EMC OPLS force fields differs from force fields as PCFF and CHARMM, such that partial charges are directly assigned through typing rules and not by means of bond increments. The error you are experiencing typically results from missing typing rules for your particular case. This means, that you will have to determine which rules are missing. You can force EMC to write out a non-neutral system by setting
ITEM OPTIONS. Either the produced
.psf can help you in figuring out the incorrect type and/or charge designations. Consequently, you will have to add the missing rules with the correct partial charges. It could well be, that what you are looking for is hidden in the OPLS parameter source files in
./field/opls/2012/src. You could add rules to
opls.define and run this file with
emc_opls.pl to obtain new
.top files. Better instead would be to transform the OPLS force field into a field using bond increments for partial charges. That, however, will be a future project.
Once again, thanks for your response, and I will try it according to your tips.