Skip to content
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

Doc update for GQ additions. #26

Merged
merged 4 commits into from
Jul 26, 2016
Merged

Doc update for GQ additions. #26

merged 4 commits into from
Jul 26, 2016

Conversation

pshriwise
Copy link
Member

Adding the Armadillo prerequisite in the Docs. Also indicated what GQs are currently supported (just the two that were required for the JET model right now).

@gonuke
Copy link
Member

gonuke commented Jul 13, 2016

What do you assume about the install location of armadillo? Does the build process/makefile need to change?

@pshriwise
Copy link
Member Author

Hrmmm for ubuntu I assume it has been installed via aptitude (so location is /usr/lib/) and right now I simply add -larmadillo to the LDFLAGS variable.

Should I indicate that the library location should be in the user's LD_LIBRARY_PATH?

@gonuke
Copy link
Member

gonuke commented Jul 13, 2016

If installing from source, one may not install in /usr/lib. I guess we might need to adapt the Makefile to make it easier to provide a path - or tell users to put thing in LD_LIBRARY_PATH, etc.. same for include files.

@pshriwise
Copy link
Member Author

Should we add it as a user-defined location (as we do for the CGM_BASE_DIR variable)? It could default to /usr/lib/ if not provided.

@gonuke
Copy link
Member

gonuke commented Jul 16, 2016

Maybe this can/should be addressed in CMake. I can hack my own copy for testing, but the path we are on will rely on CMake for the plugin, so spending time to improve the Makefile may not be the best use of effort.

Can we vendor the Armadillo code? What's the license?

@gonuke
Copy link
Member

gonuke commented Jul 19, 2016

After tweaking my Makefile, I still had a problem resolving this library:

libmkl_rt.so => /opt/intel/mkl/lib/intel64/libmkl_rt.so (0x00007f94d463e000)

Is this a requirement for Armadillo? Or could I have avoided it somehow?

@pshriwise
Copy link
Member Author

It seems as though it can be avoided? Armadillo still relies on some underlying linear algebra libraries it seems... (http://arma.sourceforge.net/faq.html#linking). MKL is one of those libraries, but it more commonly it is LAPACK or BLAS instead. Do you have those installed?

@gonuke
Copy link
Member

gonuke commented Jul 19, 2016

I do have LAPACK/BLAS installed, but I guess CMake found this one instead.... Remind me what we rely on armadillo for? This could easily create a bit of a headache in the general case. (Although, again, when we switch to plugins, this might matter less)

@pshriwise
Copy link
Member Author

We rely on Armadillo to produce the cannonical coefficients of the GQ via the Eigenvalue decomposition of some characteristic matrices along with information regarding its appropriate rotation and translation via the Moore-Penrose psuedoinverse matrix.

To simplify things, I'm wondering if CGM might have such a capability...

@pshriwise
Copy link
Member Author

Regarding the armadillo build issue, I see two options (of many)...

  1. @ejwilson3 hasa branch which will allow for a build of mcnp2cad with CMake in which I could add a FIND_PACKAGE for Armadillo. This would leave the mcnp2cad build in a somewhat unstable state for a while though.

  2. I could allow for an optional ARMADILLO_PATH variable to be set in the current GNU Make scheme to set a custom path for the package. This would fix the problem in the short term but would eventually need to be updated to work with CMake in the future.

Additionally, it seems that because Armadillo relies on LAPACK and other linear algebra packages under the hood it might be best to call on LAPACK directly as it is used in some of our other tools as well (PyNE/CADIS if I recall correctly).

Happy to take whatever course of action we decide is best.

@gonuke
Copy link
Member

gonuke commented Jul 25, 2016

I think something closest to (2) is best - a quick hack until we better understand how this will work in the future as a plugin.

It is possible/likely that Trelis/Cubit will provide what we need for this purpose instead of Armadillo??? Might be worth taking a quick look at what's in the headers there.... (SDK's available here)

Patrick Shriwise added 2 commits July 25, 2016 22:32
@gonuke
Copy link
Member

gonuke commented Jul 26, 2016

Thank @pshriwise

@gonuke gonuke merged commit 93ba0fb into svalinn:master Jul 26, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants