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

NEML integration #60

Merged
merged 8 commits into from
Mar 30, 2019
Merged

NEML integration #60

merged 8 commits into from
Mar 30, 2019

Conversation

bwspenc
Copy link
Collaborator

@bwspenc bwspenc commented Feb 18, 2019

ref #59

reverendbedford and others added 3 commits January 21, 2019 09:10
…ansionEigenstrainNEML. Test check uniaxial stress behavior for simple problems.
Add NEML as a submodule
Add Makefile to build NEML using the MOOSE build system
Fix issues with NEML tests and make them run only if NEML is compiled in
@@ -0,0 +1,37 @@
#ifndef COMPUTETHERMALEXPANSIONEIGENSTRAINNEML_H
#define COMPUTETHERMALEXPANSIONEIGENSTRAINNEML_H
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rename

@moosebuild
Copy link

moosebuild commented Feb 18, 2019

Job Test on d62c698 wanted to post the following:

View the site here

This comment will be updated on new commits.

@bwspenc
Copy link
Collaborator Author

bwspenc commented Feb 18, 2019

@reverenedbedford FYI, I took the commit from your PR and built onto it in this PR. Once we get this all sorted out, we'll just want to close your original PR.

I talked this over with @dschwen, and I think we'll make a change to ComputeStressBase in MOOSE to make it so that it doesn't require an elasticity tensor. Once we get that change pushed through, I'll go back and remove that stuff from the NEML stress calculator.

@bwspenc bwspenc force-pushed the neml branch 3 times, most recently from fdb3692 to 52b3126 Compare February 26, 2019 01:24
@moosebuild
Copy link

Job Precheck on 52b3126 wanted to post the following:

Your code requires style changes.

A patch was auto generated and copied here
You can directly apply the patch by running, in the top level of your repository:

curl -s http://mooseframework.inl.gov/blackbear/docs/PRs/60/style.patch | git apply -v

Alternatively, with your repository up to date and in the top level of your repository:

git clang-format 3ce682d750f8af63be700bfc3d0555491bc16713

@moosebuild
Copy link

Job Test on 3aa61e7 : invalidated by @bwspenc

@bwspenc bwspenc force-pushed the neml branch 3 times, most recently from 48e6aca to 0d3e81e Compare February 28, 2019 23:02
Also:
Add requirements to tests
Add documentation for NEML objects
Update neml submodule -- this version compiles with the MOOSE build system
Ignore build files in NEML
Add headers to NEML interface source files
Fix miscellaneous Makefile issues
On Linux, something about including the libxml++ headers and their
dependencies didn't play nicely with the make_unique macro in
libmesh. To get around this, only include those files when building
the neml source, and not other MOOSE source files.
@bwspenc
Copy link
Collaborator Author

bwspenc commented Mar 1, 2019

@reverendbedford I'm having a heck of a time getting this to compile on all of our platforms due to the libxml dependency. It compiles and runs fine on my mac in opt and debug mode. I got the libxml++ dev package installed on the linux box that we do our testing on, and I thought I had it working, but now it's failing because of these undefined references to libxml++ functions (only on debug -- opt works fine):

Linking Executable /opt/civet/build_0/blackbear/blackbear-dbg...
/opt/civet/build_0/blackbear/contrib/neml/libneml-dbg.so: undefined reference to xmlpp::Element::get_attributes() const' /opt/civet/build_0/blackbear/contrib/neml/libneml-dbg.so: undefined reference to xmlpp::Node::get_children(Glib::ustring const&) const'
collect2: error: ld returned 1 exit status

I've got an idea to get around these issues with libxml++. We're already dependent on the boost library, and that is one of the libraries that we have good support for in our packages. It looks like the boost property_tree can parse xml. If we could swap libxml++ for that, that would make it a lot easier to support neml with our regular packages. I'm going to attempt to modify neml to use property_tree. If you have any objections to that before I go too far down that path, let me know.

@reverendbedford
Copy link
Collaborator

I have no objection at all. In fact if it works I would appreciate a pull request onto NEML proper, as I would really like to eliminate all the libxml++ dependencies. They make compiling on windows even more of a pain than it normally is.

The issue with libxml is likely due to an API change they made awhile ago. I have compiler macros that are supposed to switch between the different APIs (there were not many changes) but it could be I missed something (like that form of get_children?)

@bwspenc
Copy link
Collaborator Author

bwspenc commented Mar 1, 2019

OK, good to know. If we get it working, we'll definitely submit a pull request to NEML. We will have NEML be a submodule to BlackBear, so that we would always be pointing to the main repository, and periodically update the version of NEML after we verify that the new versions still pass our tests.

@bwspenc
Copy link
Collaborator Author

bwspenc commented Mar 29, 2019

@dschwen At long last, I finally have this passing! We got rid of the libxml++ dependency. If you could please take another look at this, that would be great.

@bwspenc
Copy link
Collaborator Author

bwspenc commented Mar 29, 2019

FYI @reverendbedford I think this is ready to go.

Copy link
Member

@dschwen dschwen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Besides my submodule comment this looks good to me!

@@ -0,0 +1,4 @@
[submodule "contrib/neml"]
path = contrib/neml
url = ../../Argonne-National-Laboratory/neml.git
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be a remote URL? This looks like you added a local repo as a submodule.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doing it this way gets it through either ssh or https, using whatever protocol you used to clone the repository. I think this is how we grab the libmesh submodule in moose.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works because they’re both hosted on GitHub.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, cool. I guess I learned something new: Submodule urls can be relative to the superproject’s default remote repository (the remote of the remote-tracking branch of the current branch!)

https://git-scm.com/docs/git-submodule

@dschwen dschwen merged commit 2b9debc into idaholab:devel Mar 30, 2019
@bwspenc bwspenc deleted the neml branch March 30, 2019 03:48
@bwspenc bwspenc mentioned this pull request Mar 30, 2019
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.

4 participants