Question on Molecular dynamics programming

Click For Summary
SUMMARY

The discussion centers on the FORTRAN subroutine SSX2SC from "Molecular Dynamics Simulation: Elementary Methods" by J. M. Haile, which scales initial forces to program units for acceleration using the scale factor STPSQH = (Δt)² / 2. Participants clarify that in the context of the program, where mass m = 1, the relationship F = ma simplifies to F = a, making STPSQH essential for converting forces into accelerations. The scaling factor arises from the integrator's derivation using Taylor expansion, which updates particle positions based on acceleration.

PREREQUISITES
  • Understanding of molecular dynamics principles
  • Familiarity with FORTRAN programming
  • Knowledge of Taylor series expansion
  • Concept of reduced units in simulations
NEXT STEPS
  • Study the implementation of molecular dynamics algorithms in FORTRAN
  • Learn about Taylor series and its applications in numerical methods
  • Explore the concept of reduced units in computational physics
  • Investigate different integrators used in molecular dynamics simulations
USEFUL FOR

Researchers, computational physicists, and students involved in molecular dynamics simulations, particularly those using FORTRAN for programming and analysis.

caseyjay
Messages
20
Reaction score
0
Dear all,

I am not sure if this is the right place to ask the following. (Moderators, please move this thread to the right sub-forum if necessary.)

The question I am having is related to molecular dynamics. In the book "Molecular Dynamics Simulation: Elementary Methods" by J. M. Haile, a FORTRAN program is provided page 459. A subroutine called SSX2SC is listed and is described as

"the routine to be called only once during a run. At the start of the initialization it is used to scale the initial forces to the program units for acceleration. The scale factor is STPSQH = (\Delta t)^2 / 2."

In the FORTRAN program, it goes on to equate:

Code:
X2(I)=FX(I)*STPSQH
Y2(I)=FY(I)*STPSQH
Z2(I)=FZ(I)*STPSQH

where X2, Y2 and Z2 are accelerations in x, y and z directions respectively and FX, FY and FZ are forces in x, y and z directions respectively.

The program is treating the problem using reduced units such that mass m = 1, time =\sigma\sqrt{m/\epsilon}, energy \epsilon and length \sigma.


What I do not understand is:

1. What is the meaning of "to scale the initial forces to the program units for acceleration"?
2. Why multiply force by STPSQH?

Thank you very much and I hope someone can shed some light to this.

Casey
 
Last edited:
Physics news on Phys.org
Can you fix the LaTeX?
 
Hi nbo10,

I am not sure if there is something wrong with LATEX or not. Anyway I have duplicate the earlier question over here but this time without using LATEX in it.

The question I am having is related to molecular dynamics. In the book "Molecular Dynamics Simulation: Elementary Methods" by J. M. Haile, a FORTRAN program is provided page 459. A subroutine called SSX2SC is listed and is described as

"the routine to be called only once during a run. At the start of the initialization it is used to scale the initial forces to the program units for acceleration. The scale factor is STPSQH = [(delta t)^2]/2."

In the FORTRAN program, it goes on to equate:

Code:
X2(I)=FX(I)*STPSQH
Y2(I)=FY(I)*STPSQH
Z2(I)=FZ(I)*STPSQH

where X2, Y2 and Z2 are accelerations in x, y and z directions respectively and FX, FY and FZ are forces in x, y and z directions respectively.

The program is treating the problem using reduced units such that mass m = 1, time =sigma*sqrt(m/episilon), energy is epsilon and length is sigma.

What I do not understand is:

1. What is the meaning of "to scale the initial forces to the program units for acceleration"?
2. Why multiply force by STPSQH?

Thank you very much and I hope someone can shed some light to this.

Casey
 
caseyjay said:
The program is treating the problem using reduced units such that mass m = 1, time =sigma*sqrt(m/episilon), energy is epsilon and length is sigma.

What I do not understand is:

1. What is the meaning of "to scale the initial forces to the program units for acceleration"?
2. Why multiply force by STPSQH?
Casey


Seems to me you answered your own question;
F = ma, so if m=1 then F = a in the program's internal units, where STPSQH is the scaling factor to convert to those units.
 
alxm said:
Seems to me you answered your own question;
F = ma, so if m=1 then F = a in the program's internal units, where STPSQH is the scaling factor to convert to those units.

Hi alxm,

Thanks for your reply, but why multiply it with STPSQH [(delta t)^2]/2?

What do you mean by "scaling factor" and to convert to "what" units?
 
The factor, STPSQH (probably referring to something like "[time]Step SQuared Halved") comes about from the integrator you are using. Many are derived using some kind of short time Taylor expansion to update the position of the particles, i.e.
x(dt)=x(0)+x'(0)dt+x''(0)(dt)^2/2+...
Clearly x'(0) is the velocity and x''(0) is the acceleration (here equal to the force due to m=1) and the (dt)^2/2 term is the one you are asking about. The variables X2, Y2, Z2, would be more appropriately called "the coordinate contribution due to acceleration", because they clearly have units of position, after the "scaling factor" is applied. In this way, the coordinates can be updated by something like:
X(I) = X1(I) + X2(I)
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
2K
Replies
24
Views
3K
  • · Replies 11 ·
Replies
11
Views
1K
  • · Replies 11 ·
Replies
11
Views
4K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 20 ·
Replies
20
Views
11K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 1 ·
Replies
1
Views
1K