reverendbedford / neml2

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

Solver enhancements #126

Closed hugary1995 closed 7 months ago

hugary1995 commented 7 months ago

Adapt to new main:

github-actions[bot] commented 7 months ago

Test Results (ubuntu-latest-Release-ON)

    3 files  ± 0      3 suites  ±0   21s :stopwatch: -1s   463 tests + 7    463 :white_check_mark: + 7  0 :zzz: ±0  0 :x: ±0  3 039 runs  +14  3 039 :white_check_mark: +14  0 :zzz: ±0  0 :x: ±0 

Results for commit d43ea422. ± Comparison against base commit d67ae1c5.

This pull request removes 2 and adds 9 tests. Note that renamed tests count towards both. ``` unit_tests.global ‑ NewtonNonlinearSolver/automatic scaling unit_tests.global ‑ NewtonNonlinearSolver/solve ``` ``` unit_tests.global ‑ NonlinearSolvers - solver_types - 0/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 1/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 2/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/power ```

: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   57s :stopwatch: -4s   463 tests + 7    463 :white_check_mark: + 7  0 :zzz: ±0  0 :x: ±0  3 041 runs  +14  3 041 :white_check_mark: +14  0 :zzz: ±0  0 :x: ±0 

Results for commit d43ea422. ± Comparison against base commit d67ae1c5.

This pull request removes 2 and adds 9 tests. Note that renamed tests count towards both. ``` unit_tests.global ‑ NewtonNonlinearSolver/automatic scaling unit_tests.global ‑ NewtonNonlinearSolver/solve ``` ``` unit_tests.global ‑ NonlinearSolvers - solver_types - 0/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 1/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 2/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/power ```

: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   35s :stopwatch: +6s   463 tests + 7    463 :white_check_mark: + 7  0 :zzz: ±0  0 :x: ±0  3 039 runs  +14  3 039 :white_check_mark: +14  0 :zzz: ±0  0 :x: ±0 

Results for commit d43ea422. ± Comparison against base commit d67ae1c5.

This pull request removes 2 and adds 9 tests. Note that renamed tests count towards both. ``` unit_tests.global ‑ NewtonNonlinearSolver/automatic scaling unit_tests.global ‑ NewtonNonlinearSolver/solve ``` ``` unit_tests.global ‑ NonlinearSolvers - solver_types - 0/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 1/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 2/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/power ```

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

github-actions[bot] commented 7 months ago

Test Results (macos-latest-Debug-ON)

    3 files  ± 0      3 suites  ±0   1m 18s :stopwatch: +20s   463 tests + 7    463 :white_check_mark: + 7  0 :zzz: ±0  0 :x: ±0  3 041 runs  +14  3 041 :white_check_mark: +14  0 :zzz: ±0  0 :x: ±0 

Results for commit d43ea422. ± Comparison against base commit d67ae1c5.

This pull request removes 2 and adds 9 tests. Note that renamed tests count towards both. ``` unit_tests.global ‑ NewtonNonlinearSolver/automatic scaling unit_tests.global ‑ NewtonNonlinearSolver/solve ``` ``` unit_tests.global ‑ NonlinearSolvers - solver_types - 0/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 1/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 2/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/power ```

: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   56s :stopwatch: -50s   463 tests + 7    463 :white_check_mark: + 7  0 :zzz: ±0  0 :x: ±0  3 041 runs  +14  3 041 :white_check_mark: +14  0 :zzz: ±0  0 :x: ±0 

Results for commit d43ea422. ± Comparison against base commit d67ae1c5.

This pull request removes 2 and adds 9 tests. Note that renamed tests count towards both. ``` unit_tests.global ‑ NewtonNonlinearSolver/automatic scaling unit_tests.global ‑ NewtonNonlinearSolver/solve ``` ``` unit_tests.global ‑ NonlinearSolvers - solver_types - 0/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 1/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 2/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/power ```

: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   21s :stopwatch: ±0s   463 tests + 7    463 :white_check_mark: + 7  0 :zzz: ±0  0 :x: ±0  3 039 runs  +14  3 039 :white_check_mark: +14  0 :zzz: ±0  0 :x: ±0 

Results for commit d43ea422. ± Comparison against base commit d67ae1c5.

This pull request removes 2 and adds 9 tests. Note that renamed tests count towards both. ``` unit_tests.global ‑ NewtonNonlinearSolver/automatic scaling unit_tests.global ‑ NewtonNonlinearSolver/solve ``` ``` unit_tests.global ‑ NonlinearSolvers - solver_types - 0/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 1/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 2/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/power ```

: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   59s :stopwatch: -1s   463 tests + 7    463 :white_check_mark: + 7  0 :zzz: ±0  0 :x: ±0  3 041 runs  +14  3 041 :white_check_mark: +14  0 :zzz: ±0  0 :x: ±0 

Results for commit d43ea422. ± Comparison against base commit d67ae1c5.

This pull request removes 2 and adds 9 tests. Note that renamed tests count towards both. ``` unit_tests.global ‑ NewtonNonlinearSolver/automatic scaling unit_tests.global ‑ NewtonNonlinearSolver/solve ``` ``` unit_tests.global ‑ NonlinearSolvers - solver_types - 0/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 1/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 2/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/power ```

: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   37s :stopwatch: +5s   463 tests + 7    463 :white_check_mark: + 7  0 :zzz: ±0  0 :x: ±0  3 039 runs  +14  3 039 :white_check_mark: +14  0 :zzz: ±0  0 :x: ±0 

Results for commit d43ea422. ± Comparison against base commit d67ae1c5.

This pull request removes 2 and adds 9 tests. Note that renamed tests count towards both. ``` unit_tests.global ‑ NewtonNonlinearSolver/automatic scaling unit_tests.global ‑ NewtonNonlinearSolver/solve ``` ``` unit_tests.global ‑ NonlinearSolvers - solver_types - 0/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 0/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 1/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 1/solve/power unit_tests.global ‑ NonlinearSolvers - solver_types - 2/automatic scaling unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/Rosenbrock unit_tests.global ‑ NonlinearSolvers - solver_types - 2/solve/power ```

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

reverendbedford commented 7 months ago

Coverage after merging nonlinear-solvers-new into main

89.00%

Coverage Report
FileBranchesFuncsLinesUncovered Lines
include/neml2/base
   CrossRef.h100%80.95%100%
   DependencyResolver.h100%93.75%90.20%172, 174–175, 231–232, 262, 264–265, 267–268
   Factory.h100%14.29%100%
   NEML2Object.h100%33.33%57.14%50, 63, 66
   OptionCollection.h100%0%0%40, 49
   OptionSet.h100%39.87%74.36%124, 127, 130, 142, 61, 66, 79, 81, 85, 89
   Registry.h100%91.55%100%
   Storage.h100%39.13%77.78%147–148, 150, 177
include/neml2/drivers
   Driver.h100%0%0%56
   TransientDriver.h100%100%75%149
include/neml2/misc
   error.h100%36.62%82.35%35–36, 38
   math.h100%100%100%
   parser_utils.h100%56.72%88%37–38, 40
   utils.h100%53.80%77.78%173, 239, 241–246, 267, 302, 304–307
include/neml2/models
   BufferStore.h100%24.14%58.33%113, 115, 117–121, 133, 147, 151
   ComposedModel.h100%100%100%
   Data.h100%100%100%
   Interpolation.h100%57.69%91.67%75
   LinearInterpolation.h100%12%100%
   Model.h100%75%89.47%105, 64
   NonlinearParameter.h100%7.69%100%
   ParameterStore.h100%7.41%52.63%132, 134, 136–140, 148, 152
   VariableStore.h100%77.44%89.47%236, 238–239, 260, 91, 97
include/neml2/models/crystallography
   CrystalGeometry.h100%0%0%89, 91
   MillerIndex.h100%100%100%
   crystallography.h100%100%100%
include/neml2/solvers
   Newton.h100%100%100%
   NonlinearSystem.h100%66.67%66.67%62
include/neml2/tensors
   BatchTensorBase.h100%50.39%90.91%253, 255, 289, 291, 61
   FixedDimTensor.h100%30.77%100%
   LabeledAxis.h100%0%0%110, 113, 116, 142, 67, 72, 74–75, 77
   LabeledAxisAccessor.h100%95.24%92.86%77
   LabeledTensor.h100%44.78%77.78%105, 109, 124, 173, 175–176
   Scalar.h100%46%70%82, 84–88
   TensorValue.h100%11.63%44.44%39, 63, 65, 67, 71
   Transformable.h100%0%0%44
   Variable.h100%45.77%81.25%43–47, 49, 51, 89, 95
   VecBase.h100%75%100%
src/neml2/base
   CrossRef.cxx100%56.25%96.30%98
   Factory.cxx100%100%100%
   HITParser.cxx100%100%100%
   NEML2Object.cxx100%100%88.89%34
   OptionCollection.cxx100%100%100%
   OptionSet.cxx100%81.82%84.38%118, 120, 130, 132, 35
   Registry.cxx100%100%100%
src/neml2/drivers
   Driver.cxx100%100%87.50%35
   TransientDriver.cxx100%100%83.87%190–191, 196–198, 201–202, 206–210, 212–217, 220, 225–229, 56
src/neml2/drivers/solid_mechanics
   LargeDeformationIncrementalSolidMechanicsDriver.cxx100%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.cxx100%100%97.37%41
src/neml2/misc
   error.cxx100%100%100%
   math.cxx100%100%99.29%252
   parser_utils.cxx100%100%98.18%73
   types.cxx100%100%100%
   utils.cxx100%100%86.67%44, 52
src/neml2/models
   BackwardEulerTimeIntegration.cxx100%100%97.22%40
   BufferStore.cxx100%33.33%33.33%36, 38, 40, 44, 46, 48–50
   ComposedModel.cxx100%100%97.65%38, 51
   Data.cxx100%100%100%
   ForceRate.cxx100%100%97.56%41
   ForwardEulerTimeIntegration.cxx100%100%97.06%41
   ImplicitUpdate.cxx100%100%98.04%39
   LinearInterpolation.cxx100%43.59%100%
   Model.cxx100%96.88%93.55%101–104, 137–139, 236, 238–241, 247, 41
   NonlinearParameter.cxx100%57.69%100%
   ParameterStore.cxx100%29.41%66.67%101, 47, 49, 51–53, 66, 93, 95–96
   RotationMatrix.cxx100%100%94.12%38
   SR2Invariant.cxx100%100%96%104, 40
   StateRate.cxx100%66.67%97.56%41
   SumModel.cxx100%100%95.45%41
   VariableStore.cxx100%91.67%94.67%165–166, 63, 65
   WR2ExplicitExponentialTimeIntegration.cxx100%100%96.77%39
   WR2ImplicitExponentialTimeIntegration.cxx100%100%96.97%43
src/neml2/models/crystallography
   CrystalGeometry.cxx100%100%98.13%187, 50
   CubicCrystal.cxx100%100%90.91%48
   MillerIndex.cxx100%100%100%
   crystallography.cxx100%100%98.08%142
src/neml2/models/crystallography/user_tensors
   FillMillerIndex.cxx100%100%91.67%40
   SymmetryFromOrbifold.cxx100%100%88.89%41
src/neml2/models/solid_mechanics
   AssociativeIsotropicPlasticHardening.cxx100%100%96%40
   AssociativeKinematicPlasticHardening.cxx100%100%96.15%41
   AssociativePlasticFlow.cxx100%100%95.65%39
   ChabochePlasticHardening.cxx100%100%97.14%43
   ElasticStrain.cxx100%100%96.15%41
   Elasticity.cxx100%100%93.75%38
   FlowRule.cxx100%100%87.50%35
   GTNYieldFunction.cxx100%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–328, 330–331, 343, 45, 84–85, 88, 91, 94
   GursonCavitation.cxx100%100%96.15%40
   IsotropicHardening.cxx100%100%90%36
   IsotropicMandelStress.cxx100%100%100%
   KinematicHardening.cxx100%100%90%36
   LinearIsotropicElasticity.cxx100%100%95.65%39
   LinearIsotropicHardening.cxx100%100%92.86%37
   LinearKinematicHardening.cxx100%100%92.86%38
   MandelStress.cxx100%100%90%36
   Normality.cxx100%100%96.88%40
   OverStress.cxx100%100%95.24%40
   PerzynaPlasticFlowRate.cxx100%100%92%38, 67
   PlasticFlowRate.cxx100%100%90%36
   RateIndependentPlasticFlowConstraint.cxx100%100%97.22%39
   TotalStrain.cxx100%100%96.15%41
   VoceIsotropicHardening.cxx100%100%94.44%38
   YieldFunction.cxx100%100%96.67%40
src/neml2/models/solid_mechanics/crystal_plasticity
   ElasticStrainRate.cxx100%100%96.55%47
   LinearSingleSlipHardeningRule.cxx100%100%93.33%37
   OrientationRate.cxx100%100%96.67%46
   PlasticDeformationRate.cxx100%100%96.30%50
   PlasticVorticity.cxx100%100%96.30%45
   PowerLawSlipRule.cxx100%100%95.65%41
   ResolvedShear.cxx100%100%96.43%45
   SingleSlipHardeningRule.cxx100%100%92.31%41
   SingleSlipStrengthMap.cxx100%100%94.12%40
   SlipRule.cxx100%100%93.75%47
   SlipStrengthMap.cxx100%100%90.91%42
   SumSlipRates.cxx100%100%95.24%47
   VoceSingleSlipHardeningRule.cxx100%100%94.44%38
src/neml2/solvers
   Newton.cxx100%100%92.68%58–60
   NewtonWithLineSearch.cxx100%100%97.50%41
   NewtonWithTrustRegion.cxx100%100%97.59%49, 80
   NonlinearSolver.cxx100%100%91.67%37
   NonlinearSystem.cxx100%92.86%93.88%138, 140–142, 38, 55
   Solver.cxx100%100%87.50%35
   TrustRegionSubProblem.cxx100%100%100%
src/neml2/tensors
   BatchTensor.cxx100%100%100%
   BatchTensorBase.cxx100%24.53%91.72%262, 264, 276, 278, 366, 368, 406, 437, 439, 63, 65, 67
   FixedDimTensor.cxx100%50%100%
   LabeledAxis.cxx100%92.86%81.78%104, 107, 109, 129, 151, 188, 205, 209–210, 212, 235, 245, 326, 328–332, 340, 354–355, 395, 400, 402, 414–415, 438, 442–446, 449–450, 453, 455–457, 461–462, 464–465, 92
   LabeledAxisAccessor.cxx100%88.24%92.98%103, 105, 58, 60
   LabeledMatrix.cxx100%60%56.52%42, 44–48, 75, 77, 80–81
   LabeledTensor.cxx100%53.09%76.54%102, 104, 124, 126, 138, 140–141, 200, 202, 228, 230, 59–61, 63, 67, 69–71
   LabeledTensor3D.cxx100%66.67%70.83%33, 35–40
   LabeledVector.cxx100%75%68.42%37, 39–42, 58
   Quaternion.cxx100%100%100%
   R2.cxx100%100%100%
   R2Base.cxx100%100%100%
   R3.cxx100%100%100%
   R4.cxx100%87.50%90.32%42–43, 45
   Rot.cxx100%88.89%90.91%36–37, 39
   SR2.cxx100%100%100%
   SSR4.cxx100%81.25%89.47%124, 126, 130, 132, 136, 138
   SWR4.cxx100%100%100%
   Scalar.cxx100%100%100%
   Transformable.cxx100%83.33%83.33%57, 59
   Variable.cxx100%100%100%
   Vec.cxx100%100%100%
   VecBase.cxx100%56.67%96.55%103
   WR2.cxx100%100%100%
   WSR4.cxx100%100%100%
   WWR4.cxx100%100%100%
src/neml2/tensors/user_tensors
   EmptyBatchTensor.cxx100%100%90%38
   EmptyFixedDimTensor.cxx100%92.31%88.89%38
   Fill3DVec.cxx100%100%91.67%37
   FillR2.cxx100%100%85.71%37, 65, 67, 70
   FillRot.cxx100%100%76.92%37, 51, 53
   FillSR2.cxx100%100%77.78%37, 55–56, 58
   FillWR2.cxx100%100%76.92%37, 51, 53
   FullBatchTensor.cxx100%100%91.67%39
   FullFixedDimTensor.cxx100%92.31%90.91%39
   IdentityBatchTensor.cxx100%100%90.91%38
   LinspaceBatchTensor.cxx100%100%95.24%43
   LinspaceFixedDimTensor.cxx100%92.31%94.12%42
   LogspaceBatchTensor.cxx100%100%94.74%43
   LogspaceFixedDimTensor.cxx100%92.31%94.74%43
   OnesBatchTensor.cxx100%100%90%38
   OnesFixedDimTensor.cxx100%92.31%88.89%38
   Orientation.cxx100%85.71%76.83%153, 155–159, 161–164, 166, 168–169, 175, 48, 69, 71–72, 75
   UserBatchTensor.cxx100%100%95.24%39
   UserFixedDimTensor.cxx100%92.31%75%39, 53, 55, 57, 59
   ZerosBatchTensor.cxx100%100%90%38
   ZerosFixedDimTensor.cxx100%92.31%88.89%38
reverendbedford commented 7 months ago

Coverage after merging nonlinear-solvers-new into main

89.01%

Coverage Report
FileBranchesFuncsLinesUncovered Lines
include/neml2/base
   CrossRef.h100%80.95%100%
   DependencyResolver.h100%93.75%90.20%172, 174–175, 231–232, 262, 264–265, 267–268
   Factory.h100%14.29%100%
   NEML2Object.h100%33.33%57.14%50, 63, 66
   OptionCollection.h100%0%0%40, 49
   OptionSet.h100%39.87%74.36%124, 127, 130, 142, 61, 66, 79, 81, 85, 89
   Registry.h100%91.55%100%
   Storage.h100%39.13%77.78%147–148, 150, 177
include/neml2/drivers
   Driver.h100%0%0%56
   TransientDriver.h100%100%75%149
include/neml2/misc
   error.h100%36.67%82.35%35–36, 38
   math.h100%100%100%
   parser_utils.h100%56.72%88%37–38, 40
   utils.h100%53.80%77.78%173, 239, 241–246, 267, 302, 304–307
include/neml2/models
   BufferStore.h100%24.14%58.33%113, 115, 117–121, 133, 147, 151
   ComposedModel.h100%100%100%
   Data.h100%100%100%
   Interpolation.h100%57.69%91.67%75
   LinearInterpolation.h100%12%100%
   Model.h100%75%89.47%105, 64
   NonlinearParameter.h100%7.69%100%
   ParameterStore.h100%7.41%52.63%132, 134, 136–140, 148, 152
   VariableStore.h100%77.44%89.47%236, 238–239, 260, 91, 97
include/neml2/models/crystallography
   CrystalGeometry.h100%0%0%89, 91
   MillerIndex.h100%100%100%
   crystallography.h100%100%100%
include/neml2/solvers
   Newton.h100%100%100%
   NonlinearSystem.h100%66.67%66.67%62
include/neml2/tensors
   BatchTensorBase.h100%50.39%90.91%253, 255, 289, 291, 61
   FixedDimTensor.h100%30.77%100%
   LabeledAxis.h100%0%0%110, 113, 116, 142, 67, 72, 74–75, 77
   LabeledAxisAccessor.h100%95.24%92.86%77
   LabeledTensor.h100%44.78%77.78%105, 109, 124, 173, 175–176
   Scalar.h100%46%70%82, 84–88
   TensorValue.h100%11.63%44.44%39, 63, 65, 67, 71
   Transformable.h100%0%0%44
   Variable.h100%45.77%81.25%43–47, 49, 51, 89, 95
   VecBase.h100%75%100%
src/neml2/base
   CrossRef.cxx100%56.25%96.30%98
   Factory.cxx100%100%100%
   HITParser.cxx100%100%100%
   NEML2Object.cxx100%100%88.89%34
   OptionCollection.cxx100%100%100%
   OptionSet.cxx100%81.82%84.38%118, 120, 130, 132, 35
   Registry.cxx100%100%100%
src/neml2/drivers
   Driver.cxx100%100%87.50%35
   TransientDriver.cxx100%100%83.87%190–191, 196–198, 201–202, 206–210, 212–217, 220, 225–229, 56
src/neml2/drivers/solid_mechanics
   LargeDeformationIncrementalSolidMechanicsDriver.cxx100%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.cxx100%100%97.37%41
src/neml2/misc
   error.cxx100%100%100%
   math.cxx100%100%99.33%252
   parser_utils.cxx100%100%98.18%73
   types.cxx100%100%100%
   utils.cxx100%100%86.67%44, 52
src/neml2/models
   BackwardEulerTimeIntegration.cxx100%100%97.22%40
   BufferStore.cxx100%33.33%33.33%36, 38, 40, 44, 46, 48–50
   ComposedModel.cxx100%100%97.65%38, 51
   Data.cxx100%100%100%
   ForceRate.cxx100%100%97.56%41
   ForwardEulerTimeIntegration.cxx100%100%97.06%41
   ImplicitUpdate.cxx100%100%98.04%39
   LinearInterpolation.cxx100%43.59%100%
   Model.cxx100%96.88%93.55%101–104, 137–139, 236, 238–241, 247, 41
   NonlinearParameter.cxx100%57.69%100%
   ParameterStore.cxx100%29.41%66.67%101, 47, 49, 51–53, 66, 93, 95–96
   RotationMatrix.cxx100%100%94.12%38
   SR2Invariant.cxx100%100%96%104, 40
   StateRate.cxx100%66.67%97.56%41
   SumModel.cxx100%100%95.45%41
   VariableStore.cxx100%91.67%94.67%165–166, 63, 65
   WR2ExplicitExponentialTimeIntegration.cxx100%100%96.77%39
   WR2ImplicitExponentialTimeIntegration.cxx100%100%96.97%43
src/neml2/models/crystallography
   CrystalGeometry.cxx100%100%98.13%187, 50
   CubicCrystal.cxx100%100%90.91%48
   MillerIndex.cxx100%100%100%
   crystallography.cxx100%100%98.08%142
src/neml2/models/crystallography/user_tensors
   FillMillerIndex.cxx100%100%91.67%40
   SymmetryFromOrbifold.cxx100%100%88.89%41
src/neml2/models/solid_mechanics
   AssociativeIsotropicPlasticHardening.cxx100%100%96%40
   AssociativeKinematicPlasticHardening.cxx100%100%96.15%41
   AssociativePlasticFlow.cxx100%100%95.65%39
   ChabochePlasticHardening.cxx100%100%97.14%43
   ElasticStrain.cxx100%100%96.15%41
   Elasticity.cxx100%100%93.75%38
   FlowRule.cxx100%100%87.50%35
   GTNYieldFunction.cxx100%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–328, 330–331, 343, 45, 84–85, 88, 91, 94
   GursonCavitation.cxx100%100%96.15%40
   IsotropicHardening.cxx100%100%90%36
   IsotropicMandelStress.cxx100%100%100%
   KinematicHardening.cxx100%100%90%36
   LinearIsotropicElasticity.cxx100%100%95.65%39
   LinearIsotropicHardening.cxx100%100%92.86%37
   LinearKinematicHardening.cxx100%100%92.86%38
   MandelStress.cxx100%100%90%36
   Normality.cxx100%100%96.88%40
   OverStress.cxx100%100%95.24%40
   PerzynaPlasticFlowRate.cxx100%100%92%38, 67
   PlasticFlowRate.cxx100%100%90%36
   RateIndependentPlasticFlowConstraint.cxx100%100%97.22%39
   TotalStrain.cxx100%100%96.15%41
   VoceIsotropicHardening.cxx100%100%94.44%38
   YieldFunction.cxx100%100%96.67%40
src/neml2/models/solid_mechanics/crystal_plasticity
   ElasticStrainRate.cxx100%100%96.55%47
   LinearSingleSlipHardeningRule.cxx100%100%93.33%37
   OrientationRate.cxx100%100%96.67%46
   PlasticDeformationRate.cxx100%100%96.30%50
   PlasticVorticity.cxx100%100%96.30%45
   PowerLawSlipRule.cxx100%100%95.65%41
   ResolvedShear.cxx100%100%96.43%45
   SingleSlipHardeningRule.cxx100%100%92.31%41
   SingleSlipStrengthMap.cxx100%100%94.12%40
   SlipRule.cxx100%100%93.75%47
   SlipStrengthMap.cxx100%100%90.91%42
   SumSlipRates.cxx100%100%95.24%47
   VoceSingleSlipHardeningRule.cxx100%100%94.44%38
src/neml2/solvers
   Newton.cxx100%100%92.50%58–60
   NewtonWithLineSearch.cxx100%100%97.50%41
   NewtonWithTrustRegion.cxx100%100%97.59%49, 80
   NonlinearSolver.cxx100%100%91.67%37
   NonlinearSystem.cxx100%92.86%93.68%138, 140–142, 38, 55
   Solver.cxx100%100%87.50%35
   TrustRegionSubProblem.cxx100%100%100%
src/neml2/tensors
   BatchTensor.cxx100%100%100%
   BatchTensorBase.cxx100%24.53%91.72%262, 264, 276, 278, 366, 368, 406, 437, 439, 63, 65, 67
   FixedDimTensor.cxx100%50%100%
   LabeledAxis.cxx100%92.86%81.78%104, 107, 109, 129, 151, 188, 205, 209–210, 212, 235, 245, 326, 328–332, 340, 354–355, 395, 400, 402, 414–415, 438, 442–446, 449–450, 453, 455–457, 461–462, 464–465, 92
   LabeledAxisAccessor.cxx100%88.24%92.98%103, 105, 58, 60
   LabeledMatrix.cxx100%60%56.52%42, 44–48, 75, 77, 80–81
   LabeledTensor.cxx100%53.09%76.54%102, 104, 124, 126, 138, 140–141, 200, 202, 228, 230, 59–61, 63, 67, 69–71
   LabeledTensor3D.cxx100%66.67%70.83%33, 35–40
   LabeledVector.cxx100%75%68.42%37, 39–42, 58
   Quaternion.cxx100%100%100%
   R2.cxx100%100%100%
   R2Base.cxx100%100%100%
   R3.cxx100%100%100%
   R4.cxx100%87.50%90.32%42–43, 45
   Rot.cxx100%88.89%90.91%36–37, 39
   SR2.cxx100%100%100%
   SSR4.cxx100%81.25%89.47%124, 126, 130, 132, 136, 138
   SWR4.cxx100%100%100%
   Scalar.cxx100%100%100%
   Transformable.cxx100%83.33%83.33%57, 59
   Variable.cxx100%100%100%
   Vec.cxx100%100%100%
   VecBase.cxx100%56.67%96.55%103
   WR2.cxx100%100%100%
   WSR4.cxx100%100%100%
   WWR4.cxx100%100%100%
src/neml2/tensors/user_tensors
   EmptyBatchTensor.cxx100%100%90%38
   EmptyFixedDimTensor.cxx100%92.31%88.89%38
   Fill3DVec.cxx100%100%91.67%37
   FillR2.cxx100%100%85.71%37, 65, 67, 70
   FillRot.cxx100%100%76.92%37, 51, 53
   FillSR2.cxx100%100%77.78%37, 55–56, 58
   FillWR2.cxx100%100%76.92%37, 51, 53
   FullBatchTensor.cxx100%100%91.67%39
   FullFixedDimTensor.cxx100%92.31%90.91%39
   IdentityBatchTensor.cxx100%100%90.91%38
   LinspaceBatchTensor.cxx100%100%95.24%43
   LinspaceFixedDimTensor.cxx100%92.31%94.12%42
   LogspaceBatchTensor.cxx100%100%94.74%43
   LogspaceFixedDimTensor.cxx100%92.31%94.74%43
   OnesBatchTensor.cxx100%100%90%38
   OnesFixedDimTensor.cxx100%92.31%88.89%38
   Orientation.cxx100%85.71%76.83%153, 155–159, 161–164, 166, 168–169, 175, 48, 69, 71–72, 75
   UserBatchTensor.cxx100%100%95.24%39
   UserFixedDimTensor.cxx100%92.31%75%39, 53, 55, 57, 59
   ZerosBatchTensor.cxx100%100%90%38
   ZerosFixedDimTensor.cxx100%92.31%88.89%38