Page 1 of 2

simple particle simulators

Posted: Fri Nov 14, 2014 12:21 am
by ohiovr
Hey everyone,

I've found several interesting particle simulators that run in applets. Its a major PITA to use java applets, I've resorted to using a virtual box. Woe is desktop java. Even a java made web browser for windows wouldn't load java applets.

Is there a desktop simulator you can recommend? I don't mind shelling out some money for one either.

Re: simple particle simulators

Posted: Fri Nov 14, 2014 12:51 am
by hanelyp
Best I've found so far is XOOPIC. Expect difficulties running it in windoze, and more difficulties with the scanty documentation.

I've given thought to writing a better simulator. One idea I have takes model source code and compiles it to an executable with exactly the features specified. A bit slower to start a model (minutes), but could execute faster than other methods (hours).

Re: simple particle simulators

Posted: Fri Nov 14, 2014 1:53 pm
by ohiovr
hanelyp wrote:Best I've found so far is XOOPIC. Expect difficulties running it in windoze, and more difficulties with the scanty documentation.

I've given thought to writing a better simulator. One idea I have takes model source code and compiles it to an executable with exactly the features specified. A bit slower to start a model (minutes), but could execute faster than other methods (hours).
Kool thanks. Well it should work with my linux mint Vbox. Actually the only way I could get java applets to run was with linux. Sorry state of affairs...

Re: simple particle simulators

Posted: Fri Nov 14, 2014 9:05 pm
by ohiovr
hanelyp wrote:Best I've found so far is XOOPIC. Expect difficulties running it in windoze, and more difficulties with the scanty documentation.

I've given thought to writing a better simulator. One idea I have takes model source code and compiles it to an executable with exactly the features specified. A bit slower to start a model (minutes), but could execute faster than other methods (hours).
Actually if you were thinking of writing a better simulator I'd be willing to lend a hand. I know Unity3D pretty well. Maybe if we can codevelop libraries we can roll our own simulators. Unity is available for free. I use C# in Unity. You can use Javascript but I think C# is usually easier to write because it isn't as verbose. Unity already has a pretty nice physics package. We would need to roll our own lorenz force solver. How hard could it be?

Re: simple particle simulators

Posted: Sat Nov 15, 2014 5:43 am
by hanelyp
I was thinking C/C++ for the code. Given the speed demands almost anything else is second fiddle. XOOPIC runs microseconds of simulation time/day when particle counts get up where you need them for a good high beta simulation, and I'm hoping to run faster without sacrifice of simulation quality. I'm also looking at putting the physics solver in one thread and diagnostic displays and user interface in a separate asynchronous thread.

The physics package in Unity is probably well suited to games, but I doubt it can handle particle physics efficiently.

There's a possible technique of computing electromagnetic fields based on local particles and fields propagating from cell to cell. Likely tricky to get right, but potential orders of magnitude improvement in speed over other options. I need to bone up on Maxwell's equations for this.

Re: simple particle simulators

Posted: Sat Nov 15, 2014 6:29 pm
by ohiovr
Actually if you want to get fancy, use CUDA

Re: simple particle simulators

Posted: Sat Nov 15, 2014 10:34 pm
by prestonbarrows
Plasma Physics via Computer Simulation is the classic on the theory of particle-based plasma codes. It outlines the algorithms and gives some coded examples. Be warned that it is dated, but the essentials are there if you are fluent in a more modern coding language.

What you are talking about is known as 'particle in cell'. These are commonly made as home-brew solutions to specific problems but there are few commercially available general purpose codes available. One is V-sim from Tech-X. It is in the range of a few grand per year per processor for a license though.

Reactor codes are generally MHD, not particle, based these days since that is more geared to things like tokamaks.

You will need to run with something low level like C and/or leverage parallel GPU processing to do anything useful in 3D in a reasonable time.

Re: simple particle simulators

Posted: Sun Nov 16, 2014 4:59 am
by hanelyp
The price described for V-sim is outside my budget.

MHD would be attractive if the situation I wanted to simulate had a short mean free path. For long mean free paths, such as in a polywell, I'm not seeing how that method fits.

The hardware I'd be running on has what was a high end CPU a couple years ago, but a low end video chip. My skills are better with C/C++ than GPU programming anyway.

Re: simple particle simulators

Posted: Sun Nov 16, 2014 5:30 am
by prestonbarrows
hanelyp wrote:The price described for V-sim is outside my budget.

MHD would be attractive if the situation I wanted to simulate had a short mean free path. For long mean free paths, such as in a polywell, I'm not seeing how that method fits.

The hardware I'd be running on has what was a high end CPU a couple years ago, but a low end video chip. My skills are better with C/C++ than GPU programming anyway.
Yup, I agree, those were exactly my points. A few commercial software solutions exist but are extraordinarily expensive making it worth while to try and roll your own. Most of the cutting edge codes are aimed at tokamak type MHD applications, again making it worth while to roll your own.

Here is an interesting high-performance FOSS pic code https://github.com/ComputationalRadiati ... s/picongpu it was still in alpha development last time I used it. I am not sure how much / if any progress has been made on it since.

Re: simple particle simulators

Posted: Sun Nov 16, 2014 8:31 pm
by hanelyp
prestonbarrows wrote:Here is an interesting high-performance FOSS pic code https://github.com/ComputationalRadiati ... s/picongpu it was still in alpha development last time I used it. I am not sure how much / if any progress has been made on it since.
Interesting. Appears to require an Nvidia GPU, which rules out my desktop server. I need to check if my gaming laptop might work with it.

Re: simple particle simulators

Posted: Mon Nov 17, 2014 2:04 pm
by ohiovr
I wonder if CUDA is easier to program [than OpenCL] seeing that developers put up with it's exclusivity.

Re: simple particle simulators

Posted: Wed Dec 10, 2014 12:39 am
by asdfuogh
CUDA is easier to program in, but also, nvidia is relatively dominant in GPUs as well. If you wanted to run a meaningful PIC simulation of a Polywell, I would recommend against anything that didn't use Fortran or C/C++ because it either means they're using an insignificant amount of particles or low resolution meshes. Of course, that's not necessarily true if it's a 1D code, but other than that, it's probably not worth it.

If you're looking to learn something from this, I would recommend trying to write your own code, or finding a simple 1D (or 1 and 2 halves dimension, ie. x, vx, vy, vz) PIC code to modify. It is not easy to jump into a large code written by physicists because we're shitty programmers in the sense of readability.

Re: simple particle simulators

Posted: Thu Dec 11, 2014 2:12 am
by ladajo
I don't think you can run a meaningful sim for a polywell.
How would you reconcile the magnetic fields against the electric fields at high beta and sufficient particle densities to mean anything useful?

That would need some pretty serious custom code and processing power that is beyond anything reasonable.

Re: simple particle simulators

Posted: Thu Dec 11, 2014 5:14 am
by asdfuogh
>I don't think you can run a meaningful sim for a polywell. How would you reconcile the magnetic fields against the electric fields at high beta and sufficient particle densities to mean anything useful? That would need some pretty serious custom code and processing power that is beyond anything reasonable.

OP probably can't do it on his own home computer very easily without making it less than meaningful, but I would say that the approach to simulating depends on what you want to simulate. With the wide range of plasma length scales and time scales, you really have to have an idea of what's important in order to simplify your simulation to the point where you can actually solve a tiny part of the problem. For example, if we can even hold a plasma in the polywell center for a good millisecond or so, maybe you want to start asking how important the electrostatic drift instabilities are to this type of plasma. Then you'd have to already assume some equilibrium of sorts (ie. b-field, densities, temperatures, what else?) before you can even hope to do that type of simulation.

Also, another important type of simulation would be the plasma-material interaction between the coils and the plasma, since you're sticking the damned rings and plasma pretty close to each other, that may be a source of impurities that can cause more instabilities or other unwanted effects. I don't know enough about this type of simulation, but you don't really use PIC codes for it, I think.

Re: simple particle simulators

Posted: Sun Dec 14, 2014 5:14 pm
by happyjack27
ladajo wrote:I don't think you can run a meaningful sim for a polywell.
How would you reconcile the magnetic fields against the electric fields at high beta and sufficient particle densities to mean anything useful?

That would need some pretty serious custom code and processing power that is beyond anything reasonable.
at high particle count, if you're talking simulating ala particle-to-particle pair interaction, you can use a barnes-hut tree code http://en.wikipedia.org/wiki/Barnes%E2% ... simulation or a fast multipole method https://www.siam.org/pdf/news/637.pdf

that takes care of your cpu scaling problem.

but then you're going when you go really really high you're going to start running into i/o bottlenecks.

that's where you look for approximation methods and/or concentrate on smaller areas to reduce the particle count.

if by high beta you're talking high curvature... where your spatio and spatio-temporal derivatives become real significant, i've encountered some papers that use an approach centered on "vortexes" that may be of use there. some advanced and interesting stuff. over my head. http://crd.lbl.gov/assets/pubs_presos/A ... G/A124.pdf