reverendbedford / neml2

GPU enabled material modeling and inference library
Other
10 stars 9 forks source link

Allow multiple nonlinear systems #129

Closed hugary1995 closed 6 months ago

hugary1995 commented 7 months ago
hugary1995 commented 7 months ago

I'll rebase this on main once #110 is merged.

hugary1995 commented 7 months ago

If you want to review this one first, just look at the last commit.

github-actions[bot] commented 7 months ago

Test Results (macos-latest-Debug-ON)

    3 files  ±0      3 suites  ±0   1m 19s :stopwatch: - 1m 3s   470 tests +2    470 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 049 runs  +2  3 049 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 63583511. ± Comparison against base commit f6c8ea99.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 7 months ago

Test Results (ubuntu-latest-Release-ON)

    3 files  ±0      3 suites  ±0   35s :stopwatch: +5s   475 tests +2    475 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 052 runs  +2  3 052 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 24d0858e. ± Comparison against base commit 2e03afd2.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 7 months ago

Test Results (macos-latest-Release-ON)

    3 files  ±0      3 suites  ±0   1m 26s :stopwatch: +53s   470 tests +2    470 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 047 runs  +2  3 047 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 63583511. ± Comparison against base commit f6c8ea99.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 7 months ago

Test Results (ubuntu-latest-Debug-ON)

    3 files  ±0      3 suites  ±0   1m 39s :stopwatch: +16s   475 tests +2    475 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 054 runs  +2  3 054 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 24d0858e. ± Comparison against base commit 2e03afd2.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 7 months ago

Test Results (macos-latest-Debug-OFF)

    3 files  ±0      3 suites  ±0   1m 46s :stopwatch: -10s   470 tests +2    470 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 049 runs  +2  3 049 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 63583511. ± Comparison against base commit f6c8ea99.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 7 months ago

Test Results (macos-latest-Release-OFF)

    3 files  ±0      3 suites  ±0   43s :stopwatch: -1s   470 tests +2    470 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 047 runs  +2  3 047 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 63583511. ± Comparison against base commit f6c8ea99.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 7 months ago

Test Results (ubuntu-latest-Release-OFF)

    3 files  ±0      3 suites  ±0   35s :stopwatch: +6s   475 tests +2    475 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 052 runs  +2  3 052 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 24d0858e. ± Comparison against base commit 2e03afd2.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 7 months ago

Test Results (ubuntu-latest-Debug-OFF)

    3 files  ±0      3 suites  ±0   1m 36s :stopwatch: +13s   475 tests +2    475 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 054 runs  +2  3 054 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 24d0858e. ± Comparison against base commit 2e03afd2.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

reverendbedford commented 7 months ago

Placeholder note for later review: need to check that state variables remain on the output axis.

github-actions[bot] commented 6 months ago

Python Binding Test Results (ubuntu-latest)

63 tests  ±0   39 :white_check_mark: ±0   2s :stopwatch: ±0s  1 suites ±0   24 :zzz: ±0   1 files   ±0    0 :x: ±0 

Results for commit 24d0858e. ± Comparison against base commit 2e03afd2.

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 6 months ago

Python Binding Test Results (macos-latest)

63 tests  ±0   39 :white_check_mark: ±0   20s :stopwatch: +18s  1 suites ±0   24 :zzz: ±0   1 files   ±0    0 :x: ±0 

Results for commit 63583511. ± Comparison against base commit f6c8ea99.

hugary1995 commented 6 months ago

Placeholder note for later review: need to check that state variables remain on the output axis.

I added an entry point for each model to check and write custom "diagnostics" information.

github-actions[bot] commented 6 months ago

Python Binding Test Results (macos-12)

63 tests  ±0   39 :white_check_mark: ±0   2s :stopwatch: -17s  1 suites ±0   24 :zzz: ±0   1 files   ±0    0 :x: ±0 

Results for commit 24d0858e. ± Comparison against base commit 2e03afd2.

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 6 months ago

Test Results (macos-12-Debug-ON)

    3 files  ±0      3 suites  ±0   1m 27s :stopwatch: -51s   475 tests +2    475 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 054 runs  +2  3 054 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 24d0858e. ± Comparison against base commit 2e03afd2.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 6 months ago

Test Results (macos-12-Release-ON)

    3 files  ±0      3 suites  ±0   1m 27s :stopwatch: +15s   475 tests +2    475 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 052 runs  +2  3 052 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 24d0858e. ± Comparison against base commit 2e03afd2.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 6 months ago

Test Results (macos-12-Debug-OFF)

    3 files  ±0      3 suites  ±0   2m 48s :stopwatch: +18s   475 tests +2    475 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 054 runs  +2  3 054 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 24d0858e. ± Comparison against base commit 2e03afd2.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 6 months ago

Test Results (macos-12-Release-OFF)

    3 files  ±0      3 suites  ±0   1m 21s :stopwatch: +43s   475 tests +2    475 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0  3 052 runs  +2  3 052 :white_check_mark: +2  0 :zzz: ±0  0 :x: ±0 

Results for commit 24d0858e. ± Comparison against base commit 2e03afd2.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both. ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/basic_single_crystal/model.i ``` ``` regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_coupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled/model.i regression_tests.global ‑ solid mechanics/crystal_plasticity/single_crystal_decoupled_explicit_orientation/model.i ```

:recycle: This comment has been updated with latest results.

reverendbedford commented 6 months ago

Coverage after merging sub_implicit_system into main will be

87.22%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
include/neml2/base
   CrossRef.h80.43%100%77.78%100%
   DependencyResolver.h86.13%100%88.24%85.83%178, 180–181, 185, 188–190, 223, 250, 262, 272–273, 303, 305–306, 308–309
   Factory.h39%100%24.69%100%
   NEML2Object.h50%100%22.22%72.73%50, 63, 66
   OptionCollection.h0%100%0%0%40, 49
   OptionSet.h39.75%100%36.07%74.36%124, 127, 130, 142, 61, 66, 79, 81, 85, 89
   Registry.h81.47%100%81.24%100%
   Storage.h56.10%100%39.13%77.78%147–148, 150, 177
include/neml2/drivers
   Driver.h0%100%0%0%56
   TransientDriver.h85.71%100%100%75%149
include/neml2/misc
   error.h32.53%100%30.57%63.64%37–38, 40, 94, 96–99
   math.h100%100%100%100%
   parser_utils.h56.07%100%46.34%88%37–38, 40
   utils.h56.40%100%47.30%77.78%173, 239, 241–246, 267, 302, 304–307
include/neml2/models
   BufferStore.h34.43%100%18.92%58.33%113, 115, 117–121, 133, 147, 151
   ComposedModel.h100%100%100%100%
   Data.h100%100%100%100%
   Interpolation.h64.58%100%55.56%91.67%75
   LinearInterpolation.h20%100%8.57%100%
   Model.h85.19%100%75%89.47%116, 75
   NonlinearParameter.h10.53%100%5.56%100%
   ParameterStore.h21.43%100%5.41%52.63%132, 134, 136–140, 148, 152
   VariableStore.h61.07%100%52.41%89.47%236, 238–239, 260, 91, 97
include/neml2/models/crystallography
   CrystalGeometry.h0%100%0%0%90, 92
   MillerIndex.h100%100%100%100%
   crystallography.h100%100%100%100%
include/neml2/solvers
   Newton.h100%100%100%100%
   NonlinearSystem.h66.67%100%66.67%66.67%62
include/neml2/tensors
   BatchTensorBase.h58.59%100%43.88%93.22%212, 214, 256, 258
   FixedDimTensor.h26.44%100%19.32%65.63%152, 156, 168, 171, 176, 178, 183, 188, 66, 89, 91
   LabeledAxis.h0%100%0%0%142, 67, 72, 74–75, 77
   LabeledAxisAccessor.h78.38%100%73.91%85.71%46, 77
   LabeledTensor.h56.04%100%46.88%77.78%108, 112, 127, 176, 178–179
   Scalar.h44%100%34.55%70%82, 84–88
   TensorValue.h14%100%10.87%50%39, 63, 65, 75
   Transformable.h0%100%0%0%44
   Variable.h39.58%100%30.47%82%101, 107, 43–47, 49, 51
   VecBase.h80.95%100%50%100%
src/neml2/base
   CrossRef.cxx83.87%100%75%100%
   Factory.cxx100%100%100%100%
   HITParser.cxx100%100%100%100%
   NEML2Object.cxx90.91%100%100%88.89%34
   OptionCollection.cxx100%100%100%100%
   OptionSet.cxx83.72%100%81.82%84.38%118, 120, 130, 132, 35
   Registry.cxx100%100%100%100%
src/neml2/drivers
   Driver.cxx90%100%100%87.50%35
   TransientDriver.cxx85.06%100%100%83.54%196–197, 202–204, 207–208, 212–216, 218–223, 226, 231–235, 56, 99
src/neml2/drivers/solid_mechanics
   LargeDeformationIncrementalSolidMechanicsDriver.cxx20.69%100%25%20.37%100, 102, 104, 108, 110–111, 113–114, 116–117, 120, 122–126, 46, 48–49, 51–52, 54, 56–57, 59, 61–62, 69–70, 72, 74–75, 77–78, 81, 83–85, 87–88, 92, 94, 96
   SolidMechanicsDriver.cxx80%100%100%78.69%104, 106–107, 110, 112, 114, 117, 119, 133–135, 43, 73
src/neml2/misc
   error.cxx100%100%100%100%
   math.cxx99.44%100%100%99.33%252
   parser_utils.cxx98.46%100%100%98.18%73
   types.cxx100%100%100%100%
   utils.cxx89.47%100%100%86.67%44, 52
src/neml2/models
   ArrheniusParameter.cxx96.55%100%100%96.15%40
   BackwardEulerTimeIntegration.cxx93.48%100%77.78%97.30%42
   BufferStore.cxx33.33%100%33.33%33.33%36, 38, 40, 44, 46, 48–50
   ComposedModel.cxx94.50%100%100%94.06%100, 102, 146, 39, 52, 58
   CopyVariable.cxx32.86%100%33.33%31.25%40, 43, 45–46, 48, 52, 54–55, 57–58, 64
   Data.cxx100%100%100%100%
   ForceRate.cxx97.87%100%100%97.56%41
   ForwardEulerTimeIntegration.cxx97.50%100%100%97.06%41
   ImplicitUpdate.cxx98.25%100%100%98.11%39
   LinearInterpolation.cxx61.45%100%40.74%100%
   Model.cxx91.07%100%94.44%90.59%131–134, 167–169, 276, 278–281, 287, 41, 412, 414–416, 418–419, 69–70, 78, 86
   NonlinearParameter.cxx61.90%100%55.56%100%
   ParameterStore.cxx48.08%100%22.73%66.67%101, 47, 49, 51–53, 66, 93, 95–96
   RotationMatrix.cxx95%100%100%94.12%38
   SR2Invariant.cxx96.23%100%100%96%104, 40
   StateRate.cxx93.62%100%66.67%97.56%41
   SumModel.cxx82.93%100%100%80%42, 61–62, 65, 67–69
   VariableStore.cxx94.25%100%91.67%94.67%165–166, 63, 65
   WR2ExplicitExponentialTimeIntegration.cxx97.06%100%100%96.77%39
   WR2ImplicitExponentialTimeIntegration.cxx97.22%100%100%96.97%43
src/neml2/models/crystallography
   CrystalGeometry.cxx98.37%100%100%98.13%186, 49
   CubicCrystal.cxx92.31%100%100%90.91%48
   MillerIndex.cxx100%100%100%100%
   crystallography.cxx98.28%100%100%98.08%142
src/neml2/models/crystallography/user_tensors
   FillMillerIndex.cxx93.33%100%100%91.67%40
   SymmetryFromOrbifold.cxx90.91%100%100%88.89%41
src/neml2/models/solid_mechanics
   AssociativeIsotropicPlasticHardening.cxx96.43%100%100%96%40
   AssociativeKinematicPlasticHardening.cxx96.55%100%100%96.15%41
   AssociativePlasticFlow.cxx96.15%100%100%95.65%39
   ChabochePlasticHardening.cxx97.37%100%100%97.14%43
   Eigenstrain.cxx90%100%100%87.50%35
   ElasticStrain.cxx96.55%100%100%96.15%41
   Elasticity.cxx94.44%100%100%93.75%38
   FlowRule.cxx90%100%100%87.50%35
   GTNYieldFunction.cxx54.12%100%100%53.29%139, 159–162, 165, 168–171, 188, 191, 194, 197, 224–228, 231, 234–237, 249, 251, 253–258, 260–264, 266–267, 269–273, 285, 287, 289–290, 292–293, 295–296, 308–311, 313, 315–319, 321–325, 327