Comments (1)
It depends on whether the timescale on which you change the strength of radiation pressure is long compared to the dynamical timescale. It sounds like this is not your case, but for completeness, in this case, you could simply update beta between a grid of times. If the grid is fine on the timescale you want to vary beta you’ll capture the right behavior, and if it’s coarse on the scale of the integrator timestep, you won’t lose any performance. For example to vary beta linearly from 0 to 1 over 1e4 time units:
t_vary = 1e4
Ntimes = 1000
times = np.linspace(0, t_vary, Ntimes)
for time in times:
sim.integrate(time)
sim.particles[1].params[‘beta’] = time/t_vary
If on the other hand you need to vary it on orbital timescales, you would need to write your own custom function. You can follow the example here: https://github.com/dtamayo/reboundx/blob/master/ipython_examples/Custom_Effects.ipynb, where you would write a function like starkForce, that in addition to adding the appropriate acceleration (you could translate the implementation in src/radiation_forces.c) updates the beta parameter of the particles. You can also add new parameters to the particles that control how the effect varies with time to each particle and access them in that function.
When you do this, it means that this function you write will be called in Python every timestep from C, which will slow things down by a factor of a couple to a few. For presumably short integration timescales for light sails the performance might not be an issue you care about. If you need to squeeze out extra performance, you could write your custom effect in C that updates particle accelerations, and then REBOUNDx will automatically take care of all the interface so that it’s accessible from Python. A tutorial on how to do that is here: http://reboundx.readthedocs.io/en/latest/add_effect.html
Hope that helps!
from reboundx.
Related Issues (20)
- REBOUNDx error: Force 'type_I_migration' not found in REBOUNDx library. HOT 5
- Setting beta via sim.particles[i].beta does not work? HOT 2
- Problem with the example: full version of yarkovsky_effect: Python 2.7 HOT 8
- Yarkovsky effect in Reboundx : question about the 'k' coefficient HOT 2
- Question additional forces HOT 5
- Signed int HOT 2
- Radiation forces blocked by particles HOT 3
- Need to attach reboundx.Extras instance to simulation before setting params. HOT 8
- Failed building editable for reboundx HOT 6
- Cannot reproduce the plot in InnerDiskEdge.ipynb HOT 1
- Trouble implementing new effect
- Extras not attatching to sim for Rebound 4.3.2 HOT 7
- "Process finished with exit code 139" when running example code HOT 4
- Error with setting gr.params in GR notebook HOT 12
- ReboundX - installing problem with Python HOT 1
- Getting warning/error with additional forces HOT 9
- Trouble Installing reboundx HOT 1
- Could not install reboundx due to 'wheels error' HOT 3
- Happy Birthday! 🥳 HOT 1
- Difficulties to simulate the evolution of the Earth-Moon system + Sun HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reboundx.