Giter Site home page Giter Site logo

idaholab / blackbear Goto Github PK

View Code? Open in Web Editor NEW
17.0 19.0 42.0 22.29 MB

BlackBear is a MOOSE-based code for simulating degradation processes in concrete and other structural materials.

License: GNU Lesser General Public License v2.1

Makefile 1.19% C++ 14.35% Python 7.06% Shell 0.18% C 32.93% Assembly 12.36% SWIG 31.93%

blackbear's Introduction

BlackBear

Description

BlackBear is a MOOSE-based application for analysis of degradation processes in structural materials and the capacity of degraded structures.

Resources

BlackBear Source Code Repository

BlackBear Documentation

BlackBear Code Coverage

BlackBear Doxygen

Other Software

Idaho National Laboratory is a cutting edge research facility which is a constantly producing high quality research and software. Feel free to take a look at our other software and scientific offerings at:

Primary Technology Offerings Page

Supported Open Source Software

Raw Experiment Open Source Software

Unsupported Open Source Software

License

Copyright 2017 Battelle Energy Alliance, LLC

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Author Contact Information

Benjamin Spencer [email protected] Idaho National Laboratory P.O. Box 1625, MS 3840 Idaho Falls, ID 83415

blackbear's People

Contributors

acasagran avatar aeslaughter avatar agiorla avatar albiedahal avatar brianmoose avatar bwspenc avatar crswong888 avatar cticenhour avatar dschwen avatar dylanjm avatar gambka avatar giudgiud avatar hoffwm avatar huangh-inl avatar hugary1995 avatar jain651 avatar jwpeterson avatar lindsayad avatar loganharbour avatar lynnmunday avatar maxnezdyur avatar mengnanli91 avatar permcody avatar recuero avatar reverendbedford avatar rwcarlsen avatar sapitts avatar sudiptabiswas avatar vprithiv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blackbear's Issues

Integrate BlackBear with NEML

The Nuclear Engineering Material model Library (NEML) developed at Argonne National Laboratory
(https://github.com/Argonne-National-Laboratory/neml) provides a constitutive modeling framework and a set of models. Integrating this library with BlackBear will significantly expand its applicability for modeling more materials under a wider variety of conditions.

Integrate this into BlackBear, with full documentation and testing.

Integrate NEML input to blackbear

Following up on a conversation with @bwspenc at INL.

The objective is to provide a way to input NEML material definitions in a MOOSE input file, without referencing NEML's XML material definition. I made a branch of NEML that demonstrates how this could be done (https://github.com/Argonne-National-Laboratory/neml/tree/xml_string_parse). There's an example in util/string_interface as to how this works. See util/string_interface/cxxstring.cxx.

The key point is we would need a way of translating a MOOSE input block to an XML representation that NEML can understand. This would all be done in memory (again see cxxstring.cxx). Ideally this would be done generically so that blackbear doesn't need to know about NEML's syntax. So essentially a generic MOOSE input block -> XML translator would work.

Add concrete modeling validation cases

Regression tests and validation cases for concrete degradation. This would include cases to demonstrate the multiphysics modeling capability for concrete.

Use Absolute Path for NEML Submodule?

Bug Description

Right now, the NEML submodule is a relative path in .gitmodules. To the untrained eye, this makes the repo appear to be missing when working with a fork not hosted on public GitHub.

Steps to Reproduce

Use the repo with an origin other than pubic GitHub.

Impact

We have an internally hosted BLACKBEAR repo on our GitHub Enterprise deployment at Kairos Power that mostly parallels INL's. I've already put the NEML submodule path as absolute there, and I'd just like to avoid any potential conflict when pulling in fresh INL code, e.g. a repo maintainer breaking stuff by accidentally switching back to the relative path version of the .gitmodules file.

PS

I'll submit a PR on this, then see what happens.

ASR_dependent_E in ConcreteElasticASRModel is broken

Several of the virtual functions in the SolidMechanics ConstitutiveModel base class had their call signatures changed a while back to remove the qp argument. The ConcreteElasticASRModel class that derives from this did not have those marked override, so it happily compiled, but those functions never got called. This means that if ASR_dependent_E was true, it never actually had an effect.

Tighten code standards

I just modified civet_recipes to do some more stringent checking on BlackBear, including style checks and checking for executables. We may have issues with the current codebase that will hit on this the first time we submit a PR.

Also, I will add templates for issues (bug vs feature request), which will require a BlackBear PR.

Add documentation

Add the boilerplate files for the BlackBear documentation website.

Also, add Markdown documentation for the classes in BlackBear.

Incorrect sign for convection term in heat equation

Bug Description

The sign for the convection term associated with heat transfer in concrete is incorrect.

Steps to Reproduce

Compare the model to the reference paper.

Impact

Would require re-golding of various tests.

Update registration of objects, exec flags

BlackBearApp.C and BlackBearTestApp.C are a little out of date from the current stork as far as object registration. Also, BlackBear is not registering exec flags, which means that it does not work with XFEM because it now uses a custom exec flag.

Update SQA requirements

Some of our tests still have the old-style SQA requirements at the tops of the input files. They look like this:

# @Requirement F3.50

We need to go through the tests, remove those, and add the new-style SQA requirements to the tests files.

Fix diffing tests on mac

A few recently added concrete_expansion_microcracking tests are diffing on mac due to tolerance issues.

Update Blackbear to use C++11 regex

Reason

MOOSE is currently removing its' pcre dependency. Blackbear has some pcrecpp code that will break once pcre is removed.

Design

Replace pcrecpp with C++ std::regex

Impact

Different regex specification (ECMAS) but mostly the same.

Input parameters are not always required in ConcreteExpansionEigenstrainBase

The three parameters compressive_strength, expansion_stress_limit and tensile_strength are required only for the ExpansionType::Anisotropic case.

We need to set them as not required, but add a check in the constructor to verify that they are defined by the user.

The parameters compressive_strength and tensile_strength need to be set as required by ConcreteASREigenstrain.

Add Software Quality Assurance documents

Reason

Software quality assurance practices and documentation assure users that care is taken in the development of a code.

Design

Utilize the templates from MOOSE to create the initial sqa documents in Blackbear as a first step. Evaluate and add BlackBear specific information as a second step, if necessary

Impact

Bring BlackBear into compliance with the SQA practices used in the MOOSE-herd

Scalar damage model for concrete

Implement a simple scalar damage model for concrete. The intent of this is to have this available as a simplified modeling approach, and for this model to serve as a placeholder while more complex models are still being tested and proven.

Migrate all models to TensorMechanics

The mechanical models for akali-silica reaction (both the swelling and elasticity tensor) are implemented in SolidMechanics. Convert the models and tests to TensorMechanics.

NEML submodule maintenance

This issue is for periodic updates to the NEML submodule in BlackBear to get bug fixes or feature updates included in newer versions of that library.

NEML Linking problems

NEML is not being linked into the blackbear library. This can cause problems on some systems with missing symbols. Right now we are only linking NEML into the final executable. Sadly, I don't have a great mechanism for doing this with non-standard Makefiles (ones that don't use app.mk for each dependency). Will look for a workaround.

Update NEML and fix NEML tests

The submodule version of NEML is pretty old and the test material XML files for the benchmark tests are pretty wonky, which breaks the power law creep test. Update NEML and fix the tests.

Enforce use of clang-format

BlackBear already has a .clang-format file and the commit hooks, but we haven't been enforcing the clang-format check in the civet hook, and there are a number of files that are not clang-formatted. This issue is for all the changes need to completely switch over to forcing use of clang-format.

Fix unit tests

BlackBear is set up to build unit tests, but the build is failing because the module dependencies aren't correct in the unit test Makefile. That's preventing the tests from passing on PRs even though there are no unit tests yet.

Fix Black Bear Homepage

Currently the homepage of blackbear displays options in a single-column vertical format. The preferred style is to have each major option be available in 3 columns, side by side. Modifying the index.md page in doc/content/ will fix this error.

Add Rebar Bondslip model

Reason

The concrete degradation model needs to capture the appropriate nonlinear behavior of the rebars. Hence, the constraint between the concrete and rebar needs to be modified to include the bond-sip characteristics.

Design

A new node-element constraint model that would incorporate the bond stress value from the experimental curves.

Impact

New modeling capability.

Fix deprecated tests

We have several tests that fail when run using the --error-deprecated option because they are using deprecated options or otherwise hitting deprecated code. Fix them.

Test clean up

Reason

Give input test file a common look and feel

Design

Update tests to be formatted with hit parser.
Update tests to use TM master action.

Impact

Smaller input files should be easier to parse and use as examples.

fix deprecated warnings in tests

Reason

Several tests have warnings that are usually ignored. These should be fixed.

Design

Fix the test files.

Impact

clean up the log files.

Coupled ConcreteExpansionEigenstrainBase with MazarsDamage

The ConcreteExpansionEigenstrainBase class needs to propose an option to be coupled with the MazarsDamage class. The option should exhibit the following features:

  • Unconfined expansion causes damage.
  • Confined expansion causes additional damage, so that the apparent expansion remains null when the external stress is higher than sigma_u.
  • The apparent loss of tensile/compressive strength is not proportional to the loss of elasticity (it is lower)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.