Skip to content

Questions and Answers

Jacob Fields edited this page Jun 10, 2020 · 4 revisions

Troubleshooting

  1. I keep getting Python errors when trying to compile OOPS-2D or run the genParams.py script!
    • OOPS-2D requires Python 3.0 or later to compile because of the genParams.py script. Python 2.7 will not work. If you're getting errors with a more recent version of Python, please let me know.

Other Questions

  1. Why do you use smart pointers like std::shared_ptr in some places? Don't they slow down the code?
    • Not really. Allocation and destruction are marginally slower with std::make_shared than a complex pointer, but it's not enough to make much of a difference. Memory in OOPS-2D is already structured to minimize the number of times it gets allocated or deallocated because it's painfully slow, even with raw pointers. If it makes you feel any better, raw pointers are still used in complex data structures like SolverData and ODEData, and MPI communication (which has the most frequent allocations and deallocations) is done with raw pointers out of necessity. In my opinion, the better safety for a marginally slower allocation is worth the trade-off.
  2. Can you add (random feature)?
    • Possibly. My goal is to keep OOPS-2D simple and easy-to-use. If it enhances ease-of-use, sure. If it doesn't, you're better off forking the project and adding it yourself.

Clone this wiki locally