Computational modelling of the companion star and its interaction with Sol

Well I am still working on the efficient algorithm to allow at least 1 million asteroids to be simulated.
I implemented multiple grids but realized that the solution to the poisson's equation does not approximate the local fields accurately. The grid would have to be extremely fine which is not affordable (would take few seconds to be only initialized and this has to be done in every cycle). Thus I have to make kind of an hybrid. The far fields will be interpolated in a cell through a linear function from the source cell while the near fields will be calculated directly between particles.
This cell approach should reduce the time to be grid dependent and moreover the accuracy will be good enough. But I am not sure enough if this will give me at least 1 cps for 1mil asteroids.
The thing with these methods is, that their cost is linear with number of particles but they are efficient only when massively parallelized. It is hardly a victory when 100k particles gives you 1 cps and 1 mil gives you 0.1 cps.
Only the grid structure takes half a second to be created and initialized and then the forces have to be evaluated so I am going to give it a last try and see how that goes.

In the meantime I ported the graphics into OpenGL because the win GDI was awfully slow. Looks much better now. Left the Oort cloud to evolve for a bit with only 10,000 asteroids on my laptop, and it looks promising. The undersampling is noticeable near the center.

Thank you Psychegram for the suggestions, I actually tried to raise the density of the asteroids so that their mass combined is what is needed to be but then they started to behave chaotically because the gravitational forces between them were considerable. I would say that each of the asteroids acted like a small planet and considering that the acceleration is proportional to the mass of the body, all asteroids around were accelerated and then flung away. It was really chaotic movement unlike the one on the pictures from the 10,000 bodies simulation. There one can already see some kind of spiral to be forming.

I also considered that the distribution of the mass might be like this: most of the mass in the cloud might be due to very small asteroids, perhaps few meters and maybe less in diameter (dust like) but in extreme quantities and there are only few percent of large bodies, like few kilometers or even hundreds of kilometers in diameter. But that would be even more computationally expensive.

ad 2) yes yes this is an excellent suggestion, I have already thought of this mainly when it comes to the interaction of the companion star with the Oort cloud asteroids. The charge can have significant impact on the behavior. I already partially implemented the charge considerations into the simulation. Basically the equations for gravity and electricity are similar so if the companion is significantly charged with negative charge (assuming Sun is positive) then the attractive coulomb force can make the difference. This is definitely an excellent question for the Cs. Another good question would be if the companion has some bodies attached like planets that are orbiting him. Maybe even its own asteroid belt. This is all very interesting because the collision of two clouds could be something totally different than a lone companion would do.

So well I will try to improve my algorithm some more. Even few 100k particles with 1 cps would be great. I think I can make it. In the worst case I simply reduce the diameter of the oort cloud so that the asteroids are tightly packed. Because I observed that using only 10,000 asteroids, the companion simply goes between them like totally unaffected, the distances between the asteroids are considerable even though it doesn't look like it at first sight. So this is mainly why I wish to maximize the asteroid count so that the space is realistically populated. Ok guys I keep you posted on my progress.
 

Attachments

  • Oort1.png
    Oort1.png
    133.2 KB · Views: 98
  • Oort2.png
    Oort2.png
    134.9 KB · Views: 93
  • Oort3.png
    Oort3.png
    129.4 KB · Views: 97
I am very impressed by how quickly you're moving forward with this!

Regarding Nemesis having a negative charge and the Sun being positive, I came across a very interesting web page yesterday which might shed some light on the situation. This short section contains a critique of Ralph Juergens' Anode Sun model:

_http://qdl.scs-inc.us/2ndParty/Pages/7875.html

And here is the Table of Contents of a very detailed Electric Sun model:

_http://qdl.scs-inc.us/2ndParty/Pages/5237.html

My feeling based upon the linked work is that it is not necessary for the two bodies to have unlike charges. Rather, according to Feynman's 'like likes like' principle, it is likely that the overall charge of Sun, planets, and companion stars is negative: this attracts a cloud of protons to each, which ultimately leads to an attractive force between all bodies.

As to Nemesis having its own system, I agree this is very likely. Actually I'd be surprised if it were not the case. And I agree, this would make an excellent question for the C's. It would be quite the coup if they correctly predicted the number of planets around a brown dwarf that remains undiscovered (assuming it and its family are, eventually, discovered ... assuming that is, that they haven't been, and the discovery simply suppressed).
 
Hi tohuwabohu, this is really great work you are doing! May I ask what language you are using to code this? Also, would you be comfortable in sharing your code so that others may tinker with it?
 
I have some good news, the cell based approach worked very well, the speed of execution improved by roughly 100 percent. So now i can get 1 CPS for 200,000 asteroids. I think these are my limits for now.
It would need more cores for better performance and I am sure on modern multicore cpus the performance will be better, especially now when the multithreading is implemented.

STELA is version 1.4 now

what is new:
-particle based approach modified to cell based approach
-multithread pooling implemented
-gives 2 CPS for 100,000 particles
-scales roughly linearly with number of particles
-coulomb forces implemented

I checked the cell forces which are approximate to the direct force calculations (each particle with each other one) and found surprisingly small errors up to 100,000 particles. The force magnitude is different only by few thousandths of percent (0.001 percent). So I am quite confident that the results are good enough. The execution speed is a compromise between number of cells and number of particles per cell. In order to achieve good accuracy, all particles from adjacent cells to the calculated cell are evaluated by direct algorithm. Thus if the number of cells is large than the cell calculations are the bottleneck, and when the number of cell is small (thus explicitly the number of particles per cell is high) then the direct force calculations are the bottleneck. Thus for optimal performance the appropriate number of grid refinements has to be found. The direct calculations are evaluated at the topmost level.

I can't check the forces for more particles because it would take hours (days) to calculate the direct forces for more particles (for 1M surely few days) but it seems to be consistent from 10,000 to 100,000 so I might extrapolate to 1M as well.
Why I am saying this is because I tested the algorithm on the Oort cloud traversal with 1M asteroids and even though it took several hours to complete with step of 50 years the produced video from the simulation was quite something.

I captured also detail of the center with step only 5 years and it is beautiful, especially when the companion makes an exit the cloud resembles a cigarette smoke.

I uploaded the entry here:
_http://www.youtube.com/watch?v=CdCj5Wx9m9g

but unfortunately it is very poor quality i will post some pictures later. It would be nice to upload somewhere the original videos I have but they are 1 GB and 250 MB in size - uncompressed. When compressed one has 10 MB (the one posted on youtube) and the other has 2MB (wanted to post this as well but when i saw the horiible quality of the first one I changed my mind). Thought I upload it here but the attachment size is restricted. Maybe I will find some other way around.
I have to go now but will return later today and post the pictures and write some more.
 
tohuwabohu, really great effort you are putting into this, it is very appreciated. I'm very interested in this topic.
Regarding performance. If computations may be efficiently paralleled, you could get very significant boost in performance if you move computations from general-purpose CPUs to GPUs. GPUs way faster on highly parallelable tasks. Basically, you install one or several powerful GPUs for computation, and one not-too-powerful GPU just for rendering.
 
So I am back, had to make few errands. In the meantime I encoded the raw video file using high quality settings and it got reduced significantly so I uploaded it here

_http://www.filedropper.com/oort41_1

it is about 20 MB in size. This is the other video where the evolution of the perturbance can be seen. It will be there available for download only for a while then it will be deleted.

Basically I noticed three things:
1. The companion being fairly big chunk of mass, will attach to herself a good amount of smaller asteroids and basically create its own cloud when traversing densely populated areas. This is observable in Fig3a where the companion is on approach and she's got quite a few bodies orbiting her. These will later be stripped by the sun. This will require more detailed simulation to confirm. And more densely populated space. In this simulation I used random diameter for the asteroids ranging from 0 to 14 km. So these are fairly small. Nonetheless most of the asteroids are hurled sideways by the companion. This leads to...
2. In Fig4b and also in the video above the slingshot effect is observable. The bodies to the left are accelerated to the right and vice versa. The very dense ring shows this quite nice. I think that it migh depend on the distance what happens. It is interesting that she doesnt throw the asteroids in front of her but under some angle and this leads to...
3. What I think is that there are three phases to the disturbance in solar system. Firstly some straddled asteroids will arrive that somehow were redirected by the companion and her cloud. Secondly her cloud will interact directly with everything that is inside. And the diameter of her cloud seems to be even larger than the diameter of pluto orbit. So she doesnt even need to be at perihelion to wreak some havoc. And the third phase is the worst one where the inner boundary collapses after the companion passage. The asteroids lose velocity and fail to maintain the orbit and dive in masses right into the solar system. This also needs fine scale simulation.

This problem is large scale problem and thus when one looks at what happens in the oort cloud the solar system is just a small spot on the screen. Thus a multiscale approach is needed, where one can in steps refine the scale using results from lower scale as initial conditions for finer scale. This way one can work his way up to the interaction of the companion and her cloud with the inner solar system. It will take some time but I am sure we can get there.

In the meantime I will refine the model because I observed that almost nothing happens until the companion is fairly close to the inner edge of the oort cloud. Therefore I will reduce the diameter which will help to reduce computation time and also helps to populate the space more densely. I am really looking forward to tomorrow when I will do it and perhaps make some more video files.
 

Attachments

  • Fig3a.png
    Fig3a.png
    502.2 KB · Views: 94
  • Fig4b.png
    Fig4b.png
    443.5 KB · Views: 93
Psychegram thank you for the links and insights, I really appreciate it as i love to study this stuff. And I love numerical methods. The whole electric universe idea remainds me strongly of ionized plasma and MHD. Basically what I am thinking is that the main particles in this theory are electrons and ions. So why can't we model these particles in similar fashion as the asteroids except they will have their charge and temperature and very small mass and very high velocities. Well actually when I am thinking I am also realizing that these particles are extremely small and in extreme quantities but I am thinking that we can take a bunch of them and assign them some average properties like if the plasma is ionized it should contain more ions and the ions are heavy and slower compared to electrons and then vice versa.

What I am thinking? I am thinking now that the collisions between them can be neglected because we cannot make such resolution. That could be modeled only by some statistical approach. But we can calculate electric potential from their charges and their movement is given by gradient of the potential. This is very interesting. Well but i am not sure how to calculate magnetic field from these particles. Nonetheless I am quite sure this can be done and then all kinds of electromagnetic effects could be simulated. But only in some small scale I am not sure. I will see where the path will lead. I might study some more but that is not the problem because I love it. The problem is I would like to have 40 hours day so I could do all this exciting stuff. But then I should be careful what I wish for, might come reality later.
 
Ask_a_debtor said:
Hi tohuwabohu, this is really great work you are doing! May I ask what language you are using to code this? Also, would you be comfortable in sharing your code so that others may tinker with it?

Well I made a lot of effort to bring Stela to life and I treat her like it is my child. If you can treat her with respect and are willing to help me in my efforts then you are welcome to do so. I feel like it is my duty to do what I am doing. But the question is, what would it be good for if it was not for others to be of service for them. So now that you ask, I was actually started all this in hope that some of you guys will join me and help me to develop Stela, to find direction. Frankly I think I am good only in some things so help from others is very much appreciated and the whole purpose of the forum and also of the philosophy of STO is to share and network. So this I really would like to do.
If the application should be developed here oficially then I would like to ask that it is developed under the license terms of FOTCM.
If it is ok I will post the code here and also the binaries.
Some of you migh ask why I am doing this, what is it good for. And the answer is: I don't know. I just feel like doing it and even if no one here on the forum would be interested I would be doing it. And I will share the code now when it is small and if some of you guys make something useful with it I will keep it updated. When not I will stop posting it.
 
MrEightFive said:
tohuwabohu, really great effort you are putting into this, it is very appreciated. I'm very interested in this topic.
Regarding performance. If computations may be efficiently paralleled, you could get very significant boost in performance if you move computations from general-purpose CPUs to GPUs. GPUs way faster on highly parallelable tasks. Basically, you install one or several powerful GPUs for computation, and one not-too-powerful GPU just for rendering.

I have some experience in shader programming and I can say that to debug such code is hell of a work. Moreover for large scale simulation you would need double precision and it is known that GPUs either don't support doubles or they are extremely slow. So I am thinking that it is not worth it. The parallelization is another problem because each card is different and optimal performance could be hardly achieved. Using CUDA might work but what is it good for when only nvidia supports it and it will work perhaps for 30 percent of people who have computer.
So that is why I do not want to go in that direction, want to keep it fairly universal and easily maintainable.
 
Very nice simulations. I'm impressed.

In order to run the simulation at multiple scales, you'll need to use adaptive mesh refinement. Are you familiar with the NBODY6? I believe it has this capability, and it is openly available.

_http://www.nbodylab.org/nbl_nbody6.html

It would be very interesting to see in detail what happens as Nemesis perturbs the Oort Cloud. The three phases you've highlighted are worth treating in much greater detail I think. One thing that could be looked for is the frequency and time constants over which infalling comets are caught by the gas giants in the outer solar system. This is something where we have observational constraints: the new moons discovered around these planets over the past 30 years or so (from the outermost in, the opposite of what we might expect if the discoveries were simply a result of improved telescopes) could then be used to get an idea of where exactly we are in terms of the three phases. It might also be possible to scale your results according to the actual number of bodies caught by the gas planets: this might constrain the density inside the Oort Cloud, which I understand is still a matter of some conjecture.

From there, we could get an idea of how many bodies are actually likely to reach the inner solar system, when they will do so, and perhaps get some idea of the expected impact frequency at the Earth as a function of time. This seems to me to be the most useful immediate thing we can learn from this work. Such an impact function could then be normalized both to the gas giant moon acquisition, to the observed bombardment frequency here on Earth (with appropriate corrections for detection bias due to e.g. a limited fraction of the Earth's surface being occupied), and to the observed frequency of large cometary bodies entering the inner solar system on highly eliptical orbits (e.g. Elenin, ISON, etc).

Further refinements: what effect do large moons orbiting Nemesis have on the comet clusters? I know that in simulations of stellar clusters, binary interactions have a very different effect from single-star interactions ... the additional angular momentum from a moon system might well have a significant effect on the e.g. the velocity dispersion of the disrupted cometary orbits.

Another idea: the C's mention the idea of a comet cluster created due to repeated disturbance by the companion star. You could try and verify the likelihood of this cluster, and perhaps determine its size, density, etc. Although this might be very computationally expensive as it would require hundreds of millions of years, at least, to model repeated passages of the companion as well as the evolution of the cluster in between such passages.
 
For everyone who wish to contribute or learn, here in the attachment is the source and binary file for Stela v1.4. I cleaned the code little bit and added more comments so the code is easier to navigate.

Please put everything regarding the app in this thread, be it a bug fix or feature addition or even some nice results. It will be everything collected here and I will post the code updates if someone is interested.

Also i was thinking that maybe if more people would wish I could add some dialog where the initial conditions could be set (like the position and velocity of companion, number of asteroids and their placement and so on) so even non programmers could make some nice setup.

There are lot of things to be done.
1. adding more UI controls so the application is more user friendly
2. adding orbits visualization
3. loading and saving the simulation so it can be later used as a restart point (preferably in plain txt file so it could be readable)
4. the hard boundaries could be set only for the grid and the particles outside of the grid could be deleted
or handled by direct calculation
5. the temporal integration is not accurate enough - improving to second order
and a lot more.

Any additional suggestions are more than welcome here.
 

Attachments

Psychegram thank you that is some very nice thinking you are doing. I already started to investigate what is going on when the companion travels through a dense asteroid region and I migh say that i am surprised by the results. I am not yet done with the simulation so I will post the results tomorrow if everything goes smoothly.
Basically what happens depends not only on the velocity of the companion but also on the distance from the Sun. At 10,000 AU she has got great potential to attach to herself great amount of nearby passing objects, whereas at 1,000 AU the Sun's gravity gets upper hand and the wake created by the companion is pulled into solar system. The wake itself resembles something like a fishing net. It is hard to describe but as I said I will post some pictures and videos tomorrow and then it will be more comprehensible.

I had a look at NBODY6 and they are using similar technique to discretize the space. The trees were fully adaptable but I choose multiple grids because they are faster to construct. But each grid resolves another scale so the spatial accuracy is very good. What I found yesterday is that the temporal discretization is not good at all because with large time steps the accuracy gets quickly worse. The integration scheme is only first order accurate and when the asteroids come very close to the companion then their interaction is not accurately resolved. The problem is that higher order schemes basically need more than one force evaluation in each step thus it has to be considered if the increase in accuracy is worth it repsectively if the multiple force evaluations could be compensated by larger timestep yet the accuracy will be good.

An adaptive approach to timestepping would be even better because then only the objects that need to be stepped would be processed and the other ones would wait until their time to be processed comes.
These things need more thinking and as of now I am not sure which way to choose.
 
I am extremely happy to see this thread, and that investigation is still being conducted, dialogue still active, regarding the Nemesis hypothesis.

A lot of truly important facets of the universe are not uncovered by asking the "big" questions, like how energy works, or why anything exists. Rather, the germ of great discoveries often rests in the investigation of subtle nuances, like how fluid behaves in a tube, or what the bacteria in our cells are doing.

At the advent of the Nemesis hypothesis, Muller was simply attempting to provide constructive feedback for his contemporary's analysis of the apparent periodicity of mass extinctions throughout the course of life on Earth. He attacked the notion (politely) by addressing the fact that no known phenomenon on Earth or in the entire Solar System has a periodicity even close to 65 million years, the space between mass extinctions. Muller practically blurted it out as a bluff, an absurd notion meant to cast doubt on the entire paper. But, then, there was a moment of silence, and the two pulled up figures and hit the chalk board. Sure enough, the existence of a dark star almost perfectly correlates to our understanding of gravity and physics and the semi-erratic rotation of the Sun.

Now, we just need to find it. I've got no clue how we are going to do that, since it is very close to its perihelion away from us.
 
I agree with you MoonGlow, every big thinker started asking some very simple questions and performing very simple experiments. Be it Newton, Tesla, Einstein and so on. They started small and gained fundamental understanding which most people now are lacking. One can see it in the books, in most modern books the most fundamental understanding is not even conveyed, they start building things at 10th floor without any foundation. And thus the most basic truths are lost and forgotten.
It is very important to start somewhere and solve simple problems and then one can perhaps understand something and move onto bigger things. I do not know but what Psychegram said seems to be a good idea. Perhaps we can estimate the density of the inflowing mass into solar system and see approximately where we are at. There is of course plenty of unknowns, because the mass density of the Oort cloud is unknown and it surely would help to know how many asteroids are in 1 AU^3 for example so that everything can be scaled appropriately. Nonetheless I think some fundamental understanding can be made as to what is going to happen.
I am not even considering the electric contribution to the problem because there are also many unknowns and this might change the results in some way. Especially for very small bodies the charge can affect their trajectory in a big way. But I am in no hurry so perhaps later it can be implemented. I will simply see where the path leads.
 
It may be of some interest to you to know that the spaceship New Horizon is in flight, and will reach the Kuiper belt in 2015. We'll know a lot more about the subtle nuances of the gravitational fields affecting the Kuiper objects, and we'll have a wealth of new data to play with.
 
Back
Top Bottom