Efficiently Simulating N Particle Systems in FORTRAN: Tips and Tricks

  • Thread starter Thread starter morenogabr
  • Start date Start date
  • Tags Tags
    Particle System
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 3K views
morenogabr
Messages
27
Reaction score
0
When simulating N particles in FORTRAN:

- How do I declare x,y,z,vx,vy,vz for arbitrarily large number of particles N?
- How do I write out data for each particle without N write statements?

I intend to have a time-step do loop with a particle do loop inside so that at each time step I cycle through each particle, do the computation, and update the data.
 
on Phys.org
Writing numerical data for multiparticle system

I am simulating a multiparticle system using FORTRAN language. But my question is a general programming question regarding how to write data.

I am using a loop to cycle through a number of particles, and running a numerical computation and writing out data at each time step. So a particle loop with a time loop inside of it so that each particles trajectory over all time is calculated one particle at a time.

My question is simply:
-How can I use the loop index referring to the particle in a WRITE statement so that for each particle I open a new data file, without having to create a WRITE statement for each particle individually?

-Would it be easier to write all the data into one data file, just having the write statement tab over after each particle or something like that?

Theoretically, I need to be able to take that data file to a graphics program and visualize it from raw data. No GUI.
 
I'll answer in general terms, since it's been forever since I programmed in FORTRAN.

You cannot use an array for an "arbitrarily large number of particles". You would need to create a datastructure like a linked list, which you can grow and shrink as needed.

What "No GUI" graphics program do you intend to use to visualize the data? That will start to determine what format you use when you write out the data.

You could use something as simple as Excel to visualize the data, if you write it out as comma-separated or tab-separated data, one line of data (for all of the particles) per time slice.