Question on Molecular dynamics programming

In summary: X3(I) + ... Where X3 is the contribution due to the forces between particles and X1 is the contribution due to the velocity of the particle at time 0 (i.e. x'(0)dt) and X2 is the contribution due to the acceleration, or forces, at time 0 (i.e. x''(0)(dt)^2/2). In summary, the subroutine SSX2SC is used to scale the initial forces to the program units for acceleration in a molecular dynamics simulation. This is done using the scale factor STPSQH, which is equal to [(delta t)^2]/2. The forces are multiplied by this scale factor to convert them to the program's internal
  • #1
caseyjay
20
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 = [tex](\Delta t)^2 / 2[/tex]."

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 =[tex]\sigma\sqrt{m/\epsilon}[/tex], energy [tex]\epsilon[/tex] and length [tex]\sigma[/tex].


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
  • #2
Can you fix the LaTeX?
 
  • #3
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
 
  • #4
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.
 
  • #5
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?
 
  • #6
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)
 

1. What is molecular dynamics programming?

Molecular dynamics programming is a computational method used to simulate the movements and interactions of atoms and molecules over time. It uses mathematical models and algorithms to predict the behavior of these particles under different conditions.

2. What are the applications of molecular dynamics programming?

Molecular dynamics programming has a wide range of applications in various fields such as chemistry, physics, and biology. It is commonly used in drug discovery, materials science, and protein folding studies.

3. What programming languages are commonly used in molecular dynamics programming?

The most commonly used programming languages in molecular dynamics programming are C++, Fortran, and Python. Each language has its own advantages and is often chosen based on the specific needs of the project.

4. What are the challenges of molecular dynamics programming?

Molecular dynamics programming can be computationally intensive and requires a good understanding of both physics and programming. The accuracy of the simulations also depends on the quality of the force fields used and the size of the system being simulated.

5. How is molecular dynamics programming different from other simulation methods?

Molecular dynamics programming is a specific type of simulation method that simulates the movements of individual atoms and molecules over time. Other simulation methods, such as Monte Carlo simulations, focus on predicting the overall behavior of a system without considering the movements of individual particles.

Similar threads

  • Programming and Computer Science
Replies
4
Views
1K
  • Introductory Physics Homework Help
Replies
11
Views
765
  • Classical Physics
Replies
7
Views
827
Replies
9
Views
1K
  • Set Theory, Logic, Probability, Statistics
Replies
1
Views
1K
  • Beyond the Standard Models
Replies
11
Views
2K
  • Mechanical Engineering
Replies
20
Views
7K
  • Engineering and Comp Sci Homework Help
Replies
5
Views
1K
  • Atomic and Condensed Matter
Replies
3
Views
2K
  • Introductory Physics Homework Help
Replies
5
Views
2K
Back
Top