reverendbedford / neml2

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

Adds mixed stress/strain control to solid_mechanics models #144

Closed reverendbedford closed 5 months ago

reverendbedford commented 5 months ago

This adds an object that can be used to change a strain (or stress) controlled solid mechanics model to run under mixed stress and strain control. It also modifies SolidMechanicsDriver to let people use the new capability and adds a verification test for a Chaboche model to compare to NEML1.

github-actions[bot] commented 5 months ago

Test Results (macos-12-Debug-ON)

    3 files  ±0      3 suites  ±0   1m 40s :stopwatch: +11s   477 tests +3    477 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0  3 054 runs  +3  3 054 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0 

Results for commit 3ba0a001. ± Comparison against base commit 23a604c7.

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

github-actions[bot] commented 5 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 3ba0a001. ± Comparison against base commit 23a604c7.

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

github-actions[bot] commented 5 months ago

Python Binding Test Results (macos-12)

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

Results for commit 3ba0a001. ± Comparison against base commit 23a604c7.

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

github-actions[bot] commented 5 months ago

Test Results (macos-12-Release-ON)

    3 files  ±0      3 suites  ±0   48s :stopwatch: +3s   477 tests +3    477 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0  3 052 runs  +3  3 052 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0 

Results for commit 3ba0a001. ± Comparison against base commit 23a604c7.

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

github-actions[bot] commented 5 months ago

Test Results (ubuntu-latest-Release-ON)

    3 files  ±0      3 suites  ±0   40s :stopwatch: +4s   477 tests +3    477 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0  3 052 runs  +3  3 052 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0 

Results for commit 3ba0a001. ± Comparison against base commit 23a604c7.

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

github-actions[bot] commented 5 months ago

Test Results (ubuntu-latest-Debug-ON)

    3 files  ±0      3 suites  ±0   1m 33s :stopwatch: +15s   477 tests +3    477 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0  3 054 runs  +3  3 054 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0 

Results for commit 3ba0a001. ± Comparison against base commit 23a604c7.

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

github-actions[bot] commented 5 months ago

Test Results (macos-12-Release-OFF)

    3 files  ±0      3 suites  ±0   58s :stopwatch: +14s   477 tests +3    477 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0  3 052 runs  +3  3 052 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0 

Results for commit 3ba0a001. ± Comparison against base commit 23a604c7.

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

github-actions[bot] commented 5 months ago

Test Results (macos-12-Debug-OFF)

    3 files  ±0      3 suites  ±0   1m 45s :stopwatch: -28s   477 tests +3    477 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0  3 054 runs  +3  3 054 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0 

Results for commit 3ba0a001. ± Comparison against base commit 23a604c7.

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

github-actions[bot] commented 5 months ago

Test Results (ubuntu-latest-Release-OFF)

    3 files  ±0      3 suites  ±0   39s :stopwatch: +4s   477 tests +3    477 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0  3 052 runs  +3  3 052 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0 

Results for commit 3ba0a001. ± Comparison against base commit 23a604c7.

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

github-actions[bot] commented 5 months ago

Test Results (ubuntu-latest-Debug-OFF)

    3 files  ±0      3 suites  ±0   1m 30s :stopwatch: +13s   477 tests +3    477 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0  3 054 runs  +3  3 054 :white_check_mark: +3  0 :zzz: ±0  0 :x: ±0 

Results for commit 3ba0a001. ± Comparison against base commit 23a604c7.

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

github-actions[bot] commented 5 months ago

PR Preview Action v1.4.7 :---: Preview removed because the pull request was closed. 2024-06-17 16:09 UTC

reverendbedford commented 5 months ago

Syntax check

hugary1995 commented 5 months ago

Missing syntax

  • 'MixedControlSetup' is missing object description

    • 'MixedControlSetup'.'cauchy_stress' is missing option description
    • 'MixedControlSetup'.'control' is missing option description
    • 'MixedControlSetup'.'fixed_values' is missing option description
    • 'MixedControlSetup'.'mixed_state' is missing option description
    • 'MixedControlSetup'.'strain' is missing option description
    • 'MixedControlSetup'.'threshold' is missing option description
    • 'SolidMechanicsDriver'.'control_name' is missing option description
    • 'SolidMechanicsDriver'.'fixed_values' is missing option description
    • 'SolidMechanicsDriver'.'prescribed_control' is missing option description
    • 'SolidMechanicsDriver'.'prescribed_mixed_conditions' is missing option description
    • 'SolidMechanicsDriver'.'prescribed_temperatures' is missing option description
    • 'SolidMechanicsDriver'.'temperature' is missing option description

Not directly related to this PR, but the syntax comment could be improved... Though I guess it's mostly my fault.

hugary1995 commented 5 months ago

Maybe also add a section in solid_mechanics.md to talk about strain, stress, and mixed controls.

reverendbedford commented 5 months ago

@hugary1995 I think I convinced you to leave the control signal as is. This push makes the rest of your suggestions.

reverendbedford commented 5 months ago

Coverage after merging mixed_control into main will be

87.94%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
include/neml2/base
   CrossRef.h41.94%100%39.02%63.64%102, 104–105, 76
   DependencyResolver.h86.13%100%88.24%85.83%219, 221–222, 226, 229–231, 264, 291, 303, 313–314, 344, 346–347, 349–350
   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.28%100%35.85%68.18%128, 131, 134, 140, 146, 61, 66, 79, 81, 85, 89, 91, 93, 95
   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.11%100%30.17%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.h69.81%100%55.56%100%
   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.69%100%53.40%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%66
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.h71.79%100%64%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.79%100%30.77%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.cxx91.67%100%100%90%35
   OptionCollection.cxx100%100%100%100%
   OptionSet.cxx83.72%100%81.82%84.38%135, 137, 147, 149, 35
   Parser.cxx66.67%100%100%64.29%39–42, 54
   Registry.cxx75%100%66.67%76.92%38, 40–41, 56, 58–59
src/neml2/drivers
   Driver.cxx91.67%100%100%90%39
   TransientDriver.cxx86.60%100%100%85.39%142, 239–240, 245–247, 250–251, 255–259, 261–266, 269, 274–278, 99
src/neml2/drivers/solid_mechanics
   LargeDeformationIncrementalSolidMechanicsDriver.cxx32.39%100%25%32.84%100–102, 104–105, 109, 111, 113, 117, 119, 121, 125, 127–128, 130–131, 133–134, 137, 139–143, 63, 65–66, 68–74, 76, 78–79, 81, 83–84, 91–92, 94–95, 98
   SolidMechanicsDriver.cxx73.33%100%100%72.28%103, 105–106, 116, 147, 149–150, 153, 155, 157, 160, 162, 167–168, 170–172, 174, 176–177, 179, 193–195, 199–201, 76
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.cxx97.14%100%100%96.88%53
   BackwardEulerTimeIntegration.cxx94.12%100%77.78%97.62%56
   BufferStore.cxx33.33%100%33.33%33.33%36, 38, 40, 44, 46, 48–50
   ComposedModel.cxx94.87%100%100%94.50%117, 119, 163, 56, 69, 75
   CopyVariable.cxx35.62%100%33.33%42.11%46, 49, 51–52, 54, 58, 60–61, 63–64, 70
   Data.cxx90%100%100%87.50%35
   ForceRate.cxx98%100%100%97.73%49
   ForwardEulerTimeIntegration.cxx97.67%100%100%97.30%51
   ImplicitUpdate.cxx98.39%100%100%98.28%47
   LinearInterpolation.cxx61.18%100%40.74%96.77%42
   Model.cxx91.25%100%94.44%90.80%141–144, 177–179, 286, 288–291, 297, 422, 424–426, 428–429, 51, 79–80, 88, 96
   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.83%100%100%95.24%45
   SR2Invariant.cxx96.49%100%100%96.30%112, 48
   StateRate.cxx94%100%66.67%97.73%49
   SumModel.cxx86.96%100%100%85%75–76, 79, 81–83
   VariableStore.cxx94.25%100%91.67%94.67%165–166, 63, 65
   WR2ExplicitExponentialTimeIntegration.cxx97.37%100%100%97.14%47
   WR2ImplicitExponentialTimeIntegration.cxx97.56%100%100%97.37%54
src/neml2/models/crystallography
   CrystalGeometry.cxx98.46%100%100%98.25%198, 61
   CubicCrystal.cxx93.75%100%100%92.86%51
   MillerIndex.cxx100%100%100%100%
   crystallography.cxx98.28%100%100%98.08%142
src/neml2/models/crystallography/user_tensors
   FillMillerIndex.cxx94.44%100%100%93.33%44
   SymmetryFromOrbifold.cxx93.33%100%100%92.31%47
src/neml2/models/solid_mechanics
   AssociativeIsotropicPlasticHardening.cxx96.97%100%100%96.67%51
   AssociativeKinematicPlasticHardening.cxx97.06%100%100%96.77%53
   AssociativePlasticFlow.cxx96.67%100%100%96.30%50
   ChabochePlasticHardening.cxx97.83%100%100%97.67%65
   Eigenstrain.cxx90.91%100%100%88.89%38
   ElasticStrain.cxx97.14%100%100%96.88%53
   Elasticity.cxx96%100%100%95.65%52
   FlowRule.cxx92.31%100%100%90.91%40
   GTNYieldFunction.cxx57.14%100%100%56.42%113–114, 117, 120, 123, 168, 188–191, 194, 197–200,