Skip to content

Commit cdb4ac6

Browse files
committed
update qeq, matrix invertion method and projected gradient method werâ�e added, units of some paramters were unified
1 parent dcc9fa5 commit cdb4ac6

File tree

1 file changed

+38
-9
lines changed

1 file changed

+38
-9
lines changed

docs/user_guide/4.3ADMPQeqForce.md

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ To create a ADMP QEQ potential function, one needs to do the following in python
184184
hamilt = Hamiltonian('forcefield.xml')
185185
pot = hamilt.createPotential(dmfftop, nonbondedCutoff=rc*unit.nanometer, nonbondedMethod=app.PME,
186186
ethresh=1e-3, neutral=True, slab=True, constQ=True,
187-
const_list=const_list, const_vals=const_val,
187+
const_list=const_list, const_vals=const_val, part_const=True
188188
has_aux=True
189189
)
190190
```
@@ -206,6 +206,7 @@ A few keywords in `createPotential` would impact the behavior of the function:
206206
* `const_vals`: the corresponding constraint valu on each residue.
207207

208208
* `ethresh`: the accuracy of PME, used to setup the size of the meshgrid of PME.
209+
* `part_const`: bool type, whether there are constraint groups or not.
209210
* `has_aux`: bool type, whether to intruduce auxilliary parameters, equilibrated atomic charges, etc.
210211

211212
## 3. ADMPQeqGenerator Doc
@@ -252,6 +253,9 @@ The backend of the ADMP QEQ energy is an `ADMPQeqForce` object. It contains the
252253
* `e_sr`: short range damping energy function
253254
* `e_site`: on site energy function
254255
* `coul_energy`: point charge interaction energy function
256+
* `icount`: times to run get_energy function
257+
* `hessinv_stride`: strides to update charges by matrix inversion method
258+
* `qupdate_stride`: strides to update charges
255259

256260
***METHOS***
257261

@@ -278,8 +282,6 @@ The backend of the ADMP QEQ energy is an `ADMPQeqForce` object. It contains the
278282
Np: interacting pair indices within cutoff distance
279283
eta:
280284
N: the atomic length damping parameter
281-
ds:
282-
Np: topology distance of pairs
283285
buffer_scales:
284286
N * 3: buffer scales on pairs
285287
mscales:
@@ -288,14 +290,14 @@ The backend of the ADMP QEQ energy is an `ADMPQeqForce` object. It contains the
288290
energy: charge related coulombic energy plus constraint energy
289291
```
290292

291-
* `E_grads`:
292-
293-
Same as `E_full`, only return the concatenation of gradients of funtion `E_ful` on the first two paramters.
294-
295-
* `get_energy`:
293+
* `E_hession`:
294+
```
295+
Same as `E_full`, only return hession matrix of `E_full`.
296+
```
296297

298+
* `get_int_energy`:
297299
```
298-
This contains charge equilbrant process, and retruns total energy after charge equilibration.
300+
This contains charge equilbrant process by matrix inversion method, and retruns total energy after charge equilibration.
299301
300302
Input:
301303
positions:
@@ -318,3 +320,30 @@ The backend of the ADMP QEQ energy is an `ADMPQeqForce` object. It contains the
318320
energy: total energy after charge equilibration
319321
aux: auxilliary parameters, including equilibrated atomic charges and lagmt
320322
```
323+
324+
* `get_proj_grad`:
325+
```
326+
Function to get the value and projected gradients.
327+
328+
Input:
329+
func:
330+
function: position
331+
constriant_matrix:
332+
N * Na: N constrained groups
333+
has_aux:
334+
bool type: whether to return auxiliaries.
335+
```
336+
337+
* `get_step_energy`:
338+
```
339+
This contains charge equilbrant process by matrix inversion method or projected gradient method, it depends on step count and `hessinv_stride`, and retruns total energy after charge equilibration.
340+
341+
The inputs are the as `E_full`.
342+
```
343+
344+
* `get_energy`:
345+
```
346+
This contains charge equilbrant process and total energy calculation, retruns total energy every step and update charges by every strides of `qupdate_stride`.
347+
348+
The inputs are the as `E_full`.
349+
```

0 commit comments

Comments
 (0)