-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make fidimag great again #138
base: master
Are you sure you want to change the base?
Conversation
Large commit - port Fidimag to build everything as C++ rather than C. Why? Because this is Stage 1 of our complex plan to make Fidimag faster and more readable, and part of this involves using Classes at the C++ level rather than at the Python level for energy terms in order to reduce the amount of slow Python code. Co-Authored-By: David Ignacio Cortee <[email protected]>
…me functions to new file tools.py (not setuptools.py because module named this)
…math.cpp. Make some of these external C++ declarations available in other modules by using a Cython pxd file, vectormath.pxd. Co-Authored-By: David Ignacio Cortee <[email protected]>
Co-Authored-By: David Ignacio Cortee <[email protected]>
…finitions of WIDE_PI constant with use of math library M_PIl Co-Authored-By: David Ignacio Cortee <[email protected]>
The title of the merge request is hilarious. Keep going :) |
… for now; ignored error in Makefile clean
… to c++ methods. Finished sim C class. Added some tests
…t. Moved exchange class functions to micro exch file
…rray. Fixed circular dependency in sim and energy class headers
…Added some documentation
The compiler gives me an error where the base class constructor is not virtual so I can't make |
We should not close this PR. But I'm not sure if someone would like to keep developing this full C backend, it's a lot of work :O |
Not ready to merge; just for test running.
The motivation behind this:
Simplify building by creating a library (shared? static?) of the C/C++ code seperate to the Python interface, and automate Cython file discovery to make it much easier to develop new tools.
Reduce code duplication by wrapping C functions once and exposing via pxd.
Move more Python code into Cython.
Profile and find the slowest parts for realistic examples
Give better support for compiling against other libraries; i.e. MKL if available vs FFTW - Should we use CMake rather than Make to simplify discovery or leave it to the user?