Hi,
First of all thanks for providing the thinker2openmm code for amoeba force field. I am very new to the amoeba force field. I am using your code to covert the poltype2 format to openmm xml using your code. I changed few lines to align to the poltype2 format. I have doubt about few things. I would appreciate your suggestions and help. In the mutlipole section, the number of parameters can vary, like 13 or 14 or 15, based on that I have changed the code.
def parse_prm_multipole(self, split_line, f):
# Get the length of split_line and adjust variables accordingly
atom_type = split_line[1]
if len(split_line) == 4:
# Case: "multipole 410 409 "
kz = split_line[2]
c_0 = split_line[3]
kx = None # No kx for this case
ky = None # No ky for this case
elif len(split_line) == 5:
# Case: "multipole 410 409 411"
kz = split_line[2]
kx = split_line[3]
c_0 = split_line[4]
ky = None # No ky for this case
elif len(split_line) == 6:
# Case: "multipole 410 409 411 412"
kz = split_line[2]
kx = split_line[3]
ky = split_line[4]
c_0 = split_line[5]
else:
raise ValueError(f"Unexpected number of parameters for multipole: {split_line}")
# Get second line parameters (dipole moment):
line = next(f).strip() # read next line for dipole
split_line = shlex.split(line)
d_1 = split_line[0]
d_2 = split_line[1]
d_3 = split_line[2]
# Get third line parameters (quadrupole moments):
line = next(f).strip() # read next line for quadrupole
split_line = shlex.split(line)
q_11 = split_line[0]
# Get fourth line parameters (quadrupole moments):
line = next(f).strip() # read next line for quadrupole
split_line = shlex.split(line)
q_21 = split_line[0]
q_22 = split_line[1]
# Get fifth line parameters (quadrupole moments):
line = next(f).strip() # read next line for quadrupole
split_line = shlex.split(line)
q_31 = split_line[0]
q_32 = split_line[1]
q_33 = split_line[2]
# create multipole record:
self.prm_multipole_records.append(TinkerPrmMultipole(
atom_type=atom_type,
kx=kx,
kz=kz,
ky=ky,
c_0=c_0,
d_1=d_1,
d_2=d_2,
d_3=d_3,
q_11=q_11,
q_21=q_21,
q_22=q_22,
q_31=q_31,
q_32=q_32,
q_33=q_33))
Then while reading the prm file there are conditions that I don't have in my file, what are these parameters signifies, like
Hi, First of all thanks for providing the thinker2openmm code for amoeba force field. I am very new to the amoeba force field. I am using your code to covert the poltype2 format to openmm xml using your code. I changed few lines to align to the poltype2 format. I have doubt about few things. I would appreciate your suggestions and help. In the mutlipole section, the number of parameters can vary, like 13 or 14 or 15, based on that I have changed the code.
the new function looks like
Then while reading the prm file there are conditions that I don't have in my file, what are these parameters signifies, like
Are these parameters important. If you would like to share me any documentation or information about openmm amoeba that might help me to understand.