It’s hard in the sense that you’re combining fields and learning things you haven’t learned before. In the course I took, the student needed to understand java programming so they could work with the Open Source Physics libraries and Classical Physics at the Goldstein level.
Coding was done using Eclipse IDE which had excellent development features ie a syntax coloring editor, transformation functions to promote, demote methods, add getters and setters, reformat code and provide visual cues of bad/wrong coding via incremental compiles and a good code stepping and breakpoint debugger.
Most of your coding will be around implementing the step method ie converting an ODE into a method and then setting up other code to activate the ODE solver that uses the specific ODE step method.
The hard part for me was understanding how the numerical method actually related to the physics.
Early in the course we implemented a simple Euler integration method for the simple harmonic oscillator and saw how it introduces some error into the simulation which appears as energy added or removed. From it we learned that we need to choose the ODE solver based on the kind of problem we were simulating to reduce the effects of error.
Later we used the RK4 ODE solver which we only needed to know how to use it and not what magic it used under the covers. It became the one to slit for most of our problems as it worked so much better than any Euler variant.
An example of error effects would be a planetary simulation where the planet started to spiral toward the sun ie energy lost vs the planet spiraling outward ie energy added thanks to error. The best solver would add some error and then take it away so that the simulation was stable and represented the planetary system.
We even got too philosophical with the prof asking if we could say all energy in the universe was in fact information error introduced into the simulation. He just laughed. I guess he saw The Matrix movie too.
We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling We Value Civility
• Positive and compassionate attitudes
• Patience while debating We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving